在线预览pdf文件(pdfJS)

使用pdfjs目的是为了打开pdf的文件,打开pdf文件有了两种方式,一种是直接打开pdf 的文件,一种是打开pdf 的文件流。传参的话,直接打开PDF文件很简单,这里就不赘述了;打开文件流会出现两个?,只需要在viewer.js文件中设置一下file可以了,然后就没有然后了。当然下面的实现方法只是一个参考,具体的实现有很多种,我在网上就看到很多大神的奇思妙想(还有的在后台直接拼接请求地址的),我们这里就单刀直入了。

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标签:使用pdf.js展示pdf文件
b、window.open:window.open(“PDFJS\web\viewer.html”);
c、iframe:< iframe src="\web\viewer.html" />

3、在客户端预览服务器端的文件:使用文件流进行解决
以我此次使用的情况为例,我使用的iframe进行展示:
第一步:设置iframe的请求路径:
var src=“pdfjs/web/viewer.html?file=/testWeb/openDocInPdf.action”;

说明:
a、pdfjs/web/viewer.html这个必须带,没什么可说的

b、若是从服务器端请求文件,必须使用file这个关键字,用来告知pdf.js你这个是文件流。我是怎么知道的?百度+源码。看网上的demo时说要用这个关键字,我也纳闷你怎么知道要用这个关键字,就去看源码了,跟踪的过程中,发现viewer.js的webViewerInitialized()的方法中有这么一句:
file = ‘file’ in params ? params.file : appConfig.defaultUrl;
这就很明显了,你要是没有file我就使用默认值。所以必须用file关键字。

第二步: 使用iframe进行请求:
$(“body”).append("