Hallo!
Ich hab hier ein kleines Script für alle die gerne ein .rtf-File generieren möchten und da Bilder reinsetzen wollen:
Das ganze funktioniert folgendermassen: Ich habe ein Word-Dokument angelegt, in das ich meine Template-Variablen reingeschrieben habe. Dann wurde das Word-Dokument als RTF-Datei gespeichert. Dieses RTF-File ist dann mein Template.
Ich habe eine kleine Template-Klasse geschrieben die nichts weiter macht, als das angegebene .rtf-Dokument einzulesen und dann den Platzhalter in dem Dokument, der "bild" heisst durch das wirkliche Bild zu ersetzen. Funktioniert einwandfrei.
Jetzt habe ich trotzdem eine Frage. Wie man sieht, speichere ich das neue .rtf-File am Schluss auf der Platte ab. Ich hätte aber gerne, dass ich das Teil nicht speichern muss und dass einfach Word aufgemacht wird und das .rtf angezeigt wird. Ich habe das mit folgenden Befehlen probiert:
Wobei in $inh das gesamte RTF gespeichert ist.
Geht aber nicht, ich bekomme nur die ganzen RTF-Befehle angezeigt, nicht das eigentliche Dokument. Wie kann ich das bewerkstelligen?
Vielen Dank
Gruss
Yezariel
Ich hab hier ein kleines Script für alle die gerne ein .rtf-File generieren möchten und da Bilder reinsetzen wollen:
PHP-Code:
<?
// RTF lesen
// ---------
include('tpl_class.php');
// Template einlesen
$tpl=new template;
$tpl->read_file("testdoc.rtf");
// Bild öffnen
$b=fopen("upl_bild.jpg","rb");
// Bild-Informationen lesen
$imgData=getimagesize("upl_bild.jpg");
// RTF-Kommando für neues Bild anlegen
$neubildPre="{\\*\\shppict{\\pict \\jpegblip \\picw".$imgData[0]." \\pich".$imgData[1]." \\wbmbitspixel24 ";
// Bilddaten in Variable lesen
while (!feof($b)) {
$neubild.= fgets($b);
}
// Binäre Bild-Daten in Hex umwandeln
$hex=bin2hex($neubild);
// RTF-Bilddaten zusammensetzen
$bildDat=$neubildPre.$hex."}}";
// Bild in RTF-Template einsetzen
$tpl->replace("bild",$bildDat);
// RTF-Datei auf Platte schreiben
$inh=$tpl->sendToVar();
$f=fopen("lala.rtf","w");
$fp=fputs($f,$inh,strlen($inh));
fclose($f);
?>
Ich habe eine kleine Template-Klasse geschrieben die nichts weiter macht, als das angegebene .rtf-Dokument einzulesen und dann den Platzhalter in dem Dokument, der "bild" heisst durch das wirkliche Bild zu ersetzen. Funktioniert einwandfrei.
Jetzt habe ich trotzdem eine Frage. Wie man sieht, speichere ich das neue .rtf-File am Schluss auf der Platte ab. Ich hätte aber gerne, dass ich das Teil nicht speichern muss und dass einfach Word aufgemacht wird und das .rtf angezeigt wird. Ich habe das mit folgenden Befehlen probiert:
PHP-Code:
header("Content-type: application/rtf");
echo $inh;
Geht aber nicht, ich bekomme nur die ganzen RTF-Befehle angezeigt, nicht das eigentliche Dokument. Wie kann ich das bewerkstelligen?
Vielen Dank
Gruss
Yezariel
Kommentar