【发布时间】:2018-07-05 11:52:48
【问题描述】:
我正在使用以下方法将签名字段添加到新页面上的 PDF/A 文档(具有 PDF/A-3A 一致性级别)。一切似乎都正常...
public void AddCertifiedSignature(string srcPath, string destPath)
{
var reader = new PdfReader(srcPath);
var writer = new PdfWriter(destPath);
var pdfDoc = new PdfADocument(reader, writer);
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true);
var ps = new PageSize(PageSize.A4);
var newPage = pdfDoc.AddNewPage(ps);
var signatureRectangle = new Rectangle(36, 648, 200, 100);
var signatureAnnotation = new PdfWidgetAnnotation(signatureRectangle);
var signatureField = PdfFormField.CreateSignature(pdfDoc, signatureRectangle, PdfAConformanceLevel.PDF_A_3A);
signatureField.SetFieldName("SignField1");
form.AddField(signatureField, newPage);
pdfDoc.Close();
}
但是,在最后一行,我得到了一个例外:
Additional information: Every annotation shall have at least one appearance dictionary
有谁知道如何添加请求的字典(或更好的实现)?我目前正在使用 iText 7.1.2.0 (.NET)。
【问题讨论】:
-
首先,当您处理 PDF/A 文档并希望保持合规性时,应该使用
PdfADocument而不是PdfDocument。 -
好点。不幸的是,这仍然意味着缺少某些东西。我编辑了问题。
标签: itext7