iTextSharp: как изменить размер изображения в соответствии с размером исправления?
Я хочу иметь возможность изменять размер изображения до размера 159x159 точек, используя iTextSharp 4.2.0, но полученное изображение должно иметь точно указанные размеры.
Я попытался это:
Image image = Image.GetInstance(imagePath);
image.ScaleAbsolute(159f, 159f);
но изображение не квадратное. Он сохраняет соотношение сторон.
пример: У меня есть такой образ:
и изображение результата должно выглядеть так:
спасибо.
2 ответов
проблема, которую вы описываете, обычно заключается в том, что происходит при попытке добавить Image
непосредственно PdfPTable
по телефону AddCell()
, который всегда масштабирует изображение, чтобы соответствовать PdfPCell
. Поэтому, если вы добавляете изображение в Document
такой:
Image img = Image.GetInstance(imagePath);
img.ScaleAbsolute(159f, 159f);
PdfPTable table = new PdfPTable(1);
table.AddCell(img);
document.Add(table);
код ScaleAbsolute()
вызов игнорируется. Чтобы получить масштабирование, которое вы хотите:
PdfPTable table = new PdfPTable(1);
table.AddCell(new PdfPCell(img));
document.Add(table);
PdfPCell имеет свойство соответствовать изображению в ячейке, поэтому просто установите его в true.
iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance("/test.png");
PdfPCell logocell = new PdfPCell(logo,true); // **PdfPCell(Image,Boolean Fit)**