Bild aus RTF-Text extrahieren
Hallo,
hat jemand einen Ansatz, wie man ein Bild aus einem RTF-String extrahieren kann? Der sieht in etwa (gekürzt) so aus:
Delphi-Quellcode:
Danke
{\rtf1\ansi \deff0{\fonttbl{\f0\fswiss Arial;}}{\colortbl;\red0\green0\blue0;\red255\green255\blue255;}\deftab1134\plain \f0 \fs20 \pard\qr \ri50 {\pict\wmetafile8\picw5508\pich10399\picwgoal3120\pichgoal5895\picscalex77\picscaley77 010009000003de60120000009ff700000000050000000701030000009ff7000040092000cc00000000004000840200000000280000009402000040000000010018000000000000ef010000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff.......
.......fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000}} Ciao Stefan |
AW: Bild aus RTF-Text extrahieren
Vielleicht ist das interessant ?
https://www.codeproject.com/Articles...-RTF-Converter |
AW: Bild aus RTF-Text extrahieren
Danke für den Hinweis, bin schon am Laden...
... Schade, damit kann ich als "DelpiUser" leider absolut nichts anfangen! Ciao Stefan |
AW: Bild aus RTF-Text extrahieren
Vielleicht können das die WPCubed Komponenten? Sind ja Profi's was Pdf/Rtf und so angeht.
Per Hand.... hmmmm.... Tags auslesen und den Inhalt Binär speichern, was da rauskommt weiß ich nicht aber bin gespannt ;) |
AW: Bild aus RTF-Text extrahieren
Na ja, das ist ein Hex-String. Den kann man in der Datei suchen und dann das Hex umwandeln und in einen Stream schreiben.
|
AW: Bild aus RTF-Text extrahieren
Wenn ich den Code der RTF richtig interpretiere, muss man dann den generierten Stream den man wie von meinem "Vorposter"
beschrieben erzeugt hat (Hex nach Int geht übrigends mittels StrToInt('0x' + mystring)) als WMF Grafikformat behandeln. Ich schließe das aus dem "wmetafile" Tag im Datenstrom. |
AW: Bild aus RTF-Text extrahieren
Hallo Stefan,
ich habe Deine Testdaten mittels folgendem code (und WPTools) extrahiert
Code:
Es wird ein WMF geschrieben mit der Adresse in der linken oberen Ecke.
procedure TForm6.ExtractButtonClick(Sender: TObject);
var wp : TWPCustomRTFEdit; // uses WPCtrMemo - WPTools i : Integer; begin wp := TWPCustomRTFEdit.CreateDynamic; try if OpenDialog1.Execute then begin wp.LoadFromFile(OpenDialog1.FileName); for i := 0 to wp.TextObjects.ObjCount-1 do if wp.TextObjects.ObjList[i].IsImage then wp.TextObjects.ObjList[i].ObjRef.SaveToFile( Format('%sembedded_img_%d.%s', [ExtractFilePath(OpenDialog1.FileName), i, wp.TextObjects.ObjList[i].ObjRef.FileExtension] )); end; finally wp.Free; end; end; Die Einbettung mittels \pict\wmetafile8 ist reichlich altmodisch und wird glücklicherweise heute nicht oft genutzt. Die Anzeige in MS Word entspricht aber der des Metafiles (also winzig klein). Das erzeugte WMF kann in WPTools eingefügt werden. |
AW: Bild aus RTF-Text extrahieren
Die Idee mit der Suche nach \pict ... ist ganz ok. Neben WMF sind allerdings auch z.B. PNG oder JPG als Dateiformat möglich (siehe RTF Spezifikation).
|
AW: Bild aus RTF-Text extrahieren
Ich habe jetzt manuell aus dem RTF-String das Bild (ich bekomme hier immer \wmetafile8 ) herausgezogen und in eine Datei geschrieben (Test.wmf).
Diese lässt sich ohne Probleme mit dem Microsoft Office Picture Manager öffnen und anzeigen, daher gehe ich davon aus dass das erst mal korrekt ist. Nun versuche ich, diese Datei in ein TMetaFile zu laden
Delphi-Quellcode:
und erhalte einen Laufzeitfehler: "Metadatei ist ungültig"Metafile := TMetaFile.Create; MetaFile.LoadFromFile(fn); Die gleiche Datei habe ich auf einem Onlineportal in JPEG konvertieren lassen und dies ist ohne Fehler durchgelaufen. Nun bin ich mit meinem Latein am Ende, hat jemand eine Idee? Ciao Stefan |
AW: Bild aus RTF-Text extrahieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz