在PDF表中引入跨越两行的单元格

时间:2017-10-31 12:00:05

标签: java itext

我正在使用iText(Java版)创建PDF文档,如下图所示:

enter image description here

我想创建内容,如突出显示的部分所示。除了突出显示的部分外,我完成了PDF的所有其他部分的开发。

请参阅:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以通过在iText中正确使用Colspan和rowspan来实现此目的。 一个例子可以在下面找到:

https://developers.itextpdf.com/examples/tables/colspan-and-rowspan

我为我假设您遇到问题的部分添加了一个小代码块:

public void createPdf(String dest) throws IOException, DocumentException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    PdfPTable table = new PdfPTable(3);
    table.setWidths(new int[]{ 1, 1, 1});
    PdfPCell cell;
    cell = new PdfPCell(new Phrase("8"));
    cell.setColspan(2);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase("10"));
    cell.setColspan(1);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase("15"));
    cell.setColspan(1);
    cell.setRowspan(2);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase("16"));
    cell.setColspan(1);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase("17"));
    cell.setColspan(1);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase("24"));
    cell.setColspan(1);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase("25"));
    cell.setColspan(1);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase("mm"));
    cell.setColspan(2);
    table.addCell(cell);
    cell = new PdfPCell(new Phrase("mm"));
    cell.setColspan(1);
    table.addCell(cell);
    document.add(table);
    document.close();
}

结果pdf如下所示:    enter image description here

我使用过iText 5.0.6版本