iText API を使用して PDF/A ドキュメントに N 個の署名フィールドを追加しようとしています。これらのフィールドは を使用して正しく追加されましたaddAnnotation
がPDFStamper
、ドキュメントは 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));