IText PdfPTable表格 单元的居中显示

时间:2024-02-21 14:45:12

昨晚寻找了网上很多关于IText表格居中问题,他们其中的有些代码我即使复制上去生成的doc表格的文字都是不居中的,后来我自己找出了一种居中方式:

为PdfPCell对象添加paragraph对象,并将该paragraph设置为居中:

    PdfPCell cell1 = new PdfPCell();
        Paragraph para = new Paragraph("该单元居中");
        //设置该段落为居中显示
        para.setAlignment(1);
        cell1.setPhrase(para);
        table.addCell(cell1);

 

代码亲测无误,全部代码如下:

import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.rtf.RtfWriter2;

import java.io.FileOutputStream;

/**
 * PdfPTable的使用方法,表格居中问题
 * User: HYY
 * Date: 13-8-1
 * Time: 下午9:54
 * To change this template use File | Settings | File Templates.
 */
public class PdfpTableTest {
    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        // 创建word文档,并设置纸张的大小
        Document document = new Document(PageSize.A4);
        //设置存放位置
        RtfWriter2.getInstance(document, new FileOutputStream("C:/1.doc"));
        document.open();

        //生成三列表格
        PdfPTable table = new PdfPTable(3);
        //设置表格具体宽度
        table.setTotalWidth(90);
        //设置每一列所占的长度
        table.setWidths(new float[]{50f, 15f, 25f});


        PdfPCell cell1 = new PdfPCell();
        Paragraph para = new Paragraph("该单元居中");
        //设置该段落为居中显示
        para.setAlignment(1);
        cell1.setPhrase(para);
        table.addCell(cell1);

        table.addCell(new PdfPCell(new Phrase("無幽之路IText教程")));
        table.addCell(new PdfPCell(new Phrase("無幽之路IText教程")));

        document.add(table);

        document.close();
    }

}