首先,要导入Itext的三个jar包:iText-2.1.7.jar,itext-rtf-2.1.7.jar,iTextAsian.jar;
其次,Itext里面设置导出word文件的字体,用RtfFont这个类的初始化方法进行设置;
RtfFont font =new RtfFont("仿 宋", 12, Font.NORMAL, Color.BLACK);
这个构造方法里面:第一个参数是字体类型,第二个参数是字体大小,第三个参数是字体格式是加粗还是正常,第四个参数是字体的颜色
仿宋:new RtfFont("仿 宋", 12, Font.NORMAL, Color.BLACK);
黑体:new RtfFont("黑 体", 16, Font.BOLD, Color.BLACK);
宋体:new RtfFont("宋 体", 16, Font.NORMAL, Color.BLACK);
微软雅黑:new RtfFont("微 软 雅 黑", 16, Font.NORMAL, Color.BLACK);
仿宋_GB2312:new RtfFont("仿宋_GB2312", 16, Font.NORMAL, Color.BLACK);
注:这个时候导出的字体是“宋体 (中文正文)”
这里的字体类型可以自己一一尝试,字体类型书写的时候中间加一个空格(比如:“黑体”这样写是不起作用的,必须写成“黑 体”)
public class TestDoc {
/**
* @param args
*/
public static void main(String[] args) {
exportDoc("D:\\test.doc");
}
public static void exportDoc(String fileName){
try {
Document doc = new Document();
RtfWriter2.getInstance(doc, new FileOutputStream(fileName));
// 打开文档
doc.open();
//设置页边距,上、下25.4毫米,即为72f,左、右31.8毫米,即为90f
doc.setMargins(90f, 90f, 72f, 72f);
BaseFont baseFont = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
//设置标题字体样式,粗体、二号、华文中宋
Font tfont = new Font(baseFont, 22, Font.BOLD); //标题的样式------宋体 (中文标题)二号 加粗
//构建标题,居中对齐,12f表示单倍行距
//RtfFont font =new RtfFont("黑 体", 16, Font.BOLD, Color.BLACK); //标题1的样式------黑体 加粗 三号
RtfFont font =new RtfFont("仿 宋", 12, Font.NORMAL, Color.BLACK); //标题2的样式------仿宋 加粗 三号
//RtfFont font =new RtfFont("仿 宋", 16, Font.NORMAL, Color.BLACK);//正文的样式------仿宋(三号 正常)
Paragraph title = DocStyleUtils.setParagraphStyle("测试Itext导出Word文档", tfont, 26f, Paragraph.ALIGN_CENTER);
//构建正文内容
StringBuffer contentSb = new StringBuffer();
contentSb.append("最近项目很忙,这个是项目中使用到的,所以现在总结一下,以便今后可以参考使用,");
contentSb.append("2011年4月27日 — 2011年5月20日,对以下技术进行使用,");
contentSb.append("Itext、");
contentSb.append("Excel、");
contentSb.append("Word、");
contentSb.append("PPT。");
//首行缩进2字符,行间距1.5倍行距
Paragraph bodyPar = DocStyleUtils.setParagraphStyle(contentSb.toString(), font, 32f, 26f);
Paragraph bodyEndPar = DocStyleUtils.setParagraphStyle("截至2011年4月28日,各种技术已经完全实现。", font, 32f, 26f);
//设置空行
Paragraph blankRow = new Paragraph(26f, " ", font);
Paragraph deptPar = DocStyleUtils.setParagraphStyle("(技术开发部盖章)", font, 26f, Paragraph.ALIGN_RIGHT);
Paragraph datePar = DocStyleUtils.setParagraphStyle("2011-04-30", font, 26f, Paragraph.ALIGN_RIGHT);
//向文档中添加内容
doc.add(title);
doc.add(blankRow);
doc.add(bodyPar);
doc.add(bodyEndPar);
doc.add(blankRow);
doc.add(blankRow);
doc.add(blankRow);
doc.add(deptPar);
doc.add(datePar);
//最后一定要记住关闭
doc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}