Benötige grundlegende Hilfe zum Extrahieren und anschließenden Schreiben von Headern aus .rtf in .wmf

Benötige grundlegende Hilfe zum Extrahieren und anschließenden Schreiben von Headern aus .rtf in .wmf

Aufgabe:

Ich habe Hunderte von binären RTF-Dateien und Tausende von WMF-Dateien. Daher funktioniert ^c für diese Bilder in den RTFs und dann ^v in einem Grafikprogramm (wie IrfanView), würde aber Monate dauern.

Durch Autohotkey-Skripting kann ich theoretisch die binären RTF-Dateien öffnen und theoretisch die {\pic ...}-Teile (ohne das öffnende "{" und schließende "}", glaube ich) für jedes dieser Bilder extrahieren, dann die erforderlichen Header vor die verbleibenden Bildzeichenfolgen setzen (um sie in gültige "platzierbare WMF-Dateien" zu verwandeln) und diese "ordnungsgemäß vervollständigten" Zeichenfolgen dann als Dateien speichern, die dann in einem Grafikprogramm (wie IrfanView) geöffnet oder im Stapelverfahren wieder in JPG umgewandelt werden können (das ist der einfache Teil, da es dafür Tools gibt; im ersten Fall waren sie alle JPG und wurden beim Importieren vom RTF-Programm in WMF umgewandelt).

Symptome:

Ich müsste wissen, was genau die Zeichenfolge ist, die als Kernbilddaten abgerufen werden muss. Was ich bekomme ist,

{\pict\wmetafile8\picw23492\pich13227\picwgoal13318\pichgoal7499 010009000003c8290a000000b2290a000000050000000b0200000000050000000c02ab33c45bb2 290a00430f2000cc000000f401780300000000ab33c45b000000002800000078030000f4010000 010018000000000020531400c40e0000c40e000000000000000000001e1a1 einige Millionen ähnlicher Zeichen hier, dann: 3b68761a77b52a77d530300000000000}

Ich nehme also an, dass ich die „{“ davor und die „}“ danach löschen muss und dann vor dem verbleibenden String einen gültigen Header einfügen muss.

Ich weiß nicht, wie dieser Header lauten soll, Webinformationen sind mir zu kompliziert, und außerdem nehme ich an, dass dieser Header für alle resultierenden Bilddateien ohnehin identisch wäre, oder?

Alternativ müsste ich diese Werte aus \wmetafile8\picw23492\pich13227\picwgoal13318\pichgoal7499 auslesen, dann diesen Teilstring löschen und dann den jeweiligen Header unter Berücksichtigung dieser Werte einzeln schreiben?

Außerdem handelt es sich oben offensichtlich nicht um eine hexadezimale Darstellung, obwohl es heißt, dass solche WMF-Bilder innerhalb von RTF im hexadezimalen „Format“ vorliegen. In einem Hex-Editor sehe ich beide Darstellungen, also nehme ich an, dass ich wissen muss, was ich im obigen lesbaren Format (Ansi) löschen und was ich hinzufügen muss, bevor ich dann alles wieder in Hex konvertiere?

Außerdem habe ich Zweifel hinsichtlich der erforderlichen (Hex-)Zeichenpositionen, da in den Hex-Editoren aufgrund meines Verwerfens aller Zeichenfolgen vor dem Beginn der Bildinformationen eine Lücke zwischen den \infos „oben“ und dem „echten“ WMF-Bildbeschreibungscode bestand.

Das RTF-Programm verfügt über Exportfunktionen in einfachen Text und in HTML. In beiden Ergebnissen werden die Bilder oder ihre Codezeichenfolgen nicht angezeigt, daher gibt es hier keine Lösung.

Es gibt kein (kommerzielles oder kostenloses) Tool zum Extrahieren der WMF-Strings, geschweige denn eines, das anschließend die erforderlichen Header erstellt, um diese Strings in eigenständige gültige Dateien umzuwandeln.

Theoretisch könnte es Tools oder Routinen geben, die einfach die obigen WMF-Strings (ohne hinzugefügte Header) nehmen und sie in gültige JPG-Dateien (mit Headern) umwandeln. Wenn so etwas verfügbar wäre, bräuchte ich die eigenständigen WMF-Zwischendateien nicht.

Ich habe etwa 15 Stunden lang versucht, diese Probleme (teilweise) zu lösen, indem ich gelesen/ausprobiert habe (ich habe auch vergeblich versucht, WMF-Dateiheader aus dem Internet zu analysieren). Daher hoffe ich, hier weitere Informationen zu erhalten, auch zu Teilproblemen.

verwandte Informationen