gpt4 book ai didi

java - Itext LargeElement 和 splitRows 选项

转载 作者:行者123 更新时间:2023-12-01 22:36:39 27 4
gpt4 key购买 nike

我正在尝试使用 itext v5.5.3 创建一个包含大表格的 pdf。

我需要:

  • 内存管理
  • 重复标题(1 行)
  • 禁用行拆分

使用下面的代码,一切正常:

    Document document = new Document(PageSize.LETTER);
PdfWriter.getInstance(document, baos);

document.open();
PdfPTable table = new PdfPTable(5);
table.setHeaderRows(1);
//table.setSplitRows(false);
//table.setComplete(false);

for (int i = 0; i < 5; i++) {table.addCell("Header " + i);}

for (int i = 0; i < 500; i++) {
table.addCell("Test " + i);
//if (i%5 == 0) {document.add(table);}
}

//table.setComplete(true);
document.add(table);
document.close();

如果我添加内存管理(每 5 个单元格添加表格以记录文档),我将丢失第一个 header :

    Document document = new Document(PageSize.LETTER);
PdfWriter.getInstance(document, baos);

document.open();
PdfPTable table = new PdfPTable(5);
table.setHeaderRows(1);
//table.setSplitRows(false);
table.setComplete(false);

for (int i = 0; i < 5; i++) {table.addCell("Header " + i);}

for (int i = 0; i < 500; i++) {
table.addCell("Test " + i);
if (i%5 == 0) {document.add(table);}
}

table.setComplete(true);
document.add(table);
document.close();

如果我添加内存管理+ setSplitRows(false),我会丢失所有标题和一些行:

    Document document = new Document(PageSize.LETTER);
PdfWriter.getInstance(document, baos);

document.open();
PdfPTable table = new PdfPTable(5);
table.setHeaderRows(1);
table.setSplitRows(false);
table.setComplete(false);

for (int i = 0; i < 5; i++) {table.addCell("Header " + i);}

for (int i = 0; i < 500; i++) {
table.addCell("Test " + i);
if (i%5 == 0) {document.add(table);}
}

table.setComplete(true);
document.add(table);
document.close();

我已经做了一些测试,并且使用 itext 版本 2.1.7.js2,所有三个测试用例都正常工作。

那么,到底是 bug 还是不是 bug?我该怎么做才能使其正常工作?

谢谢

最佳答案

如果您更换,您的问题就不会出现

if (i % 5 == 0) {
document.add(table);
}

int x = 5; // or any other value higher than your PdfPTable number of columns
if (i % 10 == x) {
document.add(table);
}

此问题的明显原因是 iText 不希望包含仅包含标题和部分行的表格。目前这是一种解决方法,但我们正在寻找核心问题并解决它。

关于java - Itext LargeElement 和 splitRows 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774513/

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