kotlin 为什么itext7找不到表单

bq3bfh9z  于 2023-03-19  发布在  Kotlin
关注(0)|答案(1)|浏览(115)

情况如下,我需要通过编程用数据填充一个pdf文件。该文件通过程序Adobe Acrobat Pro DC暴露了字段。所有字段都有英语名称。但是,当我试图让一个表单字段向其中输入值时,发生了RuntimeError,因为它找不到该字段。
当然这个字段可以通过编程来创建和填充,但是我需要一个更通用的方法,如果字段的位置改变了怎么办,等等。
我使用Kotlin和iText 7.2.5

val form = PdfAcroForm.getAcroForm(pdfWriter, true)
val nameField = form.getField("employer_full_name")
nameField.setValue(newDocumentFields.fullName)
wgmfuz8q

wgmfuz8q1#

我刚刚测试了您的代码(移植到Java并进行了合理的替换),如下所示:

try (
    PdfReader reader = new PdfReader("Т-1.pdf");
    PdfWriter writer = new PdfWriter("Т-1-filledIn.pdf");
    PdfDocument document = new PdfDocument(reader, writer);
) {
    PdfAcroForm form = PdfAcroForm.getAcroForm(document, true);
    PdfFormField nameField = form.getField("employer_full_name");
    nameField.setValue("The employer's full name");
}

它工作起来没有问题:

我还使用iText 7.2.5。
因此,我假设您的PdfDocument(称为pdfWriter)没有正确创建。

相关问题