【问题标题】:Add annotation to PDF using plain C/C++ [closed]使用纯 C/C++ 向 PDF 添加注释 [关闭]
【发布时间】:2012-05-29 19:48:14
【问题描述】:

我正在寻找一种仅使用纯 C/C++(没有第三方库)向 PDF 添加注释的方法。

我怎样才能得到这个结果?

【问题讨论】:

  • 获取 PDF 规范并将 PDF 文件作为纯文本进行操作。
  • 如果您真的不想要第三方库,那么无论如何您都必须按照规范工作。您很可能找不到任何简单的示例。

标签: c++ c pdf annotations pdf-generation


【解决方案1】:

这里是PDF Reference Document Third Edition

PDF 文件由不同的二进制对象组成,可以使用不同的算法、压缩方案(有损和无损)和编码过滤器进行压缩、编码或加密。每个对象都在引用表中引用,其中包含有关其在文件中的位置的信息。 你需要知道如何处理这个表,你需要实现所有可能的压缩方案、编码过滤器和加密算法,然后你必须处理所有可能的 PDF 对象结构。

在 PDF 规范中,这些对象被称为字典,它们由条目组成。每个条目都有一个类型,可以是简单类型,也可以是另一个字典(或对它的引用),或者是这些元素类型中的一个以上的数组。所以我们可以说 PDF 基本上是一个字典对象树。

一旦您的代码能够处理规范中所有可能的字典,并且有了树形结构,您就可以转到规范的第 8 章 - 交互功能,第 8.4 部分 -注释,并实现一种将注释字典添加到 PDF 文件的方法。

您应该注意到,我什至没有在页面内提及诸如字体、色彩空间、透明胶片和绘图说明等 PDF 文件的热门话题。我假设您将能够加载文件中的所有对象,创建注释对象,以某种方式将其插入对象树中,然后“按原样”再次保存所有对象。这或多或少是iText 的工作原理,所以如果你真的想实现它,你可以看一下 iText 的源代码,这样你就可以对这类项目所需的工作量有一个小窗口。

您可能还想看看this answer in SO

【讨论】:

    猜你喜欢
    • 2020-11-25
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2021-03-04
    相关资源
    最近更新 更多