phpbar.de logo

Mailinglisten-Archive

AW: [php] Erzeugen von RFT-Datei / WordDatei mittels PHP

AW: [php] Erzeugen von RFT-Datei / WordDatei mittels PHP

Michael Vogel info at monett-creativ.de
Don Nov 10 11:39:52 CET 2005


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