PHP PDF-Druck aus Array

moby07

Lieutenant
Registriert
Sep. 2007
Beiträge
901
Hallo zusammen,

ich möchte Daten aus einem Array (liegt in einer .php) in ein PDF generieren.

Kann mir jemand da weiterhelfen? Eine gute (deutsche) Seite mit Erklärung wäre auch nicht schlecht. SQL ist mir nicht fremd, jedoch PHP ist für mich relativ Neuland.

Gruß

moby07
 
Hi,

wie du generell ein PDF erstellst findest du hier. Jetzt muss du nur die Daten aus dem Array durchlaufend in das PDF mit reinpacken und das sollte es gewesen sein.

VG,
Mad
 
Okay, Klartext.:-) Ich möchte gerne ein PDF namens "Bestellung" generieren. Dieses PDF bezieht seine Daten aus dem Array (Lieferanschrift, Artikel-Nr., Menge, Preis, ect.) dieses in der Datei "Bestellvorschlagsliste" vorab erstellt worden ist.
Im Prinzip muss ich die Daten nur chic darstellen und das ins PDF umwandeln, die danach theoretisch per Post verschickt werden könnte.
 
Hi,

ja, im "Klartext": Was genau klappt dann nicht mit der Anleitung die ich dir gepostet habe? Ein wenig Eigenleistung ist natürlich schon noch von nöten :) ;)

VG,
Mad
 
@ICH_BIN_LETZTER

Danke, auf dem ersten Blick genau das was ich benötige.

Und wenn wir noch beim Thema sind. Wie lautet die Zeile, wenn ich die zu erstellende PHP Dateien mit "Variablen" (Daten aus dem Array) und "Datum mit Zeit" erstellen möchte. Ich "google" mich schon tot danach.^^

// pdf erzeugen
$pdf = new Testklasse01_fuer_altes_php();

// pdf ausgeben (im Browser oder in Datei schreiben)
$pdf->Output(); // Ausgabe (wenn in Datei schreiben, dateiname in Klammer)


@Madman1209

Klar, selbst muss ich das natürlich machen. Der Anfang ist nur etwas schwierig.
 
Hi,

ja schwierig sicher, aber dann solltest du es eben Stück für Stück machen. Einfacher als das Beispiel von mir mit "Hallo Welt" wird ein PDF nicht. Und dann kannst du Stück für Stück deine Daten reinbauen, eins nach dem anderen. Sehe da jetzt nicht so die Schwierigkeit... abgesehen davon leitet das zweite Beispiel auch von "FPDF" ab, ist lediglich komplexer. Also wäre für die Grundlagen erstmal das "Hallo Welt" der richtige Weg, vor allem wenn du selbst schreibst, dass du Schwierigkeiten hast...

VG,
Mad
 
Das "Hallo Welt"-Beispiel geht natürlich auf. Die Formatierungen später, wie das Dokument aussehen soll, und wie ich es schön aus dem Array bekomme, das macht mir noch etwas Schwierigkeiten. Ich werde mir das Beispiel aber am besten erstmal zu Ende lesen.
 
Ich kann dir nur vorher sagen: Du wirst es hassen!
Ein anständiges PDF-Template zu schreiben ist eine konstante Folge von Versuch und Irrtum.
 
Im Beispiel 2 (Rechnung) steht doch alles. Die Daten einfach in die Session packen und fertig.

Du kannst dir aber auch ne eigene Klasse schreiben, die die Daten gezielt entgegennimmt (getter, setter), was meines Erachtens auch die sauberere Lösung ist.

@Daaron
Ooooooh ja da hast du recht. Da müsste man mal ne Lösung finden so nach der Art in Word/Writer ein Template designen und dann á la Serienbrief füllen. Das hätte einen unglaublichen Benefit.
 
ICH_BIN_LETZTER schrieb:
Ooooooh ja da hast du recht. Da müsste man mal ne Lösung finden so nach der Art in Word/Writer ein Template designen und dann á la Serienbrief füllen. Das hätte einen unglaublichen Benefit.

gibt es ;) Nennt sich LiveDocx und ist ein Webservice - aber wer gibt seine Rechnungen schon gerne in fremde Hände.
Wenn ich so recht überlege, müsste das für OpenOffice-Dokumente eventuell sogar in vertretbarem Aufwand möglich sein. So ein Dokument ist ja ein Zip-Archiv mit XML-Dateien. Da kommt es dann nachher nur darauf an, wie komplex der XML-Markup des Dokuments ist und ob man in vertretbarem Aufwand da Ersetzungen (für z.B. Rechnungsnummer) als auch Iterationen (für z.B. Rechnungsposten) ausführen kann.

Notier ich mir mal, wenn ich irgendwann eines Tages mal nen Wochenende Zeit habe schau ich mir das mal an. Wäre sicherlich ein schönes OpenSource-Projekt.

Nachtrag: Habe gerade mal ein OpenOffice-Dokument so geöffnet. Selbst einzelne zusammenhängende Strings werden in so einem XML-Dokument in einzelne Teile gesplittet, also ist es gar nicht so einfach zu erkennen was nun wo ersetzt werden muss. Hab mal Testweise ein Rechnungsbetrag von 100000,00€ in ein ganz simples Dokument geschrieben. Entstanden sind dafür schon mehrere Elemente 100|000|,|00|€ obwohl alle die gleiche Formatierung haben und zusammenhängen sind.
 
Zuletzt bearbeitet:
Nachtrag: Habe gerade mal ein OpenOffice-Dokument so geöffnet. Selbst einzelne zusammenhängende Strings werden in so einem XML-Dokument in einzelne Teile gesplittet, also ist es gar nicht so einfach zu erkennen was nun wo ersetzt werden muss. Hab mal Testweise ein Rechnungsbetrag von 100000,00€ in ein ganz simples Dokument geschrieben. Entstanden sind dafür schon mehrere Elemente 100|000|,|00|€ obwohl alle die gleiche Formatierung haben und zusammenhängen sind.

Ich glaube ich denk mal wieder zu kompliziert... ne html Datei als Template benutzen und dann mit fpdf oder sowas in der art in PDF umwandeln müsste doch um einiges einfacher sein.
 
Theoretisch schon, aber die ganzen Libraries haben sehr beschränkten HTML-Support. Hatte zufälligerweise vor einigen Tagen erst einen Kollegen, der die gleiche Idee hatte:
Endresultat? Das Rendering bei Markup mit Tabellen war mal gut und mal absolut falsch. Also musste es doch auf die gute alte Weise manuell mit TCPDF/FPDF erstellt werden.
 
Es gibt eine Möglichkeit, die durchaus gute Erfolge erzielt: wkhtmltopdf
Das ist ein kleines Tool, dass die Webkit Rendering-Engine nutzt, um ein HTML/CSS-Dokument "darzustellen", nur stellt es das Dokument halt als PDF dar.

Ums mal realistisch in einen Onlineshop oder sowas zu setzen:
- Shop erhält Befehl: Generiere Rechnung und versende an Kunden
- Shop-PHP erzeugt die Rechnung aus einem recht übersichtlichen HTML-Template mit hübschem CSS
- Shop-PHP ruft via system() wkhtmltopdf aus, füttert es mit dem HTML/CSS-Code und erhält als Antwort n PDF Bytestring
- Shop schickt ne Mail mit der PDF
 
Zurück
Oben