当 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 的安装分为三个核心步骤:
- 依赖的工具:Ghostscript、Pandoc(可选)、Calibre(可选)
- OCR 引擎:surya-ocr(本地)或 llm-caller(云端)
- 主程序:下载对应平台的可执行文件,并安装到系统路径
🍎 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 主程序
下载对应版本
访问 Releases 页面: https://github.com/nodewee/doc-to-text/releases
- Intel Mac:
doc-to-text-darwin-amd64
- Apple 芯片(M1/M2):
doc-to-text-darwin-arm64
- Intel Mac:
安装到系统
# 重命名文件(将 * 替换为实际文件名)
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/
- 验证安装
doc-to-text --version
🪟 Windows 安装
Step 1:安装依赖的工具
- Ghostscript:从 官方下载页面: https://www.ghostscript.com/download/gsdnld.html 下载安装
- Pandoc:处理PDF的工具,从 官方下载页面: https://pandoc.org/installing.html 下载安装
- Calibre:处理电子书或文本型PDF的工具,从 官方下载页面: https://calibre-ebook.com/download 下载安装
Step 2:安装 OCR 引擎
方案 A:本地 OCR
pip install surya-ocr
方案 B:云端 AI OCR
- 安装 llm-caller
- 配置相应的 API Key
Step 3:安装 doc-to-text 主程序
下载可执行文件
从 Releases 页面: https://github.com/nodewee/doc-to-text/releases 下载:
doc-to-text-windows-amd64.exe
配置系统路径
- 重命名为
doc-to-text.exe
- 放置到
C:\Windows\System32
或 - 创建
C:\tools
文件夹,将文件放入并添加到系统环境变量 PATH
- 重命名为
验证安装
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
- 安装 llm-caller
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(如用 pdftk
或 qpdf
工具),再单独识别。
写在最后
doc-to-text 用“拆页 + OCR”的思路,让处理大体量 PDF 不再是难题:
- ⬇️ 没有页数限制
- 💻 本地运行不上传
- 🤖 可调用 AI 模型辅助识别
无论是几百页的项目资料,还是结构混乱的扫描手稿,它都能帮你有条不紊地“吃下”。
现在就试试,将你的繁重任务交给自动化工具处理,把时间留给真正重要的创造与思考。
📬 关注「缓坡漫步」,解锁更多工作流与自动化技巧,让技术为你省下每一分精力。