2016-06-10 217 views
1

我正在使用Itextsharp将一些图像转换为PDF格式。其中一些图像很大(3600h乘2500w),有些小(700w乘1000h)。我的PDF页面是737H的842H。ItextSharp将图像缩放/调整为PDF格式

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

img.RotationDegrees = 90f; 

现在我的问题是如何调整,使他们所有的规模和融入完美页面影像?

我尝试使用

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

img.ScalePercent(scalePercent); 

,但对于大多数图像,特别是小图片这没有工作。

回答

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作出。

0

你可以使用你的代码的工作正常,但你需要这样的

var scalePercent = (((doc.PageSize.Width/image.Width) * 100) - 4); 
    img.ScalePercent(scalePercent); 
一个额外的过滤器
相关问题