Index

Allgemein

PDF24.org bietet einen kostenlosen Service zur Erstellung von PDF Dateien. Diese PDF PDF API ist ein Interface zu diesem Service.
Die API wurde für artikelbasierte Internetsysteme wie Blogs, Foren und Wiki-Systemen entwickelt, um in diesen Systemen PDF Dateien erstellen zu können. Entwickler von Blogs, Foren und Wiki-Systemen können diese API in ihr Sysrem integrieren, um den Benutzern die Möglichkeit zu geben, sich eine Kopie eines oder mehrerer Artikel als PDF zukommen zu lassen.

Download der API

Die PDF API kann unter dem Link Download PDF API heruntergeladen werden.

Klassenreferenz

Es gibt zwei PHP Klassen, welche für die PDF-Erstellung wichtig sind. Die Klasse PDF24Doc beinhaltet allgemeine Eigenschaften einer PDF (Titel, Seitenformat, ...) und stellt Methoden bereit, diese allgemeinen Eigenschaften zu setzen und abzufragen. Ebenfalls beinhaltet diese Klasse Methoden, um ein oder mehrere Elemente in die PDF einzufügen.
Die Klasse PDF24Element repräsentiert ein Element innerhalb eines PDF24Doc. Ein PDF24Element ist ein Container für Daten wie Titel, Inhalt und Author.

Die folgende Darstellung verdeutlicht diesen Zusammenhang:
PDF24Doc
PDF24Element 1
PDF24Element 2
PDF24Element 3

Klasse PDF24Doc

Parameter-Schlüssel

charset
Der Zeichensatz des Dokuments. Standardwert ist ISO-8859-1. Aktuell unterstützte Zeichensätze sind ISO-8859-1 und UTF-8.
headline
Die Überschrift des Dokuments.
headlineUrl
Die URL, die zusammen mit headline einen Link bildet.
baseUrl
Die baseUrl des Dokuments. Diese URL ist bei der Verwendung von relativen Links in Elementen wichtig, um die relativen Links korrekt auflösen zu können.
filename
Der Dateiname der zu erstellenden PDF Datei z.b. meinePDF.
pageSize
Die Größe einer jeden Seite innerhalb der PDF. Die Seitengröße wird in der Form WIDTHxHEIGHT kodiert, wobei WIDTH die Weite und HEIGHT die Höhe einer Seite in mm angibt. Der Standardwert beinhaltet eine Weite von 210mm und eine Höhe von 297mm, was dem A4 Format entspricht.
emailTo
Speichert eine oder mehrere Email Adressen durch Semikolon getrennt. Diese Email Adressen sind die Empfänger der zu erstellenden PDF.
emailFrom
Dieses Feld ist für den Emailadresse des API-Benutzers vorgesehen. Diese Adresse erscheint als FROM Adresse in gesendeten Emails mit der erstellten PDF.
emailSubject
Diese Variable speichert den Betreff der Email mit der PDF.
emailBody
Dies ist der Inhaltstext der Email mit der PDF. Es wird normaler Text sowie HTML formatierter Text unterstützt.
emailBodyType
In dieser Variable wird der Typ von emailBody vermerkt. Gültige Werte sind text und html.
emailCharset
Dieser Parameter speichert den Zeichensatz der Email. Aktuell unterstützte Zeichensätze sind ISO-8859-1 und UTF-8.

Konstruktoren

PDF24Doc()
Erstellt eine leere Instanz eines PDF-Dokuments. Durch die Verwendung der setXX muss Inhalt in das Dokument eingefügt werden.
PDF24Doc(params)
Erstellt eine Instanz eines Dokuments und initialisiert die Parameter mit den Parametern in params. params ist ein PHP Array mit Schlüssel-Wert-Einträgen. Ein Schlüssel ist hierbei einer der oben aufgeführten Parameter.

Methoden

addElement(element)
Fügt das Element element zum PDF Dokument hinzu. element kann ein PDF24Element oder direct ein PHP Array mit Schlüssel-Wert-Einträgen von PDF24Element sein.
setParam(paramKey, paramValue)
Setzt ein Parameter mit dem Schlüssel paramKey und dem Wert paramValue.
setParams(params)
Setzt die Parameter in params im Dokument. Alle alten Parameter gehen verloren.
addParams(params)
Fügt die Parameter in params dem Dokument hinzu. Vorher eingefügte Parameter können überschrieben werden. params ist ein Array mit Schlüssel-Wert-Einträgen.
getParam(paramKey)
Gibt den Wert eines Parameters mit dem Schlüssel paramKey zurück.
setCharset(charset)
Setzt den Zeichensatz charset im Dokument.
setHeadline(headline)
Setzt die Überschrift headline im Dokument.
setHeadlineUrl(headlineUrl)
Setzt die URL der Überschrift zu headlineUrl.
setBaseUrl(baseUrl)
Setzt die Basisadresse des Dokuments zur Auflösung von relativen Links zu baseUrl.
setFilename(filename)
Setzt den Dateiname der PDF zu filename.
setPageSize(width, height)
Speichert die Seitengröße width, height unter dem Parameter pageSize.
setEmailTo(emailAddr)
Speichert die Emailadresse emailAddr als Empfänger der PDF.
addEmailTo(emailAddr)
Fügt die Emailadresse emailAddr der Liste der Empfänger hinzu.
setEmailFrom(emailAddr)
Setzt den Parameter emailFrom im Dokument.
setEmailSubject(subject)
Setzt den Betreff der Email mit der erstellten PDF zu emailSubject.
setEmailBodyType(bodyType)
Setzt den Content-Type des Email-Body zu emailBodyType. Gültige Werte sind text oder html.
setEmailBody(body)
Setzt den Email Body der Email mit der erstellten PDF Datei.
setEmailCharset(charset)
Setzt den Zeichensatz der Email mit der erstellten PDF.
createAndSend()
Diese Methode packt alle gegebenen Parameter in eine Serviceanfrage zusammen und übermittelt die Anfrage an den PDF24 Service. Der PDF24 Service prüft die Anfrage und gibt eine Antwort zurück. Die Antwort wird ausgewertet. War die Anfrage erfolgreich, gibt diese Methode true zurück. Ist ein Fehler aufgetreten, liefert diese Methode den Wert false.
getResponse()
Liefert das Ergebnis der Anfrage als PDF24Response.

Klasse PDF24Element

Parameter-Schlüssel

title
Der Titel des Elements.
url
Die URL des Elements. Titel und URL bilden einen Link.
author
Der Author von Inhalt des Elements.
dateTime
Ein Zeitstempel, ein Zeit und Datumswert oder nur ein Zeit oder ein Datumswert. Jede Kombination ist erlaubt.
body
Der Inhalt des Elements. Kann normaler sowie HTML formatiertet Text sein.

Konstruktoren

PDF24Element()
Erstellt ein leeres Element. Über die setXX Methoden können dem Element Parameter angefügt werden.
PDF24Element(params)
Erstellt ein Element und initialisiert es mit den Parametern in params. params ist ein PHP Array mit Schlüssel-Wert-Einträgen. Ein Schlüssel ist einer der oben aufgeführten Parameter-Schlüssel.

Methoden

setTitle(title)
Setzt den Titel Parameter des Elements zu title.
setUrl(url)
Setzt den url Parameter des Elements. URL und Titel bilden einen Link in der PDF.
setAuthor(author)
Setzt den author Parameter des Elements.
setDateTime(dateTime)
Setzt den dateTime Parameter im Element.
setBody(body)
Setzt den Inhalt des Elements zu body. body kann normaler als auch HTML formatierter Text sein.
setParam(key,value)
Setzt den Wert eines Parameters mit dem Schlüssel key zu value.
setParams(params)
Setzt die Parameter in params. Alle vorher eingefügten Parameter gehen verloren. params ist ein Array mit Schlüssel-Wert Einträgen.
addParams(params)
Fügt die Parameter in params dem Element hinzu. params ist ein Array mit Schlüssel-Wert Einträgen.
getParam(key)
Liefert den Wert eines Parameters mit dem Schlüssel key.

Klasse PDF24Response

Parameter

header
Der Header der Antwort einer Service Anfrage.
body
Der Body der Antwort einer Service Anfrage

Methoden

getHeader()
Liefert den Header der Antwort einer Serviceanfrage.
getBody()
Liefert den Body der Antwort einer Serviceanfrage
__toString()
Liefert den Header und den Body zusammen als String zurück.

Codebeispiele

Binde zuerst die PHP PDF API ein:

include(api.php);

Beispiel 1

/*
* Erstelle ein PDF Dokument und setze Parameter
*/
$doc = new PDF24Doc();
$doc->setCharset('ISO-8859-1');
$doc->setHeadline('Dies ist die Überschrift der PDF');
$doc->setHeadlineUrl('http://www.pdf24.org');
$doc->setBaseUrl('http://www.pdf24.org');
$doc->setFilename('test');
$doc->setPageSize(210, 297);

$doc->setEmailTo('stefanz@pdf24.org');
$doc->setEmailFrom('stefanz@pdf24.org');
$doc->setEmailSubject('Hier ist deine erstellte PDF Datei');
$doc->setEmailBody('Die erstellte PDF Datei befindet sich im Anhang dieser Email!');
$doc->setEmailBodyType('text');
$doc->setEmailCharset('ISO-8859-1');

/*
* Einen oder mehrere Element erstellen
*/
$element = new PDF24Element();
$element->setTitle('Dies ist ein Titel');
$element->setUrl('http://www.pdf24.org');
$element->setAuthor('Stefan Ziegler');
$element->setDateTime('2010-04-15 8:00');
$element->setBody('Das ist der Text des Beitrags');

/*
* Element dem Dokument zufügen
*/
$doc->addElement($element);

/*
* Die PDF erstellen und im Fehlerfall den Status ausgeben
*/
if(!$doc->createAndSend()) {
	echo $doc->getResponse();
}

Beispiel 2

/*
* Dokument mit Parameter erstellen
*/
$doc = new PDF24Doc(array(
	'charset' => 'ISO-8859-1',
	'headline' => 'Das ist eine Headline',
	'headlineUrl' => 'http://www.pdf24.org',
	'baseUrl' => 'http://www.pdf24.org',
	'filename' => 'test',
	'pageSize' => '210x297',
	'emailTo' => 'stefanz@pdf24.org',
	'emailFrom' => 'stefanz@pdf24.org',
	'emailSubject' => 'Hier ist deine erstellte PDF Datei',
	'emailBody' => 'Die erstellte PDF Datei befindet sich im Anhang dieser Email!',
	'emailBodyType' => 'text'
));

/*
* Ein Element direkt der PDF zufügen, ohne PDF24Element zu benutzen.
*/
$doc->addElement(array(
	'title' => 'Das ist ein Titel',
	'url' => 'http://www.pdf24.org',
	'author' => 'Stefan Ziegler',
	'dateTime' => '2010-04-15 8:00',
	'body' => 'Das ist der Text des Beitrags'
));

/*
* Die PDF erstellen und im Fehlerfall den Status ausgeben
*/
if(!$doc->createAndSend()) {
	echo $doc->getResponse();
}

Test der PDF API

Es gibt eine Javascript Variante zu dieser API, die den selben PDF24 Service verwendet. Zu dieser Javascript-Version gibt es einen Test-Generator. Zum Javascript PDF Generator