文档章节

Freemarker+openOffice 模板替换JodReport

业余编程人士
 业余编程人士
发布于 2014/01/24 13:16
字数 296
阅读 222
收藏 0
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;

import net.sf.jooreports.templates.DocumentTemplate;
import net.sf.jooreports.templates.DocumentTemplateException;
import net.sf.jooreports.templates.DocumentTemplateFactory;

public final class DocTemplateUtil {

  /**
   * Method to do the template merge directly in OpenOffice and export out to specifc location
   *
   * 1)The format of replaced content is like "${colour}"
   * 2)Arithmetical calculation format: ${aNumber / 2} ${aNumber + 2} ${aNumber - 2} ${aNumber * 2}
   * 3)Conditional format: [#if aNumber==3.2]...[/#if] ,[#if color=='Red']...[#else]...[/#if]
   * 4)Date formats: ${birthdat?date} , ${birthdat?time},${birthdat?datetime}
   *
   * @param sourceFile
   * the source file of template.odt
   * @param templateParams
   *        the contents need to be merged  for example:( "colour", "Red" ) ("Number" new Double(2.1))
   * @param outputFullPath
   * the location which the file is to be export to. for example "C:\\workspaces\\download.odt"
 * @throws IOException
   */

    public static voidexportMergedDocument(File sourceFile, String outputFullPath,  Map<String,Object> templateParams) throws IOException{

            DocumentTemplateFactory documentTemplateFactory = new DocumentTemplateFactory();
            DocumentTemplate template = documentTemplateFactory.getTemplate(sourceFile);
            FileOutputStream output = new FileOutputStream(new File(outputFullPath));

            try {
                template.createDocument(templateParams, output);
            } catch (DocumentTemplateException e) {
                e.printStackTrace();
            }finally {
                output.flush();
                output.close();
            }
    }
}

http://jodreports.sourceforge.net/?q=node/23

http://jodreports.sourceforge.net/docs/testapidocs/net/sf/jooreports/templates/TextInputTagTest.html

http://freemarker.org/docs/dgui_template_exp.html#dgui_template_exp_seqenceop_slice

http://www.artofsolving.com/opensource/jodconverter/guide http://nopainnogain.iteye.com/blog/819432

© 著作权归作者所有

业余编程人士
粉丝 5
博文 19
码字总数 9137
作品 0
其他
程序员
私信 提问
ThinkPHP 模板魔术常量

模板特殊字符串替换 ThinkPHP 系统定义了一些特殊的字符串(常量)以方便在模板中的使用,这些特殊字符串给模板的应用带来了极大的便利。 这些特殊的字符串是在进行模板输出之前有系统自动替...

WangEven
2012/05/11
352
0
开源轻便的PHP模板引擎phptpl,简洁就是美。

phptpl是一个轻便的PHP模板引擎。不需要什么学习成本就能轻松掌握,简洁就是美。 最近想写一个项目管理平台,原来想用自己 搭建的LAPC/F平台来开发,考虑到推广使用的便捷性,最后决定重拾多...

calvinwilliams
2014/02/16
1K
0
springboot使用properties定义短信模板

通常我们做开发时候会遇到短信发送邮件发送之类的需求,发送内容往往会由客户提供一个模板,如果我们是在程序里拼接字符串来搞定这个模板,很明显是一种坑队友的做法。一般将模板放入propert...

梦想修补师
2017/12/30
0
0
使用Freemarker生成Word

场景: 需要通过模板动态生成word,模板中包括普通字符串和表格 实现方法: 需要:Freemarker 下载 1、将word模板另存为xml格式,将需要替换的地方使用标签和指令替换,具体参照Freemarker开...

liweigov
2012/06/26
9.9K
20
apkplug主题皮肤切换之自定义样式-05

本文基于apkplug V1.6.9讲解 一 何为apkplug自定义样式切换 apkplug主题切换包含两个层次 1.通用主题,与系统主题相似 2.自定义控件样式切换 根据上一篇文章讲解我们可以判定通用主题有其局限...

梁大帅
2014/05/26
74
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
52分钟前
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部