合并PDF文件中的多个图像

时间:2014-12-11 14:55:02

标签: pdf itext

我尝试合并单个PDF文件中目录中的多个图像。我已经从itext网站构建了一个示例代码,但问题是图像没有正确添加到PDF中,只是右边可以看到每个图像的边框:

private void generateMultiPageTiff(String path) throws Exception {
        Document document = new Document();
        PdfWriter.getInstance(document, new FileOutputStream(
                "C:\\Users\\Desktop\\out.pdf"));
        document.open();
        Paragraph p = new Paragraph();
        File files[] = new File(path).listFiles();

        for (int ii = 0; ii < files.length; ii++) {
            Image img = Image.getInstance(files[ii].getAbsolutePath());
            img.setAlignment(Image.LEFT);
            img.setAbsolutePosition(
                    (PageSize.POSTCARD.getWidth() - img.getScaledWidth()) / 2,
                    (PageSize.POSTCARD.getHeight() - img.getScaledHeight()) / 2);

            p.add(new Chunk(img, 0, 0, true));
            document.add(p);
        }

        document.close();

}

enter image description here

任何帮助?

1 个答案:

答案 0 :(得分:2)

尝试将图像添加为单元格表格。请参阅以下示例:

private void generateMultiPageTiff(String path) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(
            "C:\\Users\\Desktop\\out.pdf"));
    document.open();
    Paragraph p = new Paragraph();
    File files[] = new File(path).listFiles();
    PdfPTable table = new PdfPTable(1);
    for (int ii = 0; ii < files.length; ii++) {
        table.setWidthPercentage(100);
        table.addCell(createImageCell(files[ii].getAbsolutePath()));
    }

    document.add(table);
    document.close();

}

public static PdfPCell createImageCell(String path)
        throws DocumentException, IOException {
    Image img = Image.getInstance(path);
    PdfPCell cell = new PdfPCell(img, true);
    return cell;
}