最近需要实现一个PDF文档预览的功能,按理说,如果只是简单的预览,使用<embed>
、<object>
等就可以实现。
但是,我们的需求要实现搜索!而且,文档还都超大,均300页以上。那<embed>
、<object>
就难以实现了!所以使用pdf.js库。
上一篇文章 前端 使用pdf.js加载PDF文件 中讲的是使用canvas绘图的方式,将PDF文件渲染在页面中。但其实PDF.js也提供了通过
viewer.html
来加载预览PDF文件,而且使用非常方便。
viewer.html
很好用,但是我查遍了很多文档,真的都好难看懂是怎么使用的啊!那下面,我们把使用viewer.html
的方法直接贴出来。
有两种方式:
说明:
pdfjs-4.0.379-dist
是下载的pdf文件的夹,里面的viewer.html
文件,就是它的入口文件。这样做的好处是:
创建一个部署静态服务的存储桶,上传下载下来的文件包,如下所示:
这样一来,存放在该静态服务内的pdf文件都可以访问了。假设部署的服务地址是:http://xxx-pdf-viewer.s3-website-xx-xxx-xx.amazonaws.com/pdfjs-4.0.379-dist/web/viewer.html?file=docs/xxx.pdf
在这个路径中,docs
文件夹位于web
文件夹内,专门用来存放pdf文件。
通过iframe嵌入来使用viewer.html,使用方法很简单:
html:
<iframe :src="url" frameborder="0" width="100%" height="100%"></iframe>
JavaScript:计算url
const url = computed(() => {
// 部署pdfjs的服务地址
const aws_server = 'http://xxx-pdf-viewer.s3-website-xx-xxx-xx.amazonaws.com/pdfjs-4.0.379-dist/web/viewer.html'
// pdf文件名称
const pdf_name = 'x-trail-0601-20220911.pdf'
return `${
aws_server}?file=${
encodeURIComponent(`docs/${
pdf_name}`)}`
})
这样,就可以访问到docs文件夹下的所有pdf啦。简单吧!
更多【pdf-前端使用pdf.js进行pdf文件预览的第二种方式:Viewer.html】相关视频教程:www.yxfzedu.com