我想看看
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
?