gpt4 book ai didi

用于附加的 PDF 规范

转载 作者:行者123 更新时间:2023-12-04 14:10:00 29 4
gpt4 key购买 nike

我正在编写一些代码,需要能够获取两个 pdf 并将它们附加到页面级别(例如,如果它们都是 2 页文档,则有一个 4 页文档,其中所有 4 页都与原始文档相同).

在不使用库的情况下,最好的方法是什么? PDF 规范是否使这变得容易?

最佳答案

正如其他人已经提到的,如果您不使用 PDF 库,将两个 PDF 文件合并在一起将是一项艰巨的任务。您需要对内部 PDF 结构有深入的了解。这是 PDF 规范的链接。这是开始的好地方 - PDF Reference .

在详细介绍之前,这里有一个合并两个非常简单的 PDF 文件的小实验,以及结果。这两个文件各为 34kb。生成的文件大小为 35kb,其中包含每个输入文件的页面。仅此一项就表明,在幕后发生的事情比合并两个输入文档的代码要多。比较输入和输出文档的代码,还表明它们已完全重新创建,每个对象具有不同的对象 ID。

通常的 PDF 文档包含标题、正文、交叉引用表和结尾。阅读 PDF 文档时,库从顶部开始,然后跳到文档的末尾,向后移动,直到它到达交叉引用表。在此表中,库在特定文档中查找对象和字节偏移量。将新对象添加到文档时,会更新或重新创建此表。

要手动合并两个文档,您必须将对象从第二个文档的正文移动到第一个文档中。然后您可以根据需要更新第一个文档的元数据。这里的困难任务是更新并可能重新创建交叉引用表。您将需要实现 PDF 规范的重要部分才能做到这一点。

如果您决定在您的项目中使用一个库,那么有一些相当轻量级的库可以解决问题。 PDFtk库相当轻量级,可以用 1 个命令进行 PDF 合并。它有一个免费版本,以及命令行功能。您应该能够设置一个简单的服务器来在您的环境中托管它,然后通过 Java Script 调用它。

如果您的项目需要的不仅仅是一个免费的库,还有 APDFL ,这是一个商业 PDF 处理库。它具有 .NET 或 Java 界面,因此您可以轻松创建一个服务器应用程序来为您合并 PDF 文件。

关于用于附加的 PDF 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973622/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com