【问题标题】:itextsharp and images sizesitextsharp 和图像大小
【发布时间】:2011-11-22 21:28:58
【问题描述】:

我正在创建一个单独的单元格中包含 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);

【问题讨论】:

    标签: c# itextsharp


    【解决方案1】:

    两件事。

    首先,请参阅 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);
    

    【讨论】:

    • 现在看起来图像尺寸合适,谢谢!现在我必须将它定位在单元格中,即使它是单元格的一个元素。最后,我认为这不是我想做的最好的选择。
    • 只使用 img1.ScaleAbsolute(120f, 155.25f);图像非常适合细胞。克里斯干杯!
    • 如果我想要我的图像 35x35 毫米,那么我应该怎么做?如何以毫米为单位计算?
    • Thankx "ScaleAbsolut" 是我的问题的解决方案。
    • 很好地提到了包装在一个块中。一直想知道为什么我的缩放根本不起作用!
    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2012-02-01
    • 2020-03-27
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多