Вместо того, чтобы сохранить файл и затем подписать его, я заполняю поля данных штампом в потоке памяти.
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.У кого-нибудь есть какие-либо идеи?Есть четыре отдельных подписи, которые я должен поставить в форме.Я изменил поля подписи на обычное текстовое поле.