当 PDF 成了“拦路虎”

又是一个被文档支配的夜晚。小张盯着 300 页的技术手册发愁——导师要建知识库,可这玩意儿比字典还厚,怎么提取文字成了难题。

试了几个在线 OCR,不是限制页数、让你充值会员,就是上传失败、转一半卡死。PDF 页面太多太大,传统 OCR 工具常常直接崩溃。

面对“刺头”文档,是时候换个思路了。

“化整为零”处理大 PDF

doc-to-text 的解决方案是:不要一次吃完整只烤鸭,把 PDF 拆页,逐页识别,再拼回完整文本。

处理流程概括如下:

大型 PDF → 拆解成单页 → 每页 OCR → 合并输出

优势显而易见:

  • 每页独立处理,失败也不影响整体
  • 支持断点续传,意外中断也能接着来
  • 内存压力小,适合处理上百页文档
  • 可适配不同尺寸、复杂排版页面

不管是工作报告、技术手册,还是电子图书,都可以逐页拆解、分批“吃下”。

分页处理机制

  • 若 PDF 内容是图像(默认,可通过 --content-type image 明确指定),则自动进行分页处理,将 PDF 拆解为单页图像,然后使用 OCR 工具逐页识别,适用于扫描件或图像型 PDF。
  • 若 PDF 内容是文字(通过 --content-type text 指定),则不进行分页处理,直接使用 Calibre 进行文本提取和转换,适用于原生文字型 PDF。

两种 OCR 引擎灵活选择

doc-to-text 目前支持两种 OCR 方式,可按需选择:

  • surya-ocr:本地运行的 OCR 模型,支持中英文等多种语言,结构清晰的文档识别效果好。适合注重数据隐私、希望离线处理的用户。对电脑配置有要求,处理速度受限于电脑性能。
  • llm-caller:调用外部 AI 模型,如阿里云 qwen-vl-ocr,识别能力强,能处理手写、复杂排版等,推荐用于扫描件和难啃文档。不受电脑配置影响,但需要注册对应的服务,并配置好 API Key。

安装与环境准备指南

🎯 安装概览

doc-to-text 的安装分为三个核心步骤:

  1. 依赖的工具:Ghostscript、Pandoc(可选)、Calibre(可选)
  2. OCR 引擎:surya-ocr(本地)或 llm-caller(云端)
  3. 主程序:下载对应平台的可执行文件,并安装到系统路径

🍎 macOS 安装

Step 1:安装依赖的工具

# 安装PDF处理工具
brew install ghostscript pandoc

# 安装 Calibre(用于文本型 PDF 处理、电子书)
brew install --cask calibre

Step 2:安装 OCR 引擎

方案 A:本地 OCR

pip install surya-ocr

方案 B:云端 AI OCR

  • 安装 llm-caller
  • 根据调用的服务配置 API Key(阿里云、OpenAI 等)

Step 3:安装 doc-to-text 主程序

  1. 下载对应版本

    访问 Releases 页面: https://github.com/nodewee/doc-to-text/releases

    • Intel Mac:doc-to-text-darwin-amd64
    • Apple 芯片(M1/M2):doc-to-text-darwin-arm64
  2. 安装到系统

# 重命名文件(将 * 替换为实际文件名)
mv doc-to-text-darwin-* doc-to-text

# 赋予执行权限,并移动到系统路径
chmod +x doc-to-text
xattr -d com.apple.quarantine doc-to-text
sudo mv doc-to-text /usr/local/bin/
  1. 验证安装
doc-to-text --version

🪟 Windows 安装

Step 1:安装依赖的工具

  1. Ghostscript:从 官方下载页面: https://www.ghostscript.com/download/gsdnld.html 下载安装
  2. Pandoc:处理PDF的工具,从 官方下载页面: https://pandoc.org/installing.html 下载安装
  3. Calibre:处理电子书或文本型PDF的工具,从 官方下载页面: https://calibre-ebook.com/download 下载安装

Step 2:安装 OCR 引擎

方案 A:本地 OCR

pip install surya-ocr

方案 B:云端 AI OCR

Step 3:安装 doc-to-text 主程序

  1. 下载可执行文件

    从 Releases 页面: https://github.com/nodewee/doc-to-text/releases 下载:
    doc-to-text-windows-amd64.exe

  2. 配置系统路径

    • 重命名为 doc-to-text.exe
    • 放置到 C:\Windows\System32
    • 创建 C:\tools 文件夹,将文件放入并添加到系统环境变量 PATH
  3. 验证安装

doc-to-text --version

🐧 Linux 安装

Step 1:安装依赖的工具

Ubuntu / Debian:

sudo apt update
# 安装PDF、电子书处理工具
sudo apt install ghostscript pandoc calibre unzip

CentOS / RHEL / Fedora:

# CentOS/RHEL
sudo yum install ghostscript pandoc

# Fedora
sudo dnf install ghostscript pandoc

# Calibre 需从官网下载

Step 2:安装 OCR 引擎

方案 A:本地 OCR

# 确保 Python ≥ 3.8
python3 --version

# 安装 surya-ocr
pip install surya-ocr

方案 B:云端 AI OCR

Step 3:安装 doc-to-text 主程序

# 下载对应架构的版本
# x86_64 架构
wget https://github.com/nodewee/doc-to-text/releases/download/v0.x.x/doc-to-text-linux-amd64

# ARM 架构(如树莓派)
wget https://github.com/nodewee/doc-to-text/releases/download/v0.x.x/doc-to-text-linux-arm64

# 安装到系统
chmod +x doc-to-text-linux-*
sudo mv doc-to-text-linux-* /usr/local/bin/doc-to-text

# 验证安装
doc-to-text --version

💡 提示:如果系统包管理器中没有 Calibre,可访问 Calibre 官方页面: https://calibre-ebook.com/download 下载对应的 Linux 版本。


✅ 安装验证清单

安装完成后,执行以下命令验证各组件:

# 验证主程序
doc-to-text --version

# 验证系统依赖
ghostscript --version
pandoc --version
# 若安装了 Calibre(可选)
calibre --version

# 验证 OCR 引擎(根据选择的方案)
surya_ocr --version
# 或
llm-caller --version

全部显示正常后,你就可以开始使用 doc-to-text 了!


快速上手指南

Step 1:基本用法

新手模式(自动引导):

doc-to-text 文件.pdf

指定 OCR 引擎 + 明确内容类型:

doc-to-text 文件.pdf --ocr surya_ocr --content-type image

调用大模型识别复杂扫描文档:

# 下载模板
llm-caller template download https://github.com/nodewee/llm-calling-templates/blob/main/qwen-vl-ocr-image.json

# 调用大模型识别复杂扫描文档
doc-to-text 扫描件.pdf --ocr llm-caller --llm-template qwen-vl-ocr-image

批量处理文件夹中所有 PDF:

for file in *.pdf; do
  doc-to-text "$file" --ocr surya_ocr
done

Step 2:进阶技巧与参数

# 显示详细进度
doc-to-text 文档.pdf --ocr surya_ocr --verbose

# 指定输出路径
doc-to-text 文档.pdf --ocr surya_ocr -o ./输出/内容.txt

# 强制使用文本提取(适用于文字型PDF)
doc-to-text 文档.pdf --content-type text

常见问题解答(FAQ)

Q1:PDF 是纯文字的,还需要 OCR 吗?
A:无需 OCR,直接使用 --content-type text,提取速度快、准确率高。

Q2:OCR 出现乱码怎么办?
A:尝试更换 OCR 引擎,或检查是否为手写/低分辨率图像。推荐 llm-caller 配合大模型。

Q3:出现“找不到 ghostscript/pandoc”?
A:请确认它们已正确安装并添加到系统环境变量(PATH)中。

Q4:能否指定某几页进行识别?
A:当前暂不支持指定页码,但可先拆分 PDF(如用 pdftkqpdf 工具),再单独识别。


写在最后

doc-to-text 用“拆页 + OCR”的思路,让处理大体量 PDF 不再是难题:

  • ⬇️ 没有页数限制
  • 💻 本地运行不上传
  • 🤖 可调用 AI 模型辅助识别

无论是几百页的项目资料,还是结构混乱的扫描手稿,它都能帮你有条不紊地“吃下”。

现在就试试,将你的繁重任务交给自动化工具处理,把时间留给真正重要的创造与思考。


📬 关注「缓坡漫步」,解锁更多工作流与自动化技巧,让技术为你省下每一分精力。


推广:
阿里云百炼大模型 9折优惠 + 所有模型各百万免费Token →
即梦 免费AI画图、生成视频。每日领免费额度,可累加 →