使用普通C / C ++向PDF添加注释

我正在寻找一种方法来添加PDF的注释,只使用普通的C / C ++(没有第三方库)。

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

这是PDF参考文档第三版 。

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

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

一旦您的代码能够处理规范中的每个可能的字典,并使用树结构,您可以转到第8章 –规范的交互function ,第8.4部分– 注释 ,并实现一种向PDF添加注释字典的方法文件。

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

您可能还想在SO中查看此答案 。

Interesting Posts