scambier/obsidian-text-extractor
A (companion) plugin to facilitate the extraction of text from images (OCR) and PDFs.
Obsidian Text Extractor – 是什麼
一個由社群開發的 Obsidian 插件,可讓你從通常僅包含圖片或掃描頁面的檔案(PNG/JPG/… 圖片、PDF 文件和 Office 檔案(DOCX、XLSX))中提取純文字。它透過在瀏覽器中直接呼叫開源 OCR 引擎 Tesseract.js(以及 PDF 解析輔助工具),然後將結果快取,讓其他插件(例如 Omnisearch)可重複使用。
為何重要
- 可搜尋的筆記 – Obsidian 內建搜尋無法看見圖片或掃描 PDF 中的文字。此插件讓這些隱藏的文字對資料庫索引及其他需要它的插件可見。
- 單一真實來源 – 無需每個插件都實作自己的 OCR 流程,它們都能呼叫同一個 API,節省記憶體與 CPU。
- 本地處理 – OCR 在使用者的瀏覽器中執行;不會將資料傳送至遠端伺服器(唯一網路流量是首次使用時下載 Tesseract 的語言套件)。
工作原理(高階)
- 使用者觸發提取 – 透過支援檔案的右鍵功能表項目。
- 檔案類型偵測 – 插件檢查副檔名(
.png、.pdf、.docx等),判斷是否可處理。 - OCR / 解析 –
- 圖片 → Tesseract.js(基於 WebAssembly 的 OCR)。
- PDF →
pdf-extract套件,提取內嵌文字,或在每頁上回退至 OCR。
- 快取 – 結果字串以小型
.json檔案形式儲存在插件資料夾中。後續呼叫立即回傳快取版本,並可在裝置間同步。 - API 公開 – 其他插件可透過導出的
TextExtractorApi呼叫extractText(file)或查詢isInCache(file)。
主要限制(如 README 所述)
- PDF 提取不穩定 – 許多 PDF 無法成功提取文字;問題追蹤器中有多個開放問題。
- 無行動裝置支援 – OCR 套件無法在 Obsidian 的行動應用中執行,因此除非存在快取副本,否則插件會回傳空字串。
- 首次執行需網路 – Tesseract 的語言資料會按需下載。
- 未維護 – 原作者已退出;歡迎貢獻,但無積極開發保證。
開始使用
- 透過 Obsidian 社群插件瀏覽器安裝,或從 GitHub 下載最新版本。
- 開啟筆記,右鍵點選支援的檔案,選擇 提取文字。
- 提取的文字會儲存在快取中,可被其他插件(如 Omnisearch)或透過 README 所示的 API 存取。
開發者指南
export type TextExtractorApi = {
extractText: (file: TFile) => Promise<string>
canFileBeExtracted: (filePath: string) => boolean
isInCache: (file: TFile) => Promise<boolean>
}
export function getTextExtractor(): TextExtractorApi | undefined {
return (app as any).plugins?.plugins?.['text-extractor']?.api
}
在其他 Obsidian 插件中使用上述程式碼,呼叫 await getTextExtractor()?.extractText(myFile)。
總結:Obsidian Text Extractor 是 Obsidian 記事系統中一個實用且本地執行的 OCR 助手。它不是研究級 AI 模型,但利用現有的基於 ML 的 OCR 技術,讓圖片類筆記可被搜尋與重用。
相關
- 專案
- 專案
- 專案
- 專案