JS将PDF转图片,pdfjs的使用

这篇具有很好参考价值的文章主要介绍了JS将PDF转图片,pdfjs的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hi I’m Shendi

最近做转换工具,需要将pdf转图片,这里记录下来


JS将PDF转图片,pdfjs的使用




简介

A general-purpose, web standards-based platform for parsing and rendering PDFs.

一个通用的、基于web标准的平台,用于解析和呈现PDF。

简单讲就是用来展示pdf的



官方Demo

https://mozilla.github.io/pdf.js/examples/



API文档

这个api文档感觉不太好,没有目录和重定向链接之类的,全程靠Ctrl+F搜素…

https://mozilla.github.io/pdf.js/api/draft/index.html



下载

https://mozilla.github.io/pdf.js/getting_started/

点击下载即可

JS将PDF转图片,pdfjs的使用


下载后解压,进入build目录,需要的文件有两个,pdf.jspdf.worker.js



使用

代码内只需要引入 pdf.js

上面说到的两个文件如果不放在同一文件夹下的话就需要进行以下设置

pdfjsLib.GlobalWorkerOptions.workerSrc = "pdf.worker.js的地址";

当然,放在同一文件夹也可以进行以上设置,不然控制台会输出一个提示


Deprecated API usage: No “GlobalWorkerOptions.workerSrc” specified.

不推荐使用API:未指定“GlobalWorkerOptions.workerSrc”。




有一全局变量 pdfjsLib,通过此来进行操作

大致分为以下几步

  1. 获取文档 - getDocument
  2. 通过文档获取页 - getPage
  3. 将页渲染到canvas - render


我的目的是将pdf转图片,经过上面的步骤,最后将canvas转图片就可以达到目的了


获取文档

getDocument 函数接收一个参数为pdf文件,API文档上说明可以为以下类型

string | URL | TypedArray | ArrayBuffer | DocumentInitParameters

我将用户上传的文件转链接,使用 URL.createObjectURL(),(下面示例使用的sw是我封装的工具包)

返回一个 PDFDocumentLoadingTask,操作是异步的,可以使用Promise来获取结果

pdfjsLib.getDocument(sw.getObjectURL(file)).promise.then(function(pdf) {
    // 参数pdf代表获取的文档了
});


获取页

拿到文档后,可以通过文档获取页,通过 getPage 函数

JS将PDF转图片,pdfjs的使用


numPages 属性为总页数,可以通过这个来遍历,同样获取页数也是异步

示例如下

for (let i = 1; i <= pdf.numPages; i++) {
    pdf.getPage(i).then(function(page) {
        // page为拿到的页数
    });
}

还有很多的函数,可以参考api文档



渲染

拿到页后,通过 render 来渲染

JS将PDF转图片,pdfjs的使用


具体参数可以查阅api文档,这里传递的obj大致需要canvas环境和页面视口,渲染同样也是异步的,渲染完后,在canvas上就显示pdf的内容了。如下

var canvas = document.createElement("canvas");
page.render({
    canvasContext: canvas.getContext('2d'),
    // scale代表缩放
    viewport: page.getViewport({ scale: 1.5 })
}).promise.then(function () {
    // 渲染完成,进行后续操作
});;


我的目的是将pdf转图片,现在内容渲染到canvas上,只需要将canvas转图片就可以了



Canvas转图片

可以用 canvas.toDataURL 转图片链接,用a标签打开下载,但我需要将多图片打包到压缩文件,所以需要转字节,使用 canvas.toBlob

// canvas转链接,通过a标签下载. 这里下载使用我自己封装的库了
sw.downUrl(canvas.toDataURL("image/png"), "图片.png");

// canvas转字节数组,加入到压缩文件,使用的jszip
canvas.toBlob(function (e) {
    // 这里是jszip的用法,e是canvas内容数据,可以参考api文档
    folder.file(i + "." + outType, e);
}, "image/png", 1);



END文章来源地址https://www.toymoban.com/news/detail-509439.html

到了这里,关于JS将PDF转图片,pdfjs的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端pdf预览、pdfjs的使用

    关于前端预览pdf,最简单的方式是使用 window.open() 直接在浏览器的新窗口打开就好,浏览器本身也是提供了非常多的功能 但是因为客户的某些需求,不能使用浏览器自身的功能。后来又使用了 https://github.com/gjTool/pdfh5,也挺好用的,操作比较简单。使用了一段时间吧,但是还

    2024年02月12日
    浏览(33)
  • 使用pdfjs实现在线预览pdf

    在工作中可能会遇到前端展示pdf文件进行预览并提供下载的需求场景,例如操作指引,这个时候需要寻找一款实现该功能的插件,以pdjjs举例子 这个地方区分是请求后端接口还是直接加载本地pdf文件 如果是请求后端获取到的pdf文件流 如果是读取本地的文件,则url地址直接是本地的

    2024年02月07日
    浏览(27)
  • 【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件

    【Vue】vue2预览显示quill富文本内容,vue-quill-editor回显页面,v-html回显富文本内容 【Vue】vue2项目使用swiper轮播图2023年8月21日实战保姆级教程 【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件 提示:这里可以添加本文要记录的大概内容: vue

    2024年02月07日
    浏览(39)
  • Java使用pdfbox进行pdf和图片之间的转换

    pdfbox是Apache开源的一个项目,支持pdf文档操作功能。 官网地址: Apache PDFBox | A Java PDF Library 支持的功能如下图. 引入依赖

    2024年02月06日
    浏览(44)
  • nuxt3项目使用pdfjs-dist预览pdf

    使用的包的源代码是 pdfjs - npm 但是我们实际上项目中使用的是pdfjs打包后的dist文件,也就是pdfjs-dist - npm 所以我们需要使用这个命令 我们可以克隆pdfjs这个包来看源代码,里面有使用的例子,也可以根据源代码自己打包生成你想要的版本的pdfjs-dist,官方文档强调了对于新旧

    2024年02月09日
    浏览(23)
  • JS将图片转pdf,jspdf的使用

    Hi I’m Shendi 最近做转换工具,需要将图片转pdf,这里记录下来 JS将图片转pdf,jspdf的使用 A library to generate PDFs in JavaScript. 一个用JavaScript生成PDF的库。 在网站或github下载 https://parall.ax/products/jspdf https://github.com/parallax/jsPDF 解压后在 在页面内引入 dist 下的 jspdf.umd.min.js 文件 官方

    2024年02月12日
    浏览(26)
  • 如何使用Word转PDF转换器在线工具?在线Word转PDF使用方法

    Word转PDF转换器在线,是一种方便快捷的工具,可帮助您在不需要下载任何软件的情况下完成此任务。无论您是需要在工作中共享文档,还是将文件以PDF格式保存以确保格式不变,都可以依靠这款在线工具轻松完成转换。那么如何使用Word转PDF转换器在线工具呢? 如何使用Word转

    2024年02月14日
    浏览(43)
  • 在线图片怎么转换成PDF?在线图片转换成PDF步骤介绍

    文件格式要转化不知道怎么办?想要网上下载文件格式转换软件,但是却不知道下载哪个好?今天小编小编就给大家分享一下靠谱的小圆象PDF转换器工具,想知道这款软件好不好用?在线图片怎么转换成PDF?那就进来看看吧。 在线图片怎么转换成PDF 小圆象PDF转换器可以实现几十种

    2024年02月11日
    浏览(34)
  • PDF转图片pdf转换图片,线程池

    然后用的时候:

    2024年02月11日
    浏览(35)
  • Vue3前端h5移动端页面预览PDF使用pdfjs-dist,添加自定义文本水印

    pnpm i pdfjs-dist@2.5.207

    2024年01月18日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包