开发者社区> 技术小阿哥> 正文

使用Java模版引擎FreeMarker生成复杂的Word文档

简介:
+关注继续查看

目前Java操作office文档常用的有以下几种方案(POIiTextjacob这三种)

以上三种方案优缺点分析如下:

Jacod是使用dll文件,使用它项目只能在windows系统中使用。但是大家知道java项目的特性是良好的可移植性,所以不建议使用。而且它处理文档的效率不是很好。

POIword文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个20多页,嵌套很多表格和图像的word文档靠POI来写代码输出,对程序员来说比去山西挖煤还惨,况且文档格式还经常变化。

iText操作Excel还行。对于复杂的大量的word也是噩梦。

(直接通过JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。)

新方案:Word2003开始支持XML格式,用XML来做就很简单了

大致分以下三个步骤:

一、先用office2003或更高版本编辑好word模版,然后另存为xml文件

二、使用FirstObject XML Editorxml翻译为FreeMarker模板

三、最后用java来解析FreeMarker模板并输出Doc

经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样

看看实际效果

首先用office【版本要2003以上,以下的不支持xml格式】编辑文档的样式,图中下划线的部分就是要输出的部分:

110322407.jpg

将编辑好的文档另存为XML

110342659.jpg

再用Firstobject free XML editorxml中我们需要填数据的地方打上FreeMarker标记

110438311.jpg

最后生成的文档样式


110500633.jpg

提示:

要使用这个新方案,你必须了解FreeMarker这个很优秀的Java模版引擎。官方中文API下载请点击这里中文版手册(PDF

Firstobject free XML editor工具下载,等你给xml添加好Freemarker标签后直接将xml文件后缀修改为ftl文件。(ftl文件为Freemarker模版文件)

Freemarker下载

相关连接:

MyEclipse集成FreeMarker教程

本教程的源码



本文转自 沫沫金 51CTO博客,原文链接:http://blog.51cto.com/zl0828/807438,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
逛了五年GitHub,终于整理出七大java开源技术项目文档,赶紧收藏
大家都知道 Github 是一个程序员福地,这里有各种厉害的开源框架、软件或者教程。这些东西对于我们学习和进步有着莫大的进步,所以将 Github 上非常棒的七大Java开源项目技术文档整理下来供大家学习!!!
76 0
阿里2023年版十亿级并发系统设计+java性能优化实战文档
说快也快,说慢也慢,这不马上就金三银四了,你是否已经准备好升职加薪或者跳槽涨薪了呢?
22 0
2022年全新java架构技术框架Quarkus实战神仙文档
Quarkus是一款有别于传统Java架构的新技术框架。它建立在我们熟知的技术栈上,使用了诸多成熟的技术,如JPA、JAX-RS、EclipseVert.x、Eclipse MicroProfile和CDI等,并将这些技术与Kubernetes紧密融合在一起。用户可以借助Kubernetes高效的调度运维能力,最大限度地节约资源。
43 0
经过阿里四面而形成的10万字java面试题及答案文档到底有多牛?
首先,给大家介绍一波小伙伴的阿里java岗四面问到的面试题问题分享,大家可以仔细来看看! 一面,问了数据结构、jvm、锁等~
71 0
Java物联网平台源码带组态功能Modus RTU协议 文档齐全
IOT物联网平台使用的技术:JAVA [ springmvc / spring / mybatis ] 、Mysql 、Html 、Jquery 、css 协议和优势:TCP/IP、HTTP、MQTT 通讯协议。
40 0
关于使用JAXB读取xml文档转换为java对象出现非法注解异常
关于使用JAXB读取xml文档转换为java对象出现非法注解异常
32 0
eclipse如何为java项目生成API文档、JavaDoc
eclipse如何为java项目生成API文档、JavaDoc
22 0
java一键生成《数据库设计文档》
java一键生成《数据库设计文档》 前言:该知识点参考了Screw开源文档: 🔴screw开源文档 🍅 程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
26 0
【Java基础知识3】Java注释:单行、多行、文档注释(如何通过 javadoc 命令生成代码文档、如何在IEDA配置自动为所有的类都添加创建者和创建日期)
【Java基础知识3】Java注释:单行、多行、文档注释(如何通过 javadoc 命令生成代码文档、如何在IEDA配置自动为所有的类都添加创建者和创建日期)
79 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Java工程师必读手册
立即下载
Java应用提速(速度与激情)
立即下载
Java单元测试实战
立即下载