gpt4 book ai didi

java - iText 格式化表

转载 作者:行者123 更新时间:2023-12-01 14:14:13 24 4
gpt4 key购买 nike

我正在使用 iText5 库生成一个 PDF 文档(对于那些以前看过他的人来说,仍然是)。向布鲁诺·洛瓦吉致敬;我发现它是一个非常棒的 AP​​I!

但是,我的部分任务是格式化一些短语。我使用嵌套的 PdfPTable 来格式化数据,但我遇到了奇怪的间距问题。这是我面临的问题的示例:

enter image description here

正如您所看到的,仅包含几个短语的行之间往往存在巨大的间隙。我可以理解为什么发生这种情况;上面的行拉伸(stretch)了表格。有没有办法只让表格达到需要的大小,而不是更大?

代码

生成价格集合

我正在使用以下代码段创建价格:

 Paragraph pricePara = new Paragraph();
pricePara.add(price);
pricePara.add(generateBreakLine());
pricePara.add(time);
pricePara.add(generateBreakLine());
allPrices.add(pricePara);

其中 generateBreakLine() 返回一个空的 Paragraph 对象。

将它们添加到单元格中

我使用以下代码片段将它们添加到单元格中:

 // 5 is just the amount of prices we can fit on one line.
PdfPTable pricesCellValue = new PdfPTable(elements.size() > 5 ? 5 : elements.size());
// Make it appear that the prices are just horizontal, as opposed to in a table.
pricesCellValue.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

// Cycle through each price. Add to cell. Add cell to the table.
for (com.lowagie.text.Element elem : elements) {
PdfPCell cell = new PdfPCell((Paragraph) elem);
cell.setBorder(PdfPCell.NO_BORDER);
cell.setPadding(2);
pricesCellValue.addCell(cell);
}
return pricesCellValue;

我相信,在上面的代码片段中,我可以确保表格的宽度仅达到所需的宽度,而不是填满表格周围的所有空间。我该怎么做呢?

最佳答案

已解决

找到了修复它的简单方法。我没有根据价格数量更改列数,而是确保列号始终为 5,然后附加空单元格:

  if(elements.size() < 5)
{
int diff = 5 - elements.size();

for(int x = 0; x < diff; x++)
{
pricesCellValue.addCell(new Paragraph(" "));
}
}

关于java - iText 格式化表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18271063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com