我正在尝试为搅拌器开发一个python脚本,以便将呈现的图像序列输出到PDF。我使用Imagemagick转换为PDF,该部分工作正常,但是,我希望缩略图预览也包含在PDF中。使用sed编辑PDF属性
PDF格式对我来说有点困惑,但我找到了/PageMode
和/UseThumbs
标签以及如何正确地将它们插入到文件中。我可以手动执行此操作,并且工作得很好。但我一直在试图得到一个类似的结果,而不需要手动完成,毕竟我正在编写一个脚本。这是在PDF标题中的数据为例片段,与添加的标签:
%PDF-1.3
1 0 obj
<<
/Pages 2 0 R
/PageMode
/UseThumbs
/Type /Catalog
>>
endobj
2 0 obj
<<
/Type /Pages
/Kids [ 3 0 R 17 0 R 31 0 R ]
/Count 3
>>
我试图用sed根据需要在第4和第5行,这也是工作插入标签,但当我打开PDF时,图像已损坏。在我比较手动编辑的PDF(没有损坏)和记事本++中sed编辑过的PDF(已损坏)的情况下,我可以发现文件没有区别。有一个不同的字符数,但我找不到差异的位置
据我所知,PDF有一个偏移交叉引用表,但我似乎很奇怪,手工操作不会破坏任何东西,但做它与sed创造腐败
我在做什么错?
你可以把这两个文件放在某个地方,这样我们可以看看两者吗? – janos
它表明如果字节数已关闭,但您无法直观地确认差异,则存在CR/LF问题。一个样本PDF确实会有所帮助。 – usr2564301
*手工操作不会破坏任何东西* - 某些PDF阅读器,即Adobe Reader,倾向于忽略他们知道处理的某些类型的损害,并且只有在PDF文件以某种方式损坏时才会抱怨无法处理。因此,最有可能的是,您的手动更改仅以不同方式*损坏文件。如果@ Jongware假设差异在行分隔符中,则为true(也许sed逐行读取文件*并在回写中始终使用其首选行结尾),请注意,更改压缩流中的行分隔符字符确实会打破它。 – mkl