
最近我们开源了一个 PDF 处理工具 - pdf-craft,专注于解决扫描书籍 PDF 转换的痛点,让书籍数字化更智能。pdf-craft 支持将 PDF 转为 Markdown 和 EPUB ,智能处理文本、图表、公式等内容,适用于技术文档、书籍数字化、论文研究等场景。
PDF 转 Markdown
PDF 转 EPUB
技术亮点
项目基于 Python 开发,可通过 pip 安装:
pip install pdf-craft 核心使用方法示例:
# PDF 转 Markdown (纯本地处理) from pdf_craft import PDFPageExtractor, MarkDownWriter extractor = PDFPageExtractor( device="cuda:0", # GPU 加速 model_dir_path="/path/to/model/dir/path", ) with MarkDownWriter(markdown_path, "images", "utf-8") as md: for block in extractor.extract(pdf="/path/to/pdf/file"): md.write(block) 对于更复杂的 EPUB 转换,可以接入 LLM:
from pdf_craft import LLM, analyse, generate_epub_file # 配置 LLM llm = LLM( key="sk-XXXXX", base_url="https://api.deepseek.com", model="deepseek-chat", token_encoding="o200k_base", ) # 分析 PDF analyse( llm=llm, pdf_page_extractor=extractor, pdf_path="/path/to/pdf/file", analysing_dir_path="/path/to/temp", output_dir_path="/path/to/output", ) # 生成 EPUB generate_epub_file( from_dir_path="/path/to/output", epub_file_path="/path/to/book.epub", ) 


想快速尝试 pdf-craft 而不想折腾环境配置?我们提供了更简单的方式: 使用 OOMOL Studio 一键体验:pdf-craft for OOMOL studio
OOMOL Studio 是我们开发的工作流 IDE ,内置了隔离的运行环境,无需复杂配置,即可立即体验 pdf-craft 的全部功能。 关于 OOMOL Studio 可以查看之前的介绍: 一款全新的工作流 IDE。
当然,pdf-craft 仍然完全开源,你依然可以按照上述方法在自己的环境中配置使用。
项目刚刚起步,我们非常欢迎各位 V 友参与:
如果觉得不错,欢迎给项目点个 star ,有什么想法也可以在评论区交流,或者提交 PR 一起完善这个工具。
你也可以通过 https://oomol.com/community/ 找到我们。
1 simple233 250 天前 牛的,那么快又有新东西了 |
2 uCharles 250 天前 好厉害 |
3 chjian 250 天前 大佬厉害 |
4 regent 250 天前 对于爱看书的人是一个福音,谢谢! |
5 jimrok 250 天前 感觉现在正处在寒武纪大爆发阶段,各种新应用层出不穷。 |
6 kitty7030 250 天前 可以增加个功能 再转化为 pdf |
8 b821025551b 250 天前 @moskize pdf 的兼容性更好,随便拖到浏览器就能看;这个过程就是将扫描版 pdf 转成矢量版 pdf ,提升清晰度,缩小文件体积。 |
9 timeisweapon 250 天前 对于普通个人用户来说,还是在线转换工具方便 |
10 yibie 250 天前 能接 Ollama 吗? |
11 yazoox 250 天前 via Android 这个是真的牛逼! |
12 docx 250 天前 via iPhone 分栏的 PDF 能完美解析吗 |
15 sunnysab 250 天前 flowhub 中点击 Open By OMMOL Studio 没有反应(似乎只是刷新了当前页面)。 分析了《聪明在于勤奋,天才在于积累》(华罗庚)一书,第 4 页的分数( 22/7 )没有识别成公式,整本书识别得不错,比当时导入微信读书时识别得强。 |
16 jhytxy 250 天前 via iPhone 求 docker 镜像 |
17 urlk 250 天前 微软貌似也有个 markitdown 专门转 PDF 的, 貌似没有 orc |
18 ayang23 250 天前 效果貌似不错 |
19 EngAPI 250 天前 不错啊,造福墨水屏 |
20 bfdh 250 天前 model_dir_path="/path/to/model/dir/path", 新手求问,这个应该从哪里下? |
24 zero469 250 天前 非常好的 idea ,太牛逼了 |
25 zero469 250 天前 不知道作者有没有尝试过 7B 或 32B 的 LLM ,如果效果也 OK 的话连带模型做一个纯本地的方案感觉更有吸引力 |
26 Dreamerwwr 250 天前 在哪里配置 LLM 的 API 呢?打开后,没看到配置的位置 |
28 ration 250 天前 喜欢在电纸书上看书,这个真不错,谢谢 |
29 cyp0633 250 天前 好用,不过现在 LLM 主要是用来纠正文字吧,我觉得可以用 Gemini 等多模态 LLM 一块儿识别公式,转换成 LaTeX 格式 |
31 hinate 250 天前 via Android 太强了 |
32 cooper 250 天前 这个好,已 star ! |
33 manning 250 天前 mathpix 上付费的 PDF 转 markdown ,这个能代替吗 |
34 UB 250 天前 跟 PyMuPDF 比起来怎么样呢?同时 PyMuPDF 也有 LLM 的支持 https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/ |
35 moskize 250 天前 @3085570450tt 看介绍它们好像是为 LLM 提取文本,而不是用 LLM 处理文本。而且 PyMuPDF 我记得是不提供 OCR 的。 |
37 Yien 250 天前 via Android 厉害(òωó) |
38 luyg 250 天前 厉害,我要试试 |
39 akira 250 天前 先给个 star 后面有空了 试一下 |
40 oyjt 250 天前 大佬,厉害呀。先 star 了为敬 |
41 yueyueniao89 249 天前 先马克,pdf 转 epub |
42 x4gz 249 天前 这个带多线程吗 不然有的几百页的书转起来也太慢了 |
44 PersueYan 247 天前 这个有点意思 其他格式文档统一转 pdf 好搞 然后 pdf 统一提取文字图片,再分类按需处理 先 mark 了 就是不知道复杂格式的 pdf 识别和提取准确度怎么样 |
45 zizek 245 天前 初步用了一下 pdf-craft 的本地模型功能,发现它是把矢量 pdf 文档当成图片,重新 OCR 之后形成的文本。 请教一下,有这样一个需求,能用 pdf-craft 实现吗? 完全是矢量化的 pdf 文档,已经不需要识别了。只需要内容提取出来,生成 epub 。 其实现在 calibre 能够完成这样的转化,但缺点是,跨页的段落不能合并成一段,这样一句话就会被放在两个段落里。pdf-craft 似乎能够很好地合并段落,保持句子的完整性。 如果提供“直接处理矢量 pdf"的选项,那就能节省很多时间。不知是否可能? |
46 moskize 243 天前 @zizek 没错,现在会多此一举做这个动作。这里是一个优化点,等于要允许跳过 OCR 截断直接进入分析阶段。calibre 估计没有做合并段落操作。这个用算法很难准确识别,毕竟 PDF 本身是没有这个信息的。pdf-craft 完全是让 LLM 来判断句子到底有没有被切断,然后拼起来。 |
47 isSamle 222 天前 能不能整个 docker |