通过原始文本操作将一个entir pdf插入另一个



我需要将一个pdf包含到另一个通过文本操作而不是通过包创建的pdf中。(特别是,我使用的是livecode,它非常适合生成我需要的信息,并且可以轻松地进行文本操作(。

一旦包含,我将添加其他对象(主要是文本,但也有一些小正方形(。

我只需要能够按页面和区域访问包含的pdf,例如第5页的(200200(至(400400(;我不需要访问它的对象。

简单地附加到pdf中是做不到的,因为我添加的内容实际上会将多个源pdf包含在一个pdf输出中。

我希望简单地将原始pdf作为输出pdf中的间接对象,然后引用和使用它;"拆卸";将源pdf转换为组件,构建一个新的交叉引用表。

这能做到吗?还是我需要为每个字典中的每个对象以及对它们的每个引用创建新的绝对引用?(我只需要能够引用区域和页面,而不是实际对象(。

可以一次性用于转换整个多页pdf世界的东西也是一个可用的(但较差(解决方案。

我发现搜索引擎无法产生可用的结果,因为它们充斥着针对单个产品的解决方案,而不是pdf本身。

首先,PDF通常不是文本数据,而是二进制的。它们可能看起来是文本的,因为它们包含由单词的ASCII值构建的标识符,但将它们视为文本,除非用户和工具非常谨慎,否则肯定会损坏它们。

但是,即使我们假设这样的谨慎,除非您的输入PDF内部具有非常简单和相似的结构,否则创建允许合并它们并操作其内容的代码本质上是复杂的,类似于创建通用的PDF库/包。

我想简单地将原始pdf作为输出pdf中的间接对象,然后引用并使用它。

如果您只需要它们作为一个未更改的附件,那么将它们分别放入一个间接对象中是可行的。但你想改变他们。

特别是,我想避免不得不"拆卸";将源pdf转换为组件,构建一个新的交叉引用表。

您至少必须解析("反汇编"(与要操作的页面相关的对象,添加其操作版本,并为更改的对象添加交叉引用。

你只提到了对照表。不要忘记,在通用解决方案的情况下,您还必须能够处理交叉引用流和对象流。

或者我需要为每个字典中的每个对象以及对它们的每个引用创建新的绝对引用吗?(我只需要能够引用区域和页面,而不是实际对象(。

如果您真的想将源PDF合并到目标PDF中,您确实需要对大多数源PDF中的对象进行重新编号。

若作为一个目标,一个源PDF的可移植集合(也称为投资组合(就足够了,那个么您可能不需要这么做。在这种情况下,你只需要将你想要的更改应用于源PDF(如果你愿意,可以通过增量更新的方式(,然后将所有这些被操纵的源组合到一个结果组合中。

我发现搜索引擎无法产生可用的结果

原因很可能是您低估了PDF格式的复杂性。组合和操作任意现有的PDF通常需要使用第三方库或自己创建类似的库。

只有操纵现有的PDF才更容易,将PDF组合到投资组合中也是如此。尽管如此,即使在这种情况下,您也应该仔细研究PDF规范。

将自己限制为字符串操作来实现这一点会使任务变得更加复杂——我想说,对于通用PDF来说是不可能的,对于构建简单相似的PDF来说是大胆的。

最新更新