在C中编辑或删除PDF标题信息

时间:2011-03-11 07:24:40

标签: c pdf binaryreader pdf-manipulation

我需要编辑几个PDF文件的标题信息。 我想要实现的是删除%PDF-X.Y.Z之前的所有标题数据。

我想出的可能的解决方案是以二进制模式打开PDF,读取每个字符,直到找到%PDF-X.Y.Z。 然后继续读取流的其余部分并将其保存到新文件中。我想这样我最终会得到PDF的精确二进制副本,只有不同的标题信息。

在C中执行此操作最简单/最好的方法是什么? 有没有可用的图书馆可以帮我这么做? 我也有兴趣听取解决这个问题的不同方法。

感谢。

2 个答案:

答案 0 :(得分:3)

实际上,您可以在%PDF标记之前删除所有信息,但是在文件末尾使外部参照表无效。该表包含对PDF对象的偏移引用。

最简单的方法是:删除%PDF之前的部分并计算,你扔掉多少,减少外部参照值。

答案 1 :(得分:2)

假设剥离文件的开头确实解决了你的问题,你需要的只是fopen,fread,fwrite和fclose。

打开文件以便以二进制模式读取。阅读,直到找到神奇的%PDF字符串。打开输出文件以进行二进制写入。写下该文件,从新的%PDF字符串开始。完成写作后,请关闭这两个文件。