【发布时间】:2021-08-24 05:23:48
【问题描述】:
在我使用 iText 7 生成报告的 java 应用程序中,我需要从一个可能扩展到多个页面的大型数据表中获取数据。
我的代码段来生成表格。
Table table = new Table(new float[] {0.4f, 1f, 1f, 1f, 1.3f, 1f, 1.3f, 0.6f,0.6f,1.2f}, true)
.setWidth(UnitValue.createPercentValue(100))
.setMarginTop(tblTopMargin)
.setMarginBottom(0);
int count = 0;
while (!dataList.empty()) {
String[] dataRow = dataList.poll();
createDataRow(dataRow, table);
count++;
if(count % 10 == 0) {
table.flush();
}
}
下面会提到createDataRaw方法的实现,
private void createDataRow(String[] a, Table table) {
for (String s : a) {
Paragraph content = new Paragraph(s)
.setFontSize(7)
.setFixedLeading(9)
.setFontColor(new DeviceCmyk(0, 0, 0, 100));
Cell cell = new Cell()
.setBorder(new SolidBorder(ColorConstants.BLACK, 0.5f))
.setPaddingLeft(2)
.setPaddingTop(0)
.setPaddingBottom(0)
.setHorizontalAlignment(HorizontalAlignment.LEFT)
.setVerticalAlignment(VerticalAlignment.MIDDLE)
.add(content);
table.addCell(cell);
}
}
用给定的代码表生成所有数据。但是当表格之间有分页符时,除了最后一个表格底部之外,表格的底线不会显示。
此处附上屏幕截图以获得更清晰的想法。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
你看到的是一个功能,让文档的阅读者一眼就知道表格延伸到下一页。
-
@GilbertLeBlanc 是否有任何选项可以禁用该功能。