記錄將 PDF 壓縮至目標大小的步驟,內容包括精確的輸入(來源檔案、目標大小 MB)、工具所嘗試的 JPG 品質與尺寸設定檔的有界序列,以及驗證關卡——只有當實際儲存的檔案大小等於或小於所要求的 MB 時,才會釋出下載。清楚的標準作業程序也應記錄此次作業的限制——來源大小、合格影像數量、解碼後的總百萬像素——以便程序能事先說明在何種情況下不會產生結果。由於工具是根據每個儲存候選檔案的實際位元組長度與目標進行比對,而非根據來源進行估算,因此記錄下來的步驟可以包含一個可驗證的成功標準,而非憑空猜測。最後,記錄內容應說明哪些物件保持不變(頁面結構、可選取的文字、連結、表單、向量、不受支援的影像),讓文件化的成果能誠實地呈現哪些變更了、哪些沒有。

how do i document the steps i use to compress pdf to size
記錄將 PDF 壓縮至目標大小的步驟

為何值得將壓縮程序書面記錄下來

大多數「如何壓縮 PDF」的指南只描述單次嘗試就結束。當同一項任務必須重複執行時——由您下個月執行、由同事執行,或作為稽核軌跡的一部分——其價值便從執行本身轉移至執行的書面記錄。書面化的程序讓審查者能夠檢視使用了哪些輸入、嘗試了哪些設定,以及實際產生了什麼結果,而不必重做該工作。對於有大小限制的目標(電子郵件附件上限、入口上傳限制、主管機關的提交大小),當書面化的成功標準是實際儲存的位元組數,而非從來源檔案衍生的估算值時,記錄最為有用。

將步驟寫下來也能讓程序誠實地呈現其範圍。「壓縮 PDF 至指定大小」工具是一個具目標感知能力的本機壓縮器,會嘗試有界的 JPG 重新壓縮:它並不保證無失真最佳化、不會將整個頁面點陣化,也不會宣稱每個輸入都能達到每個目標。一份預先記錄這些邊界的標準作業程序,對團隊成員而言遠比一條在錯誤檔案類型上悄悄失敗的單行指令更有用。

書面化程序需要記錄的內容

一份用於將 PDF 壓縮至目標大小的實用標準作業程序,應記錄五項資訊,讓程序可被重複或稽核:

  • 來源檔案名稱及其原始大小(以 MB 為單位)。
  • 操作人員輸入的目標大小(以 MB 為單位)。
  • 此次執行是在瀏器中本機進行——無上傳、無伺服器端處理。
  • 工具可嘗試的有界設定檔序列(記錄於下表中)。
  • 執行結束時儲存檔案的實際位元組長度,或明確指出未產生下載的訊息。

第四項值得獨立成表,因為工具並不會搜尋無界的設定——它會循序走訪一組固定的短序列然後停止。每個候選 JPG 是使用 WHATWG canvas 的 toBlob 方法進行編碼,這也是為什麼這些數值能在不同瀏覽器之間保持穩定且可重現。

設定檔JPG 品質最長邊(像素)
10.701400
20.551000
30.40800
40.30600

書面化的程序若依序列出這四個設定檔,審查者便能確切理解每次嘗試的積極程度,也能讓您向利害關係人說明為何該次執行在某一設定檔處終止。由於序列是有界的,程序也同時記錄了瀏覽器工作量的上限——不會有隱藏的第五次嘗試日後讓審查者感到意外。

將 PDF 壓縮至目標大小的書面化步驟

使用 壓縮 PDF 至指定大小 工具進行目標大小壓縮時,請依序依照下列具體步驟進行記錄(並執行)。每一步都會記錄應寫入您標準作業程序的資訊。

  1. 記下來源檔案路徑,並確認其大小至多為 25 MB。超過上限的來源無法處理;請將大小(以 MB 為單位)記錄於標準作業程序中,以便審查者驗證該閘門條件是否滿足。
  2. 在桌面瀏覽器中開啟「壓縮 PDF 至指定大小」工具。由於工具會在本機讀取、解碼、重新壓縮並驗證 PDF,因此請記錄並未發生上傳——檔案從未離開裝置。
  3. 從檔案選擇器中選擇一個本機 PDF。該工具每次執行僅接受單一檔案,因此標準作業程序應指定為單檔程序而非批次程序。
  4. 輸入介於 0.1 至 25 MB 之間的目標大小。目標必須小於來源檔案的位元組長度,否則執行將不會啟動。請將目標值依輸入時的精確小數位數記錄於標準作業程序中。
  5. 選擇「壓縮至目標大小」。工具將依序嘗試上表所列的有界設定檔序列,僅替換 PDF 中合格的 JPG 影像串流。
  6. 等待驗證步驟。工具會儲存每個候選檔,將其實際位元組長度與目標進行比對,並透過 PDF.js 重新開啟第一個通過驗證的候選檔(請參閱 Mozilla PDF.js API)以確認頁數,然後才會顯示下載連結。
  7. 若下載連結出現,請點擊該連結並儲存所產生的 PDF。請將實際儲存的檔案大小(以 MB 為單位)記錄於目標大小旁,以便標準作業程序呈現經驗證的結果,而非估算值。
  8. 若未出現下載連結,請將工具的說明訊息記錄於標準作業程序中(涵蓋於本文最後一節),讓下一位操作人員知道為何程序停止而未產生輸出。

記錄工具會與不會動到的內容

一份忠實的標準作業程序記錄的是變更的範圍,而不僅僅是檔案大小的差異。該工具僅會變更可安全替換的內嵌 JPG 串流:無遮罩的 DCTDecode DeviceRGB 或 DeviceGray 影像,且不含解碼參數。若候選 JPG 在重新壓縮後會大於其原始串流,則工具會將該影像保持不變。它不會將整個頁面點陣化、不會重寫向量,也不會移除可選取的文字、連結或表單欄位。不受支援的影像物件(例如使用遮罩、解碼參數、替代色彩空間或非 JPEG 篩選器的影像)會原地保留。

下表概述了書面化的合格規則,讓標準作業程序能精確地陳述這些規則。

串流類別工具的處理方式
無遮罩的 DCTDecode DeviceRGB JPG若新串流較小,則依各設定檔重新壓縮
無遮罩的 DCTDecode DeviceGray JPG若新串流較小,則依各設定檔重新壓縮
重新壓縮後串流會變大的 JPG保留原始串流
有遮罩的 JPG、含解碼參數的 JPG、非 RGB/Gray、非 DCT保留原始物件不變
頁面結構、文字層、連結、表單元件、向量不予修改

預先記錄這些規則,可避免審查者假設此次執行是「無失真」的,或忽略文件中其實有合格影像、但因沒有任何設定檔能勝過原始大小而遭略過的情況。

驗證儲存的檔案並保存記錄

驗證是讓程序足以稱為「書面化」的部分。由於下載是以真實的位元組長度比對以及 PDF.js 頁數檢查作為閘門,因此儲存的檔案可由任何標準 PDF 檢視器重新開啟,以確認兩項簡單的屬性:頁數與來源相符,且儲存的檔案大小等於或小於所記錄的目標。如需更深入的執行後檢查清單,請參閱結果檢查指南

至於標準作業程序本身,請保存:

  • 來源檔名與大小。
  • 所輸入的目標 MB。
  • 實際儲存的 MB。
  • 嘗試過的設定檔(由工具的有界序列自動記錄,但仍值得複製到標準作業程序中)。
  • 簡短註記,說明是否有任何內嵌 JPG 串流因無法安全替換而被略過。
  • 註記該文件是以文字為主、以向量為主,還是以影像為主,因為這會影響實際可達成的目標範圍。

這份保存下來的記錄能讓您或同事在數週後重現此次執行、與不同的來源進行比較,或在不失脈絡的情況下將程序移交給維運團隊。

當書面化程序在沒有下載的情況下結束時

標準作業程序應預先設想工具未產生下載的情況。「壓縮 PDF 至指定大小」工具並不保證每個輸入都能達到每個目標;若在嘗試過所有有界設定檔後,結果檔案仍超過輸入的目標,工具將不會產生下載,並會說明無法安全地達到該目標。如需更全面地了解目標失敗的時機,請參閱目標可行性指南。書面化程序中應各自列出以下常見原因:

  • 來源 PDF 為純文字或以向量為主,僅有少數或沒有合格的 JPG 串流。
  • 合格的 JPG 串流已經夠小,以至於沒有任何設定檔能勝過原始位元組長度。
  • 目標低於該來源在安全 JPG 重新壓縮下所能達到的程度。

在上述各種情況下,書面化記錄應取工具所回傳的說明訊息,以及來源特性(以影像為主或以文字為主)。如此能讓失敗模式可被重複且可被審查,而不是僅有一句一次性的「無法運作」註記,並讓未來的執行得以依據相同的限制進行規劃,而非重新摸索。