zoukankan      html  css  js  c++  java
  • 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();
        }
    
    }
  • 相关阅读:
    crystal report 用存储过程的问题。
    新的开始—2014
    C#基础(二)——C#中的构造函数
    C#基础(一)——C#中反斜杠/n与/r的区别
    Html基础(一)
    yield关键字, default关键字, 别名关键字
    让 wpf tabcontrol 延缓初始化每个tab item content
    MVC,MVP,MVVM(补充)
    Focus scope in WPF
    Wpf ItemsControl 开启UI Virtualization 的条件
  • 原文地址:https://www.cnblogs.com/wuyou/p/3236690.html
Copyright © 2011-2022 走看看