这个文件里面有字段$attn $orgId 等等。格式是$+字段,下面的代码可以把其中的$开头的字段替换成你要输入的数值。一般用于输出固定格式的表格,好进行打印。
注意:
若出现中午乱码:rtf文件的字体是“宋体”-->rtf的格式是utf-8
要用的jar包在下面可以下载
例子1:
package com.happysys.rtf; import java.io.File; import javax.servlet.http.HttpServletResponse; import net.sourceforge.rtf.RTFTemplate; import net.sourceforge.rtf.helper.RTFTemplateBuilder; public class ZCAPAReport { public static void reportRTF() throws Exception{ try { String rtfSource = "C:/ZCAssetPurchase.rtf"; String docTarget = "D:/ZCAssetPurchase.doc"; RTFTemplateBuilder builder = RTFTemplateBuilder.newRTFTemplateBuilder(); RTFTemplate rtfTemplate = builder.newRTFTemplate(); rtfTemplate.setTemplate(new File(rtfSource)); rtfTemplate.put("apId", "a");//把rtfSource 文件中的"$apId"替换成"a" rtfTemplate.put("attn", "b"); rtfTemplate.put("orgId", "c"); rtfTemplate.put("applyTime", "d"); rtfTemplate.put("contactTelephone", "e"); rtfTemplate.put("assetName", "f"); rtfTemplate.put("Unit", "g"); rtfTemplate.put("amount", "h"); rtfTemplate.put("model", "i"); rtfTemplate.put("alternativeModel", "j"); // rtfTemplate.merge(response.getWriter()); File file=new File(docTarget); rtfTemplate.merge(file); }catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args) { try { reportRTF(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
例子2:
package com.happysys.rtf; import java.io.File; import java.io.PrintWriter; import java.util.Date; import javax.servlet.http.HttpServletResponse; import com.happysys.erp.webapps.framework.TypeProcessObject; import com.happysys.erp.webapps.util.Util; import net.sourceforge.rtf.RTFTemplate; import net.sourceforge.rtf.helper.RTFTemplateBuilder; public class ZCAPAReport { public static void reportRTF(String Id,String rtfSource, HttpServletResponse response,String empNo, int encodeMethod)throws Exception{ response.setContentType("txt/rtf; charset=GBK"); TypeProcessObject obj = TypeProcessObject.findById("ZCAssetPurchaseAudit",Id); if(obj == null) return; String name = obj.getObjectTypeName() + "_" + Id; response.setHeader("Content-disposition", "attachment; filename=" + name + ".rtf"); try{ String cols[]={"apaID","attn","orgId","applyTime","assetName","model","alternativeModel","Unit","qty", "vendorId1","vendorTel1","vendorAdd1","vendorOwner1","vendorPrice1", "vendorId2","vendorTel2","vendorAdd2","vendorOwner2","vendorPrice2", "vendorId3","vendorTel3","vendorAdd3","vendorOwner3","vendorPrice3"}; RTFTemplateBuilder builder=RTFTemplateBuilder.newRTFTemplateBuilder(); RTFTemplate rtfTemplate=builder.newRTFTemplate(); rtfTemplate.setTemplate(new File(rtfSource)); for(int i=0;i