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

时间:2012-05-23 09:19:18

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

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

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

1 个答案:

答案 0 :(得分:4)

这是PDF Reference Document Third Edition

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

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

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

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

您可能还想查看this answer in SO