如何在项目中使用pdf.js查看PDF文件

最近在做后台管理类的系统,需要在web页面阅读pdf文件。发现一个很好用的插件 pdf.js,简单的介绍一下

官方文档地址:http://mozilla.github.io/pdf.js/
在线演示地址:http://mozilla.github.com/pdf.js/web/viewer.html

介绍一下官网的例子

  1. 页面引入pdf.js
  2. 使用PDFJS.getDocument(‘helloworld.pdf’)方式加载要打开的PDF文件
  3. 通过Promise的then方式处理后续的方法
PDFJS.getDocument('helloworld.pdf')
.then(function(pdf){
     //you can now use *pdf* here
});
pdf.getPage(1).then(function(page){
         // you can now use *page* here
         //;加载PDF的第一页
   })
  1. 通过h5的canvas进行展示。
var scale = 1.5;  //缩放比例
 //获取窗口大小
var viewport = page.getViewport(scale); 
 //获取canvas对象
var canvas = document.getElementById('the-canvas');  
var context = canvas.getContext('2d');  
canvas.height = viewport.height;  
canvas.width = viewport.width;  
  
var renderContext = {  
  canvasContext: context,  
  viewport: viewport  
};  
page.render(renderContext); 

下面完整的例子:

页面部分:

<h1>PDF.js Previous/Next example</h1>  
  
<div>  
  <button id="prev">Previous</button>  
  <button id="next">Next</button>  
       
  <span>Page: <span id="page_num"></span> / <span id="page_count"></span></span>  
</div>  
  
<canvas id="the-canvas"></canvas>  

js部分:


//引入pdf.js之后  
var url = '//cdn.mozilla.net/pdfjs/helloworld.pdf';  
//加载核心文件  
PDFJS.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';  
  

var loadingTask = PDFJS.getDocument(url);  
loadingTask.promise.then(function(pdf) {  
  console.log('PDF loaded');  
    
  var pageNumber = 1;  
  pdf.getPage(pageNumber).then(function(page) {  
    console.log('Page loaded');  
      
    var scale = 1.5;  
    var viewport = page.getViewport(scale);  
  
    var canvas = document.getElementById('the-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.then(function () {  
      console.log('Page rendered');  
    });  
  });  
}, function (reason) {  
  console.error(reason);  
});  

具体使用方式可以查阅官方文档,demo写的很详细。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值