Aus Daten PDF- oder Excel-Dokument generieren
am 23.03.2011 - 08:28 Uhr in
Aktuell wird ein Excel-Dokument und eine MySQL-Tabelle gepflegt, was doppelte Arbeit bedeutet. Nun habe ich mir überlegt, ob es nicht möglich wäre die Daten zentral in der DB bzw. Drupal zu pflegen und dann das notwendige Excel- oder PDF-Dokument (zum Ausdrucken) zu generieren. Dabei muss die Ansicht hierfür angepasst sein und wird nicht 1:1 der Ansicht in Drupal (dort als Accordion) entsprechen!
Aufbau der Daten habe ich im Thema View aus einer MySQL-Tabelle erläutert. Hier nochmal die Kurzfassung:
Die DB-Tabelle besteht aus 4 Feldern von Nutzdaten, welche in verschiedene Gruppen eingeteilt werden. Jede Gruppe hat eine Überschrift und jeder Datensatz wird als zwei(!) Tabellenzeilen (1. Zeile enthält 3 Felder, 2. Zeile das letzte Feld) angezeigt.
Die Daten wie auf der Webseite bzw. mit einem print stylesheet auszudrucken sollte ja problemlos funktionieren, nun müssen die Daten aber für den Druck angepasst werden...
Zum einen muss das Dokument gestylt werden (Überschriften, zugehörigen Datensätze im Tabellenformat) und zum anderen sollten beim Drucken auch page breaks gesetzt werden können. Es sieht halt irgendwie unschön aus, wenn am Ende einer Seite die Überschrift steht und auf der nächsten Seite dann nur die Daten an sich...
Ist es möglich beim erstellen eines PDFs oder einer Druckansicht (gegebenenfalls händisch) Seitenumbrüche zu setzen?
oder ist es als Alternative möglich die Daten in ein Excel-Dokument zu exportieren und dort nach einer Format-Vorlage zu stylen (ok, das ist keine reine Drupal-Frage, sondern auch Excel...)?
- Anmelden oder Registrieren um Kommentare zu schreiben
Views Bonus Pack + Pear
am 23.03.2011 - 09:03 Uhr
Hallo,
um aus einer View die Daten als einfache CSV oder XML zu exportieren, bietet sich eventuell das Views Bonus Pack an. Für die Erzeugung der PDF's und der Druckversionen könntest Du eventuell das Modul Printer, e-mail and PDF versions verwenden.
Alternativ gibt es die PEAR-Bibliotheken für die Erzeugung von Excel und PDF-Dateien. Das sind quasi PHP-Erweiterungen, die aber teilweise bei einigen großen Hostern nicht verfügbar sind. Damit müsstest Du dann auch jegliche Ausgabe und Formatierung per Hand programmieren. Das hätte dadurch aber natürlich auch den Vorteil, dass Du alles genau definieren kannst. Spreadsheet_Excel_Writer / Pear File_PDF
Gruß,
Sven
Hi Sven, Danke für die Tipps!
am 23.03.2011 - 10:40 Uhr
Hi Sven,
Danke für die Tipps! Views Bonus Pack sieht da vielversprechend aus (optisch passendes Doc reicht natürlich auch, geht ja nur um eine gute und anpassbare Druckansicht). Ansonsten wäre auch OpenOffice/ LibreOffice eine Möglichkeit, wenn es da einfacher zu realisieren ist. Printer, e-mail and PDF muss ich mir aber auch anschauen. Da befürchte ich aber, dass ich nicht die passenden Seitenumbrüche setzen kann. Somit wäre ein Word- oder Excel-Dokument wohl die beste Möglichkeit. Da kann ich dann im Office nochmal Seitenumbrüche setzen...
Für die PDF-Ausgabe kann man
am 23.03.2011 - 16:12 Uhr
Für die PDF-Ausgabe kann man sich mit FPDF, einer freien PHP-Lib im Rahmen eines eigenen Moduls helfen. Dazu muss nichts zusätzlich auf dem Server installiert sein. Die Programmieurng ist vergleichsweise einfach, nur eben ätzend wenn es um Feldlängen und dergleichen geht (so ist das beim Druck nunmal). Seitenumbrücher dagegen setzt die Lib nach Voreinstellung (Größe Header, Footer, ..) selbst. Ich setze das gute Stück u.a. in einem Non-Drupal Projekt ein.
Du meinst aber automatische
am 23.03.2011 - 16:31 Uhr
Du meinst aber automatische Seitenumbrüche am Ende der Seite, oder?
In diesem Fall ist es aber eher manuell zu machen. Je nachdem wieviel des nächsten Blocks noch auf der Seite untergebracht wird, muss entschieden werden, ob direkt auf die nächste Seite gedruckt wird oder nicht.
Je einfacher die Lösung, desto besser :) PDF hat den Nachteil, dass es wohl automatisiert gestylt und angepasst werden müsste, was eher schwer zu realisieren wäre. Ein Excel- oder Word-Dokument hätte den Vorteil, dass hier nachträglich noch einfach Anpassungen gemacht werden können.
Ansonsten ginge vielleicht noch eine HTML-Ansicht, in die man an die richtigen Stellen einen Seitenumbruch einfügt...
Aktuell habe ich mich eher
am 01.04.2011 - 09:51 Uhr
Aktuell habe ich mich eher mit der Ausgabe der Daten in Drupal auseinandergesetzt (eigener Inhaltstyp, Views, Views_Accordion), was auch soweit funktioniert (ohne Styles, aber inhaltlich wie gewünscht). Nun werde ich mir nochmal Gedanken machen, wie ich eine passende Druckansicht hinbekomme.
Zuerst werde ich mir wohl das Modul Printer, e-mail and PDF versions und wahrscheinlich auch die PHP-Klasse FPDF anschauen. Vielleicht komme ich damit schon zu meinem Ziel. Problem ist ja auch nicht eine reine Druckansicht (z.B. mittels CSS), sondern eher, dass die Druckansicht auf optisch was hermachen sollte und gerade die Zeilenumbrüche unkompliziert gesetzt werden können. Optimal wäre hier eine Art Vorschauansicht, in welcher man die Zeilenumbrüche setzen kann (anhand von einer Skala mit Werten oder auch Drag&Drop?). Genau hier weiß ich nicht, ob das mit einfachen Mittels zu erreichen ist.
Das PDF direkt zu erzeugen wäre natürlich optimal und spart einen Umweg über einen Ex- und Import in ein Excel-Dokument... ...
Mal sehen, in der nächsten Zeit komme ich vielleicht mal zu ersten Tests in dem Bereich ;)
ich find
am 01.04.2011 - 10:08 Uhr
ich find http://www.tcpdf.org/ recht nice. Da kann man recht easy mit nem html/css layout ne pdf erzeugen.