使用顶部间距为itextsharp将Image转换为Pdf

时间:2017-05-04 05:37:58

标签: c# pdf itext

我正在为pdf程序做一个图像。

我想将图片的大小设置为pdf的大小,并将顶部的额外空间设置为50

我试过这段代码

                using (var imageStream = new FileStream(imagelocation, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                {
                    var image = Image.GetInstance(imageStream);

                    Document document = new Document(new Rectangle(image.Width, image.Height), 0, 0, 0, 0);
                    using (var stream = new FileStream(pdfOutput, FileMode.Create, FileAccess.Write, FileShare.None))
                    {
                        PdfWriter.GetInstance(document, stream);
                        document.Open();
                        document.Add(image);
                        document.Close();
                    }
                }

但问题是它没有上边距,

当我尝试这段代码时

Document document = new Document(new Rectangle(image.Width, image.Height), 0, 50, 50, 0);

它为空间裁剪图像的一部分。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

通过设置文档边距,如" 0,50,50,0和#34;你也设置了一个保证金权利,在这种情况下可能不是你想要的。边缘顶部是在图像上方获得一些空间的正确方法。 或者,您可以在添加图像之前向文档添加一些空行,例如:document.Add(new Paragraph(Chunk.NewLine))

您可以使用image.ScaleToFit()并传入document.PageSize.Height和document.PageSize.Width之类的内容,以使该图像适合您的页面。

答案 1 :(得分:0)

这是我的解决方案。我没有意识到这个简单的代码会起作用

Document document = new Document(new Rectangle(image.Width, image.Height + 150), 0, 0, 150, 0);