iText7中不显示单元格的内容

时间:2017-10-22 07:30:49

标签: java itext itext7

如果单元格的内容大于高度固定表格中单元格的高度,则不显示内容。

这可能是iText库的规范,但在这种情况下有没有办法让内容在iText7中可见?

我正在从iText5迁移到iText7。

即使我将相同的值(表格和单元格高度,填充值,字体大小)设置为iText5,单元格的内容也不会显示在iText7中。

如果我将Cell的TopPadding和BottomPadding设置为0,则会显示单元格的内容。

我认为iText5和iText不具有不同的坐标和单位。

如何获得与iText5相同的结果?

iText 5的代码

PdfPTable ptable = new PdfPTable(1);
ptable.setTotalWidth(143f);
ptable.setWidthPercentage(100f);
PdfPCell pcell = new PdfPCell();
pcell.setPadding(2f);
pcell.setUseAscender(true);
pcell.setUseDescender(true);
pcell.setFixedHeight(16.05603f);
Paragraph p = new Paragraph();
p.setLeading(4.032f, 1.0f);
p.setSpacingBefore(0f);
p.setSpacingAfter(0f);
Chunk str = new Chunk("Sample");
Font font = FontFactory.getFont("batang", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
font.setSize(12f);
str.setFont(font);
p.add(str);
pcell.addElement(p);
ptable.addCell(pcell);
ptable.writeSelectedRows(0, -1, 300f, 150f, contentByte);

iText 7的代码

Table table = new Table(new float[] {143f});
table.setWidthPercent(100f);
table.setHeight(16.05603f);
Cell cell = new Cell();
cell.setPadding(2f);
cell.setHeight(16.05603f);
Paragraph p = new Paragraph();
p.setFixedLeading(4.032f);
p.setMultipliedLeading(1.0f);
p.setMarginTop(0f);
p.setMarginBottom(0f);
PdfFont font = PdfFontFactory.createRegisteredFont("batang", PdfEncodings.IDENTITY_H, true);
Text str = new Text("Sample").setFontSize(12f).setFont(font);
p.add(str);
cell.add(p);
table.addCell(cell);
table.setFixedPosition(300f, 150f, 143f);
document.add(table);

0 个答案:

没有答案