PDF-Craft:一個掃描書籍PDF文件轉Markdown/EPUB工具
PDF-Craft是什么?
PDF-Craft是一個用于處理PDF文件的開源項目,專注于將掃描書籍的PDF轉換為Markdown或EPUB格式。它通過OCR技術識別文字,并利用ai算法提取文本、過濾頁眉頁腳等元素,生成結構化內容。支持本地計算和LLM輔助功能,適合學術論文、小冊子及長篇書籍的格式轉換。
PDF-Craft功能特征
格式轉換:
支持將PDF轉換為Markdown格式,適合論文或小書本。
超過100頁的,可結合了本地OCR和云端LLM處理,生成帶目錄分章節的EPUB。
智能提取:
使用DocLayout-YOLO和自定義算法提取正文,過濾頁眉、頁腳、腳注、頁碼等元素。
在跨頁時,算法會處理前后文的順接問題。
OCR識別:
使用OnnxOCR進行文字識別,支持插圖、表格和公式的截圖,并直接插入到輸出文件中。
閱讀順序優化:
通過layoutreader確定符合人類閱讀習慣的順序。
LLM輔助:
在EPUB轉換過程中,通過LLM(如DeepSeek)讀取注釋和引用信息,并在EPUB中呈現。
LLM還能在一定程度上糾正OCR錯誤。
本地運行:
支持CPU和GPU加速,無需聯網即可完成大部分操作。
PDF-Craft應用場景
學術研究:將掃描的學術論文轉換為Markdown或EPUB格式,便于編輯和閱讀。
電子書制作:將掃描書籍轉換為EPUB格式,生成帶目錄和章節的電子書。
文檔處理:提取PDF中的文字和圖像,用于進一步編輯或歸檔。
PDF-Craft使用方法
1. 安裝:需要Python 3.10及以上版本,支持CUDA加速。
2. PDF轉Markdown:
from pdf_craft import PDFPageExtractor, MarkDownWriter extractor = PDFPageExtractor(device="cpu", model_dir_path="/path/to/model") with MarkDownWriter(markdown_path, "images", "utf-8") as md: for block in extractor.extract(pdf="/path/to/pdf"): md.write(block)
3. PDF轉EPUB:
from pdf_craft import PDFPageExtractor, LLM, analyse, generate_epub_file extractor = PDFPageExtractor(device="cpu", model_dir_path="/path/to/model") llm = LLM(key="sk-XXXXX", url="https://api.deepseek.com", model="deepseek-chat") analyse(llm=llm, pdf_page_extractor=extractor, pdf_path="/path/to/pdf", analysing_dir_path="/path/to/analysing", output_dir_path="/path/to/output") generate_epub_file(from_dir_path="/path/to/output", epub_file_path="/path/to/output.epub")
github項目:https://github.com/oomol-lab/pdf-craft
相關文章
Sioyek:專注于學術閱讀的PDF閱讀器
2025-05-03