AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bild aus RTF-Text extrahieren

Ein Thema von skoschke · begonnen am 29. Jul 2020 · letzter Beitrag vom 4. Aug 2020
Antwort Antwort
Seite 1 von 2  1 2      
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#1

Bild aus RTF-Text extrahieren

  Alt 29. Jul 2020, 13:52
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:
{\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}
}
Danke
Ciao
Stefan
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.075 Beiträge
 
Delphi 12 Athens
 
#2

AW: Bild aus RTF-Text extrahieren

  Alt 29. Jul 2020, 14:21
Vielleicht ist das interessant ?
https://www.codeproject.com/Articles...-RTF-Converter
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Bild aus RTF-Text extrahieren

  Alt 29. Jul 2020, 14:22
Danke für den Hinweis, bin schon am Laden...

... Schade, damit kann ich als "DelpiUser" leider absolut nichts anfangen!

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Bild aus RTF-Text extrahieren

  Alt 29. Jul 2020, 14:32
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
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Bild aus RTF-Text extrahieren

  Alt 29. Jul 2020, 15:06
Na ja, das ist ein Hex-String. Den kann man in der Datei suchen und dann das Hex umwandeln und in einen Stream schreiben.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.936 Beiträge
 
Delphi 12 Athens
 
#6

AW: Bild aus RTF-Text extrahieren

  Alt 29. Jul 2020, 15:35
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.
  Mit Zitat antworten Zitat
jziersch
Online

Registriert seit: 9. Okt 2003
Ort: München
251 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Bild aus RTF-Text extrahieren

  Alt 30. Jul 2020, 08:37
Hallo Stefan,

ich habe Deine Testdaten mittels folgendem code (und WPTools) extrahiert

Code:
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;
Es wird ein WMF geschrieben mit der Adresse in der linken oberen Ecke.
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.
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF

Geändert von jziersch (30. Jul 2020 um 08:56 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Bild aus RTF-Text extrahieren

  Alt 30. Jul 2020, 14:39
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).
Michael Justin
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Bild aus RTF-Text extrahieren

  Alt 30. Jul 2020, 15:15
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:
  
  Metafile := TMetaFile.Create;
  MetaFile.LoadFromFile(fn);
und erhalte einen Laufzeitfehler: "Metadatei ist ungültig"

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
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Bild aus RTF-Text extrahieren

  Alt 30. Jul 2020, 15:38
und erhalte einen Laufzeitfehler: "Metadatei ist ungültig"
Könnte an einem Headerfehler liegen. Ich erinnere mich dunkel an ein entsprechendes Problem mit in RTF eingebetteten WMF's. Enthält die Datei einen WMF Header?
Michael Justin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 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