Entwickler.PDFExport History

Hide minor edits - Show changes to markup

 
 
April 01, 2011, at 11:54 PM by tthelen -
Added lines 1-2:

(:redirect 'http://docs.studip.de/develop/Entwickler/PDFExport':)

 
 
March 22, 2011, at 03:17 PM by Krassmus -
Changed line 7 from:

$doc->addContent('Hallo, wir benutzen :studip:-Formatierung.');

to:

$doc->addContent('Hallo, wir benutzen :studip: -Formatierung.');

Changed line 16 from:

$doc->addContent('Hallo, wir benutzen :studip:-Formatierung.');

to:

$doc->addContent('Hallo, wir benutzen :studip: -Formatierung.');

 
 
March 22, 2011, at 02:55 PM by Krassmus -
Added lines 1-21:

PDF-Export

In lib/classes/exportdocuments/ExportPDF.class.php liegt eine Klasse bereit, mit der es einfach ist, aus in Stud.IP gängigem Text, der eventuell auch mit Stud.IP-Formatierung versehen ist, in ein PDF zu exportieren. Im Klartext heißt das: man hat einen Text wie den Inhalt eines Wikis und will daraus eine PDF bekommen, in der die Tabellen und Grafiken korrekt dartgestellt werden. Der Code dafür sieht dann in etwa so aus:

$doc = new ExportPDF();
$doc->addPage();
$doc->addContent('Hallo, %%wir%% benutzen :studip:-Formatierung.');
$doc->dispatch("test_pdf");

Zuerst muss man ein Dokument-Objekt initialisieren. In unserem Fall ist das $doc. Danach fängt man eine neue Seite an mit $doc->addPage() und befüllt diese Seite mit Inhalten, die, wie schon erwähnt, mit Stud.IP-Formatierung versehen sind. In der letzten Zeile wird dieses Dokument an den Aufrufer der Seite ausgegeben. Dadurch allerdings wird jede andere Ausgabe natürlich ignoriert, die vorher oder nachher geschrieben worden ist. Sobald dispatch aufgerufen wird, wird nur noch das PDF übermittelt (mitsamt MIME-Type). Der Parameter von disptach ist überdies der Dateiname ohne das ".pdf", was automatisch angefügt wird.

Es gibt noch eine zweite Art der Auslieferung des PDF: und zwar kann man das PDF im Dateisystem von Stud.IP abspeichern und als Datei in die Datenbanktabelle dokumente einfügen. Dazu schreibt man

$doc = new ExportPDF();
$doc->addPage();
$doc->addContent('Hallo, %%wir%% benutzen :studip:-Formatierung.');
$studip_dokument = $doc->save("test_pdf", $folder_id);

wobei nur die letzte Zeile ausgewechselt wurde. save speichert das Dokument und liefert ein Objekt vom Typ StudipDocument zurück. Man kann mittels dieses Objekte mit $studip_dokument->getId() die md5-ID des Dokumentes bekommen. Gibt man zudem eine folder_id beim Aufruf von save an, so wird die Datei auch direkt in einen Dateibereich eingefügt und man muss sich um nichts mehr kümmern.

Die Klasse ExportPDF erbt seine schöne Einfachheit von der Klasse TCPDF, die noch über einige andere schicke Dinge verfügt. Das bedeutet, dass $doc auch alle Methoden von TCPDF benutzen kann. Sie dessen Dokumentation.

 

 

Source: Basis-Wiki-Hilfe | Last change: April 01, 2011, at 11:54 PM, tthelen | Local view: Basis-Hilfe