PDF 轉 Word 免費工具 pdf2docx 實測:表格 26 格全對,掃描檔卻一個字都改不了
重點摘要
- pdf2docx 把 1 頁、7 列 4 欄表格的報價單 PDF 轉成 Word 只花 0.30–0.36 秒,26 格有內容的儲存格全部正確。
- 跨欄、跨列的合併儲存格與圖片在轉換後都保留,雙欄排版的段落順序 1→12 正確。
- 50 頁報價單一次轉換 3.5–4.2 秒,開多程序 2.8 秒,50 個表格一個不少。
- 掃描版 PDF 轉出的 Word 只有一張圖,可編輯文字 0 字,工具會警告不支援掃描檔。
- 結論: 電腦產生的 PDF(尤其是表格)交給 pdf2docx 很省事,掃描檔則完全轉不出可編輯文字。
- 適合: 想在自己電腦上把報價單、收支表等電腦產生的 PDF 轉成可編輯 Word,且能打一行指令的人。
- 不適合: 處理掃描檔或手機拍照 PDF、要求排版與字型完全不變、或完全不想碰指令列的人。
| 實測項目 | 結果 |
|---|---|
| 安裝(pip install .) | 44 秒 |
| 報價單 1 頁 | 0.30–0.36 秒,表格 26/26 格正確;日期行與客戶行被併成一段 |
| 合併儲存格收支表 | 0.23–0.30 秒,合併與圖片保留,金額全對 |
| 雙欄通訊 12 段 | 0.21 秒,順序正確,轉成 Word 兩欄版面 |
| 50 頁報價單 | 3.5–4.2 秒;--multi_processing 2.8 秒;50 個表格 |
| 掃描版(150 dpi 圖片) | 0.19–0.26 秒,段落 0、表格 0、圖片 1 |
| 維護狀態 | README 註明 Artifex 已不再積極維護,改 MIT 授權 |
搬家公司、裝潢師傅、學校家長會傳來的文件,十之八九是 PDF。你只想改一個數量、補一行備註再傳回去,卻發現 PDF 根本改不動;買編輯軟體要月費,丟到線上轉檔網站又擔心報價單上的姓名地址外流。
pdf2docx 是一個開源的 Python 工具,一行指令就能在自己電腦上把 PDF 轉成 Word(.docx),檔案不用上傳到別人的伺服器。它在 GitHub 有 3,500 多顆星,名氣遠不如那些線上轉檔網站。我準備了四種常見文件實際轉一遍,從最順排到最慘。
測試設備:Mac mini M4 Pro(12 核、64GB)。測試版本:pdf2docx 0.5.13(commit 33e1c23),搭配 PyMuPDF 1.28.2。所有測試文件都是自己做的,姓名、地址、金額皆為虛構。
安裝與基本用法
pip install pdf2docx # 這次實測 44 秒裝好
pdf2docx convert quote.pdf quote.docx
只轉其中幾頁、或文件很長想開多程序加速(頁數範圍參數依官方文件,這次沒測;多程序有實測):
pdf2docx convert long50.pdf long50.docx --start=0 --end=10
pdf2docx convert long50.pdf long50.docx --multi_processing=True
實測結果排名
| 名次 | 測試文件 | 轉換時間 | 結果 |
|---|---|---|---|
| 1 | 搬家報價單(1 頁,7 列 4 欄表格) | 0.30–0.36 秒 | 表格 26 格內容全對,黃色表頭保留 |
| 2 | 家長會收支表(跨欄、跨列合併儲存格+一張圖) | 0.23–0.30 秒 | 合併儲存格與圖片都保留,數字全對 |
| 3 | 雙欄社區通訊(12 段) | 0.21 秒 | 段落順序 1→12 正確,轉成 Word 的兩欄版面 |
| — | 50 頁報價單 | 3.5–4.2 秒(多程序 2.8 秒) | 50 個表格一個不少 |
| 最後 | 掃描版報價單(整頁是圖片) | 0.19–0.26 秒 | 可編輯文字 0 字,只得到一張圖 |

第一名:一般報價單
表格是這類文件最怕跑掉的部分。轉出來的 Word 用 python-docx 逐格讀回,7 列 4 欄、26 格有內容的儲存格全部正確,合計 11,150 也是粗體。原本 PDF 裡「30 個」因為欄寬太窄被擠成兩行,Word 裡同樣是兩行,這是照原樣搬過去,不算錯。
但有兩個小地方要自己修:
- 兩行黏成一段:原本「報價日期…報價單號」和「客戶…搬遷地址」是分開的兩行,轉出後變成同一段文字,中間沒有換行。
- 字型沿用 PDF 裡的名稱:轉出的 Word 指定的是 PDF 內嵌的字型(這次是 Droid Sans Fallback、Nimbus Sans),電腦沒裝這些字型就會被替換。我用 Mac 的快速查看預覽時,整份文件變成明體。欄寬也略有不同,「樓層加價(五樓無電梯)」在預覽裡被擠成兩行。
第二名:合併儲存格的收支表
家長會收支表上方有跨兩欄的「收入」「支出」,左邊有跨兩列的「月份」,最下面「結餘」也是合併儲存格。轉出後這些合併都還在(python-docx 讀回時,合併格會重複出現同一個文字,這正是合併成功的特徵),所有金額沒有一個錯。右下角的藍色圖片也保留了。
第三名:雙欄排版
社區通訊左右兩欄各 6 段。轉出的 Word 把內文設定成「兩欄」的版面,段落順序從第 1 段到第 12 段完全正確,沒有左右交錯。要注意的是 Mac 快速查看不支援 Word 的分欄設定,預覽時看起來會變成上下排列,用 Word 開才是兩欄。
速度:50 頁一次轉
把報價單複製成 50 頁,一次轉換花了 3.5 到 4.2 秒(測兩次),轉出 50 個表格、250 段文字。開啟 --multi_processing=True 後是 2.8 秒。一般人手上的文件,速度不會是問題。
最後一名:掃描檔

我把同一份報價單轉成 150 dpi 的圖片,再包成 PDF,模擬掃描檔或手機拍照轉的 PDF。pdf2docx 不到半秒就轉完,但會跳出警告:
[WARNING] Words count: 0. It might be a scanned pdf, which is not supported yet.
打開轉出的 Word,畫面跟原本一模一樣,可是整頁只是一張圖片:段落 0、表格 0、可編輯的字 0 個。這是最容易被騙的情況,因為看起來「轉成功了」。
怎麼判斷你的 PDF 是不是掃描檔? 在 PDF 閱讀器裡試著反白選取文字,選不起來就是圖片。這種檔案要先做文字辨識(OCR),pdf2docx 本身不會做。
結論:誰適合用
我會把它留在電腦裡。用 Word、Excel 或系統直接匯出的 PDF,尤其是有表格的報價單、收支表,它不到一秒就轉好,表格與合併儲存格保留得很好,剩下的只是修換行與字型。
- 適合:手上有電腦產生的 PDF、想改幾個字或數字、不想把含個資的文件丟到線上轉檔網站的人;會在終端機打一行指令即可。
- 不適合:掃描檔、手機拍照轉的 PDF;需要完全照原樣排版、不想再手動調字型的人;完全不想碰指令列的人。
另外要知道:官方 README 已註明 Artifex 不再積極維護這個專案,並改用 MIT 授權開放社群接手,遇到問題可能得自己找解法或改用社群分支。
- 專案連結:https://github.com/ArtifexSoftware/pdf2docx
- 授權:MIT