pdfjs提取pdf上的文字
时间: 2025-03-18 22:31:54 浏览: 10
使用 PDF.js 提取 PDF 文件中的文本
PDF.js 是 Mozilla 开发的一个用于解析和渲染 PDF 的开源 JavaScript 库。它支持多种功能,其中包括从 PDF 中提取文本内容的功能。
以下是通过 PDF.js 实现从 PDF 文件中提取文本的具体方法:
安装 PDF.js
如果需要在 Node.js 环境下运行,则可以通过 npm 进行安装:
npm install pdfjs-dist
对于浏览器环境,可以直接引入官方提供的脚本文件或者使用 CDN 链接加载库。
示例代码:提取 PDF 文本
下面是一个完整的示例代码片段,展示如何利用 pdfjs-dist
来读取本地 PDF 并提取其文本内容[^1]。
const fs = require('fs');
const path = require('path');
const { getDocument } = require('pdfjs-dist');
// 加载 PDF 文件路径
async function extractTextFromPdf(pdfPath) {
const uint8Array = fs.readFileSync(pdfPath);
try {
// 创建 PDF 文档对象
const pdfDoc = await getDocument(uint8Array).promise;
let fullText = '';
// 循环遍历每一页并获取文本数据
for (let pageNumber = 1; pageNumber <= pdfDoc.numPages; pageNumber++) {
const page = await pdfDoc.getPage(pageNumber);
const textContent = await page.getTextContent();
const texts = textContent.items.map(item => item.str); // 获取页面上的所有字符串
fullText += texts.join(' ') + '\n'; // 将同一页内的文本拼接起来,并加上换行符分隔不同页的内容
}
console.log(fullText.trim()); // 输出最终的全文本结果
} catch (error) {
console.error("Error while processing the file:", error.message);
}
}
extractTextFromPdf(path.resolve(__dirname, 'example.pdf')); // 替换为实际存在的 PDF 路径
上述代码展示了基本流程,包括加载文档、逐页处理以及收集各页的文字信息[^2]。
关键点说明
- getTextContent() 方法 返回的是一个包含多个项的对象数组,其中每一项代表单独的一段可选中文本区域。
- 每次调用此函数都会返回当前页面上所有的可见字符及其位置坐标等元数据。
- 如果目标 PDF 包含图片形式嵌入而非矢量字体描述出来的字母数字图形,则无法正常识别这些部分作为纯文本输出[^3]。
相关推荐


















