在java中的Itext Pdf中创建表

时间:2015-10-30 16:07:29

标签: itext

我正在使用itext在java中创建一个PDF表。我想把它放在右上角。 这是我的代码片段。当我执行下面的代码时,表格在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);

1 个答案:

答案 0 :(得分:1)

您省略了实际将表格添加到文档中的行。

假设你有:

document.add(table);

在这种情况下,iText会将其添加到光标的当前位置。如果尚未添加任何内容,则表格将添加在右上角。右上角由上边距和右边距决定,但如果不是0,您可能会觉得表格没有添加到右上角。

你也可以:

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

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

table.setTotalWidth(tableWidth);

我不知道你想要的桌子多宽。您正在使用相当奇怪的公式来定义宽度百分比。

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

enter image description here

如果我的眼睛不会欺骗我,那么当我使用你的代码片段时,桌子会显示在右上角,而不是你声称的右下角...