MarkItDown 是什麼
MarkItDown 是微軟推出的開源 Python 套件和命令列工具,採用 MIT 授權。它把多種檔案轉換成 Markdown,供語言模型和文字分析使用:PDF、Word、PowerPoint、Excel、HTML、CSV、JSON 和 XML、EPUB、ZIP 壓縮檔等。圖片描述和音訊轉寫會用到網路上的託管服務。
它的長處是涵蓋範圍廣:一次呼叫就能處理一整個混著各種辦公檔案的資料夾。具體到 PDF,內建轉換器用 pdfminer.six 擷取文字,遇到排成表單或表格樣式的頁面則用 pdfplumber。
pdftomd 不是 MarkItDown,也不執行它。 它是另一個只為 PDF 打造的轉換器,在你的瀏覽器裡執行。這一頁說明兩者的差別,以及如果你需要,怎樣自己執行 MarkItDown。
怎樣執行 MarkItDown
需要 Python 3.10 或更新版本。只裝 PDF 相關的相依套件:
pip install 'markitdown[pdf]'
在命令列裡轉換檔案:
markitdown report.pdf -o report.md
或者在 Python 裡:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("report.pdf")
print(result.markdown)
我們的實測就是用 0.1.9 版原樣執行這些指令得到的。要支援 Word、PowerPoint、Excel 等其他格式,把 [pdf] 換成 'markitdown[all]'。
從 PDF 裡能得到什麼
在我們的 16 個公開 PDF 上,MarkItDown 0.1.9 的輸出是這樣的:
- 沒有標題的純文字。 沒有一份文件得到任何一個
#標題,報告和論文的大綱都不見了。 - 保留 PDF 的換行和連字號。 句子在 PDF 每行結尾處被截斷,還有 307 個單字仍被行尾連字號拆開,例如
pur- suant。 - 頁首頁尾沒拿掉,每頁重複出現。
- 研究論文缺字。 三篇研究論文的輸出裡,大約缺了一半到四分之三的單字。
- 掃描檔什麼都沒有。 預設安裝沒有 PDF 的 OCR,所以掃描頁輸出為空。有個外掛
markitdown-ocr,透過你設定的 API 把頁面圖片傳給視覺模型來做 OCR。
對較簡單的文件它表現不錯:法院判決、表單類文件,以及中文、日文和韓文文字,所有單字都保留了下來。逐份文件的完整數據見我們的實測。
同一個 PDF 用 pdftomd
| MarkItDown 0.1.9 | pdftomd | |
|---|---|---|
| 執行在 | Python,你的電腦上 | 你的瀏覽器,你的電腦上 |
| 安裝 | pip install 'markitdown[pdf]' | 不需要 |
| 格式 | PDF、Office、HTML、EPUB 等 | |
| 標題 | 沒有 | 有,根據字級和字重判斷 |
| 段落 | 保留 PDF 的換行 | 把行合併成段落 |
| 頁首、頁尾、頁碼 | 保留 | 拿掉,有開關可保留 |
| 行尾連字號 | 保留 | 對照詞表接回 |
| 表格 | 當作文字,表單式頁面當作表格 | Markdown 表格,有表格的頁面會被標記 |
| 掃描版 PDF | 外掛加雲端視覺模型 | 內建瀏覽器內 OCR |
| token 計數和 RAG 分塊 | 沒有 | 有 |
| 授權 | MIT | 免費使用 |
如果你還要轉換 Word 或 PowerPoint 檔案,或者在用 Python 寫處理流程,MarkItDown 比較實用。處理 PDF,尤其是想馬上拿到結果,就用本頁頂端的轉換器。
常見問題
MarkItDown 有官方網站嗎?
MarkItDown 以 Python 套件的形式發布在 GitHub 上。微軟沒有把它做成網站,所以叫「MarkItDown 線上」的網站都是第三方經營的,背後用的引擎也各不相同。pdftomd 不執行 MarkItDown,也不上傳你的檔案。
MarkItDown 能讀掃描版 PDF 嗎?
預設安裝不行。你可以加裝 markitdown-ocr 外掛,把圖片傳給你設定的視覺模型,或者用 Azure Document Intelligence 選項,這是微軟的付費雲端服務。pdftomd 用在瀏覽器裡執行的 OCR 模型讀取掃描檔,見 掃描版 PDF 轉 Markdown。
給 LLM 餵文件,哪個比較好?
對 PDF 來說,有標題、段落已合併、沒有重複頁首的輸出,模型比較容易讀懂,也更省 token。pdftomd 還會顯示 token 數,並能把文件切成分塊。見 給 LLM 用的 PDF 轉 Markdown。
Python 裡還有哪些選擇?
PyMuPDF4LLM、Docling 和 Marker 都能把 PDF 轉成 Markdown,各有所長,授權也不同。用 Python 把 PDF 轉成 Markdown 裡有每個工具能直接執行的程式碼。
MarkItDown 是微軟的專案。pdftomd 是獨立網站,與微軟沒有關聯。