返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

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

[复制链接]
链载Ai 显示全部楼层 发表于 10 小时前 |阅读模式 打印 上一主题 下一主题

本公众号主要关注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:
forblockinextractor.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-craft主要功能:

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

pdf-craft的转化逻辑

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

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

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

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

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

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ