使用sed编辑PDF属性

使用sed编辑PDF属性,第1张

概述我正在尝试为blender开发一个 python脚本,以将渲染的图像序列输出到PDF.我正在使用 Imagemagick转换为PDF,该部分工作正常,但是,我希望缩略图预览也包含在PDF中. PDF格式对我来说有点混乱,但我找到了/ PageMode和/ UseThumbs标签以及如何将它们正确地插入到文件中.我可以手动完成这项工作,效果非常好.但是我一直试图获得类似的结果,而不需要手动完成,毕竟 我正在尝试为blender开发一个 python脚本,以将渲染的图像序列输出到pdf.我正在使用 Imagemagick转换为pdf,该部分工作正常,但是,我希望缩略图预览也包含在pdf中.

pdf格式对我来说有点混乱,但我找到了/ PageMode和/ UseThumbs标签以及如何将它们正确地插入到文件中.我可以手动完成这项工作,效果非常好.但是我一直试图获得类似的结果,而不需要手动完成,毕竟我正在写一个脚本.以下是pdf中标题数据的示例摘录,其中添加了标记:

%pdf-1.3 1 0 obj<</Pages 2 0 R/PageMode/UseThumbs/Type /Catalog>>endobj2 0 obj<</Type /Pages/KIDs [ 3 0 R 17 0 R 31 0 R ]/Count 3>>

我正在尝试使用sed在第4行和第5行根据需要插入标签,这也有效,但是当我打开pdf时,图像已损坏.加密地,当我将手动编辑的pdf(未损坏的pdf)与记事本中的sed编辑的pdf(已损坏的)进行比较时,我可以找到的文件没有区别.有一个不同的字符数,但我找不到差异的位置

我知道pdf有一个偏移的交叉引用表,但我觉得手工做它不会破坏任何东西似乎很奇怪,但用sed做它会造成腐败

我究竟做错了什么?

解决方法 你真的不想从sed这样做.有些pdf可能看起来像面向行的文本文件,但它们肯定不是.

由于您已经在使用Python,因此您可以使用Python库来完成此任务.

pdfrw将从纯Python中为您做到这一点.它将在pdf文件中啜饮,并使用您想要的任何更改重建它并正确设置文件偏移量.以下代码片段应将/ PageMode设置为pdf的/ Root字典中的/ UseThumbs:

    from pdfrw import pdfReader,pdfWriter,pdfname    trailer = pdfReader('myfile.pdf')    trailer.Root.PageMode = pdfname.UseThumbs    pdfWriter().write('mynewfile.pdf',trailer)

免责声明:我是pdfrw作者.

总结

以上是内存溢出为你收集整理的使用sed编辑PDF属性全部内容,希望文章能够帮你解决使用sed编辑PDF属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1032474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存