超酷的PDF转换工具!直接支持DeepSeek V3,本地AI精准解析PDF扫描件!

 

对于习惯数字阅读的人来说,扫描版 PDF 的最大痛点,就是它仅仅是纸质书的静态复制,而非真正的电子书。

如果你想要提取内容,手动复制麻烦不说,往往还会带上页眉页脚、乱七八糟的分页符,甚至 OCR(光学字符识别)也可能把“人类”识别成“八八艹”。

更别提那些包含数学公式、表格和复杂排版的书籍,转换起来更是噩梦。

今天介绍一款开源的 PDF 处理工具:PDF Craft,专注于将扫描书籍的 PDF 文件转化为 Markdown 或 EPUB 格式。

它基于本地 AI 模型运行核心功能,同时支持远程调用 LLM(如 DeepSeek V3)处理复杂任务。PDF Craft 的设计目标是“高效、精准、隐私友好”,通过智能算法和 LLM 技术,不仅提取文本,还能重构书籍结构,保留图表和公式。

该项目采用模块化架构,支持本地和远程两种模式。

本地模式利用 DocLayout-YOLO 和 OnnxOCR 等技术实现完全离线转换,而远程模式通过 LLM 增强了对大部头书籍的处理能力,为用户提供更优质的电子书转换体验。

核心功能

相比传统的 OCR 或 PDF 解析工具,PDF Craft 具备多个独特亮点:

  • • 本地 AI 驱动,无需联网,保护隐私
  • • Markdown & EPUB 输出,兼容性强
  • • 智能清理页眉、页脚、页码、脚注
  • • 公式、图表智能处理
  • • 自动构建目录和章节

快速使用

PDF Craft 支持本地运行,安装和使用方式也非常简单,支持 Python 环境部署。

使用 Python 自带的 pip 包管理命令就可一键安装完成。

pip install pdf-craft

提示:如果你希望使用 GPU 加速,需要根据你的显卡配置安装相应的 CUDA 版本。

具体使用方法:

① PDF 转化为 MarkDown

此操作无需调用远程的 LLM,仅凭本地算力(CPU 或显卡)就可完成。第一次调用时会联网下载所需的模型。遇到文档中的插图、表格、公式,会直接截图插入到 MarkDown 文件中。

from pdf_craft import PDFPageExtractor, MarkDownWriter

extractor = PDFPageExtractor(
  device="cpu"# 如果希望使用 CUDA,请改为 device="cuda:0" 这样的格式。
  model_dir_path="/path/to/model/dir/path"# AI 模型下载和安装的文件夹地址
)
with MarkDownWriter(markdown_path, "images""utf-8"as md:
  for block in extractor.extract(pdf="/path/to/pdf/file"):
    md.write(block)

执行完成后,会在指定的地址生成一个 *.md 文件。若原 PDF 中有插图(或表格、公式),则会在 *.md 同级创建一个 assets 文件夹,以保存图片。而 MarkDown 文件中将以相对地址的形式引用 assets 文件夹中的图片。

转化效果如下:

② PDF 转化为 EPUB

将使用 OCR 从 PDF 中扫描并识别文字。因此,也需要先构建 PDFPageExtractor 对象。(重复性操作代码省略掉了,可以参考上一步的)

from pdf_craft import PDFPageExtractor

extractor = PDFPageExtractor(
  device="cpu"# 如果希望使用 CUDA,请改为 device="cuda:0" 这样的格式。
  model_dir_path="/path/to/model/dir/path"# AI 模型下载和安装的文件夹地址
)

之后,需要配置 LLM 对象。建议使用使用 DeepSeek,本库的 Prompt 基于最新的 V3 模型调试。

from pdf_craft import LLM

llm = LLM(
  key="sk-XXXXX"# LLM 供应商提供的 key
  url="https://api.deepseek.com"# LLM 供应商提供的 URL
  model="deepseek-chat"# LLM 供应商提供的模型
  token_encoding="o200k_base"# 进行 tokens 估算的本地模型名(与 LLM 无关,若不关心就保留 "o200k_base")
)

如上两个对象准备好后,就可以开始扫描并分析 PDF 书籍了。

from pdf_craft import analyse

analyse(
  llm=llm, # 上一步准备好的 LLM 配置
  pdf_page_extractor=pdf_page_extractor, # 上一部准备好的 PDFPageExtractor 对象
  pdf_path="/path/to/pdf/file"# PDF 文件路径
  analysing_dir_path="/path/to/analysing/dir"# analysing 文件夹地址
  output_dir_path="/path/to/output/files"# 分析结果将写入这个文件夹
)

在分析结束后,将 output_dir_path 文件夹地址传给如下代码作为参数,即可最终生成 EPUB 文件。

from pdf_craft import generate_epub_file

generate_epub_file(
  from_dir_path=output_dir_path, # 来自上一步分析所产生的文件夹
  epub_file_path="/path/to/output/epub"# 生成的 EPUB 文件保存路径
)

转化效果如下:

写在最后

在互联网时代,我们每天都在和各种数字化文档打交道,但扫描版 PDF 仍然是数字阅读的一大痛点。

无论是研究学术资料、阅读老旧书籍,还是归档重要文件,PDF Craft 都能提供一个高效、智能的解决方案,让原本“静态”的扫描版 PDF 变成真正可阅读、可搜索、可编辑的电子书。

它的价值,远不止于转换格式,更是一种数字化阅读体验的升级。

GitHub 项目地址:https://github.com/oomol-lab/pdf-craft

 

● 一款改变你视频下载体验的神器:MediaGo

● 新一代开源语音库CoQui TTS冲到了GitHub 20.5k Star

● 最新最全 VSCODE 插件推荐(2023版)

● Star 50.3k!超棒的国产远程桌面开源应用火了!

● 超牛的AI物理引擎项目,刚开源不到一天,就飙升到超9K Star!突破物理仿真极限!








(文:开源星探)

欢迎分享

发表评论