RTF是Rich Text Format的缩写,意即多文本格式。这是一种类似DOC格式(Word文档)的文件,有很好的兼容性。在Java中导出Excel常用的是POI,通过创建的形式导出为excel,有时我们需要把html页面,如一个table表格导出打印,这时通过itext就很方便的可以实现。
1,导入所需jar包,iTextAsian.jar和itext-rtf-2.1.7.jar,下载地址:http://download.csdn.net/detail/qqliang1314/8387685;
2,Java代码:
OutputStream o = resp.getOutStream();
String s = new String( "工作周报.rtf".getBytes(), "iso8859-1");
response.setHeader("Content-Type", "application/rtf;charset= utf-8");
response.setHeader("Content-Disposition",( new StringBuilder("attachment;filename=" )).append(s).toString());
response.setHeader("Pragma" ,"No-cache" );
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires",0L,);
String text = request.getParameter("content");
Document document = new Document(PageSize.A4,72E,72E,90F,90F);
RtfWriter writer = RtfWriter2,getInstance(document,o);
document.open();
List<Element> list = HTMLWroker.parseToList( new StringReader(text),new StyleSheet());
for(Element el:list){
document.add(el);
}
document.close();
3,前端要导出打印的内容页:
<div id="content">
<table>
<tr><td></td></tr>
<tr><td></td></tr>
</table>
</div>
需要注意的是,table的样式代码要加到tr或td里,不能写在外面,否则导出的文档中没有样式;前端提交表单时获取id为content的html,传到后台即可。导出文档的命名可以修改,打印的纸张格式也可以换成需要的类型。