2

我正在创建一个 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,但无法解决此问题。任何帮助将不胜感激。

4

0 回答 0