gpt4 book ai didi

java - 使用 iText 扫描 1042-S 2015 PDF 文件时出现问题

转载 作者:行者123 更新时间:2023-12-02 03:56:17 25 4
gpt4 key购买 nike

我正在构建一个可以自动写入 PDF 文件的程序。我正在使用库 iText 来执行此操作。

好吧,为了检查字段的名称,我运行了这个小代码:

public static void main(String[] args) throws IOException {

PdfReader reader = new PdfReader(PDF_PATH);

AcroFields fields = reader.getAcroFields();

Set<String> fldNames = fields.getFields().keySet();


for (String fldName : fldNames) {
System.out.println( fldName + ": " + fields.getField(fldName));
}
}

输出类似于:

topmostSubform[0].CopyA[0].Group12-13[0].Line13d-g[0].Line13e[0]: 13e topmostSubform[0].CopyB[0].Group1-11[0].Line3[0].Line3[0]: 0 topmostSubform[0].CopyE[0].Group1-11[0].Line7[0]: 7 topmostSubform[0].CopyD[0].Group14-24[0].Line16[0].Line15i[0]: 15i

topmostSubform[0].CopyE[0].Group1-11[0].Line7[0] 是我正在查找的值以及 : 是我在原始 PDF 中放入的值,用于跟踪每个字段的变量名称。

到目前为止一切顺利,但我在 1 个特定字段上遇到问题。字段编号16。我输入值 16 来跟踪,但在我的输出中只有 1 个 16 输出,但它应该有 5 个副本,即 CopyACopyBCopyCCopyDCopyE。我发现的只有这个:

topmostSubform[0].CopyA[0].Group14-24[0].Line16[0] 当我尝试使用此代码在此字段中写入时:

form.setField("topmostSubform[0].CopyA[0].Group14-24[0].Line16[0]", "BLA BLA BLA"); 它不起作用。显然 16 字段发生了一些奇怪的事情。

可从以下位置下载 PDF:https://www.irs.gov/pub/irs-prior/f1042s--2015.pdf

谢谢。

最佳答案

该表单是一个混合 XFA 表单(或者,我喜欢称此类表单为令人厌恶的表单)。在混合 XFA 表单中,表单的字段被描述两次,一次使用 PDF 语法(纯 AcroForm 技术),一次使用 XML(XML 表单架构,又名 XFA)。

这是有问题的,因为:

  • AcroForm 功能中的表单功能与 XML 表单架构中的表单功能之间存在差异。
  • PDF 语法中描述的表单与 XML 语法中描述的表单不对应的风险始终存在。

这就是为什么我总是抛弃 XML 语法。请参阅FillHybridForm示例:

public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
form.removeXfa();
form.setField("topmostSubform[0].CopyA[0].Group14-24[0].Line16[0]", "16");
stamper.close();
reader.close();
}

您的代码中可能没有这一行:

form.removeXfa();

请阅读我对以下问题的回答以了解更多信息:

如果您只有时间阅读上面列表中的一个问答,请选择列表中的最后一个。

关于java - 使用 iText 扫描 1042-S 2015 PDF 文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35414350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com