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();

    }



}

 

你可能感兴趣的:(itext)