使用pdf.js在web页面展示pdf文件

最近弄的项目中需要在线展示PDF文件,以前用的是Adobe PDF阅读器直接在浏览器端打开的,这要求客户端必须安装这个软件,若是没有安装就不能在线预览了。为了解决这个问题,最终决定用pdf.js来实现预览功能。

 

1、PDF.js下载

下载链接:http://mozilla.github.io/pdf.js/

下载下来的压缩包包含两个文件夹:build和web,打开web文件夹下的viewer.html,就能看到PDF的预览效果了。

预览的PDF文件是位于viewer.html同目录下的compressed.tracemonkey-pldi-09.pdf,

而设置加载这个文件的地方是:与viewer.html同目录下的viewer.js的DEFAULT_URL属性,修改这个属性的值就能够预览不同的文件,中英文的pdf文件都能成功预览

 

2、功能使用

使用pdf.js在web页展示pdf文件的关键是打开viewer.html,也就是在web页打开一个html,可以用的方法至少有两三种:

a、a标签:<a href="PDFJS\web\viewer.html">使用pdf.js展示pdf文件</>

b、window.open:window.open("PDFJS\web\viewer.html");

c、iframe:<iframe  src="PDFJS\web\viewer.html" />

 

3、在客户端预览服务器端的文件:使用文件流进行解决

以我此次使用的情况为例,我使用的iframe进行展示:

第一步:设置iframe的请求路径

var src="pdfjs/web/viewer.html?file=/testWeb/fileRouter!openDocInPdf.action";

 

说明:

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
pdf.js 是 Mozilla 开源的一个 JavaScript 库,用于在网页中显示 PDF 文件。它可以将 PDF 文件转换成 HTML5 Canvas 和 SVG 格式,通过浏览器的绘图功能进行渲染,实现了纯客户端的 PDF 阅读器。 使用 pdf.js 进行 PDF 文件预览,需要先在页面中引入 pdf.jspdf.worker.js 两个 JavaScript 文件,然后使用以下代码创建一个 PDF 预览器: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>PDF.js example</title> <script src="pdf.js"></script> <script src="pdf.worker.js"></script> </head> <body> <canvas id="pdf-canvas"></canvas> <script> // PDF.js 预览器 var canvas = document.getElementById('pdf-canvas'); var url = 'example.pdf'; // 加载 PDF 文件 PDFJS.getDocument(url).then(function (pdf) { // 获取第一页 pdf.getPage(1).then(function (page) { // 设置缩放比例 var scale = 1.5; // 获取页面宽度 var viewport = page.getViewport(scale); // 设置 Canvas 大小 canvas.width = viewport.width; canvas.height = viewport.height; // 渲染页面 var ctx = canvas.getContext('2d'); var renderContext = { canvasContext: ctx, viewport: viewport }; page.render(renderContext); }); }); </script> </body> </html> ``` 上述代码中,使用 `PDFJS.getDocument(url)` 方法加载 PDF 文件,并通过 `pdf.getPage(1)` 方法获取第一页,然后根据缩放比例和页面宽度计算 Canvas 大小,并使用 `page.render(renderContext)` 方法渲染页面。 需要注意的是,pdf.worker.js 文件的路径需要与 pdf.js 文件的路径相同,否则会出现无法加载 worker 的问题。另外,pdf.js 依赖于 Promise 和 TypedArray 等 Web API,需要在较新版本的浏览器中使用
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值