memorystreamで作成したPDFに署名してPDFに書き込む関数を開発しました。今では機能を拡張し、物理的に署名されたPDFを作成するのではなく、署名されたPDFをメモリに作成して電子メールに添付することができます。MakeSignature.SignDetached()はすべてのストリームを閉じます - memorystreamで符号付きPDFを作成します
これは私が持っているものです。
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
私が直面してる問題は、私は私の「SendHTMLMailPackStream」メソッド「myfilestream」を呼んでいるとき、すでに閉じていることです。
誰もがこれに対する答えを知っていますか?
EDIT:
私は毎回MakeSignature.SignDetached()メソッドがヒットし、それはすべて私のストリームをクローズしていることが分かりました。しかし、私はそれをどのようにキャンセルするのか考えていません。
を;'私の答えを削除しました。たぶん、これはiTextのサポートによって検討されるべき問題です。サポート契約はありますか? –
@BrunoLowagieいいえ、私はしません。 – Niels