[PHP] PDF per XML-Template

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Nanobyte, 13. Juli 2011 .

  1. 13. Juli 2011
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    PDF per XML-Template

    Ich habe folgendes vor:

    Daten aus meiner Datenbank sollen in ein PDF geschrieben werden.

    Für dieses Vorhaben liegt eine PDF-Datei vor die jede Seite einmal beinhaltet aber im Fertigen PDF später mehrmals vorkommen können.
    (Die Seiten werden vom Template-PDF in das neue Kopiert.)

    Das ganze soll mit Hilfe einer XML-Datei gesteuert werden, da es mehrere Templates geben wird die sich zum Großteil nicht von der Struktur der Daten unterscheiden, nur von den Positionen der Texte und Bilder.


    Die Daten für das PDF bestehen teilweise aus Tabellen-Daten die je nach menge auf mehrere Seiten aufgeteilt werden müssen.
    Dabei ist zu beachten das es für die Tabellen-Daten einmalige "Kopf"-Daten gibt die nur auf der ersten Seite mit der Tabelle geschrieben werden sollen.




    Wie sollten die XML-Datei und der Parser dazu aussehn um ein solches Unterfangen zu bewerkstelligen?

    (Mein bisheriger Parser geht stur die XML-Datei durch und überschreibt mehrfach vorhandene Daten im PDF.)


    NACHTRAG:
    Zum generieren werden FPDF und FPDI genutzt.




    Grafik-Erklärung:
    • Jeder Block stellt eine Seite im PDF dar.
    • Die Einrückungen stellen die Zusammengehörigkeit der Seiten/Daten dar.
    • Jeder Block mit einer Farbe stellt ein Array mit Daten Dar.
    • Blöcke mit einer leicht helleren Farbe sind Seiten auf denen die Daten der vorherigen Seite vorgeführt werden.

    Bild
     
  2. 13. Juli 2011
    AW: PDF per XML-Template

    hey, nutz doch pseudo-html als format. diese kannst du dann in php nach gutem gewissen umsetzen.

    z.b. diese tabelle:
    Code:
    <page>
     <table>
     <thead>
     <tr>
     <th>Überschrift 1</th>
     <th>Überschrift 2</th>
     <th>Überschrift 3</th>
     </tr>
     </thead>
     <tbody>
     <tr>
     <td>Inhalt 1</td>
     <td>Inhalt 2</td>
     <td>Inhalt 3</td>
     </tr>
     <tr>
     <td>Inhalt 1</td>
     <td>Inhalt 2</td>
     <td>Inhalt 3</td>
     </tr>
     <tr>
     <td>Inhalt 1</td>
     <td>Inhalt 2</td>
     <td>Inhalt 3</td>
     </tr>
     <tr>
     <td>Inhalt 1</td>
     <td>Inhalt 2</td>
     <td>Inhalt 3</td>
     </tr>
     </tbody>
     </table>
    </page>
    dein parser kann dann so vorgehen:
    PHP:
    <? php

    schreibe_tabellen_anfang
    ();

    schreibe_tabellen_kopf_anfang ();
    schreibe_tabellen_zeile_anfang ();
    schreibe_tabellen_zelle_anfang ();
    schreibe ( 'Überschrift 1' );
    schreibe_tabellen_zelle_ende ();
    schreibe_tabellen_zelle_anfang ();
    schreibe ( 'Überschrift 2' );
    schreibe_tabellen_zelle_ende ();
    schreibe_tabellen_zelle_anfang ();
    schreibe ( 'Überschrift 3' );
    schreibe_tabellen_zelle_ende ();
    schreibe_tabellen_zeile_ende ();
    schreibe_tabellen_kopf_ende ();

    schreibe_tabellen_körper_anfang ();

    // usw...

    schreibe_tabellen_körper_ende ();

    schreibe_tabellen_ende ();
    so würde ich es auf alle fälle machen.
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.