In diesem Tutorial möchte ich ihnen erklären, wie sie mit PHP ein PDF-Dokument erstellen. Es gibt verschiedene Klassen in PHP, womit man ein PDF-Dokument erstellen kann. Am meisten verbreitet ist die Klasse von FPDF, diese kann man direkt auf der Homepage kostenlos herunterladen. In unserem Tutorial verwenden wir die Klasse von FPDF.
Als Erstes benötigen wir die Klasse, diese könnt Ihr in gezippter Form hier herunterladen. Die ZIP Datei entpackt ihr bitte im gleichen Verzeichnis, wo das Script liegt. Danach benötigen wir eine Eingabemaske, wo man die Daten eingeben kann, die später von dem PHP Script zu ein PDF-Dokument umgewandelt werden. In der Eingabemaske benötigen wir die Daten: Absender, Empfänger, Betreffzeile, Anrede, Text und Grußformel.
So würde unter anderem unser Formular aussehen, was wir erstellen möchten.
HTML Code für das Formular:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<title> PDF-Generator </title>
</head>
<body>
<form
action="pdf.php" method="post" target="_blank">
<fieldset
style="width:390px; border-color:#000;
border-width:1px;">
<legend><span> PDF-Generator </span></legend>
<br>
<table
border="0" width="300">
<tr>
<td
valign="top"> Absender
</td>
<td><textarea name="absender" cols="25" rows="4" style="width:250px;">
</textarea></td>
</tr>
<tr>
<td
valign="top"> Empfä
nger
</td>
<td><textarea name="empfaeger" cols="25" rows="4" style="width:250px;">
</textarea></td>
</tr>
<tr>
<td
valign="top"> Betreffzeile
</td>
<td><input name="betreff" value="" type="text" style="width:250px;"></td>
</tr>
<tr>
<td
valign="top"> Anrede
</td>
<td><input name="anrede" value="" type="text" style="width:250px;"></td>
</tr>
<tr>
<td
valign="top"> Text
</td>
<td><textarea name="text" cols="25" rows="7" style="width:250px;">
</textarea></td>
</tr>
<tr>
<td
valign="top"> Gruß
formel
</td>
<td><input name="gruss" value="" type="text" style="width:250px;"></td>
</tr>
</table>
<input
name="senden" type="submit" value="PDF erstellen"><br>
<br>
</fieldset>
</form>
</body>
</html>
Das HTML Formular muss man einfach in einen Texteditor kopieren und als index.html im gleichen Verzeichnis speichern, wo die Datei fpdf.php liegt. Als Nächstes benötigen wir unser PHP Script, was automatisch die Daten von unserem HTML Formular entgegennimmt und in ein PDF-Dokument umwandelt. Nachfolgend finden sie das PHP Script, dies müssen sie als pdf.php im gleichen Ordner speichern.
Der Code für das PHP-Script:
<?php
/**
* Die Variable $_POST["absender"] überprüfen, ob
dieser einen Wert zugewiesen ist.
*/
if (!isset($_POST["absender"])) $_POST["absender"]
= '';
/**
* Wen die Variable $_POST["absender"] leer ist,
geben wir eine Fehlermeldung aus und brechen
das Script mit exit ab.
*/
if ($_POST["absender"] == '') {
echo 'Bitte geben Sie einen Absender ein!';
exit;
}
/**
* Die Variable $_POST["empfaeger"] überprüfen, ob
dieser einen Wert zugewiesen ist.
*/
if (!isset($_POST["empfaeger"]))
$_POST["empfaeger"] = '';
/**
* Wen die Variable $_POST["empfaeger"] leer ist,
geben wir eine Fehlermeldung aus und brechen
das Script mit exit ab.
*/
if ($_POST["empfaeger"] == '') {
echo 'Bitte geben Sie ein Empfänger ein!';
exit;
}
/**
* Die Variable $_POST["betreff"] überprüfen, ob
dieser einen Wert zugewiesen ist.
*/
if (!isset($_POST["betreff"])) $_POST["betreff"] =
'';
/**
* Wen die Variable $_POST["betreff"] leer ist,
geben wir eine Fehlermeldung aus und brechen
das Script mit exit ab.
*/
if ($_POST["betreff"] == '') {
echo 'Bitte geben Sie eine Betreffzeile ein!';
exit;
}
/**
* Die Variable $_POST["anrede"] überprüfen, ob
dieser einen Wert zugewiesen ist.
*/
if (!isset($_POST["anrede"])) $_POST["anrede"] =
'';
/**
* Wen die Variable $_POST["anrede"] leer ist,
geben wir eine Fehlermeldung aus und brechen
das Script mit exit ab.
*/
if ($_POST["anrede"] == '') {
echo 'Bitte geben Sie eine Anrede ein!';
exit;
}
/**
* Die Variable $_POST["text"] überprüfen, ob
dieser einen Wert zugewiesen ist.
*/
if (!isset($_POST["text"])) $_POST["text"] = '';
/**
* Wen die Variable $_POST["text"] leer ist, geben
wir eine Fehlermeldung aus und brechen das
Script mit exit ab.
*/
if ($_POST["text"] == '') {
echo 'Bitte geben Sie einen Text ein!';
exit;
}
/**
* Die Variable $_POST["gruss"] überprüfen, ob
dieser einen Wert zugewiesen ist.
*/
if (!isset($_POST["gruss"])) $_POST["gruss"] = '';
/**
* Wen die Variable $_POST["gruss"] leer ist, geben
wir eine Fehlermeldung aus und brechen das
Script mit exit ab.
*/
if ($_POST["anrede"] == '') {
echo 'Bitte geben Sie eine Grußformel ein!';
exit;
}
/**
* Festlegen des Verzeichnisses, wo die
Schriftarten gespeichert sind.
*/
define('FPDF_FONTPATH', 'font/');
/**
* Laden der FPDF Class
*/
include('fpdf.php');
/**
* Neues Objekt erstellen
*/
$pdf = new FPDF();
/**
* Beginnen mit den erstellen von PDF Dokument.
*/
$pdf->Open();
/**
* Eine Seite in PDF Dokument hinzufügen.
*/
$pdf->AddPage();
/**
* Das Logo einbinden, das Logo muss die Maße
130x30 haben, ansonsten müssen die Maße
entsprechend der Bildgröße angepasst werden.
*/
$pdf->Image('logo.jpg', '130', '30', '0', '0');
$pdf->Ln(18);
/**
* Den Absender mit der Schriftart "Arial"
schreiben.
*/
$pdf->SetFont('Arial', 'I', 12);
$pdf->Write(6, $_POST["absender"]);
$pdf->Ln(15);
/**
* Den Empfänger mit der Schriftart "Arial"
schreiben.
*/
$pdf->SetFont('Arial', 'B', 12);
$pdf->Write(6, $_POST["empfaeger"]);
$pdf->Ln(15);
/**
* Den Betreff mit der Schriftart "Arial" schreiben.
*/
$pdf->SetFont('Arial', 'I', 14);
$pdf->Write(6, $_POST["betreff"]);
$pdf->Ln(15);
/**
* Die Anrede mit der Schriftart "Arial" schreiben.
*/
$pdf->SetFont('Arial', '', 14);
$pdf->Write(6, $_POST["anrede"]);
$pdf->Ln(15);
/**
* Den Text mit der Schriftart "Arial" schreiben.
*/
$pdf->SetFont('Arial', '', 14);
$pdf->Write(6, $_POST["text"]);
$pdf->Ln(15);
/**
* Die Grußformel mit der Schriftart "Arial"
schreiben.
*/
$pdf->SetFont('Arial', 'B', 14);
$pdf->Write(6, $_POST["gruss"]);
$pdf->Ln(15);
/**
* Das PDF Dokument ausgeben.
*/
$pdf->Output("dokument.pdf", "D");
?>
Erklärung:
In diesem Script werden die Werte aus dem POST-Array überprüft. Es wird zunächst überprüft, ob die Variablen überhaupt einen Wert zugewiesen bekommen haben. Wenn das nicht der Fall ist, wird eine Fehlermeldung ausgegeben und das Script mit dem Befehl exit abgebrochen. Ist jedoch ein Wert vorhanden, wird die FPDF-Class geladen und ein neues Objekt erstellt. Anschließend wird mit dem Befehl AddPage() eine Seite hinzugefügt und mit dem Befehl Image() ein Logo eingebunden. Es folgen die Schreibbefehle SetFont(), Write() und Ln(). Mit SetFont() wird die Schriftart festgelegt, mit Write() der jeweilige Text geschrieben und mit Ln() eine Zeile nach unten gesprungen. Zuletzt wird das erstellte PDF-Dokument mit dem Output-Befehl ausgegeben.
Wenn die beiden Dateien in einem Ordner gespeichert sind, muss der gesamte Ordner auf den Webspace übertragen werden. Nach der Eingabe des Formulars und dem Absenden des Formulars wird das PDF-Dokument in einem neuen Fenster angezeigt. Es ist von Bedeutung, dass man zuvor den Eintrag für das Logo in das PHP Script einfügt. Wenn kein Logo mit auf den Server übertragen wird, kann das PDF-Dokument mit dem PHP Script nicht ordnungsgemäß generiert werden.
Ihr könnt das gesamte Script, was in diesen PHP Tutorial behandelt wurde, hier herunterladen. Bei Fragen zu diesen PHP Tutorial, möchte ich euch bitten, direkt im Forum eure Frage zu stellen. In unserer Tutorial-Datenbank haben wir bereits nachfolgende Funktionen behandelt, die auch entsprechend in diesem Tutorial vorkommen. Wenn ihr diese Tutorials noch nicht gelesen habt, könnt ihr dies an der Stelle nachholen.
Funktionen, die in diesem Tutorial verwendet wurden:
echo – Text ausgeben mit PHP.
isset() – Eine Variable prüfen, ob ein Inhalt enthalten ist.
If-Anweisung – Erklärung wie man die If – Anweisung verwenden kann in PHP.
include() – Hier wird erklärt, wie man den PHP Befehl include() benutzen kann.
$_POST[] – Erklärung, wie man Daten an ein Formular übergibt.