js用pdfjs2.5.207 将文件转成图片

word文件转成图片困难,PDF文件可以通过pdfjs插件转成图片。注意pdfjs插件对浏览器版本有兼容限制,最新的pdf4采用es6语法,老版本浏览器(google91亲测支持)或者老版本项目中不能使用,必须使用es5语法的版本,经过多次版本试验,pdfjs2.5.207是可以的,这里简单给出使用示例代码,需要下载文件可以到https://gitee.com/dilongjuan/pdfjs2.5.207.git下载压缩包。
html部分代码:

<script src="../../../js/jquery.min.js"></script>
  <script src="../../../js/pdf/build/pdf.js"></script>
  <script src="../../../js/pdf/build/pdf.worker.js"></script>
<div id="pdfImg">
    </div>

js代码:

function pdfToImg() {
  var url = "./11.pdf";//文件路径
  previewPdf(url);
}
function previewPdf(url) {
  if (url) {
    pdfjsLib.workerSrc = 'pdf.worker.js';
    var loadingTask = pdfjsLib.getDocument({
      scale: 1,
      url: url,
      cMapUrl: '../../../js/pdf/web/cmaps/', // 解决图片没有汉字的问题
      cMapPacked: true // 解决图片没有汉字的问题
    })

    loadingTask.promise.then((pdf) => {
      console.log('PDF loaded');
      var pageNum = pdf.numPages;
      for (var i = 1; i <= pageNum; i++) {
        pdf.getPage(i).then(function (page) {
          console.log('Page loaded');

          var viewport = page.getViewport({
            scale: 1
          });

          var canvas = document.createElement("canvas");
          var context = canvas.getContext('2d');
          canvas.height = viewport.height;
          canvas.width = viewport.width;

          var renderContext = {
            canvasContext: context,
            viewport: viewport
          };
          var renderTask = page.render(renderContext);
          renderTask.promise.then(function () {
            console.log('Page rendered');
            var imgUrl = canvas.toDataURL('image/jpeg'); //转换为base64
            const img = document.createElement('img');
            img.src = imgUrl;
            img.style.height = "200px";
            img.style.width = "200px";
            document.getElementById("pdfImg").appendChild(img);
          });
        });
      }
    }, (reason) => {
      console.error(reason);
    });
  }
}

效果图:


image.png

注意:pdfjs2.5版本在ie11上不支持,ie11亲测需要使用稳定版2.0.943,下载地址同上,注意不同版本代码区别;

//pdfjs2.5.207以后版本 支持google91
         // var viewport = page.getViewport({
         //   scale: 1
         // });

         //PDFJS2.0.943版本 支持ie11
         var viewport = page.getViewport(1);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容