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

如何运行pdf.js的Node示例?解决模块找不到错误

解决pdf.js Node示例运行失败的问题及相关疑问解答

一、让Node示例正常运行的方法

方法1:调整运行目录

你当前进入examples/node目录后运行node getinfo.js,但脚本里的模块引用路径是相对于项目根目录的。回到项目根目录执行命令即可:

cd C:\Repositories\pdf.js
node examples/node/getinfo.js

方法2:修改脚本的模块引用路径

如果想在examples/node目录下运行,修改getinfo.js里的require路径为相对当前文件的路径:

// 原路径
const pdfjsLib = require('pdfjs-dist/legacy/build/pdf.js');
// 修改为
const pdfjsLib = require('../../pdfjs-dist/legacy/build/pdf.js');

修改后再在examples/node目录下运行node getinfo.js即可。

二、关于legacy路径的疑问

  • 为什么用legacy路径?
    pdfjs-dist/legacy下的版本是为兼容旧运行环境(比如不支持ES模块的Node版本、老旧浏览器)而提供的,采用CommonJS模块规范,适配传统Node项目的require语法。现代版本(pdfjs-dist/build)则使用ES模块,更贴合当前前端/Node的模块化趋势。

  • 能否更新到当前版本?
    可以。只需修改模块引用路径为现代版本入口:

// 替换legacy路径为现代版本路径
const pdfjsLib = require('pdfjs-dist/build/pdf.js');

如果你的Node版本(v18+已支持)兼容ES模块,也可改用import语法,同时给项目的package.json添加"type": "module"配置:

import * as pdfjsLib from 'pdfjs-dist/build/pdf.js';

三、最新入门示例

推荐通过npm安装pdfjs-dist搭建项目,步骤更简洁且能使用最新版本:

  1. 创建新目录并初始化项目:
mkdir pdfjs-node-demo
cd pdfjs-node-demo
npm init -y
npm install pdfjs-dist
  1. 创建getinfo.js脚本:
const fs = require('fs');
const pdfjsLib = require('pdfjs-dist');

async function extractPdfInfo(pdfFilePath) {
  // 读取本地PDF文件
  const pdfData = new Uint8Array(fs.readFileSync(pdfFilePath));
  // 加载PDF文档
  const pdfDoc = await pdfjsLib.getDocument(pdfData).promise;
  
  // 输出文档信息
  console.log('文档标题:', pdfDoc.info.Title || '无标题');
  console.log('作者:', pdfDoc.info.Author || '未知作者');
  console.log('总页数:', pdfDoc.numPages);
  
  // 关闭文档
  await pdfDoc.destroy();
}

// 替换为你的PDF文件路径
extractPdfInfo('./test.pdf');
  1. 运行脚本:
node getinfo.js

内容的提问来源于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 10:12:12