我不是保存文件然后对其进行签名,而是使用内存流中的压模填充数据字段。
MemoryStream fs = GetSaarForm();
PdfReader.unethicalreading = true;
PdfReader reader = new PdfReader(fs.ToArray(), null);
string pwd = "";
if (string.IsNullOrEmpty(pwd))
pwd = System.Web.Security.Membership.GeneratePassword(20, 5);
using (MemoryStream ms = new MemoryStream())
{
using (PdfStamper stamper = new PdfStamper(reader, ms, '\0', false))
{
stamper.SetEncryption(
null,
System.Text.Encoding.UTF8.GetBytes(pwd),
PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_COPY,
PdfWriter.ENCRYPTION_AES_128);
AcroFields form = stamper.AcroFields;
StampSaarPdf(form, candidate, saar);
}
//SaveSaarPassword(candidateId, pwd);
return ms.ToArray();
}
标记各个字段是在方法中。但是签名是个问题。它们必须看起来像附件。
我已经查看了人们完成签名的所有方式,只是看不出我是如何做到这一点的。这是 DOD CAC 签名。有没有人有任何想法?我必须在表格中填写四个单独的签名。我将签名字段更改为纯文本框。