将表格,行和单元格标记为DIV iText

时间:2015-10-08 07:48:52

标签: java itextsharp itext

我正在使用iText 5.5.6创建PDF。 我想将表格,行和单元格标记为DIV。 我编写了以下代码,但只有表被标记为DIV而不是行和单元格。

PdfPTable table = new PdfPTable(2);
table.setRunDirection(PdfAWriter.RUN_DIRECTION_LTR);
table.setRole(PdfName.DIV);
table.setWidthPercentage(80);
table.setWidths(new float[] { 0.8f, 1.2f });
table.setHorizontalAlignment(PdfPTable.ALIGN_LEFT);
table.setSpacingBefore(10);
table.setSpacingAfter(15);
Paragraph p3 = new Paragraph("Name:", font12);
Paragraph p4 = new Paragraph("FirstName LastName", font12);
Paragraph p5 = new Paragraph("DOB: ", font12);
Paragraph p6 = new Paragraph("00-00-0000", font12);
PdfPCell cellp3 = new PdfPCell(p3);
cellp3.setBorder(0);
PdfPCell cellp4 = new PdfPCell(p4);
cellp4.setBorder(0);
cellp3.setRole(PdfName.DIV);
cellp4.setRole(PdfName.DIV);
table.addCell(cellp3);
table.addCell(cellp4);
PdfPCell cellp5 = new PdfPCell(p5);
cellp5.setBorder(0);
PdfPCell cellp6 = new PdfPCell(p6);
cellp6.setBorder(0);
cellp5.setRole(PdfName.DIV);
cellp6.setRole(PdfName.DIV);
table.addCell(cellp5);
table.addCell(cellp6);

如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

如果我测试您的代码,表格和所有单元格都被标记为DIV。行确实不是。

在iText中,类PdfPTablePdfPRowPdfPCell负责表格功能。 PdfPRow通常仅在内部的iText实现中使用,因为PdfPTable实例直接接受PdfPCell

但是您可以检索表行以设置其角色。将所有单元格添加到表格后,请执行以下操作:

for (PdfPRow row : table.getRows())
    row.setRole(PdfName.DIV);