SharpPDFライブラリを使用してPDFメモリストリームを生成し、それを電子メールで直接送信したいと思います。しかし、ms.Seek(....という行はObjectDisposedExceptionを与えます。
閉じたストリームにアクセスできません。
pdf.CreatePDFメソッドは、(出力)fileName文字列または(out)Streamのいずれかを取ります。しかし、私はそれもストリームを閉じると思いますか?私はストリームをあまり扱うことに慣れていないので、どのように行うべきかアドバイスしていただけますか?
CreatePDFメソッドのsharpPDFソースコードは次の場所にあります。
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