我正在创建一个 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。当单选按钮在两页之间拆分时,它的格式就会混乱。请检查此链接以获取上述代码的输出 PDF。http://www.docdroid.net/13smb/checkbox-in-cell.pdf.html
通过查看 PDF,似乎所有单选按钮都在第 2 页上呈现,因为表格在第 2 页结束。我在创建 RadioCheckFields 时尝试使用 setPageInPlace(pageNumber) 设置页码,如下所示,但它不起作用。
RadioCheckField radio = new RadioCheckField(writer, rectangle, null, value);
PdfFormField field = radio.getRadioField();
field.setPlaceInPage(placeInPage);
有没有办法解决这个问题?我曾尝试使用 PdfStamper,但无法解决此问题。任何帮助将不胜感激。