如何控制PdfPCell内线之间的间距?

时间:2016-08-31 20:45:02

标签: java pdf-generation itext

我尝试使用itext 5.5.9为大学成绩单生成PDF。我决定使用PdfPTable来控制布局。本文档的开头包含一个概述部分,其中包含以下几行:

名称: 出生日期:

专业: 次要:

现在,输出会在这些行之间增加比预期更多的空间。 (看起来这些行是双倍行距。)以下是看似相关的代码片段:

PdfPCell overviewCell = new PdfPCell();
//other codes here...

overviewCell.setPadding(0f);;       
overviewCell.setLeading(0f, 0f);

overviewCell.addElement(new Phrase("Name:", normalFont));
overviewCell.addElement(Chunk.NEWLINE);
overviewCell.addElement(new Phrase("Date of Birth:", normalFont));
overviewCell.addElement(Chunk.NEWLINE);
overviewCell.addElement(Chunk.NEWLINE);
overviewCell.addElement(new Phrase("Major:", normalFont));

我还尝试获取PdfWriter ColumnText (ct),并在调用overviewCell.setColumn(ct)之前直接使用该对象,但这并没有修复间距。

请告诉我如何控制单元格内文本的行间距。

谢谢!

1 个答案:

答案 0 :(得分:0)

为什么不添加创建子表并将其添加到具有所需金额的概览单元格中。这将为您处理大量格式。

private static final String _name = "Name:";
private static final String _dateOfBirth = "Date Of Birth:";
private static final String _major = "Major:";

PdfPTable table = new PdfPTable(2);

PdfPCell spaceCell = new PdfPCell(new Phrase("  ", normalFont));
PdfPCell nameCell = new PdfPCell(new Phrase(_name, normalFont));
PdfPCell dateOfBirthCell = new PdfPCell(new Phrase(_dateOfBirth, normalFont));
PdfPcell majorCell = new PdfPCell(new Phrase(_major, normalFont));

table.addCell(nameCell);
table.addCell(spaceCell);
table.addCell(dateOfBirthCell);
table.addCell(spaceCell);
table.addCell(spaceCell); // if you want an extra line break here a fill a line
table.addCell(spaceCell); // with space cells
table.addCell(majorCell);

overviewCell.addElement(table);