我正在使用OpenPdf 1.3.8(itext的分支)和openjdk 1.8.0_192。
我正在尝试将表格与两个文本(一个在表格上方,一个在表格下方)组合在一起,以防止在元素不适合页面上剩余的空白空间时拆分元素。
将元素添加到段落中,并将 keepTogether设置为 true。我注意到使用setKeepTogether(true)时的特殊行为。
如果setKeepTogether(true)被调用,表格不会出现,其他元素会:
如果 setKeepTogether(false) - 一切都按预期工作:
这是我的代码示例:
public static void main(String[] args) throws DocumentException, FileNotFoundException {
Document document = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(DEST));
document.open();
PdfPTable table = new PdfPTable(2);
table.addCell("Lorem");
table.addCell("ipsum");
table.addCell("dolor");
table.addCell("sit");
Paragraph mainParagraph = new Paragraph();
Paragraph paragraph1 = new Paragraph("Text above table");
Paragraph paragraph2 = new Paragraph("Text below table");
mainParagraph.add(paragraph1);
mainParagraph.add(table);
mainParagraph.add(paragraph2);
// if keeptogether is true, table is not visible
mainParagraph.setKeepTogether(true);
document.add(mainParagraph);
document.close();}
关于发生了什么的任何线索?
代码也使用itext 5.5.13进行了测试。在这两种情况下,表格都是可见的。