扫描PDF转换太痛苦?pdf-craft秒转Markdown/EPUB,自动生成目录注释、引文对齐

本公众号主要关注NLP、CV、LLM、RAG、Agent等AI前沿技术,免费分享业界实战案例与课程,助力您全面拥抱AIGC。


PDF-Craft实战

  • 将 PDF 转换为 MarkDown
from pdf_craft import PDFPageExtractor, MarkDownWriter

extractor = PDFPageExtractor(
  device="cpu"# If you want to use CUDA, please change to device="cuda:0" format.
  model_dir_path="/path/to/model/dir/path"# The folder address where the AI model is downloaded and installed
)
with MarkDownWriter(markdown_path, "images""utf-8") as md:
  for block in extractor.extract(pdf="/path/to/pdf/file"):
    md.write(block)

如果原始 PDF 中有插图(或表格、公式),则会在与保存图像相同的级别创建一个目录。

目录中的图片将在 MarkDown 文件中以相对地址的形式被引用。*.md``assets``*.md``assets

  • 将 PDF 转换为 EPUB

    首先创建PDF抽取对象

extractor = PDFPageExtractor(
  device="cpu"# If you want to use CUDA, please change to device="cuda:0" format.
  model_dir_path="/path/to/model/dir/path"# The folder address where the AI model is downloaded and installed
)

将抽取的内容送给LLM,生成EPUB文件

from pdf_craft import analyse
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")
)

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,表示扫描和分析的结果(会有多个文件)应该保存在哪个文件夹。

  • analysing_dir_path,用来存储分析过程中的中间状态。

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

扫描PDF转换太痛苦?pdf-craft秒转Markdown/EPUB,自动生成目录注释、引文对齐

pdf-craft主要功能:

  • 使用本地 AI 模型将 PDF 转换为 Markdown 格式,无需联网
  • 支持将 PDF 转换为带结构的 EPUB 电子书格式
  • 智能识别并过滤页眉、页脚、脚注、页码等干扰元素
  • 自动处理图表、公式,以图片形式保留在转换后的文件中
  • 结合 LLM 技术构建书籍结构,生成带目录和章节的 EPUB

pdf-craft的转化逻辑

扫描PDF转换太痛苦?pdf-craft秒转Markdown/EPUB,自动生成目录注释、引文对齐

首先,将PDF分页拆解成图片

其次,利用DocLayout-YOLO识别图片中的block元素,包括:页眉、页脚、段落、标题、图片、表格、图表、页码等信息

然后,利用layoutreader对block进行排序

接着,利用OnnxOCR,识别block中的文字

最后,将OCR识别的文字,输送给Deepseek,并通过特定信息(比如目录等)来构建书本的结构,最终生成带目录,分章节的 EPUB 文件。

这个解析和构建的过程中,会通过 LLM 读取每页的注释和引用信息,然后在 EPUB 文件中以新的格式呈现。

https://github.com/oomol-lab/pdf-craft/tree/main


RAG技术前沿技术新闻资讯

预生成上下文:重构 RAG 的关键工程,构建 AI 编程底座

2025-5-20 7:41:39

前沿技术大模型技术新闻资讯

大模型|“上下文长度”和“上下文窗口”不再傻傻分不清楚!

2025-5-20 8:32:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索