我有一个标签(例如“东西列表”)和一些内容(例如实际列表)。当我将所有这些添加到PDF时,我得到:
A list of stuff: test A, test B, coconut, coconut, watermelons, apple, oranges, many more
fruites, carshow, monstertrucks thing
我想更改此内容,以便内容对齐如下:
A list of stuff: test A, test B, coconut, coconut, watermelons, apple, oranges, many more
fruites, carshow, monstertrucks thing, everything is startting on the
same point in the line now
换句话说:我希望对内容进行对齐,以便每行都从相同的X位置开始,无论列表中添加了多少项。
答案 0 :(得分:0)
有许多不同的方法可以达到你想要的效果:看看下面的截图:
此PDF是使用IndentationOptions示例创建的。
在第一个选项中,我们使用带有标签(List
)的"A list of stuff: "
作为列表符号:
List list = new List();
list.setListSymbol(new Chunk(LABEL));
list.add(CONTENT);
document.add(list);
document.add(Chunk.NEWLINE);
在第二个选项中,我们使用一个段落,我们使用LABEL的宽度作为缩进,但我们更改第一行的缩进以补偿该缩进。
BaseFont bf = BaseFont.createFont();
Paragraph p = new Paragraph(LABEL + CONTENT, new Font(bf, 12));
float indentation = bf.getWidthPoint(LABEL, 12);
p.setIndentationLeft(indentation);
p.setFirstLineIndent(-indentation);
document.add(p);
document.add(Chunk.NEWLINE);
在第三个选项中,我们使用一个包含列的表,我们为其定义绝对宽度。我们使用先前计算的第一列宽度,但我们添加4,因为单元格的默认填充(左和右)等于2.(显然,您可以更改此填充。)
PdfPTable table = new PdfPTable(2);
table.getDefaultCell().setBorder(Rectangle.NO_BORDER);
table.setTotalWidth(new float[]{indentation + 4, 519 - indentation});
table.setLockedWidth(true);
table.addCell(LABEL);
table.addCell(CONTENT);
document.add(table);
可能还有其他方法可以达到相同的效果,您可以随时调整上述选项。由您决定哪种选项最适合您的情况。