您的位置:首页 > 编程语言 > Java开发

java 使用 pdf.js 在线查看 pdf 文档

2017-08-10 18:14 387 查看
1. 下载对应的 pdf.js 文件:

  推荐地址:
https://github.com/mozilla/pdf.js/
http://mozilla.github.io/pdf.js/

2. 下载完成后打开对应的 viewer.js 文件。



可以看到,默认打开的是 compressed.tracemonkey-pldi-09.pd f文件,如果后面我们需要打开我们指定的地址,于是清空默认地址。



3. 这样,我们就可以使用传递 file 形参来动态指定打开的 pdf 文件,如:

http://localhost:8080/mypdf/web/viewer.html?file=123.pdf[/code] 
Tips:必须加载到服务器访问

4. 现在我们利用 controller 来动态找到磁盘的 pdf 并加载显示:

   @RequestMapping(value = "showViewPDF")
public void showViewPDF() throws IOException {         File f = new File("d:/aaa/123.pdf");
getResponse().reset();
getResponse().setContentType("multipart/form-data");
getResponse().setHeader("Content-Disposition", "attachment;fileName=123.pdf");
OutputStream out = getResponse().getOutputStream();
try {
FileUtil.writeToStream(f, out);         } catch (IOException e) {
e.printStackTrace();
} finally {
out.flush();
out.close();
}
}


现在访问的地址变为了如下地址:

http://localhost:8080/mypdf/web/viewer.html?file=http://localhost:8080/mypdf/pdfPageController/showViewPDF[/code] 
5. 现在我们通过 ID 号显示对应 ID 的文件:

  @RequestMapping(value = "showViewPDF")
public void showViewPDF(String id) throws IOException {
TUploadFileBlfy tUploadFile = pdfPageService.getPDFById(id);  // 这个是根据 ID 号查询数据库对应储存文件的路径
File f = new File(tUploadFile.getFilePath());  //  tUploadFile.getFilePath();  这是获得对应 ID 文件的路径
getResponse().reset();
getResponse().setContentType("multipart/form-data");
getResponse().setHeader("Content-Disposition", "attachment;fileName=" + tUploadFile.getFileName());  // 获得对应文件名
OutputStream out = getResponse().getOutputStream();
try {
FileUtil.writeToStream(f, out);         } catch (IOException e) {
e.printStackTrace();
} finally {
out.flush();
out.close();
}
}


于是,现在请求的地址变为了这样:

http://localhost:8080/mypdf/web/viewer.html?file=http://localhost:8080/mypdf/pdfPageController/showViewPDF?id%3d402881d35dcb410f015dcb455cfc0001   id 后面的参数详细介绍:
    %3d:这是等号(=)的转义字符;
    402881d35dcb410f015dcb455cfc0001:这是该文件的 UUID 号码,唯一标识符;


好了,大概就是这样了,希望能帮助到大家。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: