從 PDF 中移除照片,意思是用頁面仍然能夠繪製的內容,去取代被放置圖片背後的內嵌影像資料,同時保留周圍的文字、連結以及頁面幾何配置不變。當你使用基於瀏覽器的影像移除工具時,這個替代內容通常是一個極小的 1×1 白色 JPEG,佔用與原始照片相同的影像物件,因此頁面會繪製成白色而非照片,且不會破壞 PDF 的資源參照。權衡之處在於文件的其他部分並未被逐像素編輯:只有符合資格的內嵌影像串流會被替換;只要有一張影像使用了該工具無法安全重寫的編碼,工具就會拒絕整個工作。不會發生任何上傳,沒有任何資料會離開你的裝置,而原始檔案會原封不動地保留在你的電腦上。本文將逐步說明這個本機照片移除流程如何搭配 從 PDF 移除影像 工具運作、該工具接受與拒絕的內容,以及如何在把變更視為最終結果之前,逐頁檢查產生的 PDF。

在 PDF 中取代一張照片實際上做了什麼
PDF 中的照片並不是你點一下就能像在 Word 文件中刪除圖片那樣刪除的圖層。它是一個間接的影像物件,在頁面的資源字典中以名稱參照,而頁面的繪圖指令會告訴 PDF 讀取器「取得影像 X 並繪製在此位置」。如果你移除參照卻保留繪圖指令,許多 PDF 讀取器會將該頁面顯示為損壞。這就是為什麼「從 PDF 移除影像」工具採用一個特定的做法:它保留每個符合資格的影像參照有效,只重寫影像串流本身。
具體來說,該工具會在瀏覽器中產生一個極小且有效的 1×1 白色 JPEG,然後把這份新的影像資料指派回原始照片所使用的同一個影像物件。繪圖指令仍然指向一個真實且有效的影像;頁面只是在原本照片的位置繪製一個白色像素。Adobe PDF Reference 描述了 XObjects 與頁面資源字典之間的這種關係,而新的影像串流會使用 pdf-lib 原始碼 中所記載的 PDFRawStream 型別來寫入,這讓工具能只替換串流字典之後的位元組,而不影響檔案的其他部分。
這件事很重要,因為 PDF 的其他部分不會被觸碰。文字層保持可選取、內部與外部連結保持可點擊、非影像的向量內容會被保留,而頁面幾何配置也不會位移。改變的只是每張照片實際在頁面上顯示的內容:白色像素取代了原始的影像位元組。
這個照片移除方法何時適用
這個工具是為了一個範圍狹窄但常見的工作所設計:在保留其他所有內容完整的情況下,將文件中內嵌的照片去除。這涵蓋了像是從提案草稿中移除一張庫存照片、在分享內部報告前把封面影像遮白、在把 PDF 列印成純文字講席之前去除裝飾圖片,或是清理只需要文字內容的掃描頁面等情境。
在幾種其他情況下,它並不適用。如果你的目標是為了法律、安全或隱私原因而隱藏資訊,那麼白色替代並不足夠:底層的位元組仍有可能被還原,而頁面中繼資料或文件紀錄可能會洩漏細節。這種情況需要使用專門設計的遮蔽 (redaction) 工作流程。如果你的 PDF 包含以 JPX、JBIG2、CMYK、索引色板、遮罩影像編碼的影像,或任何使用 DecodeParms 的影像,該工具會拒絕處理整個檔案,而不會產生部分結果。加密、已簽署、毀損或受密碼保護的 PDF 也會被拒絕。
如何在瀏覽器中從 PDF 移除一張照片
整個工作流程只需要幾次點擊,並且在整個過程中讓文件都留在你的電腦上。
- 開啟「從 PDF 移除影像」工具頁面,選擇一個大小不超過 25 MB 的本機 PDF。
- 選擇「移除符合資格的影像」。瀏覽器會在本機載入 PDF,並檢查文件中的每個內嵌影像物件。
- 等待資格檢查完成。如果每個內嵌影像都是未帶遮罩的 8 位元 DCTDecode JPEG,並使用 DeviceRGB 或 DeviceGray 且沒有 DecodeParms,工具就會繼續處理。如果有任何影像未通過檢查,則不會儲存任何檔案。
- 檢查在預覽中開啟的新 PDF。逐頁捲動,確認你想移除的照片現在已變成白色,並確認文字、連結以及其他內容仍然正確顯示。
- 只有在確認白色替代看起來正確之後,才下載新的 PDF。在磁碟上保留你的原始檔案,以便你想重新開始時可以使用。
如果工具在沒有產出任何結果的情況下停止執行,原因通常是文件中有任何一張不支援的影像。這個全有或全無的規則,避免了出現一個下載按鈕宣稱影像已被移除,卻有複雜的影像被悄悄留在原處的情況。想進一步了解為什麼這個安全特性很重要,請參考指南 在不破壞檔案的情況下從 PDF 移除影像。
為什麼工具偶爾會拒絕你的檔案
拒絕行為是整個工作流程中最重要的安全特性。照片的移除是以一種全有或全無的檢查方式實作:PDF 中的每個內嵌影像物件都能安全地被替換為 1×1 白色 JPEG,否則工具就不會儲存任何東西。產生部分輸出會造成誤導:一個寫著「影像已移除」的下載按鈕,卻讓複雜的影像悄悄留在原處,會讓讀取者拿到一個看似完成、實際上並未完成的檔案。
相容性清單刻意訂得很嚴格。每個內嵌影像物件都必須符合:
- 是一個間接的 XObject 影像,而不是直接內嵌在內容串流中的行內影像。
- 使用 DCTDecode 篩選器編碼,這是 JPEG 資料的標準篩選器。
- 是一個 8 位元每通道的影像,使用 DeviceRGB 或 DeviceGray 色彩空間。
- 未帶遮罩,沒有軟遮罩也沒有模板遮罩。
- 不含 DecodeParms,因為某些 PDF 製作工具會把該字典用於非 JPEG 的參數。
如果文件中有任何一張影像使用 JPXDecode (JPEG 2000)、JBIG2Decode、CCITTFax、帶有 LZW 風格包裝的 FlateDecode、索引色板、CMYK 或任何遮罩,整份文件就會被拒絕。加密的 PDF、以數位簽署簽署的 PDF、結構毀損的 PDF,以及開啟時需要密碼的 PDF 也都會被拒絕。該工具絕不會嘗試繞過密碼、修復損毀,或為數位簽署背書。
照片移除 vs. 法律遮蔽
很容易把「移除」一張照片與「遮蔽」一張照片混淆,而兩者的差異至關重要。下表比較了兩種做法實際上各自達成的效果。
| 特性 | 白色像素照片移除 | 專用的遮蔽工作流程 |
|---|---|---|
| 讀取者在頁面上看到的內容 | 原本照片的位置顯示白色 | 原本照片的位置顯示白色或黑色 |
| 檔案中底層的影像位元組 | 被一個 1×1 白色 JPEG 取代 | 被永久銷毀或覆寫 |
| 可選取的文字、連結、向量 | 保留 | 依工具而定,通常會被光柵化 |
| 文件中繼資料 | 從來源保留 | 通常會被清理或替換 |
| 適用於法律、安全或隱私工作流程 | 否 | 是 |
| 適用於草稿、內部分享、列印清理 | 是 | 是,但需要更多心力 |
如果唯一的目的是讓照片不再於頁面上顯示,同時文件在其他方面仍可正常使用,那麼白色像素移除就已足夠。如果照片包含在任何鑑識還原嘗試下都絕對不能外洩的敏感內容,那麼專業的遮蔽工具是唯一安全的做法。
下載新 PDF 之後要檢查的事項
即使工具產生了輸出,在你看過新檔案的每頁之前,這個變更都還不算完成。請在標準的 PDF 讀取器中開啟下載的 PDF,並慢慢逐頁檢視。確認每張被移除的照片現在顯示為空白或白色區域,並確認沒有任何頁面回報結構錯誤。留意是否有遺失的字體、位移的向量形狀,或是再也無法解析的連結,因為該工具的結構檢查並不會獨立驗證每一項 PDF 功能。
如果可以,也值得用兩個不同的讀取器開啟同一份 PDF,因為渲染瑕疵有時只會出現在某一個引擎中。在顯示下載連結之前,該工具所執行的結構檢查(透過 pdf-lib 與 PDF.js API 參考文件 中所記載的 Mozilla PDF.js 函式庫來確認頁數與替代影像物件的數量)並不能取代目視檢閱。那些檢查只能確認檔案能夠開啟,而且正確數量的影像物件仍然存在,但並不保證每一項 PDF 功能都已被獨立驗證。
最後,請在電腦上保留原始的 PDF。該工具並不會修改你所選的檔案;它只會產生一個獨立的下載複本,因此如果輸出結果不如預期,你隨時可以回到未經修改的來源檔案。