这个问题需要在 IBM Ondemand 论坛上提问。我想我可以利用 Itext 来破解它。正如 David 所提到的,我们无法使用 Itext 处理这些非结构化 PDF。下面给出了解决问题的代码片段。
两个 PDF 都使用纯 java 合并。合并后的文件将有两个 EOF、header 和 trailing 信息。
当您在 Acrobat 中打开时,它将读取最后的文档信息并显示。当我们将长度和索引传递给按需时,它将拆分 PDF 并按预期显示。
public static void main(String[] args) throws IOException {
String sourceFile1Path = "C:\\sample1.PDF";
String sourceFile2Path = "C:\\sample1.PDF";
String mergedFilePath = "C:\\merged.PDF";
File[] files = new File[2];
files[0] = new File(sourceFile1Path);
files[1] = new File(sourceFile2Path);
File mergedFile = new File(mergedFilePath);
for (File file : files) {
FileWriter fstream = null;
BufferedWriter out = null;
fstream = new FileWriter(mergedFile, true);
out = new BufferedWriter(fstream);
FileInputStream fis = new FileInputStream(file);
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
String aLine;
while ((aLine = in.readLine()) != null) {
out.write(aLine);
out.newLine();
}
out.close();
fstream.close();
fis.close();
in.close();
System.out.println("File Length: " + file.getName() + " : " + new File(mergedFilePath).length());
}
}