Community影像github.com

MuhtajinMukhtar/scan-book-to-digital-pdf

將掃描書籍PDF轉換為可讀、可搜尋、可選取文字與圖片的數位PDF,支援OCR、重新排版與還原,尤其適用於Mac Apple Vision與PaddleOCR PP-StructureV3交叉比對,並以簡單用語引導非技術使用者完成字型、大小與段落選擇。

scan-book-to-digital-pdf 是什麼?

這項技能專為將掃描的書籍PDF(如翻拍或掃描書頁)轉換為具備可選取文字、保留原始圖片、可搜尋的數位PDF而設計。其核心特色是雙OCR引擎管道:在相容的Mac環境中,會強制同時執行Apple Vision與PaddleOCR PP-StructureV3,並對兩者的輸出進行逐行比對,確保文字完整(例如讀取出Paddle Markdown遺漏的七行文字範例)。AI代理會自行處理OCR、品質檢查、困難版面(如表格、引文、頁碼)的編輯重建,而非要求使用者指定OCR引擎。使用者僅需以日常用語(如「把這本書變成數位版」)提出需求,技能便會以簡單提問引導字型、大小與段落樣式(預設模仿原始書籍風格),並保留來源標題、斜體、圖片與閱讀順序。輸出前會產生審閱PDF與頁面摘要,並在獲得使用者確認後才完成最終版本。此技能不適用於一鍵式通用排版,需AI代理對複雜頁面進行編輯重建。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/MuhtajinMukhtar/scan-book-to-digital-pdf/tree/HEAD

Installed? Explore more 影像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

掃描書籍轉數位PDF

對話應保持簡單

使用者只需說:「Tolong jadikan PDF buku ini buku digital yang nyaman dibaca, mengikuti https://github.com/MuhtajinMukhtar/scan-book-to-digital-pdf。」他們可以附上PDF檔案。不需要求他們知道OCR、PP-StructureV3、SHA-256或命令列等詞彙。

  • 若未附上PDF,請要求提供PDF。
  • 預設採用忠實的版面、接近來源的字型與段落起始。必要時,一次只問一個友善的問題,並以日常用語表達:「想要像一般書的字體還是現代風格?」、「字型大小跟原本一樣或更大?」、「段落開頭要縮排還是靠左?」。提供「保留原本樣式」的選項。當預設值足夠時,不要問所有問題。
  • 以白話回報進度:已檢查頁數、不確定的頁面、審閱PDF。將技術日誌保留在工作檔案中,不要出現在使用者的聊天室。
  • 不要讓使用者手動選擇OCR引擎。在相容的Mac上,必須同時使用以下兩個引擎。

來源保護與偏好設定

記錄頁數、原始SHA-256、檔案中繼資料與輸出目的地。絕不覆寫原始檔案或已核准的先前版本。預設為精確的來源頁面對應,除非使用者明確要求重新分頁。尊重明確偏好:正文襯線字型(若已安裝且有授權則使用Georgia,否則使用開源襯線字型)或無襯線字型;來源估算或指定的字型大小;首行縮排(來源/是/否)。保留來源標題、斜體、照片、圖表、表格、標誌、引用、表單、頁尾與閱讀順序。絕不重新分發有版權的掃描檔案或字型檔案。

Mac優先的雙OCR管道(必須完整執行)

  1. 使用 references/mac-setup.md 設定隔離的Mac Python環境。在處理前驗證真實的Apple Vision與PaddleOCR PP-StructureV3安裝。不要使用生產系統或全域套件變更。
  2. 執行 python scripts/mac_hybrid_ocr.py BOOK.pdf --work-dir ./work。這會先以Apple Vision呼叫 scripts/ocr_book.py,然後對相同的快取頁面圖片執行PP-StructureV3,儲存原始的Paddle JSON與Markdown,並在 work/fusion/ 產生每頁比對報告。
  3. 從Paddle JSON讀取原始 overall_ocr_res.rec_texts,而不僅是其Markdown渲染。成功的原型在五頁測試中恢復了Paddle Markdown遺漏的七行文字;絕不假設Markdown是完整的。檢查 paddle_raw_not_in_markdown、paddle_not_in_apple、apple_not_in_paddle,以及拼寫/措辭變體警告。這些都是審查候選項目,而非自動核准的修正。
  4. 在套用修正前,針對原始頁面圖片確認遺漏文字與爭議名稱。逐行比較兩個引擎;沒有任何引擎本身是權威。將不確定性記錄在頁面專屬的問題清單中。不要僅根據上下文憑空發明文字。
  5. 分類每頁,並從已驗證的閱讀順序,使用選定的大小、字型、段落縮排與左右對齊來撰寫數位排版文字。使用原始裁切的照片/插圖。參見 references/page-archetypes.md。對於無法安全重建的頁面,保留來源圖片並附上可選取的OCR圖層,並明確標記該頁為可搜尋掃描的後備方案。
  6. 為每個原始頁面撰寫一個清單項目:來源/輸出頁碼、類型、OCR引擎、接受的修正、圖片檢查、數位或可搜尋掃描狀態、例外狀況與視覺審查狀態。
  7. 使用 scripts/pdf_audit.py 驗證來源詞彙覆蓋率、頁面對應、內嵌字型、無空白/裁切頁面與圖片,以及來源/輸出視覺比對。閱讀 references/qa-and-handoff.md。不要壓制失敗來回報成功。
  8. 提供審閱PDF與簡潔的待處理頁面摘要。僅在使用者接受編輯結果後才標記為最終版本。僅在副本上執行 scripts/lossless_optimize.py,並驗證渲染/文字一致性。

操作邊界

  • 這不是一鍵通用的重新排版工具:AI代理必須對複雜頁面進行編輯重建。mac_hybrid_ocr.py 準備來源比對,但它本身不會產生最終書籍。
  • 若Paddle無法在Mac上執行,不要靜默地只使用Apple並假裝輸出通過了雙OCR;請報告安裝問題,並提供使用者安全的下一步。
  • 若目前的ChatGPT Work或Codex環境無法執行Mac軟體,請簡短說明。應取得允許的Mac執行環境,而非偽造OCR輸出。
  • 保留快取/來源識別性。絕不自動覆寫來自其他來源的現有OCR結果。不要在儲存庫中發布私人檔案。
  • 使用 --compare-only 重新評估現有快取,而不重新執行OCR。

相關技能