我需要编辑几个 PDF 文件的标题信息。我想要实现的是删除之前的所有标题数据%PDF-X.Y.Z
。
我想出的一个可能的解决方案是以二进制模式打开 PDF,读取每个字符直到%PDF-X.Y.Z
找到。然后继续读取流的其余部分并将其保存到新文件中。我认为这样我最终会得到一个精确的 PDF 二进制副本,只是带有不同的标题信息。
在 C 中最简单/最好的方法是什么?是否有任何可用的库可以帮助我做到这一点?我也有兴趣听到解决这个问题的不同方法。
谢谢。
我需要编辑几个 PDF 文件的标题信息。我想要实现的是删除之前的所有标题数据%PDF-X.Y.Z
。
我想出的一个可能的解决方案是以二进制模式打开 PDF,读取每个字符直到%PDF-X.Y.Z
找到。然后继续读取流的其余部分并将其保存到新文件中。我认为这样我最终会得到一个精确的 PDF 二进制副本,只是带有不同的标题信息。
在 C 中最简单/最好的方法是什么?是否有任何可用的库可以帮助我做到这一点?我也有兴趣听到解决这个问题的不同方法。
谢谢。
实际上,您可以删除%PDF
标记之前的所有信息,但是您使文件末尾的外部参照表无效。此表包含对 PDF 对象的偏移引用。
最简单的方法是:删除之前的部分%PDF
并计算,你扔掉多少,减少外部参照中的值。
假设剥离文件的开头确实可以解决您的问题,那么您只需要 fopen、fread、fwrite 和 fclose。
您打开文件以二进制模式读取。继续阅读,直到找到神奇的 %PDF 字符串。打开输出文件进行二进制写入。从新的 %PDF 字符串开始写入该文件。完成写入后,关闭这两个文件。