2016-06-10 2 views
1

Я использую Itextsharp для размещения некоторых изображений в PDF. Некоторые из этих изображений большие (3600h на 2500w) и немного немного (1000h на 700w). Моя страница в формате PDF - 842H на 737H.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); 
Смежные вопросы