none
RichTextBox-Problem mit der Größe der RFT-Datei RRS feed

  • Frage

  • Hallo,

    ich möchte in meinem in VB2008 geschriebenen Programm ein Word-Dokument anzeigen in dem außer Texten auch Bilder in JPG-Format enthalten sind. Das Programm öffnet diese Doc-Datei, speichert sie temporär im RTF-Formt und lädt es mit LoadFile in RichtTextBox. Die RTF-Datei ist jedoch etwa 10 mal(!!!) so groß wie das Word-Dokument! Je nach Größe kann es schon mehrere Sekunden dauern, bis das Bild angezeigt wird. Auf einer Support-Seite von Microsoft (http://support.microsoft.com/kb/224663/de )

    habe ich eine  Erklärung für dieses Phänomen: beim Speichern einer RTF-Datei werden zwei Kopien von Grafiken mitgespeichert!  Über eine Änderung eines Registry-Eintrages kann man das unterbinden!

    Und tatsächlich kann ich jetzt rtf-dateien erstellen, die genau so groß sind wie das Orinal-Word-dokument. Das Problem ist jedoch, dass wenn ich diese Datei in  RichTextBox lade, gar nichts angezeigt wird, es wird auch kein Fehler ausgelöst! Kann mir jemand bei diesem Problem helfen?

    Gruß

    Christoph

    Sonntag, 4. Juli 2010 14:08

Antworten

  • Hallo Christoph,
    Und tatsächlich kann ich jetzt rtf-dateien erstellen, die genau so groß sind wie das Orinal-Word-dokument. Das Problem ist jedoch, dass wenn ich diese Datei in  RichTextBox lade, gar nichts angezeigt wird, es wird auch kein Fehler ausgelöst! Kann mir jemand bei diesem Problem helfen?

    es scheint so, als würde Word die Grafiken aus Kompatibilität zu älteren RichText Implementierungen in alternativen Formaten speichern. Wenn Du dies jetzt mit diesem Registry Eingriff unterbindest, kann die RichTextBox diese Grafik nicht mehr anzeigen, da sie mit dem Format nichts anzufangen weiß.

    RichTextBox and displaying Jpeg images
    http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/16dc2ea9-599e-4c7a-a3bc-8902129d712e

    Du musst Dich also entscheiden, ob Du kleine Dateien möchtest oder eine funktionierende Lösung. Dritte Option wäre das Ausweichen auf eine Komponente eines Drittanbieters, die Word Dokumente Rendern kann, so dass Du einmal auf die Konvertierung verzichten kannst, wie auch auf die RichTextBox. Spontan fiele mir hier Aspose ein.



    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Sonntag, 4. Juli 2010 15:40