要在不損失畫質的情況下,從 Word 文件中擷取圖片,最快的方法,是把這份 .docx 檔案,當成一個 ZIP 封存檔打開,直接從它的 word/media 資料夾中,把原始的圖片檔案複製出來,因為 Microsoft Word 會把內嵌的照片、標誌、掃描檔與圖表,儲存成獨立的媒體內容,而不是把像素直接烘進頁面文字裡。一個現代的 .docx 檔案,並不是一整塊二進位資料——它是一個由資料夾與 XML 檔案組成的 Office Open XML 封裝檔,而圖片的位元組資料,就位於這個封裝檔裡一個可預期的位置。Word 會把 PNG 以 PNG 的形式,儲存在那個資料夾中,也會把 JPEG 以 JPEG 的形式儲存在那裡,因此你複製出來的檔案,會和你當初插入圖片時,Word 收到的檔案逐位元組完全相同。這也是為什麼一套專門的 extract images from Word 流程,直接鎖定 word/media 資料夾,就能還原出你原始的作品,完全不需要重新渲染、重新編碼,或調整任何大小。截圖與 Word 中的「另存為圖片」指令,運作方式並不相同。這兩者,都是從渲染出來的頁面像素,重新建構出圖片,這可能會加上頁面邊界、改變色彩空間、把透明像素攤平成白色背景,或是把高解析度的原圖縮小。一旦發生這種情況,損失就無法挽回,因為原始內嵌的位元組資料,已經被捨棄掉了。最乾淨的解法,是完全跳過渲染這個步驟,直接原封不動地取出儲存的內容。下面會說明,這在實際操作上代表什麼、.docx 封裝檔實際上包含了什麼,以及如何用三個步驟完成這個還原過程。

how to extract images from word doc without losing quality
如何在不損失畫質的情況下從 Word 文件中擷取圖片

為什麼在 Word 中用截圖與複製貼上,會損失圖片畫質

當一份 Word 文件裡,顯示著一張以原生解析度插入、大小為 1.5 MB 的 PNG 時,你螢幕上看到的頁面,只是這個檔案的一份縮小版預覽。截圖擷取到的,是這份預覽畫面,而不是原始的內容,因此擷取到的像素,會受限於你螢幕的有效解析度,以及 Word 為了排版所做的任何縮放。「另存為圖片」指令也是同樣的道理——Word 會把畫面上看到的圖片,重新渲染成一張新的點陣圖,再寫成一份全新的檔案,這也是為什麼儲存下來的副本,檔案大小往往只有原圖的一小部分,放大檢視時,也看起來比較模糊。用 Ctrl+C 複製一張圖片、再貼到另一個應用程式中,也往往會透過剪貼簿重新編碼,尤其是當目的地不支援來源格式時,更是如此。不論哪一種情況,背後的原因都是一樣的:封裝檔內部儲存的原始位元組串流,完全沒有被動用,而是在它之上,重新產生出一份新的呈現方式。要保留原始像素,還原的路徑,就必須直接深入封裝檔內部,把儲存的內容直接複製出來,而不是透過渲染後的頁面。

.docx 檔案如何儲存它的圖片(以及為什麼你能還原它們)

一個 .docx 檔案,是一個遵循 ECMA-376 標準Microsoft Open XML 文件 所描述的 Office Open XML 規範的 ZIP 封存檔。在這個封存檔裡,有三個資料夾,和圖片還原有關:word/media 存放的是實際的圖片位元組資料,word/embeddings 存放的是像內嵌圖表與 OLE 項目這類物件,而 word/charts,則是以 XML 的形式,儲存圖表的定義,而不是以點陣像素的形式儲存。這個擷取工具需要的一切,都在 word/media 裡。這個資料夾中的圖片檔案,會維持它們被插入時的格式——PNG 會以 PNG 的形式儲存,保留原始的位元深度與色彩描述檔;JPEG 會以 JPEG 的形式儲存,保留原始的壓縮設定;而如果文件中包含 EMF 或 WMF 這類向量內容,也會維持 EMF 或 WMF 的格式。檔名通常會是 image1.png、image2.jpeg 之類的名稱,而這個工具會為了安全下載,把這些檔名做過清理,同時保持重複項目彼此不同,這樣同一個標誌的兩份副本,才不會在輸出時互相覆蓋。

三個步驟從 Word 文件中擷取原始圖片

  1. 從你的裝置中選擇一份 .docx 檔案——這個工具只接受現代的 Office Open XML 格式,不接受舊式的 .doc 格式。
  2. 稍等片刻,讓瀏覽器在本機讀取這個封裝檔,並列出它在 word/media 中找到的受支援圖片項目。
  3. 點擊任何一張圖片,即可把它以原始檔案的形式下載下來;或是使用 ZIP 選項,把整組還原出來的圖片,下載成單一個封存檔。

這個擷取工具會還原什麼,又不會還原什麼

文件中的元素 是否以獨立圖片的形式儲存在 word/media 中? 這個擷取工具能否還原成檔案
插入的照片(PNG、JPEG) 能,以原始格式還原
插入的標誌或圖示(PNG) 能,以原始格式還原
掃描的簽名或圖片掃描檔 能,以原始格式還原
EMF 或 WMF 向量圖形 是,若存在的話 能,原封不動還原(能否在其他應用程式中開啟,取決於該應用程式)
SmartArt 圖形 否——由文件的 XML 描述 不能
圖表或方程式 否——由文件的 XML 描述 不能
Word 繪圖、文字方塊、圖案填色 否——由文件的 XML 描述 不能
頁面背景圖片 否——由文件的 XML 描述,或由 Word 產生 不能
外部連結的圖片 否——並未儲存在封裝檔內 不能

Office 的封裝方式,並不會把每一個視覺元素,都變成一個獨立的圖片檔案。SmartArt、圖表、方程式、繪圖、文字方塊、圖案填色與頁面背景,都是由文件的 XML 描述,或由 Word 產生出來的,而不是以圖片的形式儲存在 word/media 中。反過來的情況也可能發生:即使作者刪除了畫面上看得到的圖片,某個媒體元件,仍然可能留在封裝檔裡,因此還原出來的這組結果,代表的是受支援、且確實儲存下來的媒體檔案,而不是每一頁完整的視覺渲染畫面。如果這份文件在 word/media 中,沒有任何受支援的內嵌圖片,這個工具會清楚地回報這一點,而不是把整頁截圖,當成原始作品匯出。這項封裝檔檢查,會在解壓縮任何內容之前,就先拒絕格式錯誤的封存檔、它不支援的 ZIP64 目錄記錄、過多的項目數量,以及大得不合理的宣告展開大小,這讓整個還原過程,維持在一個實際可行、僅限瀏覽器端的範圍之內。

還原出圖片之後,接下來該做什麼

原始圖片一旦到了你的裝置上,接下來有幾個常見的做法。你可以壓縮還原出來的圖片,縮小檔案大小;把 PNG 轉換成適合網頁使用的 WebP;或是把挑選出來的幾張還原圖片,整合成一份 PDF 以便分享。一套可靠的還原流程,會先下載檔案、保留一份未經更動的 .docx 副本,並在重複使用或刪除任何內容之前,把還原出來的檔名,和你在來源文件中看到的內容做比對。這個擷取工具,並不會記錄一張圖片出現在頁面上的哪個位置、它的文繞圖方式是什麼,或是旁邊搭配的是哪個圖說,因此如果你需要這些版面配置資訊,仍然應該回頭參考原始的 Word 檔案。一切都在執行你瀏覽器的裝置上完成,這個工具絕不會上傳這份文件,而 ZIP 函式庫,也只有在你選好檔案之後,才會載入。如果你想更詳細了解,僅限本機這條路徑的相同流程,extract images from a Word doc without uploading guide 說明了隱私方面更詳細的細節。

限制、隱私與格式支援

這個擷取工具,僅限於處理現行的 Office Open XML .docx 文件。它不會開啟舊式的二進位 .doc 格式、不會解密受保護的檔案、不會抓取外部連結的圖片,也不會把文字、表格、SmartArt、圖表,或頁面版面配置,轉換成新的圖片。Office 原生的 EMF 與 WMF 內容,若存在的話,會被原封不動地還原出來,但它們能不能在其他應用程式中開啟,取決於那個應用程式對格式的支援程度。這個工具,不是文件修復服務、不是頁面渲染器,也不是損壞 Word 封裝檔的封存匯出工具——它的任務範圍,比這些都要窄。它會在解壓縮之前,先驗證封裝檔的目錄結構,只讀取 word/media 底下受支援的檔案,並直接複製這些內容,不會去檢查文件文字、巨集,或版面配置關係。如果你要的只是真正的圖片,而不是頁面的截圖,這種聚焦的範圍,正是讓還原出來的位元組資料,和 Word 儲存的原始內容完全一致的關鍵。

延伸閱讀:How to Convert PNG to JPG Without Losing Quality