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