Java PDFBox填充模板没有';t填写自动计算的字段

Java PDFBox填充模板没有';t填写自动计算的字段,java,pdf,pdfbox,Java,Pdf,Pdfbox,我有一个交互式PDF,有几个字段。当某些字段被填充时,将计算其他字段。在AdobeAcrobatReader中,这很好 现在,当我填写以下文件时: public static void setField(PDDocument pdfDocument, String name, String value ) throws IOException { PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog(); PD

我有一个交互式PDF,有几个字段。当某些字段被填充时,将计算其他字段。在AdobeAcrobatReader中,这很好

现在,当我填写以下文件时:

public static void setField(PDDocument pdfDocument, String name, String value ) throws IOException {
    PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog();
    PDAcroForm acroForm = docCatalog.getAcroForm();
    PDField field = acroForm.getField( name );
    if( field != null ) {
        field.setValue(value);
    }  else {
        System.err.println( "No field found with name:" + name );
    }
}
字段已填写,但我有两个问题:

  • 对于我得到的每个领域:

    2021年5月4日上午11:57:04 org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper getFormattedValue 信息:字段包含格式化操作,但未提供ScriptingHandler-格式化值可能不正确

  • 通常自动计算的字段不填写。我是否需要触发某些操作,还是因为字段的格式不像字符串或数字


  • PDFBox不支持javascript。您需要设置自己的格式,或者实现脚本处理程序接口并分配它。否则,该值将保持原样。另请参阅,谢谢您的帮助。那么自动计算的值呢?因为当我手动填写pdf时,它会计算一些我无法填写的值,因为我看不到这些字段。这是因为pdf中有javascript。这些不可见的字段确实存在,您可以使用PDFDebugger(在“显示内部结构”视图中)来查找它们。(假设您不知道它们在屏幕上的位置)。