Мне нужно динамически создавать PDF-файл, поэтому я использую MemoryStream и iTextSharp для редактирования PDF. Но я хочу, чтобы цифровая подпись PDF-файла перед отправкой в браузер. Я видел в примерном проекте, что iTextSharp имеет класс PDFSigner, который в основном выполняет всю работу. Но, как я видел его, он работает так:Значок iTextSharp PDF, созданный в MemoryStream
PDFSigner signer = new PDFSigner(inputFileName, outputFileName, certificate, metaData);
signer.Sign(......)
Но с MemoryStream, я не могу обеспечить физическое имя файла для ввода или вывода сигнала. Мой код ниже:
MemoryStream memoryStream = new MemoryStream();
var document = new Document(iTextSharp.text.PageSize.LETTER, 40, 40, 60, 40);
PdfWriter.GetInstance(document, memoryStream).CloseStream = false;
document.Open();
PopulatePDF(document, someId);
document.Close();
byte[] byteArray = memoryStream.ToArray();
memoryStream.Write(byteArray, 0, byteArray.Length);
memoryStream.Position = 0;
return new FileStreamResult(memoryStream, "application/pdf");
Мой вопрос, как я могу использовать объект PDFSigner подписать документ, дающий, что PDFSigner принимает только строки - имена файлов в качестве аргументов.
Я мог ошибаться, но я не думаю, что iText на самом деле имеет класс под названием «PDFSigner», по крайней мере, тот, который я мог найти. Вы нашли этот код через онлайн-учебник? Кроме того, какую версию iTextSharp вы используете? –
Я использую iTextSharp 5.5.3, а приведенный выше код из этого проекта: (который использует класс PDFSigner, который работает и делает подпись) http://www.codeproject.com/Articles/14488/E-signing- PDF-документы-с-iTextSharp – byby9999