Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mit PHP ein RTF Dokument Parsen (https://www.delphipraxis.net/100851-mit-php-ein-rtf-dokument-parsen.html)

manfred_h 4. Okt 2007 17:24


Mit PHP ein RTF Dokument Parsen
 
Hallo zusammen
mittels rtfclass lese ich Daten aus einer DB ( MySQL ) die RTF formatert sind.
Das ganze funktioniert aber...

In der DB steht folgendes:
Delphi-Quellcode:
gibt folgendes Zeugnis:\par
\par
Mit 17 Jahren bekam
auf der Webseite sieht es dann so aus:

Delphi-Quellcode:
gibt folgendes Zeugnis:
17 Jahren bekam
Das Probelm ist das nach jedem \par das nächste Wort "verschluckt" wird.

Eigelesen wird das ganze mit:

Delphi-Quellcode:
    <?php
       include('fileadmin/template/wfqbe/rtfclass.php');

       $getArray = t3lib_div::_GET("tx_wfqbe_pi1");
       $id_value = $getArray["id_testimony"];

       $sql="SELECT * FROM TESTIMONY WHERE (TESTIMONY.ID = '$id_value')";

       $result= mysql_query($sql) or die(mysql_error());
       $testimony = mysql_fetch_array($result);
                    $r = new rtf ($testimony['TESTIMONY']);
         $r->output("html");
         $r->parse();
         if( count( $r->err) == 0) { // no errors detected
         echo $r->out;
         }
    ?>

Die Homepage des Autors ist leider nicht mehr zu erreichen.
Dachte mir ich versuchs mal hier.

Danke schon mal für anschauen. :roll:
Manfred

marabu 5. Okt 2007 07:02

Re: Mit PHP ein RTF Dokument Parsen
 
Hallo Manfred,

hast du dir schon mal das hier angesehen: RTF parse class?

Vielleicht ist der Fehler (wenn es denn einer ist) dort behoben.

Grüße vom marabu

manfred_h 5. Okt 2007 08:00

Re: Mit PHP ein RTF Dokument Parsen
 
Guten Morgen Marabu

besten Dank für den Tipp. Werde das anschauen.

Shalom
Manfred

manfred_h 5. Okt 2007 11:07

Re: Mit PHP ein RTF Dokument Parsen
 
Es ist die gleiche Klasse wie dijenige, welche ich einsetzte.
:pale:

Manfred

brinkee 5. Okt 2007 12:44

Re: Mit PHP ein RTF Dokument Parsen
 
Na, dann selber machen ;)

manfred_h 5. Okt 2007 23:48

Re: Mit PHP ein RTF Dokument Parsen
 
Habe rausgefunden das an allen stellen im Text wo ein Wort fehlt
der Text <span class="f1s20"> steht.
Der HTML Code auf der Seite schaut so aus:
Delphi-Quellcode:
gibt folgendes Zeugnis:</div><div align="left"><span class="f1s20">17 Jahren bekam
Weiss jemand was das bedeutet?

Manfred

marabu 6. Okt 2007 07:49

Re: Mit PHP ein RTF Dokument Parsen
 
Hallo Manfred,

der von dir beobachtete HTML-Code ist nur das Symptom und nicht die Ursache. Ich bin kein PHP-Spezialist, aber ich vermute, dass der Parser einen Fehler beim end-of-line handling begeht.

Freundliche Grüße

Waldteufel 6. Okt 2007 10:58

Re: Mit PHP ein RTF Dokument Parsen
 
Hallo.

Zitat:

Zitat von marabu
der von dir beobachtete HTML-Code ist nur das Symptom und nicht die Ursache. Ich bin kein PHP-Spezialist, aber ich vermute, dass der Parser einen Fehler beim end-of-line handling begeht.

Stimmt. Ein Zeilenumbruch wird nämlich nicht als das Ende eines RTF-Dingsdas (\par zum Beispiel) erkannt.

Quick-and-Dirty-Lösung: Probier mal, bei Zeile 600 in rtfclass.php

Code:
if( (ord( $this->rtf[$i]) == 10) || (ord($this->rtf[$i]) == 13)) break; // eat line breaks
zu ersetzen durch

Code:
if ((ord($this->rtf[$i]) == 10) || (ord($this->rtf[$i]) == 13)) {
  if ($this->cw && !$this->cfirst) {
    $this->cw = false;
    $this->flushControl();
  };
  break; // eat line breaks
};
Bei mir funktioniert das.

Gruß,
Waldteufel

manfred_h 6. Okt 2007 11:13

Re: Mit PHP ein RTF Dokument Parsen
 
:thumb: :thumb: :thumb: :thumb: :thumb: :thumb: :thumb: :thumb: :thumb: :thumb: :thumb: :thumb:

Danke Euch Beiden !! :angel:

Das ganze sieht zu 99.9% Super aus.
Ihr habt mir echt mein Wochenende verängert. :drunken:

Shalom und Gottes Segen
Manfred


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 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