IText 表格设置


package test;

import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.PageSize;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;

public class PdfPTableRepeatHeader {

    public static void main(String[] args) {
        Document document = new Document(PageSize.A4.rotate());
        try {
            PdfWriter.getInstance(
                    document,
                    new FileOutputStream("report4.pdf"));
            document.open();
            PdfPTable datatable = new PdfPTable(10);
            datatable.setWidthPercentage(100);
            datatable.getDefaultCell().setPadding(5);
            PdfPCell cell = new PdfPCell(new Phrase(
                    "Administration - System Users Report", FontFactory.getFont(FontFactory.HELVETICA, 24, Font.BOLD)));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);

            cell.setBorderWidth(2);
            cell.setColspan(10);
            cell.setBackgroundColor(new Color(213, 141, 69));
            cell.setUseDescender(true);
            datatable.addCell(cell);
            datatable.getDefaultCell().setBorderWidth(2);
            datatable.getDefaultCell().setHorizontalAlignment(
                    Element.ALIGN_CENTER);

            datatable.addCell("User Id");
            datatable.addCell("Name Address");
            datatable.addCell("Company");
            datatable.addCell("Department");

            PdfPTable permissions = new PdfPTable(6);
            permissions.getDefaultCell().setBorderWidth(2);
            permissions.getDefaultCell().setHorizontalAlignment(
                    Element.ALIGN_CENTER);
            permissions.getDefaultCell().setColspan(6);
            permissions.addCell("Permissions");
            permissions.getDefaultCell().setColspan(1);
            permissions.addCell("Admin");
            permissions.addCell("Data");
            permissions.addCell("Expl");
            permissions.addCell("Prod");
            permissions.addCell("Proj");
            permissions.addCell("Online");
            PdfPCell permission = new PdfPCell(permissions);
            permission.setColspan(6);
            datatable.addCell(permission);
            datatable.setHeaderRows(2);
            datatable.getDefaultCell().setBorderWidth(1);
            for (int i = 1; i < 30; i++) {
                datatable.getDefaultCell().setHorizontalAlignment(
                        Element.ALIGN_LEFT);
                datatable.addCell("myUserId");
                datatable.addCell("Somebody with a very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very long long name");
                datatable.addCell("No Name Company");
                datatable.addCell("D" + i);

                datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
                for (int j = 0; j < 6; j++) {
                    datatable.addCell(Math.random() > .5 ? "Yes" : "No");
                }
            }
            datatable.setSplitLate(false);
            document.add(datatable);
        } catch (DocumentException de) {
            System.err.println(de.getMessage());
        } catch (IOException ioe) {
            System.err.println(ioe.getMessage());
        }
        document.close();
    }
}

原文地址:https://www.cnblogs.com/ae6623/p/4416654.html