pdf-reader-tool

2.1.1 • Public • Published

PDF阅读工具 (PDF Reader Tool)

🔧 专业的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安装(推荐)

# 全局安装
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

🚀 快速开始

方式1:自然语言调用(推荐 🌟)

如果你使用支持代码执行的AI助手(Claude、ChatGPT等),只需要说:

  • 💬 "帮我读取这个PDF文件:./document.pdf"
  • 💬 "提取这个文档的内容:C:\Users\文档\报告.pdf"
  • 💬 "分析这个PDF的内容"

AI会自动执行

npx pdf-reader-tool ./document.pdf

方式2:命令行直接使用

# 直接使用(无需安装)
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

方式3:超简单脚本(零技术门槛)

  1. 下载工具包
  2. 修改文件路径:打开 scripts/simple-reader.js,修改:
    const PDF_FILE_PATH = "./你的文件.pdf";  // 👈 改成你的PDF路径
  3. 运行脚本
    npm install  # 首次运行
    node scripts/simple-reader.js

方式4:编程调用

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

强制启用OCR(扫描版PDF)

const result = await pdfReader.execute({
  filePath: "./scanned-document.pdf",
  options: {
    enableOCR: true,           // 强制启用OCR
    ocrLanguage: "chi_sim+eng", // 中英文识别
    imageQuality: 300          // 高质量图片转换
  }
});

高级OCR配置

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"
  }
});

批量处理(混合类型PDF)

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"
  }
}

🤖 AI助手使用指南

🎯 自然语言调用示例

示例1:基本PDF读取

用户说:"帮我读取这个PDF文件的内容:./report.pdf"

AI自动执行

npx pdf-reader-tool "./report.pdf"

AI解析结果并回复

✅ PDF读取成功!

📊 文档信息:
- 页数:25页
- 标题:年度报告
- 文件大小:2.3MB
- 处理时间:1.2秒

📄 内容摘要:
这是一份关于公司年度业绩的报告,包含财务数据、市场分析...

[完整内容已提取,共15,000字符]

示例2:扫描版PDF处理

用户说:"这是一个扫描版PDF,帮我提取文字内容"

AI自动执行

npx pdf-reader-tool "./scanned.pdf" --enable-ocr true --ocr-language chi_sim+eng

示例3:批量处理

用户说:"帮我处理文件夹中的所有PDF文件"

AI会自动

  1. 扫描文件夹中的PDF文件
  2. 逐个调用工具处理
  3. 汇总所有结果展示给用户

🔧 支持的AI环境

  • Claude Desktop (支持MCP)
  • Claude Web (通过代码执行)
  • ChatGPT Code Interpreter
  • Cursor AI
  • 其他支持代码执行的AI助手

💡 AI调用最佳实践

  1. 路径格式:支持相对路径和绝对路径
  2. 错误处理:AI会自动解析错误并给出解决建议
  3. 结果展示:AI会将JSON结果转换为友好的格式
  4. 批量处理:AI可以自动处理多个文件

⚠️ 使用限制

适用场景

  • 文本型PDF:Word、LaTeX等生成的PDF文档
  • 扫描版PDF:通过OCR技术提取文字内容
  • 图片型PDF:截图、拍照等转换的PDF文件
  • 混合型PDF:包含文字和图片的复合文档
  • 多语言文档:支持中文、英文等多语言OCR识别
  • 学术文档:论文、教材、报告的文本分析
  • 批量处理:自动识别文档类型并选择最佳处理方式

限制场景

  • ⚠️ 加密PDF:不支持密码保护的PDF文件
  • ⚠️ 超大文件:建议文件大小不超过100MB
  • ⚠️ 复杂表格:表格结构可能无法完美保持
  • ⚠️ 手写内容:手写文字的OCR识别准确率较低
  • ⚠️ 低质量扫描:模糊、倾斜的扫描件效果较差

🔧 常见问题

Q: 文件不存在错误

A: 检查文件路径是否正确,确保文件存在且有读取权限。

Q: PDF文件已加密

A: 本工具不支持加密PDF,请使用未加密的PDF文件。

Q: 扫描版PDF提取效果差

A: 启用OCR功能:enableOCR: true,并调整图片质量:imageQuality: 300

Q: OCR识别语言不准确

A: 设置正确的语言:ocrLanguage: "chi_sim"(中文)或"eng"(英文)。

Q: 处理速度慢

A: OCR处理较慢是正常现象,可以降低图片质量或限制页数来提升速度。

Q: 处理大文件时内存不足

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

📞 支持

如果你在使用过程中遇到问题,请:

  1. AI助手用户: 直接用自然语言描述问题,AI会自动处理
  2. 命令行用户: 运行 npx pdf-reader-tool --help 查看帮助
  3. 开发者: 查看 USAGE-GUIDE.md 获取详细文档
  4. 简单脚本: 运行 node scripts/simple-reader.js 查看示例
  5. 确保PDF文件格式正确且未加密

🎯 最佳实践

🤖 AI助手用户

  1. 自然语言: 直接说"读取PDF"、"提取内容"等,AI会自动处理
  2. 路径格式: 支持相对路径和绝对路径,AI会自动处理
  3. 错误处理: AI会自动解析错误并给出解决建议

🔧 技术用户

  1. 智能模式: 使用enableOCR: "auto"让工具自动选择最佳处理方式
  2. 路径处理: 使用绝对路径避免路径解析问题
  3. 文件检查: 处理前先检查文件是否存在
  4. 错误处理: 始终检查返回结果的success字段
  5. 性能优化:
    • 文本型PDF优先使用标准提取
    • 扫描版PDF适当降低图片质量提升速度
    • 大批量处理时注意内存使用
  6. OCR优化:
    • 根据文档语言设置正确的ocrLanguage
    • 高质量扫描件可提高imageQuality到300
    • 使用maxPages限制处理页数

开始使用PDF阅读工具,让文档处理变得更加高效! 🚀

Package Sidebar

Install

npm i pdf-reader-tool

Weekly Downloads

4

Version

2.1.1

License

MIT

Unpacked Size

33.9 kB

Total Files

5

Last publish

Collaborators

  • grey7213