Für PHP gibt es mittlerweile einige Klassen zur PDF Erstellung 2 kostenlose und frei verwendbare sind zum Beispiel die FPDF, oder die Zend_pdf Klassen aus dem Zend Framework. Mit beiden Klassen lassen sich relativ einfach PDFs erstellen. Zend_pdf bietet standardmässig auch schon die Möglichkeit neue Seiten zu einem vorhandenen PDF Dokument hinzu zufügen oder bestehende Seiten zu erweitern. Mit FPDF ist dies mit der Zusatz Klasse FPDI ebenfalls möglich.

Hier jeweils einmal für Zend_pdf und FPDF ein kleines Beispiel:

Zend_pdf:

PHP:
  1. <?php
  2. // Das Zend Frameworkverzeichnis zum php include Pfad hinzufügen
  3. ini_set('include_path', '../library/');
  4. // Die Zend_pdf Klasse includen
  5. include_once('../library/Zend/Pdf.php');
  6. // PDF Objekt erstellen
  7. $pdf = new Zend_Pdf();
  8. // Formatierungseinstellungen
  9. $style = new Zend_Pdf_Style();
  10. $style->setFont(
  11. Zend_Pdf_Font::fontWithName(
  12. Zend_Pdf_Font::FONT_HELVETICA_BOLD
  13. ), 16);
  14. // Neue Seite im PDF anlegen
  15. $pdf->pages[] = ($page1 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4));
  16. // Formatierungseinstellungen setzen
  17. $page1->setStyle($style);
  18. // Text schreiben und Zeichensatz angeben
  19. $page1->drawText('Hallo Welt!', 36, 720,'utf-8');
  20. // Unser riesen PDF Dokument als test.pdf speichern
  21. $pdf->save(’test.pdf’);
  22. // PDF Datei laden (test.pdf) verändern und speichern
  23. $pdf2 = Zend_Pdf::load(’test.pdf’);
  24. // Wieder Formatierungseinstellungen setzen
  25. $pdf2->pages[0]->setStyle($style);
  26. $pdf2->pages[0]->drawText('2te Zeile', 36, 520);
  27. $pdf2->pages[0]->drawText('3te Zeile', 36, 480);
  28. $pdf2->pages[0]->drawText('4te Zeile', 36, 440);
  29. $pdf2->save('test2.pdf'); // unser Erweitertes PDF Dokument als test2.pdf speichern
  30. ?>

FPDF:

PHP:
  1. <?php
  2. // Pfad zum Font Ordner definieren
  3. define(’FPDF_FONTPATH’,’./FPDF/font/’);
  4. include_once(’./FPDF/fpdf.php’);
  5. include_once(’./FPDF/fpdi.php’);
  6. $pdf=new FPDF();
  7. $pdf->AddPage()// neue Seite erstellen
  8. // Schriftart, Größe und Stil festlegen
  9. $pdf->SetFont('Arial','B',16);
  10. // Hallo Welt in PDF schreiben
  11. $pdf->Cell(40,10,’Hallo Welt!’);
  12. $pdf->Output(’test1.pdf’);
  13. $pdf->Close();
  14. $pdf = new fpdi();
  15. $pagecount = $pdf->setSourceFile('test1.pdf');
  16. $tplidx = $pdf->ImportPage(1);
  17. $pdf->addPage();
  18. $pdf->useTemplate($tplidx);
  19. $pdf->SetFont('Arial','B',32);
  20. $pdf->Cell(40,40,’Hallo Welt2!’);
  21. $pdf->Output('test2.pdf');
  22. $pdf->closeParsers();
  23. ?>

Mehr Infos: