我想使用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
这会将对象保留在一个页面中,如果内容不适合其余页面,则将强制创建一个新页面。