微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决通过原始文本操作将整个 pdf 插入另一个

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

加入后,我将添加其他对象(主要是文本,但也有一些小方块)。

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

简单地附加到 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 来说却是大胆的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。