(schönes) PDF aus HTML erzeugen
Hagen
- html
0 Vinzenz Mai- perl
0 Dirk Dorweiler0 Hagen0 LanX!
0 Dirk Dorweiler0 frankx
Hallo,
auf meinen Server läuft ein CMS auf der Basis von Perl. Jetzt möchte ich aus einigen Seiten ein PDF erzeugen, möglichst 'dynamisch' auf dem Server passiert, d.h. der Benutzer drückt auf einen Button und erhält das entsprechende PDF-Dokument, welches soeben generiert wurde.
Mein etwas größeres Problem ist, dass ich die Seitenumbrüche kontrollieren möchte, d.h. ich möchte Blöcke definieren, in denen es keinen Umbruch geben soll oder auch mal einen Umbruch an einer Stelle erzwingen. Da mein jetziges System auf Perl beruht, habe ich bisher nur in diesem Bereich gesucht, aber nichts wirklich brauchbares gefunden (bzw. ohne viel Eigenentwicklung).
Hat sich jemand schon mal damit beschäftigt oder kann mir einen Tipp geben? Ich bin auch nicht unbedingt auf Perl festgelegt, es kann auch ein PHP-Skript sein, welches HTML in PDF konvertiert. Was mir relativ wichtig wäre, dass ich die Seitenumbrüche beeinflußen kann.
Gruß
Hagen
Hallo,
Mein etwas größeres Problem ist, dass ich die Seitenumbrüche kontrollieren möchte, d.h. ich möchte Blöcke definieren, in denen es keinen Umbruch geben soll oder auch mal einen Umbruch an einer Stelle erzwingen.
ich bin mir ganz sicher, dass Du bei CPAN in Sachen PDF-Erzeugung fündig wirst.
Verabschiede Dich allerdings von dem Gedanken einfach HTML in PDF wandeln zu wollen, erzeuge Deine PDF-Dateien von Grund auf und von "Hand zu Fuß" selbst.
Das ist Arbeit, harte Arbeit. Aber es lohnt sich!
Freundliche Grüße
Vinzenz, der sowas mit PHP gemacht hat, gerade vor der Aufgabe steht, sowas mit .NET durchzuführen und für den das Ergebnis einer 15-Sekunden-Suche bei CPAN vielversprechend aussieht.
Hoi!
Vinzenz, der sowas mit PHP gemacht hat, gerade vor der Aufgabe steht, sowas mit .NET durchzuführen und für den das Ergebnis einer 15-Sekunden-Suche bei CPAN vielversprechend aussieht.
.NET? CPAN? Du verwirrst mich! ;-)
Sofern Du was für Perl suchst, kann ich Dir das in Deinem Link bereits aufgeführte PDF::API2 nur empfehlen.
Grüße
Leider sind die erzeugten Texte etwas umfangreicher, d.h. es werde recht viele Daten aus unterschiedlichen Tabellen mit recht umfangreichen Bedingungen geholt. Bei CPAN hatte ich auch schon gesucht, jedoch ist bei jedem Modul noch sehr viel Eigenarbeit erforderlich um den Text entsprechend setzten zu können.
Daher hatte ich gehofft, dass ich irgendwo ein Script "html2pdf" finde bzw. "einfach" anpassen könnte.
CSS die die Seitenumbrüche kontrollieren habe ich gefunden (<p style="page-break-inside:avoid">, page-break-before:avoid;, page-break-before:always). Bei der Browser-Druck-Funktion werden die (bei mir) aber nur von Opera (nicht IE, FF) beachtet.
Kennt jemand "PDFMaker" (also Online-Scripte), die diese CSS auswerten?
Leider sind die erzeugten Texte etwas umfangreicher, d.h. es werde recht viele Daten aus unterschiedlichen Tabellen mit recht umfangreichen Bedingungen geholt. Bei CPAN hatte ich auch schon gesucht, jedoch ist bei jedem Modul noch sehr viel Eigenarbeit erforderlich um den Text entsprechend setzten zu können.
...
CSS die die Seitenumbrüche kontrollieren habe ich gefunden (<p
also ich muss raten was du brauchst... von Audry Tang gäbs PDF::FromHTML
allerdings CSS kannst du dir da in die Haare schmieren.
Was die meisten Leute brauchen ist PDF::Reuse, ist schnell und effizient.
man baut händisch eine "schöne" Vorlage (z.B. PrintToFile deiner HTML-Vorlage) und plottet dann die jeweiligen Texte ein.
Allerdings musst du den Umbruch selbst steuern!!!
Was dir keiner (auch keine KI) abnehmen kann ist dir Gedanken zu machen wie du ein Fließtextformat wie HTML auf ein Seitenorientiertes wie PDF abbilden möchtest.
Denn eine gedruckte HTML-Seite ist fast nie ein schönes PDF!!!
(mal media-Anweisungen außen vor gelassen)
Gruß
LanX
Tach!
Hat sich jemand schon mal damit beschäftigt oder kann mir einen Tipp geben? Ich bin auch nicht unbedingt auf Perl festgelegt, es kann auch ein PHP-Skript sein, welches HTML in PDF konvertiert. Was mir relativ wichtig wäre, dass ich die Seitenumbrüche beeinflußen kann.
Wenn Du ein gutes Ergebnis brauchst, schau Dir mal PDF::API2 an. Ist dann aber, wie Vinzenz schon schrieb, hartes Brot.
Ansonsten brachte Google spontan folgendes hervor:
http://www.htmltopdf.org
Könnte einen Blick wert sein....
Grüße
Hellihello,
fpdf gibt es für PHP. Wenn Du die Seitenumbrüche kontrollieren willst, musst Du ja dann auch auf einer Ebene arbeiten, auf der Du mit Funktionen wie addPage() hantierst.
Meinen Recherchen zu Folge muss dann leider ein wenig Eigenarbeit einfließen. Wenn Du was "besseres" findest um html 1:1 umszusetzen, sag Bescheid.
Es liegt aber irgendwie scheints in der Logik der Sache, da PDF scheinbar mehr oder weniger eben Textfelder auf Seiten positioniert sowie allen möglichen anderen Klumpatsch wie Linien aller Arten und Bilder natürlich (inklusive Links etc.pp., aber das ja "nur" drangepappt und hat mit den Positionierungen ja nischt zu tun).
Dank und Gruß,
Yerf!
Wenn Du was "besseres" findest um html 1:1 umszusetzen, sag Bescheid.
Nachdem mich das Thema auch ein wenig interessiert hab ich mal nach Prince XML gesucht, das Dina verwendet, da es scheinbar eine recht gute Unterstützung für Print-CSS hat. Wenn man dann aber die Lizenzkosten sieht stellt man auch fest, dass das wohl das Mindeste ist, was man erwarten können sollte....
Gruß,
Harlequin
Hellihello
Wenn man dann aber die Lizenzkosten sieht stellt man auch fest, dass das wohl das Mindeste ist, was man erwarten können sollte....
Kaufsoftware - closed source - interessiert mich persönlich in dem Zusammenhang überhaupt nicht (mehr).
Dank und Gruß,