前端PDF文件转图片方法(你值得收藏)

第一步:先下载pdfjs,网址:PDF下载地址,再引入到项目中,我是标签直接引用的

<script src="pdfjs/build/pdf.js"></script>
<script src="pdfjs/build/pdf.worker.js"></script>

注意:两个都要引进来

第二步:html代码添加两行代码,一个是canvas用来绘图,一个是img用来最后展示转换后的pdf图片

<body><img :src="imgUrl" alt="" width="100%" height="auto"><canvas id="the-canvas" style="display: none"></canvas>
</body>

第三步:js代码块,主要是将paf通过pdfjs插件绘制到canvas,然后再转换为base64格式的图片

//url参数是pdf地址,imgUrl是最后的base64格式图片
showPdf(url) {let _this = this;let imgArr = [];pdfjsLib.workerSrc = 'pdf.worker.js';let loadingTask = pdfjsLib.getDocument(url);// PDFJS.workerSrc = 'pdf.worker.js';// pdfjsLib为undefined可以换成这行// let loadingTask = PDFJS.getDocument(url);// pdfjsLib为undefined可以换成这行loadingTask.promise.then(function(pdf) {console.log('PDF loaded');let pageNum = pdf.numPages;// console.log(pageNum);for (let i=1; i<=pageNum; i++) {pdf.getPage(i).then(function(page) {console.log('Page loaded');let scale = 1;let viewport = page.getViewport(scale);// let canvas = document.getElementById('the-canvas');let canvas = document.createElement("canvas");let context = canvas.getContext('2d');canvas.height = viewport.height;canvas.width = viewport.width;let renderContext = {canvasContext: context,viewport: viewport};let renderTask = page.render(renderContext);renderTask.then(function () {console.log('Page rendered');let imgUrl = canvas.toDataURL('image/jpeg'); //转换为base64if (imgUrl) {imgArr[i-1] = imgUrl;}//pdf全部画完结束后操作if (imgArr.length==pageNum&&!isEmpty(imgArr)) {// let canvas2 = document.createElement("canvas");let canvas2 = document.getElementById('the-canvas');let context2 = canvas2.getContext('2d');canvas2.height = viewport.height*pageNum;canvas2.width = viewport.width;let count = 0;for (let j=0; j<imgArr.length; j++) {let IMG = new Image();IMG.src=imgArr[j];IMG.width = viewport.width;IMG.height = viewport.height;IMG.onload = function () {context2.drawImage(IMG,0,viewport.height*j);count++;//确保所有img渲染结束后操作if (count==pageNum) {let canvas = document.getElementById('the-canvas');//赋值给img_this.imgUrl = canvas.toDataURL('image/jpeg'); }}}}});});}}, function (reason) {console.error(reason);});function isEmpty(arr) {for(let i=0;i<arr.length;i++) {if(!arr[i])return true;}return false;}
}

前端PDF文件转图片方法(你值得收藏)相关推荐

  1. vue中PDF文件转图片方法

    所需工具 1.pdfjs-dist(负责API解析,可将pdf文件渲染成canvas实现预览) 2.pdfjsWorker(负责核心解析) 网址奉上:pdf网址 工具下载 npm install -- ...

  2. PDF文件转图片怎么弄?这个方法值得收藏

    PDF文件是一种广泛使用的文件格式,其保留了原始文档的格式和内容,使其在不同平台上具有高度的兼容性.然而,在某些情况下,我们需要将PDF文件转换为图片格式以便于处理和分享.本文将介绍两种方法将PDF文 ...

  3. pdf转图片 java_有将pdf文件转图片的格式方法吗?

    有时候我们为了方便传输,需要把图片转为PDF的格式,因为它所占的空间相对要小.但是因为pdf文件的安全性很好所以不能进行编辑,那我们又要进行编辑图片的时候,就又会把PDF文件格式转换成图片来进行编辑. ...

  4. 上传pdf文件转图片翻页小工具,遇到JSP form中type=file的文件上传及后台Part处理问题(后台取值为null)

    最近公司要求做一个上传pdf文件后将文件转换为翻页图片的小工具,我是这么做的 1.先找图片翻页的demo,微软有现有的产品turn.js感兴趣的可以自己看一下 ,有双页的有单页的,因为我司要求手机端使 ...

  5. java网页保存pdf_JavaScript+Java实现HTML页面转为PDF文件保存的方法

    JavaScript+Java实现HTML页面转为PDF文件保存的方法 发布于 2017-02-27 09:58:50 | 160 次阅读 | 评论: 0 | 来源: 网友投递 JavaScript客 ...

  6. java 网页保存为pdf文件怎么打开方式_js相关:JavaScript+Java实现HTML页面转为PDF文件保存的方法...

    js相关:JavaScript+Java实现HTML页面转为PDF文件保存的方法 发布于 2020-8-12| 复制链接 借助iText这个Java库,我们可以将HTML文件保存为图片文件进而转换成P ...

  7. 移动端实现PDF文件阅读的方法

    2019独角兽企业重金招聘Python工程师标准>>> 前言: 我们知道,Android系统本身不具备打开PDF文件的能力,因此在Android 要实现 PDF 阅读功能需要借助于第 ...

  8. python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  9. python中读取文件内容-深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

最新文章

  1. 多重背包单调队列优化思路_多重背包之单调队列优化理论性总结
  2. SpringMVC源码阅读:过滤器
  3. Vue.js 状态过渡
  4. AbstractBeanFactory 的getBean()方法调用FactoryBean
  5. php 单例模式原理,PHP单例模式demo详解
  6. React-router总结
  7. js for循环_JS 函数的执行时机(深入理解6个6)
  8. 42 WM配置-作业-库存盘点-定义默认设置
  9. JS:ES6-4 简化对象与箭头函数
  10. 如何全面认识大数据分析的基础知识
  11. Android中突发情况数据的保存和恢复
  12. 《第一本docker书》第4章 使用docker镜像和仓库 读书笔记
  13. js百度地图小车html,百度地图web开发(基于javascript)
  14. stm32F205程序移植到stm32F405片子,使用FPU时注意事项
  15. matlab chrom(i pos),Matlab遗传算法问题 MATLAB遗传算法
  16. 什么是爬虫-Java网络爬虫系统性学习与实战(2)
  17. 计算机自动化专业强的二本大学,2020自动化专业大学排名公布
  18. 英文简历模板计算机专业,2016计算机专业英文简历模板
  19. pdfjs转图片_PDF转图片,PDF转JPG/PNG,完全由JS实现-阿里云开发者社区
  20. 第一行代码第二版6.4.1小节创建数据库中遇到adb shell出错的问题

热门文章

  1. Python —对象的浅拷贝和深拷贝
  2. 熤星传媒:抖音这些方面要注意!
  3. 谷歌drive收费_Google Drive的系统设计分析
  4. @Around环绕增强
  5. php group 用法,thinkphp5 链式操作group分组用法
  6. AutoLISP将图形中文字写入外部文件
  7. 如何看损失函数图loss
  8. 水星mw325r设置无线服务器未响应,水星MW325R无线路由器上网的设置技巧
  9. 业务复习-微信登录/第三方登录实现
  10. 信息系统项目管理师 第一章-信息系统与信息化