要在不損失畫質的情況下,從 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 封裝檔實際上包含了什麼,以及如何用三個步驟完成這個還原過程。

為什麼在 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 文件中擷取原始圖片
- 從你的裝置中選擇一份 .docx 檔案——這個工具只接受現代的 Office Open XML 格式,不接受舊式的 .doc 格式。
- 稍等片刻,讓瀏覽器在本機讀取這個封裝檔,並列出它在 word/media 中找到的受支援圖片項目。
- 點擊任何一張圖片,即可把它以原始檔案的形式下載下來;或是使用 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 儲存的原始內容完全一致的關鍵。