PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dynamische Latex Dokumente aus PHP erstellen



HaPe
15-01-2008, 13:27
Hallo zusammen,

ich bin neu hier im Forum. Ich entwickle seit einigen Jahren PHP Anwendungen unter Windows.
Seit kurzem habe ich die Entwicklungsplattform von Windows auf Linux gewechselt und mich auch mit Latex auseinander gesetzt. Wie Latex prinzipiell funktioniert, habe ich verstanden.
Ich möchte aus einer PHP Datenbankanwendung, aus einer dynamisch generierten Ergebnismenge (MySQL Abfrage) ein Latex Dokument erstellen bzw. die Daten an ein Latex Dokument übergeben.
Der Aufruf sollte über ein Shell Script erfolgen.
PHP über MySQL erstellt Ergebnismenge -> diese wird über ein Shell Script an ein Latex Dokument übergeben. Aus dem Latex File soll später noch eine PDF Datei erstellt werden.
Leider finde ich nicht so richtig den Einstieg. Ich habe keine Ahnung wie man so ein Problem richtig angeht.
Vielleicht könnt Ihr mir ein wenig auf die Sprünge helfen. Kann ich sowas wie ein Latex Template erstellen und dort die übergebenen Daten formatiert ausgeben? Ist der Weg das ganze über ein Shell Script aufzurufen ok, oder kann man den Latex Aufruf direkt über PHP realisieren?
Wie würdet Ihr das Problem lösen?

Ich bin für jede Hilfe dankbar.

Gruß HaPe

sarc
15-01-2008, 19:27
Der Ansatz mit dem LaTeX Template ist schon mal sehr vernünftig. Ich würde hier allerdings Bezeichner wählen, die nicht von LaTeX selbst benutzt werden - {{Variable}} oder %Variable%, wie sie von vielen Templateengines verwendet werden, ist irgendwie kontraproduktiv... ;)

Wie das ansonsten aussieht hängt hauptsächlich davon ab, welche Inhalte in welcher Form dargestellt werden sollen. Wenn das Dokument an sich immer gleich aussieht und nur einzelne Worte eingefügt werden ist das Ganze relativ einfach, da müssen nur ein paar allgemeine Variablen durch entsprechende Inhalte ersetzt werden. Das kannst du mit PHP ohne weiteres erreichen.
Wenn dagegen komplexere Formatierungen nötig sind, würde ich vermutlich eher den LaTeX-Code selbst in PHP erzeugen und dann in eine LaTeX-Vorlage einfügen. Auch das geht direkt in PHP. Alternativ könnte man auch versuchen, bestehende Template-Systeme auf LaTeX-Output zu trimmen. Allerdings muss man hier halt schauen, ob es keine Konflikte mit den Bezeichnern gibt.

Die pdf-Erzeugung kann auch direkt aus PHP heraus erfolgen, sofern Funktionen wie exec() nicht gesperrt sind. Bei den meisten Installationen sind sie das jedoch aus Sicherheitsgründen. Aber da erzähl ich dir vermutlich nix neues... ;)

HaPe
16-01-2008, 08:36
Hallo Sarc,

danke für Deine Antwort.
Das Dokument an sich wird immer gleich aussehen. Es bekommt einen statischen header und einen footer. Die Daten werden dann als Liste Sequentiell ausgegeben.

Wie kann ich denn dynamischen Inhalt an ein Latex Dokument übergeben... und wie müsste in Latex die Kontrollstruktur aussehen damit ich eine dynamische Liste ausgeben kann?

Hättes Du vielleicht mal ein kleines Beispiel für mich?

Gruß HaPe