MemoryStream, Nicht auf einen geschlossenen stream
Mit der sharpPDF Bibliothek, die ich generieren einer pdf-Speicher-stream, und ich möchten, senden Sie es direkt per E-Mail. Aber die line ms.Suchen(.... gibt eine ObjectDisposedException;
Nicht auf einen geschlossenen Stream.
Pdf-Datei.CreatePDF-Methode nimmt entweder eine (Ausgang) mit dem Namen string, oder ein (out)Stream. Aber ich denke, es wird auch geschlossen, der stream??? Ich bin nicht gewohnt ist, viel mit streams, so dass, wenn könnten Sie bitte beraten, wie es getan werden sollte?
Den sharpPDF source-code der Methode CreatePDF können hier gefunden werden:
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
InformationsquelleAutor der Frage bretddog | 2011-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einem einfachen Ansatz ist, um die byte-array aus dem geschlossenen MemoryStream und anderes erstellen:
Beachten Sie, dass es gut zu nennen
MemoryStream.ToArray
auf geschlossen /entsorgt InstanzMemoryStream
. Es ist sogar dokumentiert:InformationsquelleAutor der Antwort Jon Skeet