使用sharpPDF库,我生成一个pdf内存流,我想通过电子邮件直接发送它。但是线ms.Seek(.)给出一个ObjectDisposedException;
无法访问封闭流。
pdf.CreatePDF方法接受(输出) fileName字符串或(Out)fileName。但我想它也关闭了小溪?我不太习惯和流一起工作,所以如果你能告诉我应该怎么做的话?
在这里可以找到CreatePDF方法的CreatePDF源代码:
http://www.java2s.com/Open-Source/CSharp/PDF/SharpPDF/sharpPDF/pdfDocument.cs.htm
Public Sub SendPDF()
Dim pdf As New sharpPDF.pdfDocument("Title", "Author")
'....Generate pdf content
Dim ms As New IO.MemoryStream
pdf.CreatePDF(ms)
Dim email As New EmailService
email.Send(ms)
End Sub
Public Class EmailService
Public Sub Send(Byval ms as Stream)
ms.Seek(0, IO.SeekOrigin.Begin)
Dim atc As New Attachment(ms, "Report.pdf")
mail.Attachments.Add(atc)
'....set other email parameters
client.SendAsync(mail, mail.Subject)
End Sub
End Class发布于 2011-11-11 22:18:03
一种简单的方法是将字节数组从关闭的MemoryStream中取出并创建另一个:
pdf.CreatePDF(ms)
ms = new MemoryStream(ms.ToArray())
Dim email As New EmailService
email.Send(ms)请注意,在关闭/释放的MemoryStream实例上调用MemoryStream是可以的。甚至有记载:
Note
此方法在关闭MemoryStream .时工作。
https://stackoverflow.com/questions/8100590
复制相似问题