1、在页面引入控件,控件依赖任何第三方js库:
classid="clsid:CA8A9780-280D-11CF-A24D-444553540000">
value="#webUrl("context")/file/download/mergePdf?method=inline&$!reportAttParam&_ws_sn=$math.random">
src="#webUrl("context")/file/download/mergePdf?method=inline&$!reportAttParam&_ws_sn=$math.random"
width="100%" height="100%"
href="http://www.adobe-reader-download.com/">
No adobe reader support.
代码说明:是IE下的控件引入方式,是为了支持非IE浏览器。
object中的及的src属性就是PDF的路径,这里可以是本地磁盘路劲也可以是远程PDF的下载路径,总之要能识别是PDF文件即可。
为了支持批量打印,我使用的是合并多个PDF,再一起输出打印的方式。/file/download/mergePdf就是合并PDF的方法。$!reportAttParam就是我们系统中PDF文件上传后返回的ID,可以传多个。method=inline在线预览的方式打开PDF。
IE下可以直接调用打印:
if (isIE()) {
var pdfReader = document.getElementById("reportPrinterObj");
//pdfReader.setShowToolbar(false);
//pdfReader.setShowScrollbars(false);
pdfReader.printWithDialog();
}
IE判断代码:
return ("ActiveXObject" in window);
2、合并多个PDF返回。
依赖jar包:
org.apache.pdfbox
pdfbox
1.8.10
继续看合并PDF控制层代码