Your SlideShare is downloading. ×
0
... und das kann
man dann als
PDF runterladen
$ who am i
Andreas Heigl
PHP & PDF seit ~15 Jahren
@heiglandreas
andreas@heigl.org
... und das kann man dann
als PDF runterladen
Was ist PDF
Was ist PDF nicht?
Warum PDF?
Auswahl von Bibliotheken
Vergleich...
Was ist PDF
Was ist PDF

Seitenbeschreibungs-Definition
PDF - 82 qm / 6,5kg Papier (1310 Seiten)
HTML - 24qm / 2kg Papier (389 Seiten)
Was ist PDF

Austauschformat
Containerformat
WYSIWYG
Was ist PDF nicht
Was ist PDF nicht

Unveränderlich
Immer gleich
Sicher
Warum PDF?
Warum?
Ausdrucken
Mitnehmen
Aufbewahren
Unveränderlich
Warum: Ausdrucken

@print{}
Highend-Druckdaten
Warum:Mitnehmen

@print{}
Speichern als PDF
Speichern als Webseite mit Bildern
Warum:Aufbewahren

Ah!
PDF-Dateien
PDF-Dateien mit Archiv-Informationen
Warum:
Unveränderlich
Vergesst es!
Jedes PDF lässt sich bearbeiten und verändern!
Signierte PDF-Dateien
PDF und PHP
Bibliotheken

Konvertierender Ansatz
Programatischer Ansatz
Bibliotheken
Konvertierend
DOMPDF
HTML2PDF
pdflatex
PHPpdf
Document-Komponente der zetaComponents
DOMPDF

Nutzt intern PDFlib oder R&OS/CPDF
Nutzung: dompdf http://example.org
HTML2PDF

Nutzt intern TCPDF
Letzte Aktualisierung 2011
Nutzung: html2pdf http://example.org
pdflatex
Nutzt intern LaTeX
LaTeX-Dokument muss programmatisch
erstellt werden
Nutzung: pdflatex meinHtmlDocument.tex
Wandel...
PHPpdf

Konvertiert XML > PDF
Basiert auf Zend_Pdf
ZetaComponents
Verarbeitet diverse Eingangsformate (XHTML,
ReST, DocBook, odt, Confluence, Mediawiki)
Nutzt intern TCPDF od...
//	
  Convert	
  some	
  input	
  RSTfile	
  to	
  docbook
$document	
  =	
  new	
  ezcDocumentRst();
$document-­‐>loadFil...
Bibliotheken
Programmatisch
FPDF/FPDI
PDF-PHP/CPDF
Zend_Pdf
pdflatex
PDFlib lite
TCPDF
PDFlib
FPDF

PHP 4
Nicht mehr weitergeführt
FPDI

Zum Import von PDF-Dateien
PHP-PDF/CPDF

Kommerzielle Bibliothek
Free for Non-Commercial use
Zend_Pdf
Wird aktuell nicht weiterentwickelt
Rewrite steht z.Zt. nicht an
Basiert auf PDF-1.4
Einziges Projekt, das PDFs b...
pdflatex

Kein „in-memory“ erzeugen einer PDF-Datei
Lässt sich wunderbar auslagern
LaTeX-Kentnisse
libHaru

Freie PDF-Bibliothek
Länger keine Updates
C-Bibliothek auch für andere Sprachen
pdflib lite
Stand von PDFlib 7
Nur für Nicht-Kommerzielle OpenSourceProjekte
Kein Support
TCPDF
Free & OpenSource
Dokumentation lässt zu wünschen übrig.
Nicola Asuni steht hinter TCPDF
Import von PDF-Dateien nur ...
PDFlib
teuer, ClosedSource
Dokumentation
Thomas Merz stehen hinter PDFlib
C-Bibliothek auch für andere Sprachen nutzbar
Ne...
Vergleich
Vergleich
TCPDF
Kosten
Lizenz
PDF erstellen
PDF bearbeiten
PDF importieren
verschlüsseln
Geschwindigkeit
Standards
Schrift...
Code-Beispiele
Zu finden unter
https://github.com/heiglandreas/pdfexamples
ressources
http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/
pdfs/pdf_reference_1-7.pdf
http://www.w3.org/TR/REC-h...
Fragen?
Danke!
Upcoming SlideShare
Loading in...5
×

... und das kann man dann als PDF runterladen

1,300

Published on

Compare different technologies to create a PDF-file programatically

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,300
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "... und das kann man dann als PDF runterladen"

  1. 1. ... und das kann man dann als PDF runterladen
  2. 2. $ who am i Andreas Heigl PHP & PDF seit ~15 Jahren @heiglandreas andreas@heigl.org
  3. 3. ... und das kann man dann als PDF runterladen Was ist PDF Was ist PDF nicht? Warum PDF? Auswahl von Bibliotheken Vergleich Code-Beispiele
  4. 4. Was ist PDF
  5. 5. Was ist PDF Seitenbeschreibungs-Definition PDF - 82 qm / 6,5kg Papier (1310 Seiten) HTML - 24qm / 2kg Papier (389 Seiten)
  6. 6. Was ist PDF Austauschformat Containerformat WYSIWYG
  7. 7. Was ist PDF nicht
  8. 8. Was ist PDF nicht Unveränderlich Immer gleich Sicher
  9. 9. Warum PDF?
  10. 10. Warum? Ausdrucken Mitnehmen Aufbewahren Unveränderlich
  11. 11. Warum: Ausdrucken @print{} Highend-Druckdaten
  12. 12. Warum:Mitnehmen @print{} Speichern als PDF Speichern als Webseite mit Bildern
  13. 13. Warum:Aufbewahren Ah! PDF-Dateien PDF-Dateien mit Archiv-Informationen
  14. 14. Warum: Unveränderlich Vergesst es! Jedes PDF lässt sich bearbeiten und verändern! Signierte PDF-Dateien
  15. 15. PDF und PHP
  16. 16. Bibliotheken Konvertierender Ansatz Programatischer Ansatz
  17. 17. Bibliotheken Konvertierend DOMPDF HTML2PDF pdflatex PHPpdf Document-Komponente der zetaComponents
  18. 18. DOMPDF Nutzt intern PDFlib oder R&OS/CPDF Nutzung: dompdf http://example.org
  19. 19. HTML2PDF Nutzt intern TCPDF Letzte Aktualisierung 2011 Nutzung: html2pdf http://example.org
  20. 20. pdflatex Nutzt intern LaTeX LaTeX-Dokument muss programmatisch erstellt werden Nutzung: pdflatex meinHtmlDocument.tex Wandelt dann in meinHtmlDocument.pdf
  21. 21. PHPpdf Konvertiert XML > PDF Basiert auf Zend_Pdf
  22. 22. ZetaComponents Verarbeitet diverse Eingangsformate (XHTML, ReST, DocBook, odt, Confluence, Mediawiki) Nutzt intern TCPDF oder Haru Eigene Konverter möglich
  23. 23. //  Convert  some  input  RSTfile  to  docbook $document  =  new  ezcDocumentRst(); $document-­‐>loadFile(  './article/introduction.txt'  ); //  Load  the  docbook  document  and  create  a  PDF  from  it $pdf  =  new  ezcDocumentPdf(); $pdf-­‐>options-­‐>errorReporting  =  E_PARSE  |  E_ERROR  |  E_WARNING; //  Load  a  custom  style  sheet $pdf-­‐>loadStyles(  'custom.css'  ); //  Add  a  customized  footer $pdf-­‐>registerPdfPart(  new  ezcDocumentPdfFooterPdfPart(        new  ezcDocumentPdfFooterOptions(  array(                  'showDocumentTitle'    =>  false,                'showDocumentAuthor'  =>  false,                'height'                          =>  '10mm',        )  ) )  ); //  Add  a  customized  header $pdf-­‐>registerPdfPart(  new  ezcDocumentPdfHeaderPdfPart(        new  ezcDocumentPdfFooterOptions(  array(                  'showPageNumber'          =>  false,                'height'                          =>  '10mm',        )  ) )  ); $pdf-­‐>createFromDocbook(  $document-­‐>getAsDocbook()  ); file_put_contents(  __FILE__  .  '.pdf',  $pdf  );
  24. 24. Bibliotheken Programmatisch FPDF/FPDI PDF-PHP/CPDF Zend_Pdf pdflatex PDFlib lite TCPDF PDFlib
  25. 25. FPDF PHP 4 Nicht mehr weitergeführt
  26. 26. FPDI Zum Import von PDF-Dateien
  27. 27. PHP-PDF/CPDF Kommerzielle Bibliothek Free for Non-Commercial use
  28. 28. Zend_Pdf Wird aktuell nicht weiterentwickelt Rewrite steht z.Zt. nicht an Basiert auf PDF-1.4 Einziges Projekt, das PDFs bearbeiten kann!! Sauberer OO-PHP-Code
  29. 29. pdflatex Kein „in-memory“ erzeugen einer PDF-Datei Lässt sich wunderbar auslagern LaTeX-Kentnisse
  30. 30. libHaru Freie PDF-Bibliothek Länger keine Updates C-Bibliothek auch für andere Sprachen
  31. 31. pdflib lite Stand von PDFlib 7 Nur für Nicht-Kommerzielle OpenSourceProjekte Kein Support
  32. 32. TCPDF Free & OpenSource Dokumentation lässt zu wünschen übrig. Nicola Asuni steht hinter TCPDF Import von PDF-Dateien nur über FPDI Signierte PDFs sind einfach zu erstellen Funktionsumfang ausreichend Code smells....
  33. 33. PDFlib teuer, ClosedSource Dokumentation Thomas Merz stehen hinter PDFlib C-Bibliothek auch für andere Sprachen nutzbar Neueste Features aus PDF
  34. 34. Vergleich
  35. 35. Vergleich TCPDF Kosten Lizenz PDF erstellen PDF bearbeiten PDF importieren verschlüsseln Geschwindigkeit Standards Schrifttypen Sprache PDFlib 0,- ab 800,- € GPL3 Commercial ✔ ✔ ✘ ✘ ✔ (mit FPDF) ✔ (Je nach Lizenz) ✔ ✔ (mit Zusatzprodukt) 10 PDF in > 10 s 50 PDF in 4,08s PDF/A-1b PDF/A1-3, PDF/X1-4, PDF/VT, PDF/UA TrueType, OpenType(TTF), Type1, CID TrueType, OpenType, Type1, CID PHP C
  36. 36. Code-Beispiele Zu finden unter https://github.com/heiglandreas/pdfexamples
  37. 37. ressources http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/ pdfs/pdf_reference_1-7.pdf http://www.w3.org/TR/REC-html40/ http://www.pdfx-ready.ch/index.php?show=496 https://github.com/dompdf/dompdf http://html2pdf.fr/de/default https://de.wikipedia.org/wiki/PdfTeX https://github.com/psliwa/PHPPdf https://github.com/zetacomponents/Document http://www.fpdf.org https://github.com/lsolesen/fpdi https://github.com/johnwhitington/cpdf-source http://framework.zend.com/manual/1.12/de/zend.pdf.usage.html http://libharu.org http://pdflib.com http://tcpdf.org
  38. 38. Fragen?
  39. 39. Danke!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×