【问题标题】:How to correctly add signature fields in a PDF/A document with iText如何使用 iText 在 PDF/A 文档中正确添加签名字段
【发布时间】:2014-06-09 12:57:01
【问题描述】:

我正在尝试使用 iText API 在 PDF/A 文档中添加 N 个签名字段。 这些字段已使用addAnnotationPDFStamper 正确添加,但文档不再符合PDF/A。 在 PDF 验证中,我收到以下错误:

XMP 属性“xmp:ModifyDate”与文档信息条目“ModDate”不同步

如何获得符合 PDF/A 标准的文档?

更新:现在我在 Android 上使用 PdfAStamper (itext-pdfa-5.5.1) 和 itextg (itextg-5.5.1)。但是我得到了同样的验证错误-

这里有一些代码:

String pdfFileName = pdfFile.getAbsolutePath();
PdfReader pdf = new PdfReader(pdfFileName);

tempFile = new File(pdfFileName.substring(0, pdfFileName.lastIndexOf(File.separator)) + "/_pdfSignFieldtemp_" + pdfFile.getName());
tempOutStream = new FileOutputStream(tempFile.getAbsolutePath());
PdfStamper stp = new PdfStamper(pdf, tempOutStream);          
PdfFormField sig = PdfFormField.createSignature(stp.getWriter());

(...cut...)

sig.setWidget(new Rectangle(llx, lly, urx, ury), null);

sig.setAppearance(PdfAnnotation.APPEARANCE_NORMAL,PdfTemplate.createTemplate(stp.getWriter(), 0, 0));
sig.setFlags(PdfAnnotation.FLAGS_PRINT);
sig.setFieldFlags(PdfFormField.FF_REQUIRED);

sig.put(PdfName.DA, new PdfString("/Arial 0 Tf 0 g"));

sig.setFieldName(signatureName);

stp.addAnnotation(sig, intpage);
stp.close();
pdf.close();


tempOutStream.close();

pdfFile.delete();
File pdfWithField = new File(pdfFileName.substring(0, pdfFileName.lastIndexOf(File.separator)) + "/_pdfSignFieldtemp_" + pdfFile.getName());
pdfWithField.renameTo(new File(pdfFileName));

【问题讨论】:

  • 对于 PDF/A 特定的 pdf 处理,iText api 同时提供其中心类的特定变体,例如PdfAStamper。在最近的版本中,这些变体的质量有了很大提高。
  • 感谢您的回复。根据您的建议,我正在使用 PdfAStamper 和 itextg for Android。但我得到了同样的验证错误。
  • 你用的是什么版本,能分享一下代码吗?
  • @MichaëlDemey,感谢您的回复。主题已更新。

标签: android pdf itext pdfa


【解决方案1】:

XMP 属性“xmp:ModifyDate”与文档信息条目“ModDate”不同步

两个属性应具有相同的名称,即 xmp:ModifyDate 和 'ModifyDate'(而不是 ModDate)

附:这是一个老话题,但仍然有人可能会发现这个答案很有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多