zoukankan      html  css  js  c++  java
  • itextpdf中表格中单元格的文字水平垂直居中的设置

    在使用itextpdf中,版本是5.5.6,使用Doucument方式生成pdf时,设置单元格中字体的对齐方式时,发现一些问题,并逐渐找到了解决方式。

    给我的经验就是:看官网的例子才能保证代码的效果,多看官网。

    下面是设置的部分代码:

    PdfPTable table01 = new PdfPTable(3);
            table01.setHorizontalAlignment(Element.ALIGN_CENTER);//表格整体水平居中
            table01.setTotalWidth(400);
            
            PdfPCell cell01 = new PdfPCell();//单元格
            
            cell01.setVerticalAlignment(PdfPCell.ALIGN_CENTER);//设置单元格的垂直对齐方式
            cell01.setHorizontalAlignment(Element.ALIGN_RIGHT);//设置单元格的水平对齐方式
            Paragraph p01 = new Paragraph("一个我嘻嘻嘻", headFont);//新建段落
            cell01.addElement(p01);
            
            table01.addCell(cell01);

    其中:

    cell01.setVerticalAlignment(PdfPCell.ALIGN_CENTER);//设置单元格的垂直对齐方式
    cell01.setHorizontalAlignment(Element.ALIGN_RIGHT);//设置单元格的水平对齐方式

    这两行代码是不起作用的。

    解决方法:

    1、按照itextpdf的代码书写方式

    直接在new pdfPCell的时候添加Phrase、Paragraph、chunk

                PdfPCell cell01 = new PdfPCell(new Phrase("哈哈哈哈哈",textFont));//单元格
                 cell01.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE);//设置单元格的垂直对齐方式
                 cell01.setHorizontalAlignment(Element.ALIGN_CENTER);//设置单元格的水平对齐方式    

    2、使用Paragraph的水平居中功能,并用PdfPCell的setPadding,设置上下padding。

    代码:

            PdfPTable table01 = new PdfPTable(3);
            table01.setHorizontalAlignment(Element.ALIGN_CENTER);//表格整体水平居中
            table01.setTotalWidth(400);
            
            PdfPCell cell01 = new PdfPCell();//单元格
            cell01.setPaddingTop(0f);
            cell01.setPaddingBottom(10f);
            cell01.setBorderColor(BaseColor.GREEN);
            
            Paragraph p01 = new Paragraph("一个我嘻嘻嘻", headFont);//新建段落
            p01.setAlignment(Paragraph.ALIGN_CENTER);//段落的对齐方式
            
            cell01.addElement(p01);
            
            table01.addCell(cell01);

     3、使用getDefaultCell()方式,getDefaultCell只能设置,addCell的参数为字符串的Cell。

            table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
            for (int counter = 1; counter < 101; counter++) {
                table.addCell(String.valueOf(counter));
                table.addCell("key " + counter);
                table.addCell("value " + counter);
            }
    就算这个世道烂成一堆粪坑,那也不是你吃屎的理由
  • 相关阅读:
    【剑指offer】和为S的连续整数序列
    【剑指offer】连续子数组最大和
    【剑指offer】从尾到头打印链表
    【Spark】概述
    【剑指offer】题目20 顺时针打印矩阵
    【剑指offer】题目36 数组中的逆序对
    【C语言】二维数组做形参
    【剑指offer】题目38 数字在排序数组中出现的次数
    SAP 锁对象 基本概念与基本操作 SE11
    线程特定数据TSD总结
  • 原文地址:https://www.cnblogs.com/whalesea/p/11698695.html
Copyright © 2011-2022 走看看