Dynamische Webseiten mit PHP

PDFs erzeugen

Beispielcode zu erstellen eines PDF-Dokuments in PHP

<?

# Erzeugen einer neuen PDF-Datenstruktur
$pdf = pdf_new();

# Anlegen eines neuen PDF-Dokuments im Arbeitsspeicher
pdf_open_file($pdf,'');
# Mit pdf_open_file($pdf,"Dateiname.pdf"); kann man das Dokument
# auch als Datei schreiben.

# Setzen der Metadaten
pdf_set_info($pdf, 'Creator', 'pdf.php');
pdf_set_info($pdf, 'Author', 'Siegert');
pdf_set_info($pdf, 'Title', 'Test PDF-Dokument');

# Eine seite beginnt immer mit pdf_begin_page und endet mit pdf_end_page
# Bei pdf_begin_page wird die Seitenfröße in Pixeln angegeben
# 595*842 ist DIN A4
pdf_begin_page($pdf, 595, 842);

############## INHALT #################################################

## TEXT
# festlegen des Schriftfonts
$font = pdf_findfont($pdf,"Times-Roman","host",0);

# Font als aktuellen Font setzen mit der Schriftgröße 48 Punkt
pdf_setfont($pdf,$font,48);

# Text anzeigen an Position x=180, y=600
# Der 0-Punkt des Koordinatenkreuzes liegt links unten!
$text = "Hallo Welt!";
pdf_show_xy($pdf, $text, 180,600);


## BILD
# Ein Bild laden (muss auf der Platte liegen)
$im = pdf_load_image($pdf,"gif","doklogo.gif","");

# Bild platzieren an Position 250/700 um 50% verkleinert (0.5)
pdf_place_image($pdf,$im, 250,700,0.5);

# Bild schliessen
pdf_close_image($pdf,$im);


## GRAFIK
# Linienbreite setzen
pdf_setlinewidth($pdf, 1);

# Virtuellen Zeichenstift an eine Position setzen
pdf_moveto($pdf, 40,570);

# Linie Zeichnen von der aktuellen Position zu einer neuen Position
pdf_lineto($pdf, 555, 570);
pdf_lineto($pdf, 298, 802);
pdf_lineto($pdf, 40,570);

# Linie Darstellen
pdf_stroke($pdf);


#######################################################################

# Beenden einer Seite
pdf_end_page($pdf);

# Abschliessen des PFD-Dokuments
pdf_close($pdf);
		
# PDF Dokument als Datenstrom in eine Variable schreiben und…
$buf = pdf_get_buffer($pdf);

# HTTP-Header setzen, damit der Browser das Dokument nicht als HTML
# sodern als PDF interpretiert
$len = strlen($buf);
header("Content-type: application/pdf");
header("Content-Length: ".$len);

# … das Dokument an den Browser senden
print $buf;

# Datenstruktur aus dem Arbeitsspeicher löschen
pdf_delete($pdf); 

?>