itext如何在签名后锁定某些字段?

问题描述 投票:0回答:0

我想看看

itex
是否符合我的需要。 我需要在现有 PDF 中添加一些证书字段,并在用户签名后 - 我需要锁定此 PDF 中的所有字段。

这里是一个简单的例子,用文本和证书字段创建一些虚拟 PDF:

 PdfWriter writer = new PdfWriter("AddSignFieldItext72.pdf");
 iText.Kernel.Pdf.PdfDocument pdf = new iText.Kernel.Pdf.PdfDocument(writer);
 var newPage = pdf.AddNewPage(new PageSize(PageSize.A4));
 PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
 
            var formRectangle = new iText.Kernel.Geom.Rectangle(100, 800, 200, 20);
            var formField = new TextFormFieldBuilder(pdf, "TextFormField1");
            formField.SetPage(newPage);
            formField.SetWidgetRectangle(formRectangle);
            form.AddField(formField.CreateText());

            var signatureRectangle = new iText.Kernel.Geom.Rectangle(36, 648, 200, 100);
            var signatureField = new SignatureFormFieldBuilder(pdf, "SignField1");
            signatureField.SetPage(newPage);
            signatureField.SetWidgetRectangle(signatureRectangle);
            form.AddField(signatureField.CreateSignature());


 pdf.Close();

那么问题来了,在

text1
签名的时候,如何锁定这个
SignField1
字段呢?并且还阻止“删除”这个已经存在的标志的选项?所以我只需要“一次签名”。 :)

我发现了类似的东西:

PdfSigFieldLock pdfSigFieldLock = new PdfSigFieldLock();
dfSigFieldLock.SetDocumentPermissions(PdfSigFieldLock.LockPermissions.NO_CHANGES_ALLOWED);
string[] fieldToLock = new string[] { "text1" };
pdfSigFieldLock.SetFieldLock(PdfSigFieldLock.LockAction.ALL, fieldToLock);

但我不知道如何将这个

pdfSigFieldLock
signatureField
链接起来? 它有
signatureField.GetSigFieldLockDictionary
但没有
set

c# pdf itext digital-signature itext7
© www.soinside.com 2019 - 2024. All rights reserved.