我正在单独的单元格中创建一个包含6个图像的单个pdf页面,即使我在服务器端设置的图像高度和宽度与ScaleToFit完全相同,但在pdf页面上的图像大小不同
有没有让所有图像完全相同的尺寸?
PdfPTable table = new PdfPTable(3);
table.HorizontalAlignment = Element.ALIGN_CENTER;
table.WidthPercentage = 100;
table.TotalWidth = 698.5f;
table.LockedWidth = true;
table.SetWidths(new float [] {1,1,1});
iTextSharp.text.Image img1 = iTextSharp.text.Image.GetInstance("C:\\Users\\DaNet\\Downloads\\image.jpg");
img1.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
img1.ScaleToFit(120f, 155.25f);
iTextSharp.text.pdf.PdfPCell imgCell1 = new iTextSharp.text.pdf.PdfPCell(img1);
imgCell1.HorizontalAlignment = Element.ALIGN_CENTER;
imgCell1.BackgroundColor = new BaseColor(255, 255, 255);
imgCell1.Border = iTextSharp.text.Rectangle.NO_BORDER;
table.AddCell(imgCell1);
答案 0 :(得分:16)
两件事。
首先,请参阅this post有关将Image
包裹在Chunk
中的信息。基本上是:
iTextSharp.text.pdf.PdfPCell imgCell1 = new iTextSharp.text.pdf.PdfPCell();
imgCell1.AddElement(new Chunk(img1, 0, 0));
其次,如果您希望 完全 大小相同,那么您希望使用ScaleAbsolute
而不是ScaleToFit
。后者保持图像的纵横比,因此缩放到50x50的100x200图像将会出现25x50。
img1.ScaleAbsolute(120f, 155.25f);