news 2026/5/1 8:15:14

纯 Node.js 的 PDF 转 Markdown 方案:支持图片解析的pdf2md库 `node-pdf-to-markdown`

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
纯 Node.js 的 PDF 转 Markdown 方案:支持图片解析的pdf2md库 `node-pdf-to-markdown`

🚀 纯 Node.js 的 PDF 转 Markdown 方案:支持图片解析的pdf2md库node-pdf-to-markdown

在 Node.js 生态里,“PDF → Markdown” 一直是个被低估但非常刚需的问题

你可能遇到过这些场景:

  • 服务端需要把用户上传的 PDF 转成可编辑的 Markdown
  • 知识库 / 文档系统想统一用 Markdown 存储
  • 自动化流水线里需要解析论文、技术文档、说明书
  • 不想引入 Python、OCR、Headless Chrome 这些“重量级依赖”

于是我做了一个库:
👉node-pdf-to-markdown——纯 Node.js 环境下的 PDF 解析与 Markdown 转换库,并且原生支持图片解析


🔍 这个库解决了什么问题?

一句话总结:

在不依赖 Python、不依赖浏览器、不走 OCR 的前提下,把 PDF 结构化地转换成 Markdown,并且把图片一起处理好。

市面上很多 PDF 转换方案,往往存在几个问题:

  • ❌ 依赖 Python(部署成本高、跨环境麻烦)
  • ❌ 依赖浏览器 / Electron(资源占用大)
  • ❌ 只导出纯文本,结构和图片全丢
  • ❌ 输出不可控,难以二次处理

node-pdf-to-markdown的目标非常明确
做一个“工程可用”的 Node 端 PDF 解析工具,而不是 demo 级脚本。


⚙️ 核心设计理念

✅ 1. 纯 Node.js 运行环境

这是这个库最重要的一个设计点。

  • 不依赖 Python
  • 不需要 Java
  • 不需要 Chromium / Puppeteer
  • 可以直接运行在:
    • Node 服务端
    • CLI 工具
    • CI / GitHub Actions
    • Electron 主进程

npm install 即可用,非常适合现代 Node 工程体系。


🧠 2. 面向 Markdown 的结构化解析

这个库并不是简单地把 PDF 文本“dump”出来,而是尽可能还原文档结构

  • 标题(不同层级)
  • 段落与换行
  • 列表结构
  • 行内文本格式

最终输出的是**“可继续编辑、可被二次处理的 Markdown”**,而不是一次性产物。


🖼️ 图片解析:这是很多库做不到的地方

图片支持是node-pdf-to-markdown的一个核心亮点。

目前支持4 种图片处理模式,覆盖了几乎所有工程场景。

🔹 1️⃣ none(默认)

不解析图片,适合只关心文本的场景。


🔹 2️⃣ base64

直接把图片转成 Base64,内嵌进 Markdown:

![image](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...)

适合场景:

  • 单文件分发
  • 在线预览
  • 不方便管理图片文件的系统

🔹 3️⃣ relative

生成相对路径的 Markdown 引用,同时把图片数据返回给你:

![image](./images/page1_img1.png)

图片保存逻辑由你自己控制,非常适合高度定制化系统


🔹 4️⃣ save(推荐)

自动保存图片到指定目录,并在 Markdown 中生成引用路径:

![page1_image1](./output/images/page1_image1.png)

这是最接近真实文档迁移场景的一种模式,非常适合:

  • 知识库
  • 博客系统
  • 本地文档管理工具

🧩 使用示例(Node / 服务端友好)

importfsfrom'fs'importpdf2mdfrom'node-pdf-to-markdown'constpdfBuffer=fs.readFileSync('example.pdf')constmdPages=awaitpdf2md(pdfBuffer,{imageMode:'save',imageOutputDir:'./images'})constmarkdown=mdPages.join('\n')fs.writeFileSync('output.md',markdown)

整个流程非常干净

  1. 读取 PDF
  2. 解析
  3. 拿到 Markdown
  4. 图片自动处理

没有多余的环境成本。


🧪 为什么说它适合“工程级使用”?

从设计上,这个库非常适合被集成到更大的系统里:

  • 📦 返回结构清晰的数据,而不是只写文件
  • 📄 Markdown 按页/段输出,方便你二次处理
  • 🧱 图片处理逻辑可控,不强绑定文件系统
  • 🔧 易于封装成 API、CLI 或 SDK

这也是我在做MetaDoc / 智能文档系统时,决定自己写一个 PDF → Markdown 解析库的原因。


📌 适用场景总结

如果你正在做下面这些事情,这个库会非常合适:

  • 文档 / 论文 PDF 转 Markdown
  • 构建文档导入功能
  • 知识库、笔记系统
  • AI / RAG 系统的文档预处理
  • Node 服务端批量文档解析

🔗 项目地址

  • GitHub
    👉 https://github.com/JaredYe04/node-pdf-to-markdown
  • npm
    👉 https://www.npmjs.com/package/node-pdf-to-markdown

欢迎 Star / Issue / PR,一起把Node 生态下的 PDF 解析工具做得更工程化 💡

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 8:13:04

Switch VRF-Lite技术如何为不同业务配置独立出口?

在企业网络中将Switch的VRF-Lite技术应用于不同出口场景时,核心价值在于实现逻辑隔离与路径选择的精细化控制,使单台三层交换机能够承载多张路由表,服务于不同部门或业务,并指向各自的互联网或专线出口。 如何为不同VRF配置独立出…

作者头像 李华
网站建设 2026/4/25 18:06:21

开题报告不再被毙!虎贲等考 AI:三步搭建导师认可的学术框架

开题报告被反复打回?选题空泛没焦点、文献综述像流水账、技术路线混乱看不懂…… 这些堪称学术萌新的 “开题噩梦”,每年都让无数毕业生抓狂。一份合格的开题报告,本质是向导师证明 你的研究值得做,并且你能做好”。 而虎贲等考 …

作者头像 李华
网站建设 2026/5/1 6:19:46

Java面试必看:与的区别你真的懂吗?

文章目录Java面试必看:&与&&的区别你真的懂吗?一、基本概念:&与&&的“前世今生”1. &运算符2. &&运算符二、深入解析:&与&&的核心区别1. 短路特性对比使用“&”的情况&#…

作者头像 李华
网站建设 2026/4/15 14:00:15

基于单片机的密闭容器压力检测系统设计(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T5032407C设计简介:本设计是基于单片机的密闭容器压力检测系统设计,主要实现以下功能:通过气压传感器检测气压通过气压是…

作者头像 李华
网站建设 2026/5/1 6:04:46

新中地学员转行学GIS开发原因盘点(2)

这一期,我们继续分享另外一个比较普遍的原因:因为不想做外业而选择转行。煤矿探测转GIS开发该同学是某双非一本测绘工程专业,毕业后入职某能源型国企,每月定额下井14次,并负责一些地面技术工作,在煤矿工作一…

作者头像 李华