我正在嘗試爲攪拌器開發一個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