使用 JavaScript 从 PDF 中提取特定部分的文本可以通过 pdf-lib
或 pdfjs-dist
等库来实现。以下是一个使用 pdfjs-dist
库的示例,展示如何从 PDF 中提取文本并找到特定部分。
pdfjs-dist
首先,你需要安装 pdfjs-dist
库。你可以使用 npm 来安装:
npm install pdfjs-dist
以下是一个完整的示例,展示如何使用 pdfjs-dist
从 PDF 中提取文本并找到特定部分:
const pdfjsLib = require('pdfjs-dist/legacy/build/pdf');
async function extractTextFromPDF(url, searchText) {
// 加载 PDF 文档
const loadingTask = pdfjsLib.getDocument(url);
const pdf = await loadingTask.promise;
let extractedText = '';
// 遍历每一页
for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {
const page = await pdf.getPage(pageNum);
const textContent = await page.getTextContent();
// 提取文本
const pageText = textContent.items.map(item => item.str).join(' ');
extractedText += pageText + '\n';
}
// 查找特定部分
const startIndex = extractedText.indexOf(searchText);
if (startIndex !== -1) {
const endIndex = extractedText.indexOf('\n', startIndex);
const foundText = extractedText.substring(startIndex, endIndex);
console.log('Found text:', foundText);
} else {
console.log('Text not found');
}
}
// 示例用法
const pdfUrl = 'path/to/your/pdf-file.pdf';
const searchText = 'specific text to find';
extractTextFromPDF(pdfUrl, searchText);
pdfjsLib.getDocument(url)
加载 PDF 文档。url
可以是本地文件路径或远程 URL。pdf.numPages
获取 PDF 的总页数,并遍历每一页。pdf.getPage(pageNum)
获取每一页的内容。page.getTextContent()
获取页面的文本内容。item.str
)连接成一个字符串。indexOf
查找特定文本的起始位置。extractTextFromPDF
函数进行文本提取和查找。pdfjs-dist
库的 API 可能会随版本更新而变化,请参考官方文档获取最新信息。云+社区技术沙龙[第7期]
Elastic 中国开发者大会
腾讯技术创作特训营第二季
DB TALK 技术分享会
云+社区技术沙龙[第15期]
Elastic 中国开发者大会
云+社区技术沙龙[第16期]
云+社区技术沙龙[第23期]
领取专属 10元无门槛券
手把手带您无忧上云