1

我正在使用OpenPdf 1.3.8itext的分支)和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进行了测试。在两种情况下,表格都是可见的。

4

0 回答 0