Ich arbeite an einem Produkt, das MS Word-Ausgabe erstellt, indem ein HTML-Dokument mit den entsprechenden Bits von Word-CSS und XML-Magie in es eingebettet generiert. Ich muss jetzt RTF (Bilder und formatierter Text) in das Dokument einbetten und betrachte dabei die mehrteiligen HTML-Generierungsfunktionen in .NET.Multipart HTML und eingebettete Bilder von .NET ohne Festplattenzugriff?
Ich möchte das MHTML-Dokument generieren, indem Sie die RTF-Snippets in Bilder im Speicher konvertieren und dann einfach die Base64-codierten Daten direkt in das MHTML-Objekt einbetten. Bisher kann ich dafür keine .NET-Lösungen finden.
Die MS CDO stuff ist vielversprechend, aber es sieht so aus, als ob die einzige Möglichkeit zum Erstellen einer Anlage darin besteht, den Daten eine URL zuzuweisen und sie mit AddRelatedBodyPart() dem Objekt hinzuzufügen. Das System.Net.Mail-Paket sieht auch überzeugend aus (wie dokumentiert here und in einer vorherigen Frage here), aber ich sehe keine direkte Möglichkeit, das generierte Mail-Objekt in eine Zeichenfolge zu konvertieren - scheint die API zu sein sich auf das Senden von Mail-Nachrichten konzentrieren und keine Dateien generieren.
Im Moment treibe ich einen Ansatz vor, der CDO und temporäre Verzeichnisse verwendet, aber ich bin damit als langfristiger Ansatz unzufrieden. Irgendwelche besseren Vorschläge?
Hintergrund: Ich muss Word (und bald, Excel) Ausgabe von einer Desktop-Anwendung generieren. MS Office bietet eine großartige Unterstützung für HTML + XML + CSS als Dateiformat. Wenn ich also ein sorgfältig gestaltetes HTML-Dokument erstellen kann, kann ich eine Word-Ausgabe generieren. Ich bevorzuge das Erstellen von nativer Word-Ausgabe aus einer Reihe von Gründen, nicht zuletzt, weil ich auch HTML-Ausgabe generieren muss. Word verarbeitet korrekt MHTML-Dateien, was eine gute Einzeldatei-Lösung für die Ausgabe mit eingebetteten Bildern darstellt. Also, ich möchte MHTML dynamisch zu einem Stream generieren, API-Aufrufe (keine Dateien) verwenden, um die Eingabe zu erstellen. –
Danke für die Info. Wir hatten eine Menge Feedback von Leuten, die MHTML-Unterstützung in System.Net.Mail wollten und leider wird es nicht für .Net 4.0 hinzugefügt, aber es ist ziemlich hoch auf der Liste der Funktionen für zukünftige Versionen von System.Net.Mail.Ich werde Ihrem PM Informationen zu Ihrem Szenario geben. –
Update: Unser Team verfolgt diese Anfrage offiziell für zukünftige Entwicklungen, so dass dies in der Zukunft für System.Net.Mail unterstützt wird. Überprüfen Sie das NCL-Blog (blogs.msdn.com/ncl) auf Updates für diese und andere neue Funktionen. –