@cedrugs/pdf-parse

中文文档
1.0.0发布于 2025/09/05MITTypeScriptCommonJS近 30 天下载 6489

带有修正的 pdf- parse 叉

中文使用文档
文档目录20 节
  1. 为什么这个叉子?
  2. 安装
  3. 选项A——直接使用此范围包
  4. 选项 B — 通过 npm 化名保留旧的导入名称
  5. Basic Usage — 本地文件
  6. 常见JS
  7. 无害环境管理/类型脚本
  8. 基本用途——HTTP
  9. 例外处理
  10. 类型脚本
  11. 选项
  12. pagerender (回电)
  13. max (数目)
  14. version (字符串,pdf.js版本)
  15. 扩展- 自定义 pagerender
  16. 类似软件包
  17. 测试
  18. 支助/问题
  19. 许可证
  20. 鸣谢

@cedrugs/pdf-parse (英语)

纯JavaScript,跨平台 PDF 文本和元数据提取.
维持的叉子 pdf-parse 与 已捆绑类型脚本, (中文(简体) ), 有利于无害环境管理的默认出口,以及 节点18+ 支助.

npm license node


为什么这个叉子?

  • 包括的类型 - 船舶 index.d.ts (无需要) @types/pdf-parse) (中文(简体) ).
  • 无害环境管理和CJS友好 ——默认导入工程出箱.
  • 相同的 API 作为倒置的上游.
  • 节点18+ 现代运行时间的最小值.

如果你想保持现有的 import pdf from "pdf-parse" 使用,参见 安装( 化名) 节.


安装

选项A——直接使用此范围包

npm i @cedrugs/pdf-parse
# or
pnpm add @cedrugs/pdf-parse
# or
yarn add @cedrugs/pdf-parse

选项 B — 通过 npm 化名保留旧的导入名称

npm i pdf-parse@npm:@cedrugs/pdf-parse

现在 import pdf from "pdf-parse" 继续工作, 但决心在这个分叉.


Basic Usage — 本地文件

常见JS

const fs = require('fs');
const pdf = require('@cedrugs/pdf-parse'); // or 'pdf-parse' if using the alias

const dataBuffer = fs.readFileSync('path/to/file.pdf');

pdf(dataBuffer).then((data) => {
    // number of pages
    console.log(data.numpages);
    // number of rendered pages
    console.log(data.numrender);
    // PDF info
    console.log(data.info);
    // PDF metadata
    console.log(data.metadata);
    // PDF.js version
    // see https://mozilla.github.io/pdf.js/getting_started/
    console.log(data.version);
    // PDF text
    console.log(data.text);
});

无害环境管理/类型脚本

import pdf from '@cedrugs/pdf-parse'; // default export supported
import { readFileSync } from 'node:fs';

const buf = readFileSync('path/to/file.pdf');
const data = await pdf(buf);

console.log(data.text);

基本用途——HTTP

您可以使用软件包 crawler-request 与 pdf-parse。 。 。 .


例外处理

const fs = require('fs');
const pdf = require('@cedrugs/pdf-parse');

const buf = fs.readFileSync('path/to/file.pdf');

pdf(buf)
    .then((data) => {
        // use data
    })
    .catch((err) => {
        // handle exceptions
        console.error(err);
    });

类型脚本

这叉子是自己的 .d.ts无外部 @types/pdf-parse 需要帮助.

import pdf from '@cedrugs/pdf-parse';

const res = await pdf(Buffer.from('...'));
res.text;       // string
res.numpages;   // number
res.version;    // "default" | "v1.9.426" | "v1.10.100" | "v1.10.88" | "v2.0.550"

选项

const DEFAULT_OPTIONS = {
    // internal page parser callback
    // set this if you need a custom output format instead of raw text
    pagerender: render_page,

    // max page number to parse (<= 0 means “all pages”)
    max: 0,

    // see https://mozilla.github.io/pdf.js/getting_started/
    version: 'v1.10.100'
};

pagerender (回电)

自定义每个页面的渲染/提取方式, 如果您需要结构化的输出超过纯文本 .

max (数目)

要解析的最大页数 。 使用 0 或分析所有页面的负值.

version (字符串,pdf.js版本)

  • 'default'
  • 'v1.9.426'
  • 'v1.10.100'
  • 'v1.10.88'
  • 'v2.0.550'

默认版本是 v1.10.100见 pdf.js 开始引导。 。 。 .


扩展- 自定义 pagerender

function render_page(pageData) {
    // see https://mozilla.github.io/pdf.js/
    const render_options = {
        // replace all whitespace with standard spaces (0x20)
        normalizeWhitespace: false,
        // do not attempt to combine cedrugse-line TextItems
        disableCombineTextItems: false
    };

    return pageData.getTextContent(render_options).then((textContent) => {
        let lastY;
        let text = '';
        for (const item of textContent.items) {
            if (lastY === item.transform[5] || !lastY) {
                text += item.str;
            } else {
                text += '\n' + item.str;
            }
            lastY = item.transform[5];
        }
        return text;
    });
}

const options = { pagerender: render_page };
const dataBuffer = require('fs').readFileSync('path/to/file.pdf');

require('@cedrugs/pdf-parse')(dataBuffer, options).then((data) => {
    // use custom-formatted output
});

类似软件包

(不同的取舍:依赖性,维护,平台支持,以及输出格式


测试

  • npm test (运行) mocha(中文(简体) )
  • 见 test 上游用于使用构想的目录;欢迎在此提供补充测试.

支助/问题


许可证

麻省理工学院

鸣谢

这个项目是建立在原作者的出色工作基础上的 pdf-parse 以及PDF.js团队.

版本与发布记录

@cedrugs/pdf-parse 共发布 1 个版本,首次发布于 2025/09/05;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.0latest2025/09/051.2 年前

关于 @cedrugs/pdf-parse 的常见问题

@cedrugs/pdf-parse 是什么?

带有修正的 pdf- parse 叉

如何安装 @cedrugs/pdf-parse?

在项目目录运行 npm install @cedrugs/pdf-parse,或使用 pnpm add / yarn add / bun add。

@cedrugs/pdf-parse 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cedrugs/pdf-parse 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@cedrugs/pdf-parse 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cedrugs/pdf-parse 可以商用吗?

@cedrugs/pdf-parse 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cedrugs/pdf-parse 的下载量有多少?

根据 npm 官方下载统计,@cedrugs/pdf-parse 在 2026/10/10 – 2026/11/08 这 30 天内被下载 6,489 次,日均约 216 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cedrugs/pdf-parse 还在维护吗?

最新版本 1.0.0 发布于 2025/09/05(1.2 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2025/09/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。