需求:a.jsp页面要做一个pdf的预览功能,我采用layer.open()弹窗的形式来预览pdf

1.在a.jsp点击文件然后弹出窗口(其实是弹出b.jsp)

var lay=layer.open({
  type: 2,
title:"弹窗的名字",
shadeClose: true,
shade: 0.8,
area: ['100%', '100%'],
content: "/afArchiveDetail/operate.do?ArchiveDetailUUID=" + o.archiveDetailUUID+"&YearMonth="+o.yearMonth+"&AllowDownload="+(this.obj.allowDownload ||"")+"&flag=operate&callbackname=updateShowFileName"
});
content:参数可以是一个请求后台的url路径,通过后台然后返回一个jsp页面(假设返回就是b.jsp页面)

2.在b.jsp页面这样写

这个可以是直接看一个pdf文件
<%--<iframe id="pdfView" width="99%" height="400" src="${sysHostUrl }/static/js/pdfJs/web/viewer.html?file=compressed.tracemonkey-pldi-09.pdf&downloadFlag=false"></iframe>--%>
关键看这个
----------------HTML----------------
<iframe id="pdfView" width="99%" height="99%"></iframe> ----------------JS------------------
在vue.js里面这样写,在created函数里面调方法(我这里只是从项目里面挑选了部分关键代码出来,需要的同学可以根据自己的情况来改)
created : function () {
this.viewPDF();
}, viewPDF : function () { let pdfView = document.getElementById('pdfView');
    let pdfUrl="/webApi/downPDF.do?ArchiveDetailUUID="+_key+"&YearMonth="+_yearMonth+"&number="+Math.random();
//&downloadFlag=false 这个参数是我用来控制viewer.html的打印,下载,上传按钮的,为false时都变为灰色,不能点击
//获取流文件的方式预览pdf文件
let src = "/static/js/pdfJs/web/viewer.html?file=" + encodeURIComponent(pdfUrl)+"&local="+'${curLang}'+"&downloadFlag=false&isrequest=true&archiveDetailUUID="+_key+"&allowdownload="+_allowdownload;
pdfView.src=src;
}, 3.在viewer.html页面这样写
<script>

    //url="/static/js/pdfJs/web/viewer.html?file=%2FwebApi%2FdownPDF.do%3FArchiveDetailUUID%3Dff8080816cb8b7a4016cb8eb46de0006&downloadFlag=false";
//search 属性是一个可读可写的字符串,可设置或返回当前 URL 的查询部分(问号 ? 之后的部分)。
//substr(1) 就是从索引1开始截取
var archiveDetailUUID;
var isRequest;
var queryString = document.location.search.substring(1); //获得浏览器地址栏URL串
var params = parseQueryString(queryString);//对URL串进行解码 解析后返回的数据格式:{file: "/webApi/downPDF.do?ArchiveDetailUUID=ff8080816cb8b7a4016cb8eb46de0006", downloadflag: "false", archivedetailuuid: "ff8080816cb8b7a4016cb8eb46de0006"}
archiveDetailUUID=params.archivedetailuuid;
isRequest=params.isrequest;//是否请求服务器, true/false
var CURLANG=params.local;//语言 function parseQueryString(query) {
var parts = query.split('&');
var params = Object.create(null); for (var i = 0, ii = parts.length; i < ii; ++i) {
var param = parts[i].split('=');
var key = param[0].toLowerCase();
var value = param.length > 1 ? param[1] : null;
params[decodeURIComponent(key)] = decodeURIComponent(value);
}
return params;
} </script>
<script src="viewer.js"></script>
那到这一步了基本上就可以在viewe.html取到其它页面传过来的值了

哎呀!把pdf.js的中英文切换一起写了吧
var CURLANG=params.local;就是多语言切换了 (这个是写在viewer.html里面的,可以看上面的代码怎么把参数从其它的jsp页面传过来!)
在viewer.js里面这样改

来看下效果图:

技术水平有限,只能写成这样的了,如果发现有写的不对的还请多多指教,希望能帮助到有需要的人




pdf.js的使用 (3)真实项目分享的更多相关文章

  1. pdf.js的使用(1) 站在巨人的肩膀上纯干货分享,没有华丽的词藻

    以下是我在实际项目开发中的过程分享   前端是:vue+jsp 1.首先下载pdf.js(怎么下可以去百度),实在不会就私我,我发给你 1.1展示一哈我下载下来的pdf.js的目录结构 1.2接下来可 ...

  2. 在web项目中集成pdf.js的默认查看器

    pdf.jsMozilla开源的一项用于在HTML5平台上显示pdf文档的技术,Mozilla自己的Firefox浏览器也用了pdf.js来预览pdf,可见应该是一个比较成熟稳定的方案(btw,chr ...

  3. 在Vue&Element前端项目中,使用FastReport + pdf.js生成并展示自定义报表

    在我的<FastReport报表随笔>介绍过各种FastReport的报表设计和使用,FastReport报表可以弹性的独立设计格式,并可以在Asp.net网站上.Winform端上使用, ...

  4. pdf.js pdfdom.js使用(转)

    开篇语: 最近工作需要做一个借款合同,公司以前的合同都是通过app端下载,然后通过本地打开pdf文件,而喜欢创新的我,心想着为什么不能在线H5预览,正是这个想法,说干就干,实践过程总是艰难的,折腾了3 ...

  5. pdf.js实现在HTML下直接浏览pdf文档,无需插件即可实现

    近期,有一个朋友做B端,服务器存了大量的金融类数据,很多都是pdf文档,他现在的做法是,先将pdf文档转换成flash,再放到浏览器上给用户浏览,但是他告诉我,这种体验太差了,而且很好资源,空间已经快 ...

  6. java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)

    背景 之前一直是用户点击下载word文件到本地,然后使用office或者wps打开.需求优化,要实现可以直接在线预览,无需下载到本地然后再打开. 随后开始上网找资料,网上资料一大堆,方案也各有不同,大 ...

  7. Immutable.js 以及在 react+redux 项目中的实践

    来自一位美团大牛的分享,相信可以帮助到你. 原文链接:https://juejin.im/post/5948985ea0bb9f006bed7472?utm_source=tuicool&ut ...

  8. PDF.js Electron Viewer

    PDF.js 是基于 HTML5 解析与渲染 PDF 的 JavaScript 库,由 Mozilla 主导开源. 本文旨在介绍 PDF.js 于 Electron 里如何开始使用,实际尝试了用其 A ...

  9. 在线浏览PDF之PDF.JS (附demo)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#skill 下载地址:http://mozilla.gith ...

随机推荐

  1. softmax-Fork

    softmax和分类模型 内容包含: softmax回归的基本概念 如何获取Fashion-MNIST数据集和读取数据 softmax回归模型的从零开始实现,实现一个对Fashion-MNIST训练集 ...

  2. Ultra-Thin LED Downlight Selection: 6 Things

    LED Decorative Light Manufacturer    description: ultra-thin LED downlight features can maintain the ...

  3. 【Python】摄氏度与华氏度互相转化

    Python入门程序,大家可以举一反三,进行各种转换,比如单位转化,货币转化等等,自行发挥即可! 原理:  代码: Tempstr=input("请输入带有符号的温度值:\n")# ...

  4. @RequestMapping(value = {"list", ""})

    https://www.cnblogs.com/tongs/p/7486478.html   @RequestMapping是请求路径的注解 里面写两个value就是,路径可以是这两个, 第二个空,是 ...

  5. 2019-2020-2 20174314王方正 《网络对抗》 Exp0 Kali安装

    本博旨记录安装Kali的具体步骤. 一.Vmware的安装 略. 二.Vmware的配置 选择[文件]-[新建虚拟机]. 出现新建虚拟机导向,按照以下图示配置每一步.

  6. IntelliJ IDEA 2017.3尚硅谷-----忽略大小写提示

  7. kill pkill

    首先说一下kill命令,它是通过pid(进程ID)来杀死进程,要得到某个进程的pid,我们可以使用ps(process status)命令,默认情况下,kill命令发送给进程的终止信号是15,但是有些 ...

  8. java获取配置文件中变量值

    在resources 目录下新建config.properties文件 #文件保存路径 filePath=E:\\images\\file 工具类 public class ConfigUtil { ...

  9. Boxes and Candies

    问题 G: Boxes and Candies 时间限制: 1 Sec  内存限制: 128 MB[提交] [状态] 题目描述 There are N boxes arranged in a row. ...

  10. angular 页面中引入静态 PDF 文件

    在web开发时我们有时会需要在线预览PDF内容,在线嵌入pdf文件 常用的几种PDF预览代码片段如下: 方法一: <object type="application/pdf" ...