Java用iText写word文档

本文介绍如何使用iText库在Java中生成Word文档。由于直接导出HTML到Word效果不佳,作者选择了iText,这是一个能够生成PDF、rtf文档,甚至可以将XML、HTML转换为PDF的Java类库。在项目中需要添加itext-2.1.7.jar、itext-rtf-2.1.7.jar和iTextAsian.jar这三个jar包。文章提供了详细代码示例,包括设置表格和插入图片,并解释了如何在Web项目中将生成的Word文档输出到客户端供下载。
摘要由CSDN通过智能技术生成
        前两天公司的项目有一个需求,需要把一个JSP上面的表格导出成word,本来想直接在jsp上面设置  
<span style="font-size:18px;">response.setContentType("application/msword;charset=utf-8");</span>

         来直接导出成word的,但是这样的效果很差,样式和表格的边框都没有了,有图的地方,图还变得很大,总之自己都看不下去了,更别说拿去交差。。。

         于是乎就各种百度找解决方案,最后决定用iText来实现,iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。在这里我使用iText生成word。。。首先来看看效果图。。

        看起来的感觉是不是还不错哦,那么看看java代码是如何实现的吧。。在上代码之前,需要注意的是,使用iText必须在项目里添加 itext-2.1.7.jar  itext-rtf-2.1.7.jar  iTextAsian.jar 这三个jar包,不然没法使用的哦。。。代码才是王道,直接上代码了吧。

package itext;

import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Cell;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.rtf.RtfWriter2;
import com.lowagie.text.rtf.style.RtfFont;
public class WordTestDemo {

	public void createDocContext(String file) throws DocumentException,
	IOException {
		
		String titleStr = "城市管理案件派遣单"; //title 
		String executor_name = "王大锤";      //管理员
		String finish_time = "2015-1-2";  //受理时间
		String case_code = "2032215";    //案件编号
		String creator_name = "张三";   //投诉人
		String creator_tel = "1319219776x"; //投诉人电话
		String inspectPic = "http://images.huanqiu.com/sarons/2013/08/8203e7e1343e6d724bba6faad1e7a04f.jpg";    //图片
		String veriferPic = "http://images.huanqiu.com/sarons/2013/08/8203e7e1343e6d724bba6faad1e7a04f.jpg";    //图片
		String case_road = "广场";             //所在路段
		String case_location = "案件地址。。。";      //案件地址
		String sourceName = "市民上报";             //案件来源
		String class_name = "宣传广告";             // 大类名称
		String subclass_name = "非法小广告";         //小类名称
		String case_desc = "这是一个案件。。。";     //内容描述
		String register_time = "2015-12-13";        //立案时间
		String register_name = "管理员";                   //值班长
		String register_desc = "完全同意";                 //立案意见
		String dispatch_dept_name = "第一部门";          //责任单位
		String endTimeHours = "8小时";                           //处理时限
		String dispatch_assist_dept_name = "第二部门";        //协助部门
		String endStr = "XXXX管理局";
		
		
		
		
		
     // 设置纸张大小
	Document document = new Document(PageSize.A4);
	// 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中
	RtfWriter2.getInstance(document, new FileOutputStream(file));
	document.open();
	// 设置中文字体
	BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",
			"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
	// 标题字体风格
	RtfFont titleFont = new RtfFont("宋体", 21, Font.BOLD, Color.BLACK);
	/* Font title
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值