web前端

位置:IT落伍者 >> web前端 >> 浏览文章

基于OO模版技术的文档Web输出新法


发布日期:2019年06月20日
 
基于OO模版技术的文档Web输出新法

软件准备OO是OpenOffice的简称而非众人皆知的面向对象有关它的开发文档有好几沓在此不多言了别忘了先安装一下啊否则无法进行类型转换的OO支持的文档类型odtods等对应熟知的Office文档类型docxls JOOReports是基于OO文档模版的文档生成软件支持动态替换和freemarker ELCollection的文档重复替换附随源代码提供了比较精简的api和doc但源代码中的example很值得一看

JOOConvert毋庸置疑就是配套的文档转换软件将文档托管给OO进行转换然后获得转换后的文档支持多种类型文档odtodsdocrtftxtpdfxls后面的代码中有详细介绍

代码框架信手写来也称不上框架总体上分了三部分调用JOOReports/JOOConvert的核心类基于Strieps框架的web实现必不可少的UnitTest核心部分DocumentTemplateParam文档生成参数类

DocumentConvertParam文档转换参数类

ConvertContext用于连接OO网络服务的转换上写文类

DocumentGenerator文档生成类

DocumentFormatConverter文档格式转换类

之所以分如此细致也许是本人的重构癖作祟吧但扩展起来是很具灵性的如果Martin Flower大人看到可能感激落泪吧

Web实现很简单的Stripes框架实现的产品登记输出为docpdfxls格式的文件在此抛砖引玉啦

Product产品Bean类

ProductDetailActionBean实现产品登记的ActionBean类

WEBINF/fileTemplateodtods文档模版保存位置

UnitTest对核心部分进行测试当然Stripes也可作测试但应用简单懒于编写了

编写文档模版OO在设计时考虑了通用性所以每个odtods文件都是以zip的压缩模式保存只要用相关软件便可以观其状了Contentxml尤为重要其中保存了模版数据如hellotemplateodt

其中的乱码是因UTF编码造成文档风格就是xml分割但其中红色代码使用了freemarker的表达式风格这也是JOOReport所支持的具体详见freemarker和JOOConvert manual编写模版时建议使用设计好格式的文档然后使用文本编辑器在其中插入表达式切勿在OO中直接编写表达式因为OO会对其进行转换使其失效

转换文档时启动OO后台服务在调用JOOReport生成文档时无需启动OO因为与OO服务无关而调用JOOConvert进行文档转换时就需要在控制台中输入一下cd %OPENOFFICE_HOME%\program sofficeexe headless accept=socketport=host=localhosturp OPENOFFICE_HOME代表了OO安装时的目录

上一篇:DataGrid Web Control 基本操作

下一篇:修改webligic线程池