五款常用的免费开源 JavaScript PDF 比较

前言 对于需要高性能、复杂功能或强大支持处理复杂 PDF 的项目,建议选择商业​​ PDF 库,如 ComPD

前言

对于需要高性能、复杂功能或强大支持处理复杂 PDF 的项目,建议选择商业​​ PDF 库,如 ComPDFKit for Web。但是,如果您的目标只是在 Web 应用程序中显示 PDF,则可以使用以下五个可靠的开源 JavaScript 库来查看 PDF。

正文


功能特点 NPM一下载量(2024年12月12日统计) 文件大小 Issues 框架支持 最新版本 浏览器支持 许可
pdf.js –打开 PDF
–缩放
–轮廓
–旋转
–手动工具
–滚动
–翻页
–打印
–下载
–搜索
–注释
–在 PDF 上添加文本/图像
2,434,999 37.2 MB 385 原生javascript 库,支持大多数矿界 V 4.9.155
2024 年 12 月 5 日
Firefox
Chrome
Opera
Edge
Safari
Apache-2.0 license
react-pdf –打开和阅读 PDF
–大纲
–缩略图
–旋转页面
–缩放页面
–适应页面、宽度和高度
–滚动页面
1,109,164 552 kB 36 React V 9.1.1
2024 年 9 月 18 日
Chrome
Edge
Safari
Firefox
MIT
pdfmake –打开和阅读 PDF
–翻页
–两页视图
–旋转页面
–调整至适合宽度
–缩放
–缩略图
–注释
–下载
–打印
–文档属性
–自定义字体
724,335 16.2 MB 264 NodeJS V 0.2.15
2024 年 11 月 3 日
Internet Explorer 11
Edge
12+
Firefox
Chrome
Chrome (Android)
Opera
Safari (iOS)
Safari (iOS) iPhone
MIT
ng2-pdf-viewer –打开和阅读 PDF
–搜索 PDF
–旋转页面
–查看器大小选项: 宽度、高度、适合页面
–轮廓
–滚动页面
169,012 282 kB 83 Angular V 10.4.0
2024 年 12 月 11 日
/ MIT
ngx-extended-pdf-viewer –自定义工具栏: 按钮和大小
–打开和阅读 PDF
–注释
–表格
–缩略图
–轮廓
–颜色主题
–缩放
–旋转页面
–打印
–下载
–全屏模式
–滚动
88,719 43.2 MB 34 Angular V 22.1.0-alpha.0
2024 年 12 月 11 日
兼容最新版本的流行浏览器 Apache-2.0

1. pdf.js

PDF.js 是 Mozilla 开发的开源 JavaScript 库,旨在直接在 Web 浏览器中呈现 PDF 文件,而无需额外的插件。它强调在不同平台上提供无缝的 PDF 阅读体验。

优点 *

  • 高度灵活和全面,可直接在浏览器中处理 PDF 文件。
  • 得到 Mozilla 的大力支持,拥有活跃的社区和定期更新。
  • 完全免费和开源,适用于各种应用程序和开发框架。
  • 除了阅读之外,还支持部分注释功能。
  • 提供插件。

缺点 *

  • 包尺寸大。
  • 对于非常复杂的 PDF,性能可能是一个问题,并且与商业选项相比缺少一些功能。
  • 对于渲染非标准或更复杂的 PDF 结构的支持有限。
  • 用户之前曾遇到过 Internet Explorer 中频繁出现页面预览失败的情况。
  • 允许代码修改和重新分发,但不如 MIT 许可证灵活。

2. react-pdf

React-pdf 是一个专门设计用于与 React 应用程序集成的库,允许开发人员在其 React 组件中呈现 PDF。它为在 React 生态系统中工作的前端开发人员提供了灵活的解决方案。

优点 *

  • 与 React 无缝集成,非常适合使用此库构建的项目。
  • 易于使用且文档清晰,注重 React 开发人员的可用性。

缺点 *

  • 仅适用于 React 项目。
  • 依赖于 PDF.js,因此它存在与 PDF.js 相同的问题。
  • 与更强大的库相比,功能有限,通常需要额外的插件来扩展功能。
  • 处理更大或更复杂的 PDF 文件时性能可能会下降。

3. pdfmake

PDFmake 是一个用 JavaScript 编写的多功能 PDF 创建库,允许以编程方式生成 PDF 文件。它以能够轻松以编程方式创建复杂、样式化的 PDF 而闻名,非常适合创建动态文档。

优点 *

  • 提供服务器端 PDF 生成,适合动态内容创建。
  • 高度可定制,支持复杂的文档结构和样式。
  • 支持多种浏览器。

缺点 *

  • 由于其配置选项过多,对于初学者来说学习起来可能比较复杂。
  • 创建非常大的文件或复杂的设计时可能会出现性能限制。

4. ng2-pdf-viewer

Ng2-pdf-viewer 是一个简单的 Angular 组件,可在 Angular 应用程序中启用 PDF 查看功能。它专注于简单性和易于与 Angular 框架集成。

优点 *

  • 轻量级且易于与 Angular 应用程序集成。
  • 专注于 PDF 的高效渲染和显示。

缺点

  • 仅适用于 Angular 项目。
  • 高级功能有限,可能需要额外的软件包才能形成完整的解决方案。
  • 与大型项目相比,更新和社区支持可能不那么强大。

5. ngx-extended-pdf-viewer

Ngx-extended-pdf-viewer 是一个 Angular 库,它提供了在 Angular 应用程序中显示 PDF 文件的广泛功能。它因其可配置性和功能丰富的行为而受到重视,可满足复杂的 PDF 处理需求。

优点 *

  • 支持几乎所有主流的现代浏览器。
  • 提供丰富的功能和自定义选项,特别适合 Angular 项目。
  • 支持广泛的 PDF 功能,包括文本选择、注释和表格处理。

缺点 *

  • 包尺寸大。
  • 仅适用于 Angular 项目。
  • 如果只需要基本功能,过多的功能可能会显得难以承受。
  • 由于其功能集非常广泛,因此包大小很大,可能并不适合所有场景。
  • 允许代码修改和重新分发,但不如 MIT 许可证灵活。