Skip to content
reader.me

如何在離線狀態下壓縮 PDF(無需上傳到任何地方)

為了縮小一份 PDF 檔案,你並不需要把它送到陌生的伺服器上。以下介紹一種完全離線、在瀏覽器裡就能完成的壓縮方法。

DCDavid Carrero · · 6 分鐘閱讀

搜尋「壓縮 PDF」,你會看到十幾個網站,幾乎每一個都要你先把檔案拖進一個方框裡。點擊,等上傳進度條跑完,再等下載連結出現。這個流程已經變得太過理所當然,以至於很少有人會停下來想:一個檔案僅僅為了變小,為什麼一定要先離開自己的電腦。

其實根本不需要。壓縮說到底就是對眼前已經存在的位元組做數學運算:演算法查看 PDF 裡的圖片,去掉螢幕上根本用不到的細節,再把一切重新打包成更精簡的檔案。整個過程完全不需要伺服器,需要的只是一個程式,而這個程式在你自己的裝置上執行,和在別人的伺服器上執行沒有任何差別。

「上傳後幫你壓縮」是怎麼變成預設做法的

網路上大多數免費 PDF 工具都源自同一種架構:前端是一個網頁表單,後端是一台真正在做事的伺服器。這種架構搭建起來簡單,又很容易靠廣告變現,於是迅速擴散開來,漸漸成了大家預設「PDF 工具就該長這樣」的印象,儘管壓縮這件事本身從來就不需要伺服器。

這種模式的代價,在你認真想過檔案裡到底裝了什麼之前,是看不見的。你要壓縮的 PDF,很少是隨便找來測試的文件,更常見的是一份掃描過的合約、一份用於保險理賠的病歷、一份簽好名的租約,或是要寄給客戶的作品集附件。檔案一旦上傳,哪怕只是處理所需的短短幾秒,它確實就存在於你控制不到的地方。隱私權政策承諾「一小時內刪除」,那只是一句承諾,不是你能親自驗證的保證。

另一種做法:直接在瀏覽器裡完成

現在的瀏覽器已經能執行相當繁重、以前只有桌面應用程式才做得到的程式碼。這正是 reader.me 的壓縮 PDF工具背後的原理:開啟 PDF、降低圖片畫質、重新組建檔案所需的一切,都封裝在這個頁面本身之中,整個過程都發生在你的瀏覽器分頁裡,發生在你自己的裝置上。

實際的差別很單純。用以上傳為基礎的工具,你的檔案要先送到伺服器,再傳回來。用以瀏覽器為基礎的工具,檔案根本不會離開。不是你把文件送出去交給別人處理,而是壓縮程式主動來到你面前,在本機完成工作,再把結果交還給你。

如何在檔案不離開裝置的情況下壓縮 PDF

  1. 打開壓縮 PDF工具,選擇你的檔案。從檔案系統裡選取它並不會把它送到任何地方,只是把它載入了頁面的工作記憶體。
  2. 選擇一個壓縮(compression)等級。較輕的設定能讓圖片細節接近原圖,只去除明顯多餘的部分;較強的設定會更大幅度地降低圖片取樣率,得到小得多的檔案——如果一份掃描文件只是拿來閱讀而不是用來欣賞細節,這種設定就很實用。
  3. 執行壓縮。這個過程發生在你的 CPU 上、這個分頁裡,和其他任何頁面指令碼執行的方式沒有兩樣。這裡不會有跟上傳綁在一起的進度條,因為根本沒有東西需要上傳。
  4. 下載變小後的檔案。它會像任何一次普通的檔案下載一樣,直接儲存到你的裝置上。

整個流程就是這樣,花費的時間大致等於壓縮運算本身所需的時間,前後都不會多出任何網路往返。

如何親自驗證,而不是只聽工具單方面的說法

你不必單憑某個工具一句「我們不上傳你的檔案」就照單全收。打開瀏覽器的開發人員工具(按 F12,或按右鍵選擇「檢查」),切換到「網路(Network)」分頁,然後執行一次壓縮,觀察會發生什麼事:頁面自身的程式碼載入一次,之後就沒有其他動靜了。不會有任何攜帶你 PDF 內容的請求發送出去——如果真的有,它就會清清楚楚地出現在那裡。

還有一個更簡單的測試:等頁面載入完成後關掉 Wi-Fi,再壓縮一個檔案。如果在完全沒有網路連線的情況下依然能正常運作,那就代表整個過程根本沒有伺服器參與,毫無疑問。這不是只針對某一個工具的特殊技巧,而是「在瀏覽器裡執行」這句話真正成立時,理應有的樣子。

這件事為什麼不只是圖方便

省略上傳這一步,不只是速度更快——雖然確實通常更快,因為不必等待別人伺服器的頻寬回應。更重要的是,這份檔案在壓縮前後都不曾存在於你的裝置以外的任何地方。沒有伺服器紀錄,沒有處理佇列,中間也沒有任何第三方經手。如果是一張生日傳單,這點差別幾乎無關緊要。但如果檔案上有姓名、地址或簽名,這就是它始終完完全全屬於你,和它曾經短暫脫離你掌控之間的差別。

下次遇到 PDF 太大、準備找個壓縮工具的時候,不妨也對它提出你會對任何處理你檔案的工具提出的那個問題:這真的有必要離開我的電腦嗎?對於壓縮、合併、拆分這些日常操作來說,越來越多時候,誠實的答案是:不需要。