我尝试使用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)
之前直接使用该对象,但这并没有修复间距。
请告诉我如何控制单元格内文本的行间距。
谢谢!
答案 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);