如何使用iText将PDF文件追加到现有文件中?

时间:2018-07-04 12:14:17

标签: java android pdf itext

在一个应用程序中,我试图将多个PDF文件附加到一个已经存在的文件中。我使用iText找到了

使用iText,我找到了本教程,就我而言,本教程似乎不起作用。

以下是我尝试使其工作的一些方法。

String path = "path/to/destination.pdf";
PdfCopy mergedFile = new PdfCopy(pdf, new FileOutputStream(path));

PdfReader reader;
for(String toMergePath : toMergePaths){
    reader = new PdfReader(toMergePath);
    mergedFile.addDocument(reader);
    mergedFile.freeReader(reader);

    reader.close();
}

mergedFile.close();

当我尝试添加文档时,logcat告诉我该文档未打开。

但是pdf(原始文档)已经通过其他方法打开,并且仅在此之后关闭。而且,mergedFile与本教程中的内容完全一样,我认为它一定是正确的。

有人遇到同样的问题吗?否则,有谁知道一种更好的方法来做我想做的事?

我见过其他解决方案,可以将一页的内容复制并添加到新文件中,但是我深信这将“编译”我需要的注释。

谢谢您的帮助,

顺便说一句,

Matthieu Meunier

1 个答案:

答案 0 :(得分:2)

我希望这段代码对您有所帮助。

public static void mergePdfs(){
     try {
          String[] files = { "D:\\1.pdf" ,"D:\\2.pdf"  ,"D:\\3.pdf" ,"D:\\4.pdf"};
          Document pDFCombineUsingJava = new Document();
          PdfCopy copy = new PdfCopy(pDFCombineUsingJava , new FileOutputStream("D:\\CombinedFile.pdf"));
          pDFCombineUsingJava.open();
          PdfReader ReadInputPDF;
          int number_of_pages;
          for (int i = 0; i < files.length; i++) {
                  ReadInputPDF = new PdfReader(files[i]);
                  copy.addDocument(ReadInputPDF);
                  copy.freeReader(ReadInputPDF);
          }
          pDFCombineUsingJava.close();
        }
        catch (Exception i)
        {
            System.out.println(i);
        }
}