IText 生成简单表格(报表)doc文档 单元居中
IText生成doc文档需要三个包:iTextAsian.jar,iText-rtf-2.1.4.jar,iText-2.1.4.jar
亲测无误,代码如下所示:
import com.lowagie.text.*; import com.lowagie.text.Font; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.rtf.RtfWriter2; import java.awt.*; import java.io.FileOutputStream; /** * 生成报修系统的报表doc文档 * User: HYY * Date: 13-8-1 * Time: 下午9:54 * To change this template use File | Settings | File Templates. */ public class GenerateBaoxiu { public static void main(String[] args) throws Exception { BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); //设置纸张的大小对象 Rectangle rectangle = new Rectangle(PageSize.A4); // 创建word文档,并旋转,使其横向 Document document = new Document(rectangle.rotate()); RtfWriter2.getInstance(document, new FileOutputStream("C:/無幽之路IText教程.doc")); document.open(); //报表标题 Paragraph headTitle = new Paragraph("学期报修报表"); Font headFont = new Font(bfChinese); headFont.setSize(22); headFont.setStyle(Font.BOLD); headTitle.setFont(headFont); headTitle.setAlignment(1);//居中 document.add(headTitle); //正文表格 PdfPTable table = new PdfPTable(10); table.setWidths(new float[]{15f,9f,9f,9f,11f,8f,20f,15f,9f,9f}); table.setTotalWidth(114); //设置表头字体样式 Font tableHeadFont = new Font(bfChinese);//表头字体样式 tableHeadFont.setSize(10.5f);//设置表头字体为五号字体 tableHeadFont.setStyle(Font.BOLD);//加粗 //表头第一列:表单申请时间 PdfPCell headCell1 = new PdfPCell(); Paragraph headCell1Phrase = new Paragraph("表单申请时间"); headCell1Phrase.setFont(tableHeadFont); headCell1.setPhrase(headCell1Phrase); headCell1Phrase.setAlignment(1); headCell1.setHorizontalAlignment(1); //表头第二列:申请人 PdfPCell headCell2 = new PdfPCell(); Paragraph headCell2Phrase = new Paragraph("申请人"); headCell2Phrase.setFont(tableHeadFont); headCell2.setPhrase(headCell2Phrase); headCell2Phrase.setAlignment(1); headCell2.setHorizontalAlignment(1); //表头第三列:维修人 PdfPCell headCell3 = new PdfPCell(); Paragraph headCell3Phrase = new Paragraph("维修人"); headCell3Phrase.setFont(tableHeadFont); headCell3.setPhrase(headCell3Phrase); headCell3Phrase.setAlignment(1); headCell3.setHorizontalAlignment(1); //表头第四列:后勤人 PdfPCell headCell4 = new PdfPCell(); Paragraph headCell4Phrase = new Paragraph("后勤人"); headCell4Phrase.setFont(tableHeadFont); headCell4.setPhrase(headCell4Phrase); headCell4Phrase.setAlignment(1); headCell4.setHorizontalAlignment(1); //表头第五列:设备类型 PdfPCell headCell5 = new PdfPCell(); Paragraph headCell5Phrase = new Paragraph("设备类型"); headCell5Phrase.setFont(tableHeadFont); headCell5.setPhrase(headCell5Phrase); headCell5Phrase.setAlignment(1); headCell5.setHorizontalAlignment(1); //表头第六列:维修设备 PdfPCell headCell6 = new PdfPCell(); Paragraph headCell6Phrase = new Paragraph("维修设备"); headCell6Phrase.setFont(tableHeadFont); headCell6.setPhrase(headCell6Phrase); headCell6Phrase.setAlignment(1); headCell6.setHorizontalAlignment(1); //表头第七列:维修地点 PdfPCell headCell7 = new PdfPCell(); Paragraph headCell7Phrase = new Paragraph("维修地点"); headCell7Phrase.setFont(tableHeadFont); headCell7.setPhrase(headCell7Phrase); headCell7Phrase.setAlignment(1); headCell7.setHorizontalAlignment(1); //表头第八列:维修完成时间 PdfPCell headCell8 = new PdfPCell(); Paragraph headCell8Phrase = new Paragraph("维修完成时间"); headCell8Phrase.setFont(tableHeadFont); headCell8.setPhrase(headCell8Phrase); headCell8Phrase.setAlignment(1); headCell8.setHorizontalAlignment(1); //表头第九列:维修评价 PdfPCell headCell9 = new PdfPCell(); Paragraph headCell9Phrase = new Paragraph("维修评价"); headCell9Phrase.setFont(tableHeadFont); headCell9.setPhrase(headCell9Phrase); headCell9Phrase.setAlignment(1); headCell9.setHorizontalAlignment(1); //表头第十列:维修费用 PdfPCell headCell10 = new PdfPCell(); Paragraph headCell10Phrase = new Paragraph("维修费用"); headCell10Phrase.setFont(tableHeadFont); headCell10.setPhrase(headCell10Phrase); headCell10Phrase.setAlignment(1); headCell10.setHorizontalAlignment(1); table.addCell(headCell1); table.addCell(headCell2); table.addCell(headCell3); table.addCell(headCell4); table.addCell(headCell5); table.addCell(headCell6); table.addCell(headCell7); table.addCell(headCell8); table.addCell(headCell9); table.addCell(headCell10); //表头添加完毕 //添加表格体 for(int i=0; i<1000; i++) { table.addCell(""); } document.add(table); //页脚段落 Paragraph paraFooter = new Paragraph(); Font font = new Font(); //页脚的字体大小 font.setSize(12f); font.setColor(new Color(0, 0, 0)); paraFooter.setFont(font); paraFooter.setAlignment("center"); //页脚的段落和是否有页码 HeaderFooter footer = new HeaderFooter(paraFooter, true); //页脚的对齐方式(应该在footer设置而不是段落中设置) footer.setAlignment(1); document.setFooter(footer); document.close(); } }
本文出自 无忧之路 - 博客园