別再直接丟 PDF 給 Claude:先用微軟 MarkItDown 轉 Markdown,少燒不少 token
你是不是也習慣這樣用 AI:拿到一份 PDF,不管是報告、合約還是論文,直接拖進 Claude,然後問「幫我整理重點」?
方便是方便,但如果你是用 API,或是常常撞到額度上限,這個習慣可能讓你多花了不少 token。原因不是你的檔案特別大,而是 Claude 讀 PDF 的方式,本來就比讀純文字「貴」。
這篇先用官方文件說明 PDF 為什麼會燒 token,再介紹微軟開源的 MarkItDown,教你怎麼把 PDF 先轉成 Markdown 再交給 Claude,最後也會誠實說明這招的限制。
為什麼直接丟 PDF 會比較燒?
根據 Anthropic 官方的 PDF 支援文件,Claude 處理 PDF 的方式是:
- 系統會把 PDF 的每一頁都轉成圖片。
- 同時也會把每一頁的文字擷取出來,跟圖片一起提供給模型。
也就是說,每一頁都是「圖片加文字」雙份內容。這樣做的好處是 Claude 能看懂圖表、版面和圖片,這也是官方強調的功能。但代價是 token 會比較多。
文件裡的數字是這樣:
- 光是文字,每頁通常約 1,500 到 3,000 個 token,依內容密度而定。
- 圖片的部分,另外按照圖片的計算方式再算一次。
- 標準 API 定價,沒有額外的 PDF 附加費。
官方文件裡還有一個 Bedrock 的例子:同一份 3 頁的 PDF,純文字模式大約 1,000 個 token,開啟視覺模式則約 7,000 個,差了大約七倍。注意這是 Bedrock 平台上的特定情境,不能直接套用到所有情況,但可以讓你感受到「有圖片」和「純文字」的差距。
另外官方列出的限制還有:單次請求 32 MB、最多 600 頁(如果模型上下文不到 1M,則是 100 頁),而且不支援有密碼或加密的 PDF。
解法:先轉成 Markdown 再丟
既然純文字比較省,那就先把 PDF 轉成文字。這時候就輪到 MarkItDown 出場。
| 項目 | 內容 |
|---|---|
| 專案 | microsoft/markitdown |
| GitHub 星數 | 約 19 萬顆星(2026 年 10 月) |
| 授權 | MIT |
| 用途 | 把 PDF、Word、PowerPoint、Excel 等轉成 Markdown,給 LLM 使用 |
| 環境 | Python 3.10 到 3.14 |
| 費用 | 免費、開源 |
它是微軟推出的 Python 工具,專門把各種文件轉成 Markdown。Markdown 結構簡單,標題、清單、表格都能保留,LLM 讀起來相當順。
怎麼安裝與使用
步驟一:安裝
確定電腦有 Python(3.10 以上),然後在終端機輸入:
pip install 'markitdown[all]'
[all] 的意思是把各種格式需要的選用套件一起裝起來,這樣 PDF、Word、Excel 等都能轉。
步驟二:轉檔
安裝完成後,一行指令就能把 PDF 轉成 Markdown 檔:
markitdown file.pdf -o document.md
把 file.pdf 換成你的檔名,document.md 就是輸出的檔案。Word、PowerPoint、Excel 也是同樣的用法,換成對應的檔名即可。
步驟三:把 Markdown 丟給 Claude
打開 document.md,快速掃過確認內容正常,再把文字貼進對話,或直接上傳這個 .md 檔。因為已經是純文字,Claude 不需要再為每一頁額外處理圖片。
進階:用 MCP 讓 Claude 自己呼叫轉換
如果你不想每次都手動轉檔,MarkItDown 還有一個 MCP 版本:markitdown-mcp。
安裝與啟動:
pip install markitdown-mcp
markitdown-mcp
它是以 STDIO 方式運作,提供一個工具叫 convert_to_markdown,可以接受 http、https、file 或 data 這幾種 URI。把它接到支援 MCP 的 Claude 環境後,你可以請 Claude 自己呼叫這個工具,去轉換某個檔案路徑或網址。
這裡有一個常被誤解的地方:它不會自動攔截你拖進對話框的附件。 它只是多了一個工具,Claude 需要主動去呼叫它,而且你要給它檔案路徑或網址。所以比較準確的說法是「讓 Claude 自己呼叫轉換」,而不是「每次上傳都自動轉」。
另外 README 提醒,這個 MCP 伺服器適合在本機搭配可信任的 agent 使用;如果是 Claude Desktop,建議用 Docker 執行。
要注意的地方
一、只抓文字,圖表會不見
MarkItDown 處理 PDF 靠的是 pdfminer.six 這類文字擷取工具,只拿得到文字。PDF 裡的圖表、圖片、特殊排版,轉完就沒了。如果你的重點正好是一張圖表,這招反而會讓 Claude 看不到關鍵資訊。
所以比較精準的說法是:文字為主的 PDF,轉成 Markdown 才划算。 像是長篇報告、合約、論文本文,很適合。以圖為主的簡報或財報,就要斟酌。
二、掃描檔需要另外處理
如果是掃描出來的 PDF(其實是整頁圖片),一般的文字擷取抓不到內容。MarkItDown 有選用的 markitdown-ocr 外掛,但它會用 LLM 的視覺能力辨識,需要 API 金鑰,也就是說還是會花 token。
三、不要把它當成「品質更好」的保證
網路上有人說「Claude 吃 Markdown 回答品質比較好」。這點官方文件沒有寫,我們也沒有驗證,所以不敢背書。這篇主張的只有「省 token」這一點,而且是有條件的省。MarkItDown 自己的 README 也說,它轉出來的結果是給文字分析工具用的,不一定適合要求高保真的文件轉換。
四、想處理表格和掃描檔,可以看看 Docling
如果你的文件有很多表格,或是需要處理掃描檔,可以參考同類型的 docling-project/docling。它是支援版面分析的 PDF 解析工具,MIT 授權,約 7 萬顆星(2026 年 10 月),專案持續有更新。我們這邊只確認過它的基本資訊,沒有實測,適合當作進階選項自己評估。
什麼時候值得轉?
簡單判斷:
- 文字很多、圖很少:值得轉。
- 要 Claude 看圖表、版面:直接丟 PDF,別省這個。
- 掃描檔:先確認 OCR 方案和成本。
- 檔案很多、要批次處理:用指令加 MCP,會比手動方便。
一個實際的使用情境
假設你手上有一份五十頁、以文字為主的產業研究報告,想請 Claude 幫你整理成重點摘要。
如果直接上傳 PDF,依照官方文件的計算方式,每一頁都有文字 token,再加上每頁圖片的 token,頁數一多,總量就會很可觀。如果你是用 API 付費,這個差距會直接反映在帳單上;如果你是用一般訂閱方案,則會更快碰到使用上限。
改成先用 MarkItDown 轉成 Markdown,你只需要多花幾秒鐘跑一行指令。轉完之後先打開檔案看一下,確認標題層級和段落沒有亂掉,再交給 Claude。因為內容已經是純文字,也比較容易只挑你關心的章節貼進去,進一步控制 token 用量。
反過來說,如果這份報告裡有大量的折線圖、長條圖,而你的問題正是「圖表顯示了什麼趨勢」,那就不要轉。直接丟 PDF,讓 Claude 看到頁面圖片,反而才是正確選擇。省 token 不是目的,拿到正確答案才是。
最後建議養成一個小習慣:轉檔之後花三十秒檢查輸出。表格有時會跑版,頁首頁尾也可能混進正文,稍微整理一下,後面的對話會順很多。
常見問題
一定要會寫程式嗎? 不用。只要電腦裝得了 Python,能在終端機貼上指令就行。
Word、Excel、簡報也能轉嗎? 可以,MarkItDown 支援這些格式,用法和 PDF 一樣,指令換成對應檔名即可。不過簡報裡的圖片同樣不會被轉成文字描述。
轉完的檔案要先檢查嗎? 要。表格可能跑版、頁首頁尾可能混進內文,花一點時間整理,後續問答的品質會好很多。
加密的 PDF 怎麼辦? 官方文件寫明 Claude 不支援有密碼的 PDF,所以要先自己解除保護,再做轉換。這點請在合法、你有權限的前提下處理。
為什麼說這是「有條件的省」?
Token 的計費邏輯是看你送進去多少內容。PDF 之所以貴,是因為官方為了讓模型能理解版面與圖片,刻意把每頁當成圖片再處理一次,這是功能,不是缺陷。
所以轉成 Markdown 的本質,是用「少一些資訊」換「少一些費用」。如果你要的資訊本來就在文字裡,那就是純賺;如果資訊在圖裡,那就是賠。搞清楚這個取捨,比盲目轉檔重要得多。你也可以把兩種做法混用:先轉成 Markdown 讓 Claude 讀文字,遇到需要看圖的那幾頁,再單獨把那幾頁截圖或擷取出來給它看。
參考連結
- Anthropic PDF 支援文件:https://platform.claude.com/docs/en/build-with-claude/pdf-support
- MarkItDown:https://github.com/microsoft/markitdown
- markitdown-mcp:https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp
- Docling:https://github.com/docling-project/docling
更多 AI 工具,追蹤 IG @aihub.tw。