2

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

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

在 C 中最简单/最好的方法是什么?是否有任何可用的库可以帮助我做到这一点?我也有兴趣听到解决这个问题的不同方法。

谢谢。

4

2 回答 2

3

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

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

于 2011-03-11T08:58:52.890 回答
2

假设剥离文件的开头确实可以解决您的问题,那么您只需要 fopen、fread、fwrite 和 fclose。

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

于 2011-03-11T08:00:02.870 回答