【发布时间】:2016-04-14 08:04:55
【问题描述】:
我开发了一个功能来签署在内存流中创建的 PDF 并将其写入 PDF。现在我正在寻找扩展功能,而不是创建物理签名的 PDF,我想在内存中创建签名的 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("niels@email.be", "EFFFFactuurFEB", "NL", "docname", myVars, myFileStream)
End Using
End Using
End Using
我面临的问题是,当我调用“SendHTMLMailPackStream”方法时,“myfilestream”已经关闭。
有人知道这个问题的答案吗?
编辑:
我发现每次调用 MakeSignature.SignDetached() 方法时,它都会关闭我的所有流。但我不知道如何取消它..
【问题讨论】:
-
由于
myPdfStamper.Writer.CloseStream = false;不起作用,我删除了我的答案。也许这是 iText 支持应该关注的问题。你们有支持合同吗? -
@BrunoLowagie 不,我不知道。
标签: vb.net pdf itext digital-signature