`
fatedgar
  • 浏览: 134811 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

根据RTF模版输出doc文件(草稿)

阅读更多
有个后缀名为rtf的文件(是word格式的一种):ZCAssetPurchase.rtf
这个文件里面有字段$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<cols.length;i++){
				String info = Util.doEncode(encodeMethod, Util.NVLL(obj.getShow(cols[i])));
				Object ob=obj.get(cols[i]);
				if(ob instanceof Date){
					info=Util.NVLL((Date)ob);
				}
				rtfTemplate.put(cols[i], info);
			}
			PrintWriter writer = response.getWriter();
            rtfTemplate.merge(writer);
            writer.flush();
            writer.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}
  • rtfjar.rar (1.1 MB)
  • 描述: rtf的jar包
  • 下载次数: 105
分享到:
评论
3 楼 fatedgar 2012-10-15  
best_yuan 写道
好像运行不了,缺少spring包

没啊,我记得没用到spring包吧




syfye 写道
请问Linux下中文乱码,遇到过吗?如何解决?

Linux里面没测试过,我在window环境下测试的,按我说的那么做解决不了吗?
那个rtf文件用textpad打开,存为utf-8格式,rtf里面的字体都改为宋体
2 楼 syfye 2012-09-14  
请问Linux下中文乱码,遇到过吗?如何解决?
1 楼 best_yuan 2012-07-12  
好像运行不了,缺少spring包

相关推荐

    RTF文件转换为doc批量转换工具

    转换完成后,生成的DOC文件可以在各种版本的Microsoft Word或其他支持DOC格式的软件中打开和编辑。值得注意的是,尽管转换工具力求保持原格式,但个别字体、图像或特殊格式可能在转换后有所变化,用户需要对转换后的...

    根据RTF模板生成WORD,WORD转PDF

    本主题主要涉及两个关键步骤:根据RTF(Rich Text Format)模板生成Word文档,然后将生成的Word文档转换为PDF格式。让我们详细探讨这两个过程以及解决乱码和转换失败的问题。 **RTF模板生成Word文档** RTF是一种...

    用java实现 写RTF文件

    在实际项目中,你可能需要根据需求动态生成RTF内容,例如从数据库获取数据并格式化为RTF。这通常涉及到字符串的构建和拼接,以及对RTF命令的深入了解。记得在处理RTF时,确保所有特殊字符都被正确转义,避免它们被...

    c# Doc文件转rtf格式 richtextbox显示word格式doc

    因此,我们需要进行格式转换,将.doc文件转换为RTF,然后在`RichTextBox`中加载。 转换过程通常涉及以下步骤: 1. **读取DOC文件**:首先,我们需要一个库来读取Word文档。Microsoft Office Interop是一个选项,但...

    XML Publisher报表模板rtf文件

    在本话题中,我们主要关注的是"XML Publisher报表模板rtf文件",这是一个关键组件,用于定义报告的布局和样式。 RTF,全称为Rich Text Format,是一种通用的文本格式,可以包含丰富的文本样式和格式,如字体、颜色...

    rtftemplate基于模板操作RTF格式文件

    在IT领域,处理RTF文件时,我们可能会遇到需要根据特定需求自动生成或编辑这些文件的情况。这就引出了"rtftemplate",这是一个基于模板操作RTF格式文件的工具。 "rtftemplate"允许开发者使用模板语言如Velocity和...

    C++ rtf lib demo doc

    总之,"C++ rtf lib demo doc"是一个关于如何在C++环境中使用特定库来处理RTF文档的示例和指南,这对于需要处理RTF格式的开发者来说,是一个极具价值的学习资源。通过详细阅读rtflib_guide.pdf并实践其中的示例,你...

    QT编写RTF格式文件实例

    它提供了丰富的API,包括对文本处理的支持,其中就包括创建和读取RTF(Rich Text Format)文件。RTF是一种通用的文档格式,可以包含丰富的文本格式、字体、颜色和图像,使得文件能在多种不同的文本编辑器和操作系统...

    java word(doc,docx,rtf)转为pdf

    - **读取Word文档**:使用Apache POI的HSSFWorkbook或XWPFDocument类读取.doc或.docx文件,HWPFDocument用于处理RTF文件。 - **解析内容**:从Word文档中提取文本、段落样式、图片等信息。 - **创建PDF**:使用iText...

    VC RichEdit导出导入RTF格式文件源码(兼容Word RTF格式)

    在本文中,我们将深入探讨如何在VC++环境中利用RichEdit控件进行RTF(Rich Text Format)文件的导入与导出,并确保与Microsoft Word的RTF格式兼容。首先,让我们理解一下RTF格式以及VC++中的RichEdit控件。 RTF(富...

    合并多个RTF文件转换成PDF并添加书签1

    标题中的“合并多个RTF文件转换成PDF并添加书签1”指的是一个自动化流程,它涉及使用Python脚本来合并多个富文本格式(RTF)文件,然后将合并后的文档转换为PDF,并在PDF中添加书签以便于导航。这个过程对于整理和归档...

    读取doc rtf文档内容

    为了读取.doc文件,我们需要引入POI库并创建一个`HWPFDocument`对象,然后使用`Document`类的`getText()`方法获取文档内容。在处理中文乱码时,确保设置正确的字符编码,例如UTF-8,以避免显示异常的字符。 ```java...

    C++写入并保存rtf文件

    在C++中,文件操作通常涉及到`fstream`库,包括`ifstream`(输入文件流)和`ofstream`(输出文件流)类。`ofstream`用于向文件写入数据,而`ifstream`则用于从文件读取数据。 3. **打开文件** 要写入RTF文件,...

    RTF控件开发和文件格式规范

    这些工具可能包含了预设的模板、自动化格式转换等功能,可以帮助开发者提高效率,减少手动编写RTF代码的工作量。 在实际开发中,了解和掌握RTF格式的细节,能够使你在处理文本格式化、数据导出、报告生成等方面更加...

    RichEdit2RTF_将RichEdit的内容存入RTF文件_

    2. **转换为RTF格式**: RichEdit控件的EM_STREAMOUT消息会将内容输出到一个指定的内存流或文件流中,该流包含RTF格式的数据。在C++中,我们可以使用IStream接口来实现这个功能,通过CreateStreamOnHGlobal函数创建...

    对rtf类型的文件进行操作

    在实际应用中,根据具体需求,可能还需要结合其他技术,如正则表达式来处理复杂文本,或者使用XML解析库处理嵌套在RTF中的Open XML数据。理解RTF的格式和相关API的用法,对于开发涉及文档处理的应用至关重要。

    RichTextBox用法,RTF文件,rtf,文本文件导入RichTextBox

    本文将深入探讨`RichTextBox`的用法以及如何处理RTF(Rich Text Format)文件和普通文本文件的导入。 1. `RichTextBox`控件基础: `RichTextBox`是.NET Framework中的一个控件,属于Windows Forms或WPF(Windows ...

    关于RTF模板的技术总结

    通过条件语句,RTF模板还支持根据数据动态改变单元格颜色,如: ``` &lt;?if:WT2&lt;6001?&gt;&lt;xsl:attribute xd ``` 以上只是RTF模板技术的冰山一角,实际应用中,结合XML数据源解析、XSLT转换逻辑,以及更复杂的样式和...

    VC中RichEdit读取保存rtf文件

    在Microsoft Visual C++(简称VC)开发环境中,利用RichEdit控件可以实现对RTF(Rich Text Format)文件的读取和保存功能。RTF是一种通用的文本格式,支持丰富的文本样式、字体、颜色以及图像等元素。在本文中,我们...

Global site tag (gtag.js) - Google Analytics