有个后缀名为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();
}
}
}
分享到:
相关推荐
转换完成后,生成的DOC文件可以在各种版本的Microsoft Word或其他支持DOC格式的软件中打开和编辑。值得注意的是,尽管转换工具力求保持原格式,但个别字体、图像或特殊格式可能在转换后有所变化,用户需要对转换后的...
本主题主要涉及两个关键步骤:根据RTF(Rich Text Format)模板生成Word文档,然后将生成的Word文档转换为PDF格式。让我们详细探讨这两个过程以及解决乱码和转换失败的问题。 **RTF模板生成Word文档** RTF是一种...
在实际项目中,你可能需要根据需求动态生成RTF内容,例如从数据库获取数据并格式化为RTF。这通常涉及到字符串的构建和拼接,以及对RTF命令的深入了解。记得在处理RTF时,确保所有特殊字符都被正确转义,避免它们被...
因此,我们需要进行格式转换,将.doc文件转换为RTF,然后在`RichTextBox`中加载。 转换过程通常涉及以下步骤: 1. **读取DOC文件**:首先,我们需要一个库来读取Word文档。Microsoft Office Interop是一个选项,但...
在本话题中,我们主要关注的是"XML Publisher报表模板rtf文件",这是一个关键组件,用于定义报告的布局和样式。 RTF,全称为Rich Text Format,是一种通用的文本格式,可以包含丰富的文本样式和格式,如字体、颜色...
在IT领域,处理RTF文件时,我们可能会遇到需要根据特定需求自动生成或编辑这些文件的情况。这就引出了"rtftemplate",这是一个基于模板操作RTF格式文件的工具。 "rtftemplate"允许开发者使用模板语言如Velocity和...
总之,"C++ rtf lib demo doc"是一个关于如何在C++环境中使用特定库来处理RTF文档的示例和指南,这对于需要处理RTF格式的开发者来说,是一个极具价值的学习资源。通过详细阅读rtflib_guide.pdf并实践其中的示例,你...
它提供了丰富的API,包括对文本处理的支持,其中就包括创建和读取RTF(Rich Text Format)文件。RTF是一种通用的文档格式,可以包含丰富的文本格式、字体、颜色和图像,使得文件能在多种不同的文本编辑器和操作系统...
- **读取Word文档**:使用Apache POI的HSSFWorkbook或XWPFDocument类读取.doc或.docx文件,HWPFDocument用于处理RTF文件。 - **解析内容**:从Word文档中提取文本、段落样式、图片等信息。 - **创建PDF**:使用iText...
在本文中,我们将深入探讨如何在VC++环境中利用RichEdit控件进行RTF(Rich Text Format)文件的导入与导出,并确保与Microsoft Word的RTF格式兼容。首先,让我们理解一下RTF格式以及VC++中的RichEdit控件。 RTF(富...
标题中的“合并多个RTF文件转换成PDF并添加书签1”指的是一个自动化流程,它涉及使用Python脚本来合并多个富文本格式(RTF)文件,然后将合并后的文档转换为PDF,并在PDF中添加书签以便于导航。这个过程对于整理和归档...
为了读取.doc文件,我们需要引入POI库并创建一个`HWPFDocument`对象,然后使用`Document`类的`getText()`方法获取文档内容。在处理中文乱码时,确保设置正确的字符编码,例如UTF-8,以避免显示异常的字符。 ```java...
在C++中,文件操作通常涉及到`fstream`库,包括`ifstream`(输入文件流)和`ofstream`(输出文件流)类。`ofstream`用于向文件写入数据,而`ifstream`则用于从文件读取数据。 3. **打开文件** 要写入RTF文件,...
这些工具可能包含了预设的模板、自动化格式转换等功能,可以帮助开发者提高效率,减少手动编写RTF代码的工作量。 在实际开发中,了解和掌握RTF格式的细节,能够使你在处理文本格式化、数据导出、报告生成等方面更加...
2. **转换为RTF格式**: RichEdit控件的EM_STREAMOUT消息会将内容输出到一个指定的内存流或文件流中,该流包含RTF格式的数据。在C++中,我们可以使用IStream接口来实现这个功能,通过CreateStreamOnHGlobal函数创建...
在实际应用中,根据具体需求,可能还需要结合其他技术,如正则表达式来处理复杂文本,或者使用XML解析库处理嵌套在RTF中的Open XML数据。理解RTF的格式和相关API的用法,对于开发涉及文档处理的应用至关重要。
本文将深入探讨`RichTextBox`的用法以及如何处理RTF(Rich Text Format)文件和普通文本文件的导入。 1. `RichTextBox`控件基础: `RichTextBox`是.NET Framework中的一个控件,属于Windows Forms或WPF(Windows ...
通过条件语句,RTF模板还支持根据数据动态改变单元格颜色,如: ``` <?if:WT2<6001?><xsl:attribute xd ``` 以上只是RTF模板技术的冰山一角,实际应用中,结合XML数据源解析、XSLT转换逻辑,以及更复杂的样式和...
在Microsoft Visual C++(简称VC)开发环境中,利用RichEdit控件可以实现对RTF(Rich Text Format)文件的读取和保存功能。RTF是一种通用的文本格式,支持丰富的文本样式、字体、颜色以及图像等元素。在本文中,我们...