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

发布于 2024-10-21 17:14:38 字数 282 浏览 5 评论 0原文

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

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

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

谢谢。

I need to edit the header information of several PDF files.
What I'd like to achieve is to remove all header data before %PDF-X.Y.Z.

What I came up with as a possible solution was to open the PDF in binary mode, read each character until %PDF-X.Y.Z is found.
Then continue reading the rest of the stream and save it to a new file. I thought this way I will end up with an exact binary copy of the PDF, just with different header information.

What's the easiest/best way to do this in C?
Are there any libraries available that could help me do this?
I'm also interested in hearing different approaches to solve this problem.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雾里花 2024-10-28 17:14:38

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

最简单的方法是:删除 %PDF 之前的部分并计数,丢弃了多少,相应减少外部参照中的值。

Actually you can trow away all information before %PDF tag, BUT you make xref table at the end of file invalid. This table contains offset references to PDF objects.

Easiest way was: remove the part before %PDF and count, how much you trow away, reduce values in xref according.

快乐很简单 2024-10-28 17:14:38

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

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

Assuming that stripping the beginning of the file really does solve your problem, all you need are fopen, fread, fwrite and fclose.

You open the file for reading in binary mode. Read up until you find the magic %PDF string. Open the output file for binary writing. Write out to that file, starting with your new %PDF string. When you are done writing, close both files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文