比較 PDF 壓縮方式的差異,最終取決於四個可量測的面向:該方法是針對特定位元組大小,還是僅承諾「更小」;它是本機處理檔案,還是將檔案上傳至遠端伺服器;它可以安全地修改哪些 PDF 物件;以及它如何驗證儲存後的檔案。在同一份 PDF 上產生最小輸出的方式,未必總是能可靠地精準達到指定 MB 目標;而能達到目標的方式,也未必總是能保持文字、表單與向量內容不變。一個有用的比較,應將同一份來源檔案視為唯一公平的輸入,設定一個以 MB 為單位的目標,並以該方法實際儲存檔案的位元組長度作為評斷依據——而非根據來源所推估的數值。本文接下來將逐一說明這些準則,並套用於常見的壓縮方式,最後展示一個以目標為導向、且僅在儲存後的 PDF 達到或低於所要求的 MB 值時才提供下載的本機處理方式的實測結果。

不同壓縮方式之間的真正差異
大多數人在比較 PDF 壓縮工具時,都是看行銷話術:「最多可縮小 90%」、「無損壓縮」、「最佳品質」。這些說法其實無法相互比較,因為它們是依據不同的來源檔案、不同的目標,以及不同的「無損」定義所測得。若要公平地比較各種方式,必須事先固定四個面向,並在測試每一種方法時都保持這些條件不變。
第一個面向是該方式是否為 目標感知(target-aware)。一個目標感知的方式會接受使用者輸入的 MB 值,並以「儲存後的檔案等於或低於該值」作為成功條件。一個非目標感知的方式僅承諾相對於來源的縮減比例,卻從不保證具體的輸出大小。目標感知的方式可能會誠實地失敗——它會告訴你該目標無法在不損及品質的情況下達成——而非目標感知的方式則總是會產生一個下載檔案,把是否符合你實際需求的判斷留給使用者。
第二個面向是 處理位置。有些方式會在你的瀏覽器內讀取並重寫 PDF,使用例如 Mozilla PDF.js 這類程式庫;其他方式則會將檔案上傳至伺服器,由後端最佳化程式執行後再回傳結果。本機處理可讓來源檔案保留在你的裝置上,並從比較中移除一個變數(網路頻寬、伺服器負載、資料保留政策)。
第三個面向是 該方法被允許修改哪些 PDF 物件。一個僅重新編碼內嵌 JPG 串流的方法,會保持文字、向量、連結、表單欄位與詮釋資料完全不變。一個將整個頁面點陣化的方法,則會將上述所有物件全部以像素取代。一個會移除詮釋資料並攤平表單的方法,則會以「壓縮」標籤未明確告知的形式改變文件行為。兩個同樣標榜「無損」的工具,在同一份 PDF 上可能代表截然不同的意義。
第四個面向是 驗證機制。該工具是將實際儲存檔案的位元組與目標進行比對,還是根據來源預估儲存後檔案的大小?後者速度較快,但只要編碼器的輸出大小與預測不符,結果就是錯誤的。經過驗證的檢查方式會開啟候選的輸出檔案,讀取其位元組長度,然後才提供下載連結。
常見 PDF 壓縮方式比較
下表比較了你可能會遇到的五種方式。表中不列出實際測試數字,因為那會取決於來源檔案;這裡列出的是決定每種方式在任何輸入上表現的結構性特性。
| 方式 | 目標感知 | 本機處理 | 修改內容 | 驗證機制 |
|---|---|---|---|---|
| 通用的線上「壓縮 PDF」服務 | 通常否 | 否(需上傳) | 取決於後端 | 預估值或無檢查 |
| 無損物件串流重新整理(例如 qpdf) | 否 | 是 | 交互參照表、物件串流、詮釋資料 | 僅儲存後的位元組 |
| 本機 JPG 重新壓縮至指定目標 | 是 | 是 | 僅限未遮罩的 DCTDecode DeviceRGB 或 DeviceGray JPG 資料 | 儲存後的位元組與目標比對 |
| 將每個頁面點陣化為 JPG 影像 | 間接 | 有時 | 整個頁面內容 | 儲存後的位元組 |
| 伺服器端最佳化套件 | 否 | 否 | 取決於後端 | 預估值或無檢查 |
對任何以實際 MB 上限作為比較基準的人來說,其中有兩個列特別值得注意。本機 JPG 重新壓縮那一列屬於目標感知且經過驗證;而無損重新整理那一列雖然屬於本機處理且經過驗證,但並非目標感知——它的表現上限完全取決於 JPG 串流中既存的編碼大小。通用的線上工具與伺服器端套件則是最難以比較的,因為它們把物件選擇規則藏在一個「壓縮」按鈕背後,若不自行檢查輸出內容,就難以進行公平比較。
依據你的 PDF 類型選擇適合的方式
在某一種 PDF 上表現優異的方式,在另一種 PDF 上可能會完全卡住。在比較工具之前,請先將來源檔案歸入下列其中一類,因為正確的方法取決於檔案中實際包含什麼。
- 掃描為主的 PDF — 每個頁面幾乎都是一張 JPEG 影像。JPG 重新壓縮與頁面點陣化在這類檔案上都有效;僅靠無損重新整理幾乎無法縮減檔案大小。
- 純文字 PDF — 頁面內容為字型參照與小型向量字形。由於沒有影像可供壓縮,任何影像重新壓縮都不會有效果。「沒有結果」在這類檔案中反而是誠實的答案。
- 向量為主的 PDF — CAD 圖面、地圖、工程圖。影像串流相對於頁面幾何資訊所佔比例極小,因此任何以 JPG 為主的方式都無法達成積極的目標大小。
- 混合型 PDF — 內含敘述文字以及嵌入的照片、圖表與標誌。JPG 重新壓縮可以大幅縮減照片部分;文字部分則不會改變。
- 表單為主的 PDF — 包含互動式元件、簽章欄位、可填寫的表單資料。任何會攤平頁面或將其點陣化的方式都會破壞表單行為。請選擇承諾保留表單元件與連結完整性的方法。
一旦確認你的檔案類別,比較的核心問題就變成:哪種方式能在不影響你所需保留物件的前提下,修改正確的物件。對混合型與掃描為主的檔案來說,像 Compress PDF to Size 這類目標感知、本機處理的 JPG 重新壓縮方式,正是專門為「位元組目標」情境所設計,因此自然成為你在這類檔案上衡量其他方法的參考基準。
如何在你自己的檔案上測試一個目標感知的方式
最清楚的比較方式,就是進行單一檔案、單一目標的測試:挑選一份 PDF、一個 MB 目標、一個工具,並以儲存後的檔案是否等於或低於目標作為判斷依據。Compress PDF to Size 的操作步驟刻意設計得很短暫,讓比較聚焦在結果本身,而非操作流程。
- 選擇一份大小不超過 25 MB 的本機 PDF。
- 輸入一個介於 0.1 至 25 MB 之間、且小於來源檔案的目標大小。
- 選擇 Compress to target size(壓縮至目標大小);僅在經驗證的輸出完全符合目標大小時才下載。
此工具會嘗試一組有限範圍的 JPG 品質與最長邊組合——大約是 0.70/1400、0.55/1000、0.40/800,以及 0.30/600——在每一組設定下儲存實際的 PDF,並將其位元組長度與你的目標進行比對。第一組在儲存後檔案等於或低於目標、且頁數仍與來源相符的設定,就是最終提供下載的版本。本機作業同時設定了上限,最多處理 80 張符合資格的影像,以及解碼後影像總計不超過 100 百萬像素。編碼器使用瀏覽器的 canvas toBlob 路徑來寫入每個候選檔案,因此比較的依據是真實的位元組,而非預估值。
如果你想與另一個工具進行公平的正面比較,請以同一份來源檔案、同一個目標,分別通過兩個工具處理,並為每個工具記錄三項數據:儲存後檔案的位元組長度、儲存後檔案的頁數,以及儲存後檔案中文字選取與連結是否仍然有效。若某個工具無法告訴你相對於目標的位元組結果,則它並未提出可比較的數據,應在比較中予以註明。
當目標無法在不損及品質的情況下達成時
一個誠實的目標感知方式,有時會完全不顯示下載連結。這並非比較的失敗,而是一個有意義的資料點。它代表在有限範圍的 JPG 設定組合下,無法產生等於或低於目標的儲存檔案,因此工具不會建立下載檔案,並說明該目標無法在不損及品質的情況下達成。
如果 Compress PDF to Size 對你的檔案沒有產生結果,實際的下一步建議如下:將目標調高到能讓某一組設定通過的最小幅度;將 PDF 分割後,分別以各自的目標進行壓縮;或者,對於掃描為主的檔案,在你確認已不再需要文字圖層後,再改用後續的頁面點陣化步驟。反過來說——挑選一個文件無法承受的更小目標——正是這組有限範圍設計所要避免的情況。如需更完整的說明,了解為何某些檔案無法達到目標,請參考 壓縮後的 PDF 是否一定能達到你的目標大小?。
在信任儲存後的檔案之前,請先進行驗證
下載按鈕並不等於經過驗證的結果。在你將任何比較視為定論之前,請重新開啟儲存後的檔案,並檢查四項重點:頁數與來源相符、位元組長度等於或低於目標、在具代表性的頁面上文字圖層仍可選取與複製,以及你所依賴的任何連結、表單欄位或註解仍如預期運作。在儲存後的輸出上確認這些項目,才能將一個比較從行銷話術轉化為可重現的量測結果。如何在將 PDF 壓縮至指定大小後檢查結果 指南會逐步帶領你完成這些檢查。
請將你測試過的工具之間的紀錄進行交叉比對。真正勝出的方式,是那個能達成你的位元組目標、保留頁數,並維持你所仰賴的文件特性的方式——而非擁有最聳動行銷話術、或在不同的來源檔案上報告出最小數值的那一個。