簡短的結論
- 在把文字擷取出來這件事上,pdftomd 和 PyMuPDF4LLM 不相上下。 在參與評分的 15 份文件上,兩者平均都保留了 99% 的正文。在論文和密集表格上,PyMuPDF4LLM 的閱讀順序維持得略好一些。
- pdftomd 留給你的清理工作最少。 它去掉每頁重複的頁首、頁尾和頁碼要穩定得多,也沒有留下任何被行尾連字號斷開的詞。三者中只有它不必安裝任何東西就能用,檔案也不會離開你的裝置。
- MarkItDown 是為多種格式設計的,PDF 不是它的強項。 處理 PDF 時它回傳不帶標題的純文字,保留 PDF 裡的換行和連字號,而且在我們這組檔案裡遺失了論文正文的很大一部分。這次執行中它沒有 PDF 用的 OCR,所以掃描檔輸出為空。
- 掃描檔方面,pdftomd 和 PyMuPDF4LLM 都幾乎完美地讀出了我們那份掃描的財務報表,連表格也是,前提是 PyMuPDF 裝了 OCR 引擎。
如果你寫 Python,而且 AGPL 授權適合你的專案,PyMuPDF4LLM 是一個出色的函式庫。如果你想現在就在瀏覽器裡拿到結果,不必上傳檔案,請用我們首頁上的轉換器。
結果
| 文件 | pdftomd | PyMuPDF4LLMPyMuPDF 2.1 + RapidOCR 3.10 | MarkItDown0.1.9 |
|---|---|---|---|
| 美國最高法院判決12 頁 | 9,940% | 10,000% | 10,000% |
| NIST 人工智慧框架14 頁 | 9,980% | 9,970% | 6,240% |
| 研究論文,單欄15 頁 | 9,790% | 9,810% | 2,290% |
| 研究論文,雙欄12 頁 | 9,930% | 9,920% | 5,060% |
| 公式較多的論文15 頁 | 9,160% | 9,330% | 4,550% |
| 財務報表4 頁 | 10,000% | 9,820% | 10,000% |
| IRS 稅額表8 頁 | 9,980% | 9,810% | 9,840% |
| IRS W-9 表格6 頁 | 9,980% | 9,940% | 9,990% |
| 聯準會經濟預測表5 頁 | 9,970% | 9,950% | 9,050% |
| 掃描的財務表格2 頁 | 9,930% | 9,960% | 0% |
| 中文文本7 頁 | 10,000% | 10,000% | 10,000% |
| 日文報告10 頁 | 10,000% | 10,000% | 10,000% |
| 韓文文本7 頁 | 10,000% | 10,000% | 10,000% |
| 附圖片的產品簡介7 頁 | 9,990% | 10,000% | 10,000% |
| 課程投影片12 頁 | 9,850% | 9,950% | 10,000% |
| 平均 | 9,900% | 9,897% | 7,801% |
那份 1969 年的打字稿掃描檔沒有放進表裡:它唯一的參考文字是掃描器自帶的 OCR,品質太差,無法用來評分。pdftomd 和 PyMuPDF4LLM 都從中得到了可讀的文字,PyMuPDF4LLM 的零散標點更少;MarkItDown 什麼也沒輸出。
測試條件
| 轉換工具 | 版本 | 執行方式 |
|---|---|---|
| pdftomd | 本站,2026-11-13 | Chromium 中使用預設設定,16 個檔案一次拖入,按 全部下載 |
| PyMuPDF4LLM | PyMuPDF 2.1 加 RapidOCR 3.10 | pymupdf4llm.to_markdown(path) |
| MarkItDown | 0.1.9 | MarkItDown().convert(path).markdown |
這些文件都是公開的,挑選時盡量涵蓋大家實際會轉換的類型:
| 文件 | 頁數 | 難點 |
|---|---|---|
| 美國最高法院判決書 | 12 | 註腳、每頁重複的頁首 |
| NIST 人工智慧風險管理框架 | 14 | 封面、標題、連結 |
| 論文,單欄 | 15 | 標題、參考文獻、少量公式 |
| 論文,雙欄 | 12 | 跨欄的閱讀順序 |
| 公式多的論文 | 15 | 密集的數學公式 |
| Apple 季度財務報表 | 4 | 有框線的財務表格 |
| IRS Publication 15-T 節選 | 8 | 長稅率表、目錄 |
| IRS W-9 表格 | 6 | 表單版面、小字 |
| 美國聯準會經濟預測表 | 5 | 多層表頭的寬表格 |
| 阿波羅 11 號任務報告,打字稿掃描檔 | 4 | 1969 年的掃描檔,沒有文字層 |
| Apple 財務報表,掃描檔 | 2 | 沒有文字層的表格 |
| 《世界人權宣言》,中文 | 7 | CJK 文字 |
| 日本銀行《展望報告》節選 | 10 | 日文、圖表 |
| 《世界人權宣言》,韓文 | 7 | 韓文 |
| Raspberry Pi 5 產品簡介 | 7 | 圖片、圖片上的文字 |
| 史丹佛 CS231n 課程投影片 | 12 | 投影片、大量小圖片 |
怎麼評分
每份結果都和 poppler 的 pdftotext 從同一份 PDF 擷取的文字比較。
- 找到的詞是參考文字中的詞出現在 Markdown 裡的比例。每頁重複的頁首、頁尾和頁碼會先從參考文字中去掉,這樣像 pdftomd 預設那樣刪掉它們的轉換工具不會因此扣分。中文、日文和韓文按字計算。
- 閱讀順序是參考文字與結果之間按詞計算的最長共同子序列,佔參考文字的比例。欄位交錯或表格儲存格讀亂時會下降。一兩個百分點的差別可視為誤差。
- 斷開的詞統計沒有接回去的行尾連字號,例如
pur- suant。 - 殘留的頁首統計結果中重複出現四次以上的行,這幾乎總是沒去掉的頁首或頁尾。圖片佔位行不計入。
表格方面,我們把 Apple 財務報表的 35 列逐列和 PDF 對照:一列的標籤和每個數值都各自落在自己的儲存格裡、順序正確,才算對。完全正確的列數:pdftomd 30 列,PyMuPDF4LLM 28 列,MarkItDown 5 列。在同一份報表的掃描版上,pdftomd 對了 30 列中的 29 列,PyMuPDF4LLM 30 列全對。
速度
在同一台 4 核心電腦上,pdftomd 在瀏覽器裡用 21 秒轉換完全部 16 份 PDF,其中包括 9 個掃描頁的 OCR。PyMuPDF4LLM 同樣開著 OCR,用了 64 秒;MarkItDown 不做 OCR,用了 11 秒。你的耗時會因硬體而不同,手機比筆電慢。
這個測試說明不了什麼
- 其中一款轉換工具是我們做的。 我們的清理規則是對照這類文件開發的,這對我們有利。我們公開了腳本,也如實列出我們落後的項目,但做決定之前,請用你自己的 PDF 試一試。
- 自動評分會漏掉一些問題。 一欄錯位的表格可能一個詞都不少;標題層級錯了在這裡也不扣分。所以 pdftomd 會把有表格的頁面標出來,提醒你檢查。
- Docling 和 Marker 沒有參加這一輪。 兩者都需要 PyTorch 和下載模型,Marker 還要另外啟動一個推論伺服器。它們都用版面模型,常被推薦用於複雜版面和公式。執行方法見用 Python 把 PDF 轉成 Markdown。
- 線上轉換工具沒有放進表裡。 它們的引擎會不打招呼地改變,也無法固定版本,測完隔天分數就過時了。
該用哪個轉換工具?
| 如果你想要 | 用 |
|---|---|
| 現在就在瀏覽器裡拿到結果,什麼都不上傳 | pdftomd |
| 在流程裡使用的 Python 函式庫,而且 AGPL 適合你的專案 | PyMuPDF4LLM |
| 一個函式庫同時處理 Word、PowerPoint、Excel、HTML 和 PDF | MarkItDown,但要知道 PDF 會變成純文字 |
| 公式多的論文要最好的效果,而且有 GPU | Marker 或 Docling |
自己重現
下載測試工具包:裡面有瀏覽器端的執行腳本、給這兩個函式庫用的 Python 執行腳本、評分腳本、產生上表的腳本和原始分數。PDF 來自表中列出的公開來源,確切網址和頁碼範圍寫在工具包的 README(英文)裡。
PyMuPDF4LLM 由 Artifex 開發,MarkItDown 由 Microsoft 開發。pdftomd 與兩者都沒有關聯。