如何使用iText将FormField添加到没有位置的部分?

时间:2015-06-17 03:39:06

标签: java itext

想要在新创建的多页PDF中添加复选框等交互式表单字段,在iText的example中,代码如下所示:

PdfContentByte canvas = writer.getDirectContent();
Rectangle rect = new Rectangle(180, 806  * 40, 200, 788  * 40);
RadioCheckField checkbox = new RadioCheckField(writer, rect, "box1", "Yes");
PdfFormField field = checkbox.getCheckField();
writer.addAnnotation(field);
ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase("checkbox1", normal), 210, 790 * 40, 0);

但是这使用了绝对位置,我不知道位置,因为字段前的内容有可选的图像和文本部分,我不知道它们采用了多少行。 我也在使用Chapters和Sections,所以我想使用这样的东西:

Section section = chap.addSection(new Paragraph("sectionTitel",header2));
section.add(new Paragraph("line before field"));
//add FormField
section.add(field);
section.add(new Paragraph("line after field"));

您是否知道如何做这样的事情或如何从以前的线上获得位置?

1 个答案:

答案 0 :(得分:0)

选中此示例以显示复选框或单选按钮而不指定位置。你需要使用PdfPTable。 http://itextpdf.com/sandbox/acroforms/CreateRadioInTable。在我在这里发布Issue with iText RadioCheckField when displayed on multiple pages并且仍在等待答案的多个页面上显示单选按钮存在一个问题