Java 将2个PDF文件合并为新文件

Java 将2个PDF文件合并为新文件,java,arrays,file,pdf,Java,Arrays,File,Pdf,我有2个PDF文件 我将这两个文件读取为字节数组、file1和file2,然后连接到第三个数组file3 当我将第三个数组写入文件系统时,创建的文件大小是file1和file2的总和,但它只显示file1的内容 以下是如何将数组写入文件系统: try (FileOutputStream stream = new FileOutputStream(path)) { stream.write(file3); } 如何查看合并文件的所有页面?可能与许多文件格式重复,pdf不仅仅是文本内容,它

我有2个PDF文件

我将这两个文件读取为字节数组、
file1
file2
,然后连接到第三个数组
file3

当我将第三个数组写入文件系统时,创建的文件大小是
file1
file2
的总和,但它只显示
file1
的内容

以下是如何将数组写入文件系统:

try (FileOutputStream stream = new FileOutputStream(path)) {
    stream.write(file3);
}

如何查看合并文件的所有页面?

可能与许多文件格式重复,pdf不仅仅是文本内容,它具有定义的页眉和页脚结构。简单地连接两个二进制文件不会修改此结构。因此,reader应用程序不知道它应该在文件到达第一个页脚后继续读取该文件。有专门的库来合并PDF,检查链接的问题。它实际上比@jhamon描述的更糟糕。PDF必须从文件开头到某些核心结构之间存在偏移的一端读取。由于第二个文件的值现在应用于两个文件的串联,因此它指向某个任意位置。你很幸运,有一些明智的东西被展示出来了。不是一个完全相同的版本:它更专业,因为它专注于使用特定的PDF库PDFBox进行合并。尽管如此,这是一个很好的指针。谢谢你的输入@mkl是否可以在不使用任何第三方库的情况下将两个PDF字节数组合并为一个PDF?与许多文件格式一样,PDF不仅仅是一个文本内容,它具有定义的页眉和页脚结构。简单地连接两个二进制文件不会修改此结构。因此,reader应用程序不知道它应该在文件到达第一个页脚后继续读取该文件。有专门的库来合并PDF,检查链接的问题。它实际上比@jhamon描述的更糟糕。PDF必须从文件开头到某些核心结构之间存在偏移的一端读取。由于第二个文件的值现在应用于两个文件的串联,因此它指向某个任意位置。你很幸运,有一些明智的东西被展示出来了。不是一个完全相同的版本:它更专业,因为它专注于使用特定的PDF库PDFBox进行合并。尽管如此,这是一个很好的指针。谢谢你的输入@mkl是否可以在不使用任何第三方库的情况下将两个PDF字节数组合并为一个PDF?