package iText; import java.awt.Color; import java.io.FileOutputStream; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; 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.FontFactory; 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; public class CreateWord { public void createWord() { String filePath = "C://word.doc"; String content = "iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。"; // 设置纸张大小 Document document = new Document(PageSize.A4); try { // 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 RtfWriter2.getInstance(document, new FileOutputStream(filePath)); document.open(); // 设置中文字体 BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); // 标题字体风格 Font titleFont = new Font(bfChinese, 12, Font.BOLD); // 正文字体风格 // Font contextFont = new Font(bfChinese, 10, Font.NORMAL); DateFormat df1 = new SimpleDateFormat("yyyyMMdd"); String time = df1.format(new Date()); Paragraph title = new Paragraph(time + "导出Word示例", FontFactory .getFont(FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.BOLD, new Color(0, 0, 0))); title.setAlignment(Element.ALIGN_CENTER); title.setFont(titleFont); document.add(title); // 导出一段落 DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); String time1 = df.format(new Date()); String contextString = "导出时间:" + time1 + "," + content; Paragraph context = new Paragraph(contextString); // 正文格式左对齐 context.setAlignment(Element.ALIGN_LEFT); // 离上一段落(标题)空的行数 context.setSpacingBefore(5); // 设置第一行空的列数 context.setFirstLineIndent(20); document.add(context); document.add(new Paragraph("/n")); // 导出表格 Paragraph underline = new Paragraph("导出表格示例", FontFactory.getFont( FontFactory.HELVETICA_BOLDOBLIQUE, 13, Font.BOLD, new Color(0, 0, 0))); document.add(underline); // 设置 Table 表格 Table aTable = new Table(6); int width[] = { 20, 20, 20, 20, 20, 20 }; aTable.setWidths(width);// 设置每列所占比例 aTable.setWidth(90); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_CENTER);// 居中显示 aTable.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(5); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 aTable.setPadding(5);// 衬距,看效果就知道什么意思了 aTable.setSpacing(0);// 即单元格之间的间距 aTable.setBorder(5);// 边框 aTable.getDefaultCell().setBorder(5);// 边框显示方式 // 设置表头 /** * cell.setHeader(true);是将该单元格作为表头信息显示; * cell.setColspan(3);指定了该单元格占3列; 为表格添加表头信息时,要注意的是一旦表头信息添加完了之后, 必须调用 * endHeaders()方法,否则当表格跨页后,表头信息不会再显示 */ aTable.addCell(new Cell("姓名")); aTable.addCell(new Cell("小白")); aTable.addCell(new Cell("年龄")); aTable.addCell(new Cell("25")); aTable.addCell(new Cell("性别")); aTable.addCell(new Cell("男")); aTable.addCell(new Cell("出生日期")); Cell cell3 = new Cell(new Phrase("1987-05-02")); cell3.setColspan(3); cell3.setVerticalAlignment(Element.ALIGN_CENTER); aTable.addCell(cell3); aTable.addCell(new Cell("情况描述")); Cell cell4 = new Cell(new Phrase("QQQQQQQQQQQQQ")); // cell4.setColspan(5); cell4.setVerticalAlignment(Element.ALIGN_CENTER); aTable.addCell(cell4); aTable.addCell(new Cell("车道数")); aTable.addCell(new Cell(" ")); aTable.addCell(new Cell("占用车道数")); Cell cell5 = new Cell(new Phrase("6")); cell5.setColspan(3); cell5.setVerticalAlignment(Element.ALIGN_CENTER); aTable.addCell(cell5); document.add(aTable); document.add(new Paragraph("/n")); // 导出图片 document.add(new Paragraph("/n")); Paragraph pacti = new Paragraph("图片信息", FontFactory.getFont( FontFactory.HELVETICA_BOLDOBLIQUE, 13, Font.BOLD, new Color(0, 0, 0))); document.add(pacti); Image img = Image.getInstance("C://c756张家桥2.JPG"); img.setAbsolutePosition(0, 0); img.setAlignment(Image.LEFT);// 设置图片显示位置 img.scaleAbsolute(12, 35);// 直接设定显示尺寸 img.scalePercent(50);// 表示显示的大小为原尺寸的50% img.scalePercent(25, 12);// 图像高宽的显示比例 img.setRotation(30);// 图像旋转一定角度 document.add(img); document.add(new Paragraph("/n")); document.close(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println("生成完毕"); } public static void main(String[] args) { CreateWord creat = new CreateWord(); creat.createWord(); } } 需要的架包: iText-rups-2.1.4.jar iText-2.1.4.jar iTextAsian.jar //设置字体 iText-rtf-2.1.4.jar 这里传不了架包,可以到我的资源下载