java⽣成word排版_java⽣成word的⼏种⽅案(转)
1、 Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建⼀座桥梁。使⽤Jacob⾃带的DLL动态链接库,并通过JNI 的⽅式实现了在Java平台上对COM程序的调⽤。DLL动态链接库的⽣成需要windows平台的⽀持。
2、 Apache POI包括⼀系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式⽂件,可以通过这些API在Java中读写Excel、Word等⽂件。他的excel处理很强⼤,对于word还局限于读取,⽬前只能实现⼀些简单⽂件的操作,不能设置样式。
3、 Java2word是⼀个在java程序中调⽤ MS Office Word ⽂档的组件(类库)。该组件提供了⼀组简单的接⼝,以便java程序调⽤他的服务操作Word ⽂档。
这些服务包括: 打开⽂档、新建⽂档、查⽂字、替换⽂字,插⼊⽂字、插⼊图⽚、插⼊表格,在书签处插⼊⽂字、插⼊图⽚、插⼊表格等。填充数据到表格中读取表格数据
,1.1版增强的功能:
指定⽂本样式,指定表格样式。如此,则可动态排版word⽂档。
4、
iText操作Excel还⾏。对于复杂的⼤量的word也是噩梦。⽤法很简单, 但是功能很少, 不能设置打印⽅向等问题。
5、
JSP输出样式基本不达标,⽽且要打印出来就更是惨不忍睹。
6、
⽤XML做就很简单了。Word从2003开始⽀持XML格式,⼤致的思路是先⽤office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后⽤java来解析FreeMarker模板并输出Doc。经测试这样⽅式⽣成的word⽂档完全符合office标准,样式、内容控制⾮常便利,打印也不会变形,⽣成的⽂档和office中编辑⽂档完全⼀样。
java⽣成pdf⽅案总结
1. Jasper
Report⽣成pdf:设计思路是先⽣成模板,然后得到数据,最后将两者整合得到结果。但是Jasper Report的问题在于,其⽣成模板的⽅式过于复杂,即使有IDE的帮助,我们还是需要对其中的众多规则有所了解才⾏,否则就会给调试带来极⼤的⿇烦。
2. openoffice⽣成pdf:openoffice是开源软件且能在windows和linux平台下运⾏。
3. itext + flying saucer⽣成pdf:itext和flying saucer都是免费开源的,且与平台⽆关,结合css和velocity技术,可以很好的实现。
⼀般使⽤第三种⽅案⽐较多,它实现的步骤是⾮常简单的。
JAVA⽣成word优缺点对⽐
所⽤技术
优点
缺点
Jacob
功能强⼤
代码量⼤,设置样式繁琐;需要windows平台⽀持,⽆法跨平台
Apache POI
读写excel功能强⼤、操作简单
⼀般只⽤它读取word,能够创建简单的word,不能设置样式,功能太少
Java2word
功能强⼤,操作简单
能满⾜⼀般要求,不⽀持07格式,国⼈开发的,参考资料较多,需要windows平台⽀持iText
功能全,能满⾜⼀般要求
不能直接⽣成或操作doc⽂档,只能⽣成rtf格式的⽂档,rtf也可以⽤word打开
JSP
操作简单,代码量少
能把当前页⾯导出简单的word,不能设置样式,美观性差,⽆法操作word
XML(最佳)
代码量少,样式、内容容易控制,打印不变形,完全符合office标准
需要提前设计好word模板,把需要替换的地⽅⽤特殊标记标出来
JAVA⽣成pdf优缺点对⽐
所⽤技术
优点
缺点
openoffice
本⾝就是office软件,很容易设计⼀些⽂档模板,⽀持java调⽤实现word转换成pdf
需要先安装,设计好pdf模板样式,然后⽤程序来填充那些预留好的变量
itext
能满⾜要求,本⾝提供了⼀些api
jsp页面输出的三种方式⽆法识别很多html的tag和attribute,⽆法识别css,需要⽤其api函数来设置样式Jasper Report
能满⾜要求,市⾯上使⽤的⽐较多,相关⽂档多
复杂,很难完全掌握,需要先设计模板,强依赖于IDE进⾏可视化编辑
flying sauser(最佳)
能解析html和css输出成image、pdf等格式,操作简单,api强⼤
需要编写freemarker或velocity模板,打造html,勾画pdf的样式
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论