← 返回作品集
Tool 自用中

本機文件轉檔 doc2md

先在本機把文件抽成純文字再交給 AI:省錢、讀得更準,檔案也不用離開電腦。

上線
2026.08
團隊
獨立開發
狀態
自用中
Stack
Swift · Apple Vision · PDFKit · 本機 LLM · OCR
截圖區 · screenshot

以前收到一份 PDF,我會直接丟給 AI 看。後來發現這樣很浪費:一份 2 頁、700 KB 的 PDF,真正的文字只有 3,500 字左右,其他都是排版和圖片。現在我先在 Mac 上用這個工具把文字抽出來,再交給 AI。

專案背景

把整份檔案上傳給 AI 有兩個問題。第一是貴:圖片和排版也算錢。第二是隱私:有些文件我不想讓它離開自己的電腦。

Mac 本身其實就有很好的文字辨識和文件處理能力,只是平常用不到。我想把它們包成一個指令,什麼檔案丟進去都能出乾淨的文字。

核心設計

  1. 預設忠實抽取。 只抽原文、清一下多餘的空白,不新增、不改寫。這是最常用、也最省錢的模式。
  2. 掃描檔自動辨識。 PDF 每頁的文字少到不正常,就判定是掃描檔,自動改成逐頁文字辨識。
  3. 要整理才動用 AI。 加一個參數,才會請本機的語言模型把文字整理成有標題、清單、表格的格式。
  4. 退路一層一層。 整理用的模型跑不動就退到比較小的模型,再不行就給原文,不會兩手空空。

技術架構

  • PDF:Apple 的 PDFKit 讀文字層
  • Word、RTF、網頁:macOS 內建的 textutil 轉換
  • 掃描檔、圖片:Apple Vision 文字辨識,支援繁中、英文、日文
  • 整理成 Markdown:本機跑的開源語言模型(筆電上用 Qwen3-30B,舊機器退回 Apple 內建模型)
  • 全部在本機執行,不連網、不收費

工程挑戰

  • 小模型會偷改內容。 實測時,一個小模型把文件標題改成了意思差很多的說法。光靠提示詞叫它「不要改」沒用,所以加了程式層的檢查:比對數字和字頻,發現被改過,那一段就退回原文,並跳出警告。
  • Apple 內建模型的中文上限比想像中低。 官方說上限 4,096 個 token,實測中文不到 3,800 字就爆了,所以門檻保守設在 2,800 字,長文直接交給大模型。
  • 多欄排版的 PDF 順序會亂。 這種檔案改用視覺辨識,照畫面上的順序讀,反而比較準。

功能亮點

  • PDF、Word、掃描檔、圖片一個指令搞定
  • 全本機、不上傳、不收費
  • 預設 100% 忠於原文,要整理才動用 AI
  • 有防竄改檢查,AI 改了內容會被抓出來