Java PDF Stamper 在复选框下方写入(文本被复选框覆盖)

标签 java checkbox itext pdfstamper

我正在尝试使用 java pdf stamper 写入现有的 pdf,但由于某种原因,pdf 中有一个特定的复选框,文本似乎是在该复选框下绘制的。

pdf阅读代码:

PdfReader reader = new PdfReader(Testing.getImagePath() + "form.pdf");
File dir = new File(Testing.getResourcePath() + id + "/");
String destination = Testing.getResourcePath() + id + "form" + id + ".pdf";
File exist = new File(destination);

dir.mkdirs();
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(destination));
stamper.setFormFlattening(true);
PdfContentByte over;
over = stamper.getOverContent(1);

绘图文本代码:

over.beginText();
over.setFontAndSize(bf, 11);
over.setTextMatrix(169, 322);
over.showText("X");
over.endText();

最佳答案

首先:

迭代 PDF 中的 FormFields 并找出要设置的有效值:

        AcroFields form = stamper.getAcroFields();
        for(Entry<String, Item> field : form.getFields().entrySet()) {
            System.out.println(field.getKey() + ": " + field.getValue());
            String[] values = form.getAppearanceStates(field.getKey());
            StringJoiner sb = new StringJoiner(",");
            for (String value : values) {
                sb.add(value);
            }
            System.out.println("Possible Options: " + sb.toString());
        }

现在您应该能够通过设置它的允许值来选择复选框:

        form.setField("myCheckbox", "myYesValue");

关于Java PDF Stamper 在复选框下方写入(文本被复选框覆盖),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44205178/

相关文章:

java - 为什么 Java stacktrace 只在 finally block 中返回失败?

java - 使用 stylename 编辑列

angularjs - 单击表格行以触发 Angularjs 中的复选框单击

java - 如何使用 iText 将 URL 添加到 PDF 文档?

itext - Flying Saucer 在第一页隐藏页眉和页脚

javascript - ADF 中的浏览器事件关闭

java - CQRS 和事件溯源的区别

php - 以 PHP 形式发送复选框值

asp.net-mvc - Telerik Grid MVC 并选中所有页面上的所有复选框

iText 使用 XMLWorker 将整个表格保留在一页中