iTextSharp图像最小表格单元格高度

时间:2014-02-05 21:46:18

标签: c# asp.net image width itextsharp

我正在尝试将图像附加到PDF文档,但图像宽度必须= doc.PageSize.Width,高度与图像宽度成比例。

我使用以下方法将各个图像附加到自己的表格和单元格中

public void AddImage(Document doc, iTextSharp.text.Image Image)
{
    PdfPTable table = new PdfPTable(1);
    table.WidthPercentage = 100;
    table.TotalWidth = doc.PageSize.Width;

    PdfPCell c = new PdfPCell(Image, true);
    c.Border = PdfPCell.NO_BORDER;
    c.Padding = 5;
    c.FixedHeight = (doc.PageSize.Width / Image.Width) * Image.Height;
    c.MinimumHeight = (doc.PageSize.Width / Image.Width) * Image.Height;

    table.AddCell(c);

    doc.Add(table);
}

文档代码部分(不要认为这是必要的):

using (PDFBuilder pdf = new PDFBuilder())
{
    using (var doc = new Document())
    {
        PdfWriter writer = PdfWriter.GetInstance(doc, Response.OutputStream);
        doc.Open();
        var image = iTextSharp.text.Image.GetInstance(Request.MapPath("~/Images/Nemo.jpg"));
        pdf.AddImage(doc, image);
        pdf.AddImage(doc, image);
        pdf.AddImage(doc, image);
    }
}

我想要的是图像宽度为100%,如果没有,图像必须附加到下一页。

这是我正在获得的

enter image description here

这就是我想要的

enter image description here

非常感谢任何帮助,提前谢谢

1 个答案:

答案 0 :(得分:2)

知道了!

需要添加此行:

c.Image.ScaleToFitHeight = false;

我的方法

public void AddImage(Document doc, iTextSharp.text.Image Image)
{
    PdfPTable table = new PdfPTable(1);
    table.WidthPercentage = 100;

    PdfPCell c = new PdfPCell(Image, true);
    c.Border = PdfPCell.NO_BORDER;
    c.Padding = 5;
    c.Image.ScaleToFitHeight = false; /*The new line*/

    table.AddCell(c);

    doc.Add(table);
}