iTextSharp会在页面结束时自动缩小图像

时间:2017-03-29 11:57:27

标签: itext

我使用iTextSharp在pdf报告中显示图像。在这里,我希望连续显示两个图像,它按预期工作,但在页面结束时出现问题。问题是最后一行图像缩小以适合同一页面,它不会自动将其添加到下一页。所有图像具有相同的尺寸和分辨率。

Click here for screenshot

3 个答案:

答案 0 :(得分:1)

请向我们提供代码。

我在下面写了测试(尽管它在java中,应该没有问题)并且结果似乎是正确的。

    public void tableWithImagesTest01() throws IOException, InterruptedException {
    String testName = "tableWithImagesTest01.pdf";
    String outFileName = destinationFolder + testName;
    String cmpFileName = sourceFolder + "cmp_" + testName;

    PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outFileName));
    Document doc = new Document(pdfDoc, PageSize.A3);

    Image image1 = new Image(ImageDataFactory.create(sourceFolder + "itis.jpg"));
    Table table = new Table(2);
    for (int i = 0; i < 20; i++) {
        table.addCell(new Cell().add(image1));
        table.addCell(new Cell().add(image1));
        table.addCell(new Cell().add(new Paragraph("Hello")));
        table.addCell(new Cell().add(new Paragraph("World")));
    }
    doc.add(table);

    doc.close();
    Assert.assertNull(new CompareTool().compareByContent(outFileName, cmpFileName, destinationFolder, "diff"));
}

结果pdf如下所示: enter image description here

也许您使用summat image1.setAutoScale(true);?我们仍然需要您的代码来查看。

答案 1 :(得分:0)

最简单的解决方案(考虑到所有图像具有相同的尺寸和分辨率)是每次向页面插入最大数量的图像时手动插入新页面和分页。

答案 2 :(得分:0)

从下面的评论中得出,有效的解决方案是,您需要设置的各个图像:

image.ScaleToFitHeight = false;

将行保持在一起时可能会发生