我正在创建一个PDF,其中AcroForm字段将在表格内呈现。当RadioButtons分布在两个页面时,我遇到了问题。我修改了此链接http://itextpdf.com/sandbox/acroforms/CreateRadioInTable上显示的示例。 只修改了上例中的craetePdf方法。
public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream(dest));
document.open();
PdfFormField radiogroup = PdfFormField.createRadioButton(writer, true);
radiogroup.setFieldName("Language");
PdfPTable table = new PdfPTable(2);
PdfPCell cell;
for (int i = 0; i < 25; i++) {
cell = new PdfPCell(new Phrase("Question " + i));
table.addCell(cell);
cell = new PdfPCell(new Phrase("Answer " + i));
table.addCell(cell);
}
for (int i = 0; i <25; i++) {
cell = new PdfPCell(new Phrase("Radio: " + i));
table.addCell(cell);
cell = new PdfPCell();
cell.setCellEvent(new MyCellField(radiogroup, "radiogroup" + i));
table.addCell(cell);
}
document.add(table);
writer.addAnnotation(radiogroup);
document.close();
}
创建了一个包含50行的PdfPTable。当radiobutton在两个页面之间分割时,它会在格式化中混乱。请从上面的代码中查看此链接以获取输出PDF。 http://www.docdroid.net/13smb/checkbox-in-cell.pdf.html
通过查看PDF,似乎所有的radiobuttons都在第2页上呈现,因为该表在第2页结束。我尝试使用setPageInPlace(pageNumber)设置页码,同时创建RadioCheckFields如下,但它不起作用
RadioCheckField radio = new RadioCheckField(writer, rectangle, null, value);
PdfFormField field = radio.getRadioField();
field.setPlaceInPage(placeInPage);
有没有办法解决这个问题?我曾尝试使用PdfStamper,但无法解决此问题。任何帮助将不胜感激。