HTML的打印是一件很令人烦恼的事,何时分页页眉页脚,还有美观的问题
你可以使用FOP,把页面输出到PDF文件中去,格式则通过具体的FO文件控制,如果你想给用户提供定制功能,开发一个对你的FO文件进行维护的模块。
此方案缺点在于要求客户端安装Acrobat Reader
FOP是Apache的一个开源项目,到Jakarta.apache.org下载。

解决方案 »

  1.   

    谢谢,那我能不能对于这个html可否自定义分成三页或n页打印,最好给我一点源码,有没有其他的方法?因为无法要求客户端安装Acrobat Reader,或者有没有其他的代替方法?谢谢wwy兄,麻烦了。
      

  2.   

    打印之前你无法预知有多少页--这个工作已经完全移交给FO处理了
    而页面设置,都在FO文件中
    至于源码,我想你可以先下载一个FOP,里面的例子不少,很简单的
    要替代的方法,我想你只有适用SVG了,在Server端把FOP的输出再转向到SVG中,生成图片送给客户端,不过很复杂。
      

  3.   

    呵呵,这个问题好象是没什么太好的办法,我的方法是在写这个HTML页面时就先将数据分页,这样客户只好一页一页的打,麻烦是麻烦啦,但是我现在也想不出更好的办法。或许可以考虑将所有数据写入一个WORD文档在浏览器中打开吧。你如果有了解决方法能否告诉我,我的邮箱是[email protected],谢谢!
      

  4.   

    老实说,作b/s项目的多少会遇到此问题,不知道sun、ibm他们是怎么解决的
      

  5.   

    我看过一个公司的网络报表是将报表写在一个WORD文档中,在浏览器中打开用WORD的打印去控制,不知道能不能在JAVA中用到这种方法!
      

  6.   

    最好的办法是将要生成的报表用PDF打开,我现在公司采用的就是这样的方法,通过一个EJB类的转换,将数据用xml方式保存,通过xsl解析,输出用PDF格式。这样调整起来很方便了。
        另外一个办法,就是在网页打开时用Word打开,不过必须设置打开的叶面方式,就是ContentType的地方,这个可以参考html事例有这样的打开方式。另外可以通过Word宏将页眉,页脚分别设置好也是可以的,不过实用性角度来看就不如PDF了,这是我原来采用的一个办法。
      

  7.   

    jackyhj(幽谷客)老兄可否提供一下源码以供参考啊,谢谢!