PDF.js - 免费开源的 JavaScript 读取、显示 PDF 文档的工具库,由 Mozilla 开发并且持续维护

本文介绍了PDF.js,一款由Mozilla开发的JavaScript库,用于在浏览器中解析和显示PDF文档。它支持PDF操作,如导出为图片和提取文字,且兼容性良好。作者分享了在Vue项目中使用PDF.js的实现方法和其丰富的功能特性。
摘要由CSDN通过智能技术生成

PDF.js - 免费开源的 JavaScript 读取、显示 PDF 文档的工具库,由 Mozilla 开发并且持续维护

最近新项目需要处理 PDF,研究了 PDf.js 之后觉得很不错,于是写篇文章推荐给大家。

PDF.js 的功能和它的名字一样简单,是一个使用 HTML5 技术来让前端网页支持读取、解析和显示 PDF 文档JS 工具库。这个项目由大名鼎鼎的 Mozilla 组织开发并且更新维护着,没错,就是那个开发了火狐浏览器的 Mozilla。所以 pdf.js 也内置在 Firefox 的 19+ 版本中,也是火狐浏览器的默认 PDF 处理工具。

一般来说,要查看 PDF 文档,我们需要一个 PDF 阅读器软件,而通过 PDF.js 可以在浏览器中直接显示和处理 PDF 文档,无论是在线浏览、存档或者其他基于 PDF 的功能都可以实现。

PDF.js 项目主页

  • 功能强大,内置了很多实用的 api,几乎可以对 PDF 文件“为所欲为”;
  • 兼容性超好,不仅支持现代浏览器,对于旧版本的浏览器也有很好的支持;
  • 易于上手,官方也提供了很多代码例子。

如果只是为什么显示 PDF 文档,其实大部分情况下浏览器都支持直接打开 PDF,之前碰到要显示 PDF 的需求,都是直接在浏览器新标签打开。

在浏览器中渲染 PDF

不过就在上周,我接到了一个需求,要在网页上支持导入 PDF 文件,转化成图片保存到后端,并且还要提取 PDF 文档中的文字。于是我就开始研究 PDF.js ,了解之后发现这个工具库非常强大,完全可以满足我的需求,那些在线转换 PDF 的工具实际上都是基于 PDF.js 开发的。

我要处理的文档有一部分是发票,其实里面的文字并不是图片,而是可以选择的,这种类型的文档通过 PDF.js 甚至可以直接获取文字的内容,OCR 识别的过程都免了,实在太棒了。

要开始使用 PDF.js ,可以直接从项目下载源码,然后在页面中引入 pdf.js ,就可以按照代码例子那些来使用了。

官方文档

我的实现方式

我是在 Vue 项目中使用,所以我选择用 npm 安装的方式:

然后在 Vue 页面中引入 PDF.js,注意这里的引入方式,需要在包名后加上 /webpack ,否则会报错,原因我也没有去深入排查。

上面这段代码就是我项目 demo 中的一部分,可以实现读取 PDF 文档中的页面和文字,代码的末尾把第一页渲染到了 canvas 中,想要转成图片,只要把 canvas 中的内容转成 PNG 图片即可,区区十来行代码,非常简单。

更多建议

除了提取文章和转成图片,PDF.js 还很多强大的功能,比如可以实现页面导航,预览时加入缩放、滚动、旋转和手写等注释以及实现打印、另存为等操作。

还有些付费软件的功能是压缩 PDF 文档,PDF.js 也可以压缩处理超大型的 PDF 文档,技术原理是把文档中没有使用的结构、元素和对象删除,大大简化文档,从而起到压缩的效果。

总之,想要在项目处理 PDF,PDF.js 是首选,并且目前没有看到类似好用并且强大的 JS 库,反而很多 PDF 工具都是基于 PDF.js 二次封装的。

Mozilla 组织本身是一个非营利性组织,成立以来一直致力于推动浏览器的良好发展,PDF.js 也不例外,是一个免费开源的项目,源码基于 Apache 2.0 许可托管在 Github 上,任何人都可以免费下载来使用,用在商业项目也完全没问题。

原文链接:https://www.thosefree.com/pdfjs

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pdf.js-master是一个开源JavaScript,用于在Web上显示PDF文件。要运行pdf.js-master,首先需要下载该的源代码并解压缩。 然后,在你的网站项目中创建一个HTML文件,引入pdf.js-master的文件和样式表。可以通过在<head>标签中添加以下代码来引入所需的文件: ``` <link rel="stylesheet" type="text/css" href="path/to/pdf.js-master/web/pdf_viewer.css"> <script src="path/to/pdf.js-master/build/pdf.js"></script> ``` 接下来,在HTML文件的<body>标签中创建一个容器来放置PDF查看器。可以通过以下代码来创建一个简单的容器: ``` <div id="pdf-container"></div> ``` 然后,你需要在JavaScript中编写代码来加载和显示PDF文件。你可以通过以下代码来实现: ```javascript var pdfUrl = 'path/to/your/pdf/file.pdf'; var container = document.getElementById('pdf-container'); pdfjsLib.getDocument(pdfUrl).promise.then(function (pdf) { for (var pageNum = 1; pageNum <= pdf.numPages; pageNum++) { pdf.getPage(pageNum).then(function (page) { var canvas = document.createElement('canvas'); var context = canvas.getContext('2d'); var viewport = page.getViewport({ scale: 1.5 }); canvas.height = viewport.height; canvas.width = viewport.width; container.appendChild(canvas); page.render({ canvasContext: context, viewport: viewport }); }); } }); ``` 以上代码将加载PDF文件,并将每个页面渲染到一个canvas元素中,然后将canvas元素添加到pdf-container中。你可以根据需要对代码进行自定义和调整,以适应你的项目需求。 最后,在浏览器中打开HTML文件,你将能够看到PDF文件在Web上的显示和渲染效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值