我需要编辑几个PDF文件的标题信息。 我想实现的是在%PDF-X.Y.Z
之前删除所有标题数据。编辑或删除C中的PDF标题信息
我想出了一个可能的解决方案是二进制模式来打开PDF,直到%PDF-X.Y.Z
找到阅读的每个字符。 然后继续阅读流的其余部分并将其保存到新文件。我认为这样我会得到一个精确的二进制PDF副本,只是不同的头文件信息。
C中最简单/最好的方法是什么? 有没有可以帮助我做到这一点的图书馆? 我也有兴趣听到解决这个问题的不同方法。
谢谢。
我需要编辑几个PDF文件的标题信息。 我想实现的是在%PDF-X.Y.Z
之前删除所有标题数据。编辑或删除C中的PDF标题信息
我想出了一个可能的解决方案是二进制模式来打开PDF,直到%PDF-X.Y.Z
找到阅读的每个字符。 然后继续阅读流的其余部分并将其保存到新文件。我认为这样我会得到一个精确的二进制PDF副本,只是不同的头文件信息。
C中最简单/最好的方法是什么? 有没有可以帮助我做到这一点的图书馆? 我也有兴趣听到解决这个问题的不同方法。
谢谢。
假设剥离文件的开头确实解决你的问题,你所需要的的fopen,FREAD,FWRITE和FCLOSE。
打开文件以二进制模式读取。阅读,直到找到神奇的%PDF字符串。打开二进制写入的输出文件。写出该文件,从你的新%PDF字符串开始。写完后,关闭这两个文件。
好吧,我正确的方式。当文件以二进制模式打开时,使用'fread'在字节后面读取字节并将该值与字符进行比较的最佳方法是什么? – Dominik 2011-03-11 09:15:49
天真的方法是将其读入缓冲区,然后逐字节地前进通过缓冲区调用memcmp,以检查匹配。这可能有一个库函数。这在C++中会更容易,并且在更高级别的语言中是微不足道的! – 2011-03-11 09:25:23
我明白了。将整个文件读入缓冲区对于我而言可能有点危险,因为PDF文件的大小可能为几GB。我其实选择C是因为我认为这可能是操纵/处理二进制数据的最简单方法。所以你认为我会更好地使用例如C#或Python? – Dominik 2011-03-11 09:36:46