java web 几种WEB报表的打印方式

2025-04-16 12:09:48
推荐回答(3个)
回答1:

用浏览器自带的打印功能直接打印;

  这种方式是最直接的,方便的,不需要加什么插件jar包,只要前台在一个 div 中模仿着报表的格式去设置界面布局,然后把数据动态的填充进去,再调用JavaScript打印函数,就可以实现界面的局部打印功能。(如果不想让报表div在界面中显示出来可以隐藏之)PS:不过直接在前台界面打印还是会遇到意想不到的情况,不同浏览器的问题,反正我就遇到不同浏览器打印出来的报表排版不一的情况,用的时候需要注意。

eg:

div布局
 

    bordercolor="#000000" width="800px;">
       /******    your     code      ******/
   

 
JavaScript部分:(自己根据需要选择触发响应的JS函数)
 
function windowprint() {
   
    var f = document.getElementById("printdiv");
    f.style.display = "";
    window.print();
    f.style.display = "none";
}
 
function myPrint(obj){
 
    var newWindow=window.open("打印窗口","_blank");
    var docStr = obj.innerHTML;
       newWindow.document.write(docStr);
    newWindow.document.close();
    newWindow.print();
    newWindow.close();
}

回答2:

可以试试XMReport,做打印模板比较方便,输出PDF,现在浏览器都能直接预览PDF啦,实在不行可以用PDF.JS来预览也可以的。

回答3:

除了用浏览器自带的打印功能打印,现在一些web报表(主要是以Finereport为代表的这类商业报表)还有flash打印的功能,不过这两个也很难说哪一个更好,就看你自己的需求了,我比较倾向于flash打印,它可以很好地解决打印时候的排版和分页问题,不用再为排版而发愁了!

相关问答