All Articles

高效減少 PDF 檔案大小:使用 Ghostscript 的詳細指南

高效減少 PDF 檔案大小:使用 Ghostscript 的詳細指南

簡介

減少 PDF 檔案大小是一個常見的任務,可以提高文件共享的效率並節省存儲空間。本文將深入探討如何使用 ghostscript 這個強大的命令行工具來壓縮 PDF 檔案。我們將詳細解釋各個參數的作用和調整方法,並給出具體情境下的實用範例。

方法

我們使用 ghostscript 命令行工具來壓縮 PDF 檔案。以下是用來減少範例 PDF 檔案大小的命令:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

主要參數解釋

  • -sDEVICE=pdfwrite: 指定輸出設備為 PDF。這個參數固定不變,因為我們的目的是生成 PDF 檔案。
  • -dCompatibilityLevel=1.4: 設置 PDF 的兼容性級別。這個級別可以根據需要進行調整,例如:

    • 1.4: 適用於大多數情況,平衡新功能和兼容性。
    • 1.5: 支援更高的壓縮效率,但可能不被舊的 PDF 閱讀器完全支持。
    • 1.6, 1.7: 提供更高級的功能和壓縮,但兼容性較低。
  • -dPDFSETTINGS: 決定 PDF 文件的壓縮和質量選項,有以下幾個設定可供選擇:

    • /screen: 低分辨率輸出,適合屏幕查看,文件最小。
    • /ebook: 中等分辨率,適合電子書閱讀。
    • /printer: 高分辨率,適合列印。
    • /prepress: 最高清晰度和完整度,適合印刷準備。
  • -dNOPAUSE: 確保命令執行過程中不會暫停,這個參數通常不需要調整。
  • -dQUIET: 靜音模式,減少命令行輸出的訊息。這個參數也通常不需要調整。
  • -dBATCH: 批處理模式,確保命令執行後自動退出,這個參數同樣不需要調整。
  • -sOutputFile=output.pdf input.pdf: 指定輸入和輸出檔案名稱。可以根據需要調整:

    • input.pdf: 原始 PDF 檔案名稱。
    • output.pdf: 輸出 PDF 檔案名稱,可以更改為其他名稱以避免覆蓋原檔案。

結果

通過運行上述命令,我們觀察到 PDF 檔案大小顯著減少。例如,一個 10 MB 的 PDF 被減小到 2 MB,減少了 80%。輸出 PDF 的視覺品質仍然可以接受,適合屏幕查看,使其適用於網頁共享和在線文件庫。

討論

ghostscript 工具在減少 PDF 檔案大小方面表現出色。選擇 -dPDFSETTINGS=/screen 在平衡檔案大小和品質方面起到了關鍵作用。雖然命令還提供了其他設置如 /ebook/printer/prepress,但 /screen 對於一般用途是最有效的。未來的研究可以探索這些設置對不同類型 PDF 的影響。

兼容性問題

使用 ghostscript 時,可能會遇到以下錯誤訊息:

GPL Ghostscript 10.03.1: Can't use Object streams before PDF 1.5, ignoring WriteObjStms directive
GPL Ghostscript 10.03.1: Can't use an XRef stream before PDF 1.5, ignoring WriteXRefStm directive

這些錯誤是由於 PDF 兼容性級別與某些指令不匹配造成的。解決方法是提升 PDF 兼容性級別到 1.5 或更高,或者確保不使用需要高兼容性級別的功能。

具體情境下的實用範例

高兼容性設定(PDF 1.4)

適合於需要高兼容性的情況,文件能被更多舊版 PDF 閱讀器打開。

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output_compatible.pdf input.pdf

高功能設定(PDF 1.5)

適合於需要使用更新功能和更高壓縮率的情況,但可能不被某些舊版 PDF 閱讀器支持。

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output_high.pdf input.pdf

電子書設定

適合於電子書閱讀,提供中等分辨率和文件大小。

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output_ebook.pdf input.pdf

結論

使用 ghostscript 並配合特定的設置可以顯著減少 PDF 檔案大小,這使其成為需要優化文件以進行存儲和共享的任何人的寶貴工具。此方法簡單、高效,並且保留了必要的屏幕查看品質。