public function __construct($data, $cleanRtf = false)
 {
     //da der text evtl. bereinigt wird, müssen wir vorher
     //wissen ob es Wingdings in der font table gibt und
     //welchen index Wingdings einnimmt um die Symbole
     //durch einen Sonderzeichen Marker zu ersetzten
     //teil der Fontable mit Wingdings
     preg_match('/f[0-9]*.fnil *?Wingdings/i', $data, $matches);
     //jetzt brauchen wir noch den index von Wingdings in der fonttable
     //und ersetzten anschliessend alle Wingdings Sonderzeichen
     if (!empty($matches)) {
         preg_match('/[0-9]+/', $matches[0], $aWingdingsFontTableIndex);
         //jetzt ersetzen aber ohne die magic quotes einstellungen zu beachten
         $data = preg_replace('/\\{.f' . $aWingdingsFontTableIndex[0] . '\\\\[a-z0-9\\\\]+ *(.) *\\}/i', '###' . tx_mklib_util_MiscTools::getSpecialCharMarker() . '$1###', $data);
     }
     //@todo: warum ist es nötig den text zu bereinigen? wäre es nicht besser
     //den text zu reparieren damit z.B. evtl. das Sonderzeichen parsen funktioniert
     //womit die eigene ersetzung am ende von parse() wegfallen würde
     if ($cleanRtf) {
         //Fontable entfernen
         $data = preg_replace('/{.fonttbl.*?;}}/i', '', $data);
         //Colortable entfernen
         $data = preg_replace('/{.colortbl.*?}/i', '', $data);
         //Meta-Infos entfernen
         $data = preg_replace('/{.info.*?}}/i', '', $data);
     }
     $this->len = strlen($data);
     $this->rtf = $data;
     $this->wantXML = false;
     $this->wantHTML = false;
     $this->out = "";
     $this->outstyles = "";
     $this->styles = array();
     $this->text = "";
     if ($this->len == 0) {
         array_push($this->err, "No data in stream found");
     }
 }
 /**
  * Konvertiert spezielle Zeichen zu ASCII
  * @param string $text
  */
 private function specialCharacters($text)
 {
     //der alte weg
     //		$text_buffer = "";
     //		for($i = 0; $i < strlen($text); $i++)
     //			$text_buffer .= $this->escapeCharacter($text[$i]);
     //der neue weg
     //einfach alle bekannten Sonderzeichen ersetzen
     foreach ($this->aSpecialChars as $sSpecialChar => $sReplacement) {
         //Sonderzeichen ersetzen. immer \' als Prefix
         //damit es als Sonderzeichen im RTF gilt
         $text = str_replace($sSpecialChar, '\\\'' . $sReplacement, $text);
     }
     //dann noch die Windings Sonderzeichen ersetzten
     $sSpecialCharMarker = tx_mklib_util_MiscTools::getSpecialCharMarker();
     $text = preg_replace("/###{$sSpecialCharMarker}(.*?)###/mi", "}{{$this->getWindingsFont()} \\1}{{$this->getDefaultFont(false)}", $text);
     return $text;
 }