PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


84 Formate nach PDF konvertieren mit 7-PDF

with 5 comments

Vor kurzem bin ich von Thorsten Hodes auf sein Projekt aufmerksam gemacht worden und er fragte, ob das vielleicht von Interesse ist und ich es hier mal vorstellen möchte. Natürlich möchte ich!

Sein Projekt heißt 7-PDF und ist ein Service bzw. Server, mit dessen Hilfe man nahezu jedes bekannte Bild- und Textformat (aktuell werden 84 Formate unterstützt) nach PDF konvertieren kann. Das ist natürlich besonders interessant für Dateien, die bereits vorliegen und zusätzlich noch als PDF zur Verfügung stehen sollen, als auch zur Erstellung neuer PDFs. Häufig ist es einfacher, einen Text schnell via HTML zusammenzustellen, zu formatieren und dieses HTML dann in ein PDF-Dokument zu konvertieren, als z.B. mit Hilfe von Zend_Pdf, FPDF, PDFlib und wie sie alle heißen programmatisch neue PDF-Dokumente zu erstellen.

Nehmen wir also an, wie haben bereits ein fertiges Word-2007-Dokument, zum Beispiel eine Rechnung. Diese möchten wir dem Kunden nun auch als PDF zum Download zur Verfügung stellen. Mit den oben genannten programmatischen Lösungen funktioniert das nicht, was wir brauchen ist ein Konverter, und genau das ist 7-PDF.

7-PDF ist ein Service, den man sowohl kostenlos online nutzen kann (Thorsten stellt dort einen Server im Internet bereit, den man zum Konvertieren nutzen kann), oder man lädt sich den 7-PDF Server herunter und installiert ihn lokal, dann verlassen die Rechnungen nicht den eigenen Server bzw. die Firma.

Diesem Service übersendet man die zu konvertierende Datei, definiert einige Einstellungen (PDF-Passwort, Bilderkomprimierung usw.), startet dann den Konvertierungsprozess und erhält das generierte PDF-Dokument. Dazu gibt es als Client sowohl eine Windows-Anwendung, eine Java-Client-Library und auch eine PHP-Client-Library, die ich hier natürlich vorstellen möchte.

Der Server, der intern auf OpenOffice zurückgreift, kann dabei ca. 2000 PDF-Dokumente pro Stunde konvertieren. Das ist natürlich abhängig von der Größe der Dateien und ob der Service parallel befeuert wird oder nicht. Aber es ist recht performant, soviel kann man sagen.

Nun zur Praxis: Wir wollen also eine .docx-Datei nach PDF konvertieren. Das ist schnell gemacht mit dem kostenlosen Online-Service und dem PHP-Client:

require_once 'SevenPdf/Client.php';
$sevenPdfClient = new SevenPdf_Client();
$sevenPdfClient->setUsername('libdemouser')
		->setPassword('12345')
		->useSsl(true);

//Set some additional PDF Settings
$sevenPdfClient->setEncryptFile(true); //set PDF Encryption
$sevenPdfClient->setDocumentOpenPassword('test'); //set Open Password

$sevenPdfClient->convertToPdf('invoice.docx', 'invoice.pdf');

Das ist etwas mehr als ein Minimalbeispiel, aber man kann dort schön sehen, was so alles möglich ist. Zur Demonstration reicht hier der „libdemouser“ aus, sobald man aber vertrauliche Daten nutzt sollte man sich einen kostenlosen Account auf der Webseite registrieren auf den andere keinen Zugriff haben, oder sich lokal einen Server installieren. SSL wird für die Verbindung aktiviert ebenso wie die PDF-Verschlüsselung bzw. der Passwortschutz. Dann wird der Funktion „convertToPdf“ die Word-Datei und der Speicherort für die PDF-Datei übergeben. Das war es schon.

Morgen wird Thorsten selbst hier auch noch einen Artikel veröffentlichen und die Installation des Servers vorstellen (*jubel*, der erste Gastbeitrag!).

Written by Michael Kliewe

März 16th, 2010 at 9:10 am

5 Responses to '84 Formate nach PDF konvertieren mit 7-PDF'

Subscribe to comments with RSS or TrackBack to '84 Formate nach PDF konvertieren mit 7-PDF'.

  1. Ich bin grad vollends begeistert und bin gespannt auf den Artikel morgen!
    Super Software, werde ich die Tage mal ausgiebig testen!

    Sascha

    16 Mrz 10 at 10:17

  2. Lustig, das hätte mal 2 Monate eher kommen müssen. 😀

    Da hab ich genau so eine Lösung gesucht.

    Letzendlich hab ich mir dann ein ähnliches Konstrukt geschrieben, mit Openoffice im Command Line Mode und dem Tool unoconv.

    http://packages.debian.org/unoconv

    Simon

    16 Mrz 10 at 10:19

  3. JODConverter würde ich da noch in den Raum werfen:
    http://www.artofsolving.com/opensource/jodconverter

    Zusammen mit JODReports auch für dynamische Dokumente (bspw. Rechnungserstellung) sehr gut brauchbar.

    toubsen

    16 Mrz 10 at 23:38

  4. Das ist mal ein nützliches Tool. zu Zeiten meiner Diplomarbeit hätte mir das viel Zeit erspart… Freue mich aber auch heute noch darüber.

    Nientiedt

    9 Jun 10 at 10:40

  5. […] durchführen zu lassen. Ein fertiges Produkt auf dieser Methode aufsetzend hat Thorsten Hodes hier bereits im Blog vorgestellt. 84 Formate vor- und zurück sind damit möglich, also viel mehr als nur die […]

Leave a Reply

You can add images to your comment by clicking here.