是的 — Compress PDF 工具會保留它未變動之文件中每一個部分的文字與連結,因為它只會重新編碼符合條件的內嵌 JPG 影像串流,而不是將整頁點陣化。許多人對於是否要壓縮 PDF 感到猶豫,一個常見的原因就是有幾款熱門的線上與離線壓縮工具會把每一頁都轉成一張平坦的 JPEG,這會破壞可選取的文字層,並毀掉檔案中每一個可點擊的內部或外部連結。本工具則採取一條更窄的路徑。它在你的瀏覽器中載入一個最大 25 MB 的本機 PDF,掃描頁面樹狀結構以找出符合特定濾鏡與色彩規則的影像 XObject,然後只重新編碼這些影像串流到更小的資料量。頁面描述、文字物件、連結註解、表單小工具、向量繪圖、文件詮釋資料,以及頁數本身都僅供讀取,不會被重新寫入。你取得到的文件在結構上與你放入的相同 — 它只是在你內嵌的 JPG 可以用同一個間接參考替換成較小串流的地方變得更輕,而在顯示任何下載連結之前,這項變更會先在本機完成驗證。

為什麼「文字與連結」才是該問的正確問題
網路上大多數關於 PDF 壓縮的抱怨,基本上都歸結為兩件事:可選取的文字層不見了,或是可點擊的連結失效了。兩者通常有同一個原因 — 壓縮工具在重新包裝成新 PDF 之前,先把每一頁點陣化成平坦的影像。這個步驟對使用者來說是隱形的,但它會把每一個文字物件、向量路徑、表單小工具與連結註解,全部轉換成繪製出來的像素。一旦某一頁被點陣化,這個檔案實際上就是一張副檔名為 .pdf 的螢幕截圖。
本工具則走一條不同的路徑。它載入一個本機 PDF,檢查頁面樹狀結構,找出可以替換成在瀏覽器中以更小 JPEG 編碼的影像 XObject。該 PDF 的文字字串、連結註解、表單欄位、向量物件與詮釋資料都僅供讀取 — 它們不會被重新渲染。這就是為什麼在使用任何壓縮工具之前,「Compress PDF 工具是否會保留文字與連結」才是該問的正確問題:它迫使你區分「會重新編碼內嵌影像」的工具與「會把頁面扁平化」的工具,這兩類工具對你文件結構會帶來截然不同的結果。
Compress PDF 工具實際上會改變什麼
Compress PDF 工具只會對你的 PDF 做三件事,而且僅止於三件事,全部都在當前的瀏覽器分頁中完成:
- 它會枚舉已載入 PDF 中的影像 XObject,並只允許那些影像串流使用 DCTDecode 濾鏡、DeviceRGB 或 DeviceGray 色彩,且沒有自訂解碼參數的物件。
- 它透過 HTML 影像元素解碼每一張允許的 JPG,將最長邊縮放至 1400 像素,然後以品質 0.70 的 JPEG 重新編碼結果。
- 如果新的 JPG 在同一個間接參考上實際上小於原始位元組串流,則會在該參考位置上替換串流。如果並未更小,則原始影像會原封不動地保留。
任何不符合濾鏡規則的內容 — JPXDecode (JPEG 2000)、CMYK 色彩、Indexed 色彩、遮罩影像、ImageMask 影像,或是帶有自訂解碼參數的串流 — 都會完全保持原樣。當符合資格的串流最終都沒有變得更小時,工具會回傳一個誠實的錯誤,而不是交回一個在扁平化頁面上掛著較小數字的檔案。這種狹窄的行為,就是在嘗試從內嵌影像削減位元組時,仍能保護你的文字與連結的原因。
如何在不遺失連結的情況下壓縮 PDF
對於以照片或掃描為主的 PDF,以下工作流程能在保留所有文字字串與連結註解的同時,當來源 JPG 很大時仍產生較小的檔案:
- 在你的瀏覽器中開啟 Compress PDF 工具。不需安裝任何東西,也不會上傳到伺服器。
- 從你的裝置中選擇一個最大 25 MB 的本機 PDF。較大的檔案應先分割,或交由一款本機桌面優化工具處理,該工具需鎖定本工具不會觸及的串流。
- 選擇 Compress PDF,並等待瀏覽器枚舉影像 XObject、重新編碼通過濾鏡的影像,然後將每個候選項目與其來源串流進行比較。
- 查看顯示於下載連結上方的輸入與輸出大小回報。如果輸出較小,在顯示任何下載連結之前,該檔案會被重新開啟並驗證擁有與來源相同的頁數。
- 下載已驗證的 PDF,並在你慣用的檢視器中重新開啟,確認文字仍可選取,且內部與外部連結仍可解析。
因為文字的頁面物件、註解陣列與內容串流從未被重新寫入,一個原本就可搜尋且連結豐富的 PDF 會保持原樣。唯一明顯變動的欄位,就是少數間接參考位置上的內嵌 JPG 資料量。
哪些會被保留,哪些會被替換
下表整理了 Compress PDF 工具對 PDF 文件中每個常見元素的處理方式,內容直接取自其已驗證的濾鏡規則:
| PDF 元素 | Compress PDF 工具的處理方式 |
|---|---|
| 可選取的文字物件 | 僅供讀取 — 絕不會重新編碼或點陣化 |
| 內部與外部連結註解 | 透過參考保留;連結陣列不會被重新寫入 |
| 表單小工具與欄位資料 | 保留原樣;表單外觀串流不會被重新渲染 |
| 向量繪圖與線條藝術 | 不會觸及;不執行任何路徑描繪或點陣化 |
| 文件詮釋資料 (標題、作者、XMP) | 從來源 PDF 沿用 |
| 頁數與頁面旋轉 | 與來源相同 |
| 符合資格的內嵌 JPG (DCTDecode、DeviceRGB/DeviceGray、無遮罩) | 以最長邊 1400 px、JPEG 品質 0.70 重新編碼,僅在更小時才替換 |
| JPXDecode (JPEG 2000)、CMYK、Indexed、遮罩、ImageMask、帶解碼參數的 JPG | 略過 — 原始串流保留在檔案中 |
當文字與連結存活,但檔案卻無法縮小的情況
保留文字與連結是簡單的情境 — 工具預設就會這麼做。較困難的情境是當你想要更小的檔案,而答案是「不,這裡做不到」。有幾個真實的狀況會造成這種結果:
- 該 PDF 根本沒有內嵌 JPG 影像 — 例如一份完全由字型與向量圖形構成的合約,或是文書處理器匯出的純文字檔。工具沒有可以重新編碼的內容,所以輸出等於輸入。
- 該 PDF 僅包含以 JPEG 2000 (JPXDecode) 而非 baseline JPEG 儲存的掃描頁面。濾鏡規則會排除它們,因此透過此路徑無法縮減檔案大小。
- 掃描頁面為 CMYK,或是帶有 ImageMask 或模板。這些會被略過,因為變更色彩模型或遮罩可能會影響頁面的列印方式,或輔助工具讀取它的方式。
- 符合資格的 JPG 已經很接近 1400 px / 品質 0.70 的目標。如果新串流在同一個間接參考上並非逐位元組地更小,工具會保留原始檔,輸出大小因此不會變動。
在這些情況下,工具會顯示清楚的錯誤,而不是交回一個在扁平化內容上掛著較小數字的檔案。文字與連結仍然存活;只是大小不會縮減。
自行驗證輸出
在顯示下載連結之前,工具會在同一個分頁中使用 PDF.js 渲染器重新開啟重建後的 PDF,因此格式錯誤的成品永遠不會送到你手上。即便如此,為任何你打算存檔、分享或歸檔的文件,在你自己的檢視器上進行快速的二次確認,既簡單又划算。
三項檢查就能涵蓋大多數關於保留性的疑慮。第一,嘗試在任一頁的內文中選取一個詞 — 如果游標變成文字選取 I 形,表示文字層存活。第二,將滑鼠停留在目錄或內文中的超連結上 — 如果 URL 預覽出現,或游標變成指標形狀,表示連結註解仍正確附加於該頁面區域。第三,如果 PDF 帶有表單欄位,請填寫其中一個 — 欄位高亮應會出現,且該值應會隨檔案一起儲存。如果這三項的表現都與來源文件一致,則這款壓縮工具確實做到了它所宣稱的事。
若要進行更嚴格的交叉驗證,PDF Link Extractor 會逐頁枚舉外部與內部連結註解,讓你可以比較來源清單與輸出清單。每一個連結都吻合,且差異僅出現在影像串流,這就是預期的結果,並確認壓縮過程中沒有任何連結被重新寫入或遺失。
當你需要更小的檔案,而本工具無法達成的情況
Compress PDF 工具刻意設計得比通用型 PDF 優化工具更窄。它不會對字型執行任意串流重新壓縮、不會對 JPX 或 CMYK 影像進行降階取樣、不會將透明度扁平化成白色像素,也不會保證達成目標位元組數。當這些限制成為瓶頸時,標準做法是保留原檔,判斷哪些頁面或段落真正需要變小,然後將它們送交一款提供完整壓縮設定的專業桌面工具 — 適用於任意串流壓縮、歸檔合規或印刷色彩管理等情境。
對於「少量高解析度 JPG 掃描撐大整份文件」這種日常情境,本款本機工具是較安全的預設選擇,因為它會把你讀者所依賴的結構原封不動地留在原處。「符合資格的串流被替換、其餘位元組完全不動、輸出在下載前先經驗證」這整套組合,正是「Compress PDF 工具是否會保留文字與連結」這個問題答案所仰賴的基礎。
延伸閱讀:簡化將 PDF 壓縮到目標大小的流程。