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