ItextSharp缩放/调整图像大小为PDF

时间:2016-06-10 05:00:31

标签: c# .net pdf model-view-controller itextsharp

我正在使用Itextsharp将一些图像放入PDF中。这些图像中的一些是大的(3600h乘2500w)而有些小(1000h乘700w)。我的PDF页面是734H的842H。

这些大图像中的一些不适合potrait,所以我正在翻转宽度> gt的图像。高度。

 img.RotationDegrees = 90f; 

现在我的问题是我如何缩放图像以使它们都能完美地缩放并适合页面?

我尝试使用

 var scalePercent=  (PDFPage.Width / img.Width) * 100;

 img.ScalePercent(scalePercent);

但这对大多数图像都没有用,特别是小图像。

2 个答案:

答案 0 :(得分:0)

我知道这种反应很晚,但我认为这可能有助于其他人,因为我有同样的问题。我做了这个翻转然后调整大小:

Document pdfDoc = new Document(PageSize.LETTER, 10f, 10f, 10f, 0f);
pdfDoc.SetPageSize(iTextSharp.text.PageSize.LETTER.Rotate());
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(image);
img.SetAbsolutePosition(0, 0);
img.ScaleAbsoluteHeight(pdfDoc.PageSize.Height);
img.ScaleAbsoluteWidth(pdfDoc.PageSize.Width);

但请注意,我在文档上设置了pageSize,因此如果生成不同大小的PDF,可能需要进行其他更改。

答案 1 :(得分:0)

你可以使用你的代码,它的工作正常,但你需要一个额外的过滤器,如

   var scalePercent = (((doc.PageSize.Width / image.Width) * 100) - 4);
   img.ScalePercent(scalePercent);