# PDF 轉 Word 免費工具 pdf2docx 實測：表格 26 格全對，掃描檔卻一個字都改不了

- 網址：https://blog.valenvan.uk/posts/artifexsoftware-pdf2docx.html
- 發布日期：2026-10-11
- 測試設備：Mac mini M4 Pro（12 核、64GB）
- 專案：ArtifexSoftware/pdf2docx（https://github.com/ArtifexSoftware/pdf2docx），MIT 授權
- 測試版本：pdf2docx 0.5.13（commit 33e1c23），PyMuPDF 1.28.2
- 實測影片：https://www.youtube.com/shorts/zMsiByhQpe8

## 重點摘要

- 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。所有測試文件都是自己做的，姓名、地址、金額皆為虛構。

## 安裝與基本用法

```bash
pip install pdf2docx          # 這次實測 44 秒裝好
pdf2docx convert quote.pdf quote.docx
```

只轉其中幾頁、或文件很長想開多程序加速（頁數範圍參數依官方文件，這次沒測；多程序有實測）：

```bash
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 字，只得到一張圖 |

![報價單轉換後，用 python-docx 讀出表格內容：7 列 4 欄、每格數字都對](https://blog.valenvan.uk/img/artifexsoftware-pdf2docx-article_1.png)

### 第一名：一般報價單

表格是這類文件最怕跑掉的部分。轉出來的 Word 用 python-docx 逐格讀回，7 列 4 欄、26 格有內容的儲存格全部正確，合計 11,150 也是粗體。原本 PDF 裡「30 個」因為欄寬太窄被擠成兩行，Word 裡同樣是兩行，這是照原樣搬過去，不算錯。

但有兩個小地方要自己修：

1. **兩行黏成一段**：原本「報價日期…報價單號」和「客戶…搬遷地址」是分開的兩行，轉出後變成同一段文字，中間沒有換行。
2. **字型沿用 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 秒。一般人手上的文件，速度不會是問題。

### 最後一名：掃描檔

![掃描版 PDF 轉成 Word 後，看起來一模一樣，但整頁只是一張圖](https://blog.valenvan.uk/img/artifexsoftware-pdf2docx-article_2.png)

我把同一份報價單轉成 150 dpi 的圖片，再包成 PDF，模擬掃描檔或手機拍照轉的 PDF。pdf2docx 不到半秒就轉完，但會跳出警告：

```text
[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
