You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js使用pdfjs-dist提取PDF文本时pdf.getPage不是函数的问题解决

使用pdfjs-dist提取PDF文本时的TypeError问题解决

问题场景

使用Node.js结合pdfjs-dist提取PDF文本,编写以下代码后运行报错:

import pdfjs from 'pdfjs-dist/build/pdf.js';
import pdfjsWorker from 'pdfjs-dist/build/pdf.worker.entry.js';

pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker;

const pdf = await pdfjs.getDocument('testdoc.pdf');
const page = await pdf.getPage(1);

错误信息:

const page = await pdf.getPage(1);
                       ^

TypeError: pdf.getPage is not a function

错误原因

pdfjs.getDocument() 返回的是PDFLoadingTask对象,而非直接的PDF文档实例。该对象本身不包含getPage方法,必须先通过其内部的promise属性获取到真正的PDFDocument实例,才能调用文档操作相关方法。

解决方法

修改代码,通过pdfjs.getDocument().promise获取PDFDocument实例,完整示例如下:

import pdfjs from 'pdfjs-dist/build/pdf.js';
import pdfjsWorker from 'pdfjs-dist/build/pdf.worker.entry.js';

pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker;

// 先通过promise属性拿到真正的PDF文档实例
const pdf = await pdfjs.getDocument('testdoc.pdf').promise;
const page = await pdf.getPage(1);

// 提取当前页面文本的示例
const textContent = await page.getTextContent();
const pageText = textContent.items.map(item => item.str).join(' ');
console.log(pageText);

内容的提问来源于stack exchange,提问作者me.at.coding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:52:21