【发布时间】:2018-05-03 09:12:46
【问题描述】:
我正在尝试使用PDFBox 在 Java 中创建一个 pdf 文件。该文件将包含一个有 2 列的大表。为了在 pdf 中呈现表格,我使用了另一个库:boxable。
文件创建成功,表格也被渲染了。但是当其中一行包含大数据时会出现问题。在这种情况下,表格会拆分并且无法正确显示数据:
大行自动移动到新页面,而第一页保持空白。在第二页中,该行在为测试输入新任务处突然结束,而单元格中没有显示整个数据。 这是一个反复出现的问题,并非特定于此案例。
Row<PDPage> headerRow;
Row<PDPage> row;
Cell<PDPage> cell;
int i;
headerRow = table.createRow(15f);
cell = headerRow.createCell(30, "Goal Category");
cell.setFont(PDType1Font.HELVETICA);
cell.setFontSize(11);
cell = headerRow.createCell(70, "My Goal");
cell.setFont(PDType1Font.HELVETICA);
cell.setFontSize(11);
table.addHeaderRow(headerRow);
for(i=0;i<goals.size();i++)
{
ArrayList<String> goal=goals.get(i);
row = table.createRow(12);
cell = row.createCell(30, goal.get(0));
cell.setFont(PDType1Font.HELVETICA);
cell.setFontSize(11);
System.out.println("My Goal="+goal.get(1));
cell = row.createCell(70, goal.get(1));
cell.setFont(PDType1Font.HELVETICA);
cell.setFontSize(11);
}
table.draw();
我正在寻找以 pdf 格式呈现表格的解决方案或替代方法。
【问题讨论】:
-
刚从阅读中,这似乎是一个需要对 boxable 进行调查的错误。首先尝试有一个表格单元格,其中最多可以容纳一页的行;通过引入一行的“结转”单元格。只要一行有任何单元格结转,就添加一个新行。
-
@JoopEggen 我们如何修复单元格的最大行数?可能有许多具有可变线的单元格,在这种情况下,最大线也会有所不同
-
我在下面粗略地添加了一些补丁代码..
-
如果是 boxable 中的错误,那么您应该在这里打开一个问题:github.com/dhorions/boxable/issues
-
@TilmanHausherr 我想到了这一点,但发现自 2016 年初以来有问题悬而未决,因此改变了主意