Pdf

如何從 PDF 書籤中刪除縮放資訊

  • June 11, 2021

我有一個帶有書籤的 PDF 文件(又名索引和文件大綱),它似乎指定了在連結之後顯示文件的縮放比例。我知道這一點,因為當我在 Evince 中查看文件並點擊書籤時,Evince 會自動更改縮放級別。

儘管這在 ISO 32000-1:2008(第 12 節)中有記錄,但我不喜歡這種行為。我希望我的 PDF 查看器在使用書籤後以相同的縮放級別顯示文件。

allow-links-change-zoomdconf 中一個相對較新的鍵應該可以解決這個問題。然而,即使在將密鑰設置為 之後false,Evince 仍繼續表現出之前的行為。(也許我可能需要重新啟動電腦;但我無法檢查這一點,因為我現在無法訪問更新版本的 Evince。)

這就是為什麼我一直試圖從 PDF 文件的書籤中刪除縮放資訊。

/XYZ像,/Fit和出現在規範中的關鍵字GoTo不會出現在文件中。也許書籤以某種方式編碼。因此,手動或手動擦除數據sed似乎不起作用。

我怎樣才能完成任務?

您可能需要使用解壓縮文件pdftk才能真正找到目標關鍵字。

如果您仍然有 v1.7 PDF 標準的副本,您還可以查看第 8.2 節以獲取有關語法的更多詳細資訊。關於命名目的地的部分可能會有所幫助。

這是我用來從 PDF 中的書籤中刪除縮放因子的小腳本:

#!/bin/bash

# decrypt the file
pdftk "$1" output decrypted.pdf && \
pdftk decrypted.pdf output uncompressed.pdf uncompress && \
# remove zoom factors in bookmarks
sed 's#/Fit#/XYZ#g' uncompressed.pdf > uncompressed_output.pdf && \
# compress the output
pdftk uncompressed_output.pdf output output.pdf compress && \
mv "$1" "$1.original" && \
mv output.pdf "$1" && \
rm decrypted.pdf uncompressed.pdf uncompressed_output.pdf

將其保存到文件removezoom.sh並使其可執行。然後您可以將其稱為

~$ ./removezoom.sh yourFile.pdf

**編輯:**啊,對不起,我指的是Adobe格式化的文件中的第8.2節,名為“PDF參考,第六版”。格式不同於原始的 ISO 文件,或者國會圖書館聲稱的不同。

引用自:https://unix.stackexchange.com/questions/269033