zoukankan      html  css  js  c++  java
  • itextpdf5操作表格

    下面是一些对表格排版的常用方法,是在制作pdf的时候通过查看ipa和一些博客积累下来的。

    包括,表格的宽度,对齐方式,表的页眉页脚,前后间距,padding;

    单元格对齐方式,线条设置,段落于单元格之间的间距,单元格里面的文本的行间距设置。

    这些是通过查看ipa记录其中的一部份,还有很多已于理解的ipa没有记录。

    package dbzx.pdf;
    
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    
    import org.junit.Test;
    
    import com.itextpdf.text.BaseColor;
    import com.itextpdf.text.Document;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.Element;
    import com.itextpdf.text.Font;
    import com.itextpdf.text.FontFactory;
    import com.itextpdf.text.Paragraph;
    import com.itextpdf.text.pdf.BaseFont;
    import com.itextpdf.text.pdf.PdfPTable;
    import com.itextpdf.text.pdf.PdfWriter;
    
    public class AllTableMethod {
        
        @Test
        public void createTable() throws FileNotFoundException, DocumentException {
            String FONT = "C:/WINDOWS/Fonts/simsun.ttc,0";
            Font textFont = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED,10,Font.NORMAL,BaseColor.BLACK);
            String path = "E:/demo/pdfCreat/"+System.currentTimeMillis()+".pdf";//输出pdf的路径
            Document doc = new Document();
            PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(path));
            doc.open();
            PdfPTable table = new PdfPTable(4);
            //设置控制
            table.setSpacingBefore(40);//表格前间距
            table.setSpacingAfter(100);//表格后间距
            table.setWidthPercentage(80);//表格宽占page比例
            table.setHorizontalAlignment(Element.ALIGN_LEFT);//表格水平对齐方式
           /*
            *      设置构成标题的顶部行数。只有当表被添加到文档并且表跨页时,这个header才有意义。
            */
            
            table.setHeaderRows(2);
            /*
             *     设置页脚要使用的行数。页脚的数量从页眉行中减去。例如,对于一个有两个页眉行和一个页脚行的表,代码应该是:
             *    table.setHeaderRows (3);
             *    table.setFooterRows (1);
             *    第0行和第1行是页眉行,第2行是页脚行。
             */
            table.setFooterRows(1);
            table.setPaddingTop(10f);//设置表格顶部padding
            //设置单元格
            /**
             * getDefaultCell()得到的Cell代表所有不是table.add(PdfPCell)的Cell。例:table.add(new Paragraph("test")).
             */
            table.getDefaultCell().setVerticalAlignment(Element.ALIGN_TOP);//单元格中文字垂直对齐方式
            table.getDefaultCell().setBorderColor(BaseColor.WHITE);//单元格线条颜色
            table.getDefaultCell().setMinimumHeight(30);//单元格最小高度
            table.getDefaultCell().setExtraParagraphSpace(5);//段落文字与表格之间的距离,底部距离
            table.getDefaultCell().setLeading(15, 0);//设置行间距
    //        table.getDefaultCell().setFixedHeight(20f);//表格固定高度
            for(int i=0;i<16;i++) {
                table.addCell(new Paragraph("test"));
            }
            doc.add(table);
            doc.close();
            
        }
    }
    就算这个世道烂成一堆粪坑,那也不是你吃屎的理由
  • 相关阅读:
    CSP 201612-3 权限查询 【模拟+STL】
    Vijos 1565 多边形 【区间DP】
    制作进度条(UISlider)
    制作按钮(Button)
    制作UI纹理(UI Texture)
    制作标签(Label)
    什么是UI控件
    制作精灵(UI Sprite)
    深度(Depth)概念
    2D UI和3D UI的工作原理
  • 原文地址:https://www.cnblogs.com/whalesea/p/11776463.html
Copyright © 2011-2022 走看看