在一个应用程序中,我试图将多个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
答案 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);
}
}