ItextSharp 将图像缩放/调整为 PDF

kay*_*yze 3 .net c# pdf model-view-controller itext

我正在使用 Itextsharp 将一些图像放入 PDF 中。其中一些图像很大(3600h x 2500w),有些则小(1000h x 700w)。我的 PDF 页面是 842H x 737H。

其中一些大图像不适合肖像,所以我翻转宽度>高度的图像。

 img.RotationDegrees = 90f; 
Run Code Online (Sandbox Code Playgroud)

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

我尝试使用

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

 img.ScalePercent(scalePercent);
Run Code Online (Sandbox Code Playgroud)

但这不适用于大多数图像,特别是小图像。

Big*_*Pin 5

我知道这个回复太晚了,但我认为这可能会帮助其他人,因为我也遇到了同样的问题。我这样做是为了翻转然后调整大小:

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);
Run Code Online (Sandbox Code Playgroud)

但请注意,我将文档的 pageSize 设置为 letter,因此如果生成不同尺寸的 PDF,可能需要进行其他更改。