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 セルごとにドキュメントにテーブルを追加する)、最初のヘッダーが失われます:
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 では、3 つのテスト ケースすべてが正しく機能しています。
それで、バグかバグでないか?これを機能させるにはどうすればよいですか?
ありがとう