若要在瀏覽器中使用 Preflight 邏輯來平面化 PDF,請選擇已填寫表單的 PDF,確認工具偵測到的 AcroForm 欄位數量,然後下載平面化後的副本——在這個副本中,每個欄位的目前值都會被寫入頁面內容中,之後就無法再編輯。Adobe Acrobat 的 Preflight 工具可以透過其修正設定檔達成相同的最終狀態,但對於常見的標準 AcroForm 表單來說,並不需要桌面應用程式:基於瀏覽器的 Flatten PDF 工具會檢查表單、顯示找到的可編輯欄位數量,並在你自己的裝置上把目前的值寫入頁面內容中。整個作業都在本機執行,因此原始 PDF 絕不會離開你的電腦,磁碟上的來源檔案也不會被修改。本文將逐步說明 Preflight 風格的平面化實際上會改變 PDF 中的哪些內容、如何在瀏覽器中執行該作業、工具會與不會處理哪些項目,以及在哪些情況下完整的 Acrobat Preflight 面板仍然是當下手邊工作的正確選擇。
大多數人之所以會接觸到「Preflight」這個詞,是因為 Adobe 把一大批預印檢查與修正項目都歸在該名稱之下。平面化表單欄位只是其中一項修正,無論你是透過 Preflight、透過「準備表單」工具列,還是透過只針對表單欄位的小型獨立工具來觸發它,所執行的操作都相同。可見的結果也相同:頁面看起來一樣,但無法再點回欄位去修改已輸入的內容。

PDF Preflight 平面化實際上做了什麼
傳統的 PDF 表單是一個分層的物件。頁面有一個靜態的視覺層——表單背景、標籤、文字應出現位置的底線——在它之上則是由 AcroForm 欄位構成的互動層:文字方塊、核取方塊、選項按鈕、下拉式選單和清單方塊。每個欄位都帶有自身的目前值與預設外觀,任何 PDF 檢視器都可以在開啟、移入或列印該欄位時重新呈現該外觀。
平面化是將該表單目前狀態的兩個層合併的操作。工具會讀取每個 AcroForm 欄位,將其目前可見的外觀以一般頁面文字或圖形的形式複製到頁面內容串流中,然後移除欄位物件本身。此後,不會有檢視器能夠找到該欄位來編輯它,繪製頁面時也不需要任何渲染器再去解讀欄位狀態。這正是瀏覽器工具所使用的底層程式庫的說明文件所述:該程式庫的 PDFForm API提供了一個 flatten 操作,可將每個欄位的外觀寫入頁面,並清除互動式表單字典。
從這個定義可以衍生出三件事,在你平面化任何東西之前,值得先把它們弄清楚:
- 目前值會以已繪製的文字或圖形形式保留,而不是以即時資料的形式保留。輸入的名字會變成頁面上的字形。
- 欄位的可編輯性僅在輸出的副本中消失。你磁碟上的原始 PDF 不會受到影響。
- 欄位底下的任何內容都不會被移除。隱藏的圖層、文件元資料、附件,以及任何原本就存在於欄位下方的文字,都會在操作後保留下來。
如何在瀏覽器中使用 Preflight 邏輯來平面化 PDF
瀏覽器的工作流程與 Adobe Preflight 在「表單欄位修正」上所做的相同,只是檢查清單短得多。開啟 Flatten PDF 工具,然後依照下列步驟操作:
- 選擇包含已完成填寫的傳統表單欄位的 PDF。使用檔案選擇器,或將儲存的表單拖曳到頁面上。檔案會在你瀏覽器的分頁中於本機讀取;不會上傳到任何伺服器。
- 檢視偵測到的可編輯欄位數量,並確認可見的值是最終值。工具會檢查 AcroForm 字典,並回報找到的標準表單欄位數量。如果數量為零——因為檔案是掃描檔、靜態文件,或是已經平面化的表單——工具會在此停止並且不產生輸出,而不是產生一個誤導性的副本。
- 選擇 Flatten PDF form fields,然後下載新的平面化副本。瀏覽器會將每個欄位的目前外觀寫入頁面,並移除互動式欄位。新的 PDF 會下載下來;原始檔案在你裝置上不會改變。
- 在收件人使用的 PDF 檢視器中開啟下載的副本。抽樣檢查一個文字欄位、一個核取方塊或選項按鈕,以及一個下拉式選單或清單方塊。確認呈現的值與你打算傳送的內容一致。
最後一步很重要,因為不同檢視器對於欄位外觀在來源 PDF 中是如何繪製的,可能會有分歧。字型、複雜的指令碼以及檢視器專屬的外觀設定,在 Acrobat、瀏覽器型檢視器與行動裝置閱讀器中,即使在平面化觸碰檔案之前,也可能會呈現出不同的結果。瀏覽器工具不會變更字型或重寫外觀串流;它只會寫入原本就已可見的內容。如果你發現自己在編輯工具中看到的內容與平面化後頁面所顯示的有落差,請先修正來源,然後再重新平面化。
瀏覽器工具會平面化哪些內容,以及它不會動哪些內容
由於工具在執行任何動作之前會先檢查 AcroForm 字典,你可以從所交付的 PDF 類型來預測它的行為。下表摘要說明了哪些內容會被平面化、哪些會原封不動地保留,以及哪些情況會讓工具拒絕處理該檔案。
| PDF 內容 | 瀏覽器工具的處理方式 |
|---|---|
| AcroForm 欄位:文字方塊、核取方塊、選項按鈕、下拉式選單、清單方塊 | 目前的可見值會被寫入頁面,輸出副本中的互動式欄位會被移除。 |
| 掃描檔、純影像 PDF,或沒有 AcroForm 欄位的靜態表單 | 不會產生輸出檔;工具拒絕建立一個假裝已被平面化的副本。 |
| XFA(動態 XML)表單 | 安全地予以拒絕;XFA 需要專屬且相容的工作流程。 |
| 受密碼保護或加密的 PDF | 安全地予以拒絕;工具不會嘗試繞過保護機制。 |
| 頁面文字、註解、元資料、附件、隱藏圖層、原本就存在於欄位下方的文字 | 在平面化輸出副本中保持原樣保留。 |
| 你裝置上的原始 PDF | 絕不會被修改;只會下載一份獨立的平面化副本。 |
閱讀這個表格的另一種方式是:平面化只會改變檔案的一項特定屬性——傳統表單欄位的可編輯性——其他一切都保持不變。如果你還需要移除敏感內容、為檔案加上密碼保護、認證簽章,或將頁面轉換為影像,那些都是各自獨立、需使用專屬 PDF 工具的作業。
何時應改用 Acrobat 中的 Preflight
Adobe Preflight 是一個包含數十項檢查與修正的面板,平面化表單欄位只是其中長長清單中的一項。如果你的工作流程需要該狹窄範疇之外的任何功能,請留在 Acrobat 中:
- 複雜的預印修正。Preflight 可以在單一流程中重新取樣影像、轉換色彩空間、修正透明度、嵌入字型,並套用 PDF/X 或 PDF/A 設定檔。瀏覽器平面化工具則完全無法執行這些操作。
- XFA 表單。Acrobat 能平面化部分 XFA 表單,因為它理解這種動態表單格式。瀏覽器工具則刻意拒絕 XFA 檔案,而非產生不可靠的結果。
- 設定檔與批次執行。Preflight 可讓你儲存修正設定檔,並將其套用至熱資料夾中的數百個檔案。瀏覽器工具一次只能處理一個檔案。
- 稽核與報告。Preflight 會產生詳細的預檢報告,列出每一項檢查及其結果。瀏覽器工具只會回報可編輯欄位的數量。
對於該狹窄範疇內的所有情況——也就是一份含有已完成填寫的標準 AcroForm 欄位、需要鎖定並分享的單一 PDF——瀏覽器工作流程速度更快、不需要安裝任何軟體,且檔案絕不會離開你的電腦。如果你想更深入地了解該路徑,如何將可填寫的 PDF 轉換為平面檔案的教學會以該特定讀者任務為出發點,提供同一工具的補充說明。
在傳送前檢查平面化的結果
有兩個習慣可以在大多數平面化錯誤抵達收件人之前就將其攔下。第一,在收件人確認平面化副本可接受之前,把原始的可編輯表單保留在你的裝置上——工具永遠只會另外寫入一份輸出,所以來源檔案就是你的安全網。第二,在你填寫表單所用的檢視器以外的、收件人將實際使用的檢視器中開啟下載的副本。Acrobat、Preview、瀏覽器型檢視器與行動裝置閱讀器,可能會對同一個欄位顯示不同的字形,而平面化會把來源所繪製的內容原封不動地寫入頁面。
也請記得,平面化並不是簽署步驟。頁面上可見的已輸入名字或已勾選的核取方塊會被保留下來,但它並不會因此變成密碼編譯的數位簽章;平面化也不會清除文件的修訂歷史、元資料、附件或隱藏圖層。對於高風險的文件——受規範的申報、已簽署的合約、任何必須通過真偽驗證的東西——請將平面化與適用於該工作的簽署、認證或遮蔽工作流程結合使用。對於列印的申請書、歸檔副本,或是你單純不希望任何人繼續編輯答案的記錄,光是使用瀏覽器的 Flatten PDF 步驟就足夠了。
如果你正在權衡各種選項,Flatten PDF 替代方案:在不使用 Acrobat 的情況下鎖定表單欄位對此有詳細說明。