一、引用
- java word/excel转PDF: 原文地址
- 前端PDFObject插件不能加载远程链接的问题:原文地址
- 前端实现预览的方法总结,如果资源是公共可访问的,推荐使用该文章中的微软在线预览功能实现:原文地址
二、效果图
三、前端
注:前端框架用的bootstrap table,PDF预览使用的PDFObject(官网地址)。
<body>
<fieldset>
<legend>附件</legend>
<table id="table"></table>
</fieldset>
<script src="/bower_components/jquery/dist/jquery.min.js"></script>
<script src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="/bower_components/bootstrap-table/dist/bootstrap-table.min.js"></script>
<script src="/bower_components/bootstrap-table/dist/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="/bower_components/layer/dist/layer.js"></script>
<script>
function initData(id){
initTable(id)
}
function initTable(id){
$('#table').bootstrapTable({
method: 'get',
dataType: "json",
url: QGFrame.basePath.common + "/attach/list",
sidePagination: "server",
striped: true,
pagination: false,
queryParams: function(params) {
var condition = new Object();
condition.module = "FINANCE_STATEMENT";
condition.bizId = id;
return condition;
},
columns:[
{title:'序号',align:'center',
formatter:function(value, row, index){
return index + 1;
}
},
{field:'createDate',title:'创建时间'},
{field:'originalName',title:'名称'},
{field:'size',title:'大小'},
{
field: 'preView',
title: '预览',
//定义点击之后放大图片的事件
events: 'operateEvents',
formatter: function (value, row, index) {
return '<a class="view" href="javascript:void(0)">预览</a>';
}
},
// {field:'description',title:'备注'},
{field:'operator',title:'操作',
formatter:function(value, row, index){
return '<a href="javascript:void(0)" onclick="downloadFile('+row.id+')">下载</a>';
}
}
],
onLoadSuccess: function(res){
if(res.data == null){
res.data = [];
}
$('#table').bootstrapTable("load",res.data);
}
});
}
function downloadFile(id){
window.location.href = QGFrame.basePath.common + "/attach/download/"+id;
}
// //点击之后放到图片
window.operateEvents = {
'click .view': function (e, value, row, index) {
top.layer.msg("文件读取中。。。");
if (row.name.indexOf("jpg") !== -1 || row.name.indexOf("jpeg") !== -1 || row.name.indexOf("png") !== -1) {
var url = QGFrame.basePath.common + "/attach/preView/"+row.id;
layer.open({
type: 1,
title: false,
closeBtn: 0,
area: ['80%', '80%'],
skin: 'layui-layer-nobg', //没有背景色
shadeClose: true,
content: '<img style="width: 100%;height: 100%" src="'+url+'"/>'
});
} else {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['80%', '80%'],
skin: 'layui-layer-nobg', //没有背景色
shadeClose: true,
content: "/webapp/erp/html/component/preview/list.html",
success: function(layero, index){
var iframeWin = window[layero.find('iframe')[0]['name']];
iframeWin.initContainer(row);
}
});
}
},
};
</script>
</body>
预览js文件
<body>
<div id="pdf_viewer"></div>
<script src="/bower_components/jquery/dist/jquery.min.js"></script>
<script src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="/bower_components/bootstrap-table/dist/bootstrap-table.min.js"></script>
<script src="/bower_components/bootstrap-table/dist/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="/bower_components/layer/dist/layer.js"></script>
<script src="/bower_components/jspdf/pdfobject.min.js"></script>
<script type="text/javascript">
var options = {
pdfOpenParams: {
pagemode: "thumbs",
navpanes: 0,
toolbar: 0,
statusbar: 0,
view: "FitV"
}
};
function initContainer(row){
var attachUrl = QGFrame.basePath.common + "/attach/preView/"+row.id;
$("#pdf_viewer").show();
if(PDFObject.supportsPDFs){
// PDF嵌入到网页
PDFObject.embed(attachUrl, "#pdf_viewer" ,options);
} else {
location.href = "/canvas";
}
}
</script>
</body>