我没有保存文件然后签名,而是在内存流中用压模填充数据字段。
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签名。有人有什么想法吗?我必须在表单中输入四个单独的签名。我将签名字段更改为纯文本框。