hallo!
da ich vermehrt beobachtet habe, dass das verlangen nach der erstellung von pdf-dateien via php besteht, hier mal eine kleine anleitung, auf die in späteren threads verlinkt werden kann.
pdfLaTeX ist ein programm, welches auf den meisten linux-kisten installiert ist. es benutzt so genannte .tex-dateien, welche mit jedem einfachen editor erstellt werden können, um daraus pdf-dateien zu erstellen. diese anleitung funktioniert aber auch unter windows, wenn latex installiert ist.
Wie diese tex-dateien aufgebaut sind, erkläre ich an dieser stelle nicht. es sei so viel gesagt: es ist eine html-ähnliche sprache um text zu formatieren. wer also html beherrscht, wird latex mit etwas fleiß schnell lernen.
Man kann sich in diesem tutorial einen kleinen überblick verschaffen.
ich empfehle folgenden weg, um sich diese tex-dateien zusammenzubasteln:
- man nehme eine template-engine , mit der man den inhalt eines templates nicht nur ausgeben, sondern auch in eine variable schmeißen kann.
- den inhalt dieser variablen schreibt man nun in eine temporäre datei mit der endung .tex .
- Nun lässt man den server für sich arbeiten. man übergibt nun dem programm pdflatex diese .tex-datei. dies kann auf 2 wegen geschehen:
PHP-Code://ohne ausgabe der systemmeldungen von pdflatex
exec( "pdflatex ./datei.tex" );
//oder mit ausgabe
system( "pdflatex ./datei.tex" );
//während der entwicklung sollte mit system() gearbeitet werden, damit man eventuelle fehlermeldungen sieht
- Nun gibt es im verzeichnis der .tex datei eine gleichnamige .pdf datei und noch ein paar dateien mehr, was die genau bedeuten, kann man sich in einem latex-handbuch anlesen.
diese datei kann wie folgt zum download angeboten werden (bei mir hat es zumindest so geklappt):
oder mit header() einfach auf die datei weiterleiten.PHP-Code:header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize( "dateiname.pdf" ));
header("Content-Disposition: attachment; filename=dateiname.pdf");
readfile( "./dateiname.pdf" );
fehlerquellen:
* Schwierige Fragen zu LaTeX kann ich hier nicht beantworten, sucht euch dafür bitte ein Latex-Forum
* Falls schon eine pdf-datei besteht, die den namen der übergebenen .tex hat, wird keine neue pdf-datei erstellt. einmalige und temporäre dateinamen verwenden!
* Natürlich muss man system-befehle ausführen können, dürfte also nicht mit jedem mini-acount klappen.
* Die Pfadangabe zu der tex-datei ist relativ zum ausführenden php-script anzugeben!
so, ich hoffe, das hat ein paar menschen weiter gebracht, für anregungen/verbesserungsvorschläge/tipps bin ich offen und sie können hier gerne gepostet werden.
Problem Nr. 1: LaTeX muss mehrmals ausgeführt werden, falls ein Inhaltsverzeichnis erstellt werden soll.

LinkBack URL
About LinkBacks
Zitieren
?
...but please stay in the forum... 
