Memorystream'de oluşturulan bir PDF'yi imzalamak ve bir PDF'ye yazmak için bir işlev geliştirdim. Şimdi işlevi genişletmek için arıyorum ve fiziksel olarak imzalanmış bir PDF oluşturmak yerine, imzalı PDF'yi bellekte oluşturmak istiyorum, böylece bir e-postaya ekleyebilirim.MakeSignature.SignDetached() tüm akışları kapatır - memorystream'de imzalı PDF oluştur
Using myPdfReader As New PdfReader(sourcePDFStream)
Using myFileStream As New MemoryStream()
Using myPdfStamper As PdfStamper = PdfStamper.CreateSignature(myPdfReader, myFileStream, "0"c)
Dim myPdfSignatureAppearance As PdfSignatureAppearance = myPdfStamper.SignatureAppearance
myPdfSignatureAppearance.SetVisibleSignature(New iTextSharp.text.Rectangle(100, 100, 250, 150), myPdfReader.NumberOfPages, "Digital Signature")
Dim myExternalSignature As IExternalSignature = New PrivateKeySignature(pk, "SHA-256")
MakeSignature.SignDetached(myPdfSignatureAppearance, myExternalSignature, chain, Nothing, Nothing, Nothing, 0, CryptoStandard.CMS)
clsMail.SendHTMLMailPackStream("[email protected]", "EFFFFactuurFEB", "NL", "docname", myVars, myFileStream)
End Using
End Using
End Using
karşılaştığım sorun benim 'SendHTMLMailPackStream' yöntemini çağırarak işim bittiğinde 'myfilestream' zaten kapalı olduğunu geçerli:
Bu aldığım şeydir.
Buna bir cevap bilen var mı?
DÜZENLEME: Ben MakeSignature.SignDetached() yöntemi isabet olduğunu her şey bulduk
, hepsi benim akışları kapatır. Ama nasıl iptal edeceğimi bilmiyorum ..
'gibi myPdfStamper.Writer.CloseStream = false;' çalışmıyor, cevabımı sildim. Belki de bu iText desteği ile bakılması gereken bir konudur. Destek sözleşmeniz var mı? –
@BrunoLowagie Hayır yok. – Niels