用Java合并2个PDF

时间:2013-05-09 21:46:29

标签: java pdf itext

我遇到iText问题并将2PDF合并为1个PDF。

我想合并这些PDF:

PDF1 - One Site:

  

这是PDF1。

PDF2 - One Site:

  

这是PDF2。

我需要什么:https://dl.dropboxusercontent.com/u/4001370/whatIneed.pdf

代码1 - 两个网站:

  

One Site One:这是PDF1   一站点二:这是PDF2。

    PDFMergerUtility ut = new PDFMergerUtility();
    ut.addSource("C:\\Temp\\PDF1.pdf");
    ut.addSource("C:\\Temp\\PDF2.pdf");
    ut.setDestinationFileName("C:\\Temp\\Code1.pdf");
    ut.mergeDocuments();

代码2 - 数字被覆盖:

  

这是PDF(1/2)。

public class main {
public static void main(String[] args) throws IOException, DocumentException {
    PdfReader reader;
    PdfImportedPage page;


    LinkedList<File> fileList = new LinkedList<File>();
    fileList.add(new File("C:\\Temp\\PDF1.pdf"));
    fileList.add(new File("C:\\Temp\\PDF2.pdf"));


    File ergebnis = new File("C:\\Temp\\Code2.pdf");
    Document document2 = new Document(PageSize.A4);
    PdfWriter writer = PdfWriter.getInstance(document2, new FileOutputStream(ergebnis));

    document2.open();
    PdfContentByte canvas = writer.getDirectContent();

    // Header 
    reader = new PdfReader(fileList.get(0).getAbsolutePath());
    page = writer.getImportedPage(reader, 1);
    canvas.addTemplate(page, 0, 0);
    // Aufgabe
    reader = new PdfReader(fileList.get(1).getAbsolutePath());
    for(int i=1; i<=reader.getNumberOfPages(); i++){
        page = writer.getImportedPage(reader, i);
        canvas.addTemplate(page, 0, 0);
        document2.newPage();
    }

    document2.close();
    writer.close();
}

}

我不知道。我希望你能解决这个问题。

2 个答案:

答案 0 :(得分:2)

请阅读我的书的Chapter 6。它解释了为什么使用PdfWriter / PdfImportedPage是合并文档的错误方法。如果要连接两个文档,则应使用PdfCopyPdfSmartCopy。如果您希望一个文档作为另一个文档的公司信纸,则应使用PdfStamper。从您的问题来看,目前尚不清楚您需要哪一个(您可以解释),所以请阅读第6章。我已经完成了编写和免费提供的工作,以便您可以选择适合你。

答案 1 :(得分:1)

问题有点模糊 - 如果你问如何拍摄两张PDF并将它们合并在一起,这篇SO文章展示了在iText中最简单的方法:How to merge different documents into single one?