在 java 中创建 Table in Itext Pdf

Create Table in Itext Pdf in java

我正在使用 itext 在 java 中创建 PDF 格式的 table。我想把它放在右上角。 这是我的代码片段。当我执行下面的代码时,table 在 pdf 的右下角对齐,但我希望它在右上角。

PdfPTable table = new PdfPTable(1);
table.setHorizontalAlignment(Element.ALIGN_RIGHT);
table.setWidthPercentage(160 / 5.23f);
PdfPCell cell = new PdfPCell(new Phrase(" Date" , NORMAL));
cell.setBackgroundColor(BaseColor.BLACK);
cell.setBorderWidth(2f);
table.addCell(cell);
PdfPCell cellTwo = new PdfPCell(new Phrase("10/01/2015"));
cellTwo.setBorderWidth(2f);
table.addCell(cellTwo);

您省略了实际将 table 添加到文档的行。

假设您有:

document.add(table);

在这种情况下,iText 会将其添加到光标的当前位置。如果还没有添加内容,table 将被添加到右上角。右上角由上边距和右边距决定,但如果它们不为 0,您可能会觉得 table 没有添加在右上角。

您还可以:

PdfContentByte canvas = writer.getDirectContent();
table.writeSelectedRows(0, -1, document.right() - tablewidth, document.top(), canvas);

但是,在那种情况下,您必须以不同方式定义 table 的宽度:

table.setTotalWidth(tableWidth);

我不知道你想要多宽 table。您使用了一个相当奇怪的公式来定义宽度百分比。

如果这不能回答您的问题,请通过更新您的问题来澄清。目前,还不完全清楚你在做什么。您的问题无法重现。请参阅 RightCornerTable 示例:

如果我的眼睛没有骗我,当我使用你的代码片段时 table 显示在右上角,而不是你声称的右下角...