Freemarker+openOffice 模板替换JodReport

原创
2014/01/24 13:16
阅读数 570
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

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部