동적으로 PDF 파일을 작성해야하므로 PDF 편집을 위해 MemoryStream 및 iTextSharp를 사용합니다. 그러나 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