我目前有一个看起来像这样在我的pdf上制作复选框的方法:
private static void createCheckbox(PdfWriter writer, float lowerLeftX, float lowerLeftY, float upperRightX, float upperRightY, String fieldName, boolean startChecked) throws IOException, DocumentException {
RadioCheckField bt = new RadioCheckField(writer, new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY), fieldName, "Yes");
bt.setCheckType(RadioCheckField.TYPE_CHECK);
bt.setBorderWidth(BaseField.BORDER_WIDTH_THIN);
bt.setBorderColor(Color.BLACK);
bt.setBackgroundColor(Color.WHITE);
bt.setChecked(startChecked);
bt.setOptions(RadioCheckField.READ_ONLY);
PdfFormField ck = bt.getCheckField();
writer.addAnnotation(ck);
}
这让我可以发送左下 X 和 Y 坐标以及右上 X 和 Y 坐标来制作一个盒子。这似乎在我创建复选框的文档的第一页上工作正常。如果我尝试在后面的页面上制作它们,它们就不会出现。
示例:我在第一页上制作了一个 PDF 表单,制作了一个新页面,添加了更多信息和复选框,制作了一个新页面,添加了更多信息和复选框。即使我对带有复选框的两个页面使用相同的代码,最后一页实际上也不会显示复选框。