Mailinglisten-Archive |
Hallo Michael, Bin ja froh das ich hier noch hilfe bekomme. Okay... Wusste gar nicht das RFT rein ASCII ist... Danke für die Hilfe... Genau das habe ich gesucht... Nun eine kleine nebenfrage... In Word kann ich ja bestimmte bereiche gegen Veränderungen schützen. Ist das in RFT auch möglich. Jetzt ist es OT ;-) Gruß Michael -----Ursprüngliche Nachricht----- Von: php-bounces at phpbar.de [mailto:php-bounces at phpbar.de] Im Auftrag von Michael Detambel Gesendet: Donnerstag, 10. November 2005 11:24 An: deutschsprachige PHP-Mailingliste Betreff: Re: [php] Erzeugen von RFT-Datei / WordDatei mittels PHP Michael Vogel schrieb: > Für eine Projekt sollen Formularfelder innerhalb eines Word-Dokumentes > (Doc oder RTF) durch Datenbankeinträge gefüllt werden. > Das Word-Dokument inkl. Der Formularfelder sind fertig und nun geht es > daran die Daten aus einer MySQL-Datenbank zu holen (klappt alles > bestens) und die Formularfelder innerhalb der WordDokumentes zu setzen? Hallo Michael, schlimm abgewatscht worden? Aber wenn es Word-Format sein soll und VBA nicht zur Verfügung steht, hilft folgendes Simpel-Verfahten: 1. Erstelle (mit Word) ein Dokument und setze an die gewünschten Stellen Platzhalter ein (z. B. *Ort*). 2. Speichere im RTF-Format ab (= reines ASCII). Wenn das Ding auf einem Webserver liegt und nicht per Browser ausgelesen werden soll, hänge die Endung *.php dran und setze den gesamten Inhalt der Datei in einen PHP-Kommentar. Das sieht dann so aus: (...) {\loch\f4\fs22\lang1031\i0\b0 *plz* *ort*} \par \pard\plain (...). 3. Ersetze im PHP-Skript die Platzhalter durch die gewünschten Daten (ggf. PHP-Kommentar überlesen). Code-Schnipsel: // Word-Dokument (RTF, aber als .DOC kaschiert) aufbauen und als Anhang verschicken /* ... */ $brief = file_get_contents('20 Res.E-Heim.rtf.php'); // Template öffnen // Template ist gegen direktes Lesen mit php-Tags geschützt $brief = str_replace('<?php /*','',$brief); $brief = str_replace('*/?>','',$brief); $brief = str_replace('*tagesdatum*',strftime( "%d.%m.%Y" ),$brief); * ... */ $brief = str_replace('*plz*',$plz,$brief); $brief = str_replace('*ort*',$ort,$brief); // Datei speichern (mit Endung .DOC) $out_file = '20 Res.E-Heim.doc'; $file_name = '20 Res.E-Heim.doc'; $fp = fopen('tmp/'.$file_name,'w'); if(!$fp) { trigger_error('file_put_contents cannot write in file.', E_USER_ERROR); return; } fputs($fp, $brief); fclose($fp); 4. Fertig! Das einzige, woran der Anwender merkt, dass es kein .DOC-Format ist, ist die Konvertierungsabfrage (falls er die überhaupt eingestellt hat). Mfg Michael Detambel -- ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de ** Informationen: http://www.phpbar.de http://lists.phpbar.de/mailman/listinfo/php
php::bar PHP Wiki - Listenarchive