🔧 专业的PDF文件内容提取工具,支持文本型和图片型PDF的OCR识别,支持中文文档 作者:yjy(Villain y)
PDF阅读工具是一个基于Node.js的强大PDF文本提取工具,集成了OCR(光学字符识别)功能,能够处理文本型PDF和扫描版PDF。专门设计用于快速、准确地从各种类型的PDF文档中提取文本内容,特别适用于学术文档、教材、报告、扫描文件等的内容提取和分析。
- 🎯 智能提取:自动识别PDF类型,选择最佳提取方式
- 🔍 OCR支持:集成Tesseract.js,支持扫描版PDF和图片型PDF
- 🌏 多语言支持:完美支持中文、英文等多语言文档OCR识别
- 📊 详细信息:提供文档页数、标题、作者等元信息
- 🛡️ 错误处理:完善的错误处理和友好的错误提示
- ⚡ 高效处理:智能判断是否需要OCR,避免不必要的处理
- 🔧 易于集成:标准化接口,保持向后兼容性
- 🎛️ 灵活配置:支持OCR语言、图片质量等多种配置选项
- 🤖 AI友好:支持自然语言调用,无需编写代码
- 📦 多种使用方式:CLI工具、简化脚本、编程接口
# 全局安装
npm install -g pdf-reader-tool
# 或直接使用(无需安装)
npx pdf-reader-tool ./document.pdf
# 克隆或下载项目
git clone https://github.com/your-username/pdf-reader-tool.git
cd pdf-reader-tool
# 安装依赖
npm install
如果你使用支持代码执行的AI助手(Claude、ChatGPT等),只需要说:
- 💬 "帮我读取这个PDF文件:./document.pdf"
- 💬 "提取这个文档的内容:C:\Users\文档\报告.pdf"
- 💬 "分析这个PDF的内容"
AI会自动执行:
npx pdf-reader-tool ./document.pdf
# 直接使用(无需安装)
npx pdf-reader-tool ./your-document.pdf
# 全局安装后使用
npm install -g pdf-reader-tool
pdf-reader-cli ./your-document.pdf
# 高级选项
npx pdf-reader-tool ./scan.pdf --enable-ocr true --ocr-language chi_sim
- 下载工具包
-
修改文件路径:打开
scripts/simple-reader.js
,修改:const PDF_FILE_PATH = "./你的文件.pdf"; // 👈 改成你的PDF路径
-
运行脚本:
npm install # 首次运行 node scripts/simple-reader.js
const pdfReader = require('pdf-reader-tool');
async function readPDF() {
const result = await pdfReader.execute({
filePath: "./your-document.pdf"
});
if (result.success) {
console.log('页数:', result.data.info.pages);
console.log('内容:', result.data.text);
} else {
console.error('错误:', result.error.message);
}
}
readPDF();
- filePath (string): PDF文件的绝对或相对路径
- options.maxPages (number): 最大解析页数限制
- options.encoding (string): 文本编码格式,默认"utf8"
-
options.enableOCR (boolean|"auto"): OCR模式控制,默认"auto"
-
true
: 强制启用OCR -
false
: 禁用OCR,仅使用标准提取 -
"auto"
: 智能判断(推荐)
-
-
options.ocrLanguage (string): OCR识别语言,默认"chi_sim+eng"
-
"chi_sim"
: 简体中文 -
"eng"
: 英文 -
"chi_sim+eng"
: 中英文混合
-
- options.ocrThreshold (number): 自动启用OCR的阈值,默认100
- options.imageQuality (number): PDF转图片质量(DPI),默认200
const result = await pdfReader.execute({
filePath: "./document.pdf"
});
// 工具会自动判断是否需要OCR
const result = await pdfReader.execute({
filePath: "./scanned-document.pdf",
options: {
enableOCR: true, // 强制启用OCR
ocrLanguage: "chi_sim+eng", // 中英文识别
imageQuality: 300 // 高质量图片转换
}
});
const result = await pdfReader.execute({
filePath: "./document.pdf",
options: {
maxPages: 10, // 只处理前10页
enableOCR: "auto", // 自动判断是否需要OCR
ocrThreshold: 50, // OCR阈值(字符数/页数)
ocrLanguage: "chi_sim", // 仅中文识别
imageQuality: 200, // 图片质量(DPI)
encoding: "utf8"
}
});
const files = ["text-doc.pdf", "scanned-doc.pdf", "mixed-doc.pdf"];
for (const file of files) {
const result = await pdfReader.execute({
filePath: file,
options: { enableOCR: "auto" } // 自动判断每个文件
});
if (result.success) {
const method = result.data.metadata.ocrUsed ? "OCR" : "标准";
console.log(`${file}: ${result.data.info.pages}页 (${method}模式)`);
}
}
{
"success": true,
"data": {
"text": "提取的完整文本内容...",
"info": {
"pages": 25,
"title": "文档标题",
"author": "作者信息",
"creator": "创建工具",
"creationDate": "2024-01-01T00:00:00.000Z"
},
"metadata": {
"filePath": "处理的文件路径",
"fileSize": 1024000,
"processingTime": 1500,
"extractedLength": 50000,
"extractionMethod": "OCR",
"ocrUsed": true,
"ocrLanguage": "chi_sim+eng",
"imageQuality": 200,
"textDensity": 2000
}
}
}
{
"success": false,
"error": {
"code": "FILE_NOT_FOUND",
"message": "指定的PDF文件不存在",
"details": "文件路径: /path/to/file.pdf"
}
}
用户说:"帮我读取这个PDF文件的内容:./report.pdf"
AI自动执行:
npx pdf-reader-tool "./report.pdf"
AI解析结果并回复:
✅ PDF读取成功!
📊 文档信息:
- 页数:25页
- 标题:年度报告
- 文件大小:2.3MB
- 处理时间:1.2秒
📄 内容摘要:
这是一份关于公司年度业绩的报告,包含财务数据、市场分析...
[完整内容已提取,共15,000字符]
用户说:"这是一个扫描版PDF,帮我提取文字内容"
AI自动执行:
npx pdf-reader-tool "./scanned.pdf" --enable-ocr true --ocr-language chi_sim+eng
用户说:"帮我处理文件夹中的所有PDF文件"
AI会自动:
- 扫描文件夹中的PDF文件
- 逐个调用工具处理
- 汇总所有结果展示给用户
- ✅ Claude Desktop (支持MCP)
- ✅ Claude Web (通过代码执行)
- ✅ ChatGPT Code Interpreter
- ✅ Cursor AI
- ✅ 其他支持代码执行的AI助手
- 路径格式:支持相对路径和绝对路径
- 错误处理:AI会自动解析错误并给出解决建议
- 结果展示:AI会将JSON结果转换为友好的格式
- 批量处理:AI可以自动处理多个文件
- ✅ 文本型PDF:Word、LaTeX等生成的PDF文档
- ✅ 扫描版PDF:通过OCR技术提取文字内容
- ✅ 图片型PDF:截图、拍照等转换的PDF文件
- ✅ 混合型PDF:包含文字和图片的复合文档
- ✅ 多语言文档:支持中文、英文等多语言OCR识别
- ✅ 学术文档:论文、教材、报告的文本分析
- ✅ 批量处理:自动识别文档类型并选择最佳处理方式
⚠️ 加密PDF:不支持密码保护的PDF文件⚠️ 超大文件:建议文件大小不超过100MB⚠️ 复杂表格:表格结构可能无法完美保持⚠️ 手写内容:手写文字的OCR识别准确率较低⚠️ 低质量扫描:模糊、倾斜的扫描件效果较差
A: 检查文件路径是否正确,确保文件存在且有读取权限。
A: 本工具不支持加密PDF,请使用未加密的PDF文件。
A: 启用OCR功能:enableOCR: true
,并调整图片质量:imageQuality: 300
。
A: 设置正确的语言:ocrLanguage: "chi_sim"
(中文)或"eng"
(英文)。
A: OCR处理较慢是正常现象,可以降低图片质量或限制页数来提升速度。
A: 建议处理小于100MB的文件,或使用maxPages选项限制处理页数。
pdf-reader-package/
├── pdf-reader.tool.js # 核心工具文件
├── pdf-reader.manual.md # 详细使用手册
├── example.js # 使用示例代码
├── package.json # 项目配置和依赖
└── README.md # 本文档
- Node.js版本: >= 16.0.0
-
主要依赖:
- pdf-parse@^1.1.1 (PDF文本提取)
- tesseract.js@^5.0.5 (OCR引擎)
- pdf2pic@^2.1.4 (PDF转图片)
- 开发者: yjy(Villain y)
- 版本: 2.1.0
- 许可证: MIT
- npm包: https://www.npmjs.com/package/pdf-reader-tool
如果你在使用过程中遇到问题,请:
- AI助手用户: 直接用自然语言描述问题,AI会自动处理
-
命令行用户: 运行
npx pdf-reader-tool --help
查看帮助 -
开发者: 查看
USAGE-GUIDE.md
获取详细文档 -
简单脚本: 运行
node scripts/simple-reader.js
查看示例 - 确保PDF文件格式正确且未加密
- 自然语言: 直接说"读取PDF"、"提取内容"等,AI会自动处理
- 路径格式: 支持相对路径和绝对路径,AI会自动处理
- 错误处理: AI会自动解析错误并给出解决建议
-
智能模式: 使用
enableOCR: "auto"
让工具自动选择最佳处理方式 - 路径处理: 使用绝对路径避免路径解析问题
- 文件检查: 处理前先检查文件是否存在
- 错误处理: 始终检查返回结果的success字段
-
性能优化:
- 文本型PDF优先使用标准提取
- 扫描版PDF适当降低图片质量提升速度
- 大批量处理时注意内存使用
-
OCR优化:
- 根据文档语言设置正确的
ocrLanguage
- 高质量扫描件可提高
imageQuality
到300 - 使用
maxPages
限制处理页数
- 根据文档语言设置正确的
开始使用PDF阅读工具,让文档处理变得更加高效! 🚀