我想使用iText生成问题及其选项的PDF。我可以生成PDF,但问题是有时问题会在页面末尾打印,而选项转到下一页。

如何确定一个问题及其选项不适合同一页面?

这意味着如果问题和选项无法放入同一页面,则必须将它们放在下一页。

更新

com.itextpdf.text.Document document = new com.itextpdf.text.Document(PageSize.A4,50,50,15,15);
ByteArrayOutputStream OutputStream = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(document, OutputStream);
document.open();
Paragraph paragraph = new Paragraph("Paper Name Here",new Font(FontFamily.TIMES_ROMAN,15,Font.BOLD));
paragraph.setAlignment(Element.ALIGN_CENTER);
document.add(paragraph);
document.addTitle("Paper Name Here");
document.addAuthor("corp");
com.itextpdf.text.List list = new com.itextpdf.text.List(true);

for (long i = 1; i <= 20 ; i++)
{
    List<MultipleChoiceSingleCorrect> multipleChoiceSingleCorrects = new MultipleChoiceSingleCorrectServicesImpl().getItemDetailsByItemID(i);
    for (MultipleChoiceSingleCorrect multipleChoiceSingleCorrect : multipleChoiceSingleCorrects) {
        list.add(multipleChoiceSingleCorrect.getItemText());
        RomanList oplist = new RomanList();
        oplist.setIndentationLeft(20);
        for (OptionSingleCorrect optionSingleCorrect : multipleChoiceSingleCorrect.getOptionList()) {
            oplist.add(optionSingleCorrect.getOptionText());
        }
        list.add(oplist);
    }
}
document.add(list);
document.close();


此后,我出现异常的页面刹车,这意味着问题有时会出现在页面末尾,并且选项跳至下一页。(如下图所示)

最佳答案

您感兴趣的是setKeepTogether(boolean)方法:


对于Paragraph
PdfPTable


这会将对象保留在一个页面中,如果内容不适合其余页面,则将强制创建一个新页面。

10-08 17:33