Frage

Gibt es eine PHP-PDF-Bibliothek, dass Platzhalter Variablen ersetzen in einem bestehenden PDF, ODT oder DOCX-Dokument und erzeugt eine PDF-Datei als das Endergebnis, ohne das Layout vermasseln?

Anforderungen:

  • Benötigt keinen 3rd-Party-Web-Service

  • Die Fähigkeit, auf gemeinsame Web-Hosting zu laufen wäre ideal (keine binären Installationen / packages erforderlich)

Wohlgemerkt, eine Bibliothek, die einen vorhandene PDF-Datei und Einfügen von Text programmatisch an einer bestimmten Position in der Lage ist, laden nicht genug für meinen Anwendungsfall.

Was meine Forschung zeigt, gibt es keine Bibliothek, die dies tun können:

  • TCPDF kann nur erzeugen Dokumente von Grund auf neu

  • FPDI kann vorhandene PDF-Vorlagen lesen, sondern nur Inhalte programmatisch hinzufügen (kein Template-Variable Ersatz)

  • Es gibt verschiedene DOCX / ODT Template-Bibliotheken da draußen, aber sie tun nicht ausgegeben PDF

PHPDOCx Ansprüche der Lage sein, genau das zu tun, was ich brauche - aber sie bieten keine Testversion und ich bin nicht geht eine Katze im Sack zu kaufen, vor allem nicht, wenn es kein anderes Produkt auf dem Netz, das dies tut zu sein scheint. Ich finde es schwer zu glauben, dass sie dies ohne Probleme tun können -., Wenn Sie erfolgreich diese mit dem Produkt gemacht haben, dann schreiben Sie eine Linie hier

Bin ich mit Blick auf etwas?

Gibt es eine Möglichkeit, dies mit Hilfe von PDF-Formularen zu tun? Ich bin die Quelldokumente in Openoffice 3 zu schaffen.

Vielleicht kann ich Standard-Linux-Befehle verwenden (pdftk zum Beispiel verfügbar ist, dass der Versuch, jetzt aus.)

Update: * Argh * Ich bin im Büro ruft und die Prämie in der Zwischenzeit abgelaufen!. Starten eine neue Prämie. Was meine Tests zeigen, keine Lösung für mich perfekt funktioniert noch

Aktualisieren II: Ich werde bald den pdftk Ansatz suchen, aber ich bin auch eine andere Prämie für eine weitere Runde zu sammeln zusätzliche Eingabe zu starten. Diese Frage wird nun 1300 rep Punkte in Bounties zu sehen ist, muss eine Art eines Rekords sein:)

War es hilfreich?

Lösung

Pekka,

ich sah auf diese vorher, ich glaube, Sie können pdftk (ein Befehlszeilenprogramm), in einem PDF-Formular mit FDF / XFDF Datendateien zu füllen, die Sie leicht aus PHP generieren könnten. Das war die beste Option, die ich bisher gesehen habe, obwohl es auch eine native Bibliothek sein kann.

pdftk ist sehr nützlich, in der Regel einen Blick wert ist.

Update: Haben Sie einen Blick hier: http: // php.net/manual/en/book.fdf.php

Andere Tipps

Das ist nicht sehr praktisch, aber der Vollständigkeit halber: Wenn Sie bereits ein ODT-Vorlage haben, dann könnten Sie sehr gut, dass als Vorlage behalten. Ändern des OpenDocument- content.xml und Ersetzen Platzhalter darin ist ziemlich einfach. Wenn ja, könnten Sie unoconv oder pyodconverter die ODT in eine endgültige PDF zu verwandeln.

unoconv -f pdf -o final.pdf template.odt

Sehr offensichtlich erfordert dies eine vollständige Openoffice Setup (UNO und Writer) auf dem Webserver. Und natürlich nicht jeder Webhoster würde das gehen! Haha. Auch wenn es einfach auf einem beliebigen Setup Debian oder Fedora. Die Ausführungsgeschwindigkeit wäre wahrscheinlich nicht stellar entweder. Aber dann könnte es der sauberste Ansatz, da OOo beiden Formate viel besser beherrscht als jede PHP-Klasse je könnte.

Haben Sie darüber nachgedacht, etwas wie XSL: Formatierung von Objekten (XSL: FO)? Im Grunde sind sie XML-Dokumente, die verarbeitet werden und verwandelte sich in PDFs. Doing string - oder besser, DOM - Ersatz in das sollte ziemlich einfach sein. Es unterstützt Bilder, Links, Anmerkungen, etc.

Einbettung

Es ist nicht PHP, aber es gibt eine Reihe von PHP-Wrapper für sie zusammen mit Möglichkeiten, es über exec usw. keine ideale, aber es kümmert sich um die Vorlage Teil vollständig. Für einige weitere Informationen: http: // techportal .inviqa.com / 2009/12/16 / Transformieren-xml-mit-php-and-xsl /

Es gibt eine verfügbare Implementierung als Apache-Projekt - http://xmlgraphics.apache.org/fop/

fpdf und gibt es eine weitere Verlängerung oben drauf, die ich mich nicht erinnern kann, die Sie Vorlagen

importieren

Ihre beste Wette wäre, das gesamte Dokument im Fluge zu erzeugen, mit der Vorlage ähnlich programmatisch mit fpdf oder etwas definiert. Auf diese Weise Ihr Text von Absätzen oder so etwas nicht abgeschnitten werden, und man kann leicht Position images / andere Elemente, wie erforderlich.

Späte, aber Sie können Open Source Template Designer verwenden https://github.com/applicius/dhek/releases , zu definieren pkaceholders / Bereiche über jede bestehende PDF, laden sie es dann in PHP (wie es ist JSON-Format) und Schreib entsprechend auf Original-PDF mit fpdf lib, benutzerdefinierte PDF mit dynamischen Daten geschrieben zu erzeugen.

Altough nicht genau, was Sie gefragt, können Sie es für in zwei Schritten zu machen: einige PHP Templating Sytem mit ( Smarty dwoo ) hTML-Seite zu generieren und dann Tools wie HTML2PDF wandelt es in pdf. Ich benutze es, und die Ergebnisse sind gut (keine Probleme mit Seitenlayout usw.)

Natürlich hängt es von Ihrer Eingabe Dokumenten (können Sie HTML anstelle von PDF / ODT als Quelle verwenden) und die Komplexität des Layouts von denen.

Ok Ich versuche, Sie zu lösen das Problem ein wenig zu helfen.

Zuerst die Antwort für einige Ihrer Frage.

Q - Bin ich mit Blick auf etwas

A - Nein. Es ist eine PHP-PDF-Bibliothek, die Platzhalter-Variablen in einem vorhandenen PDF ersetzen kann und eine PDF-Datei als das Endergebnis erzeugen, ohne das Layout vermasseln

Q - Gibt es eine Möglichkeit, dies mit Hilfe von PDF-Formularen zu tun

?

A - Ja. absolutelly die tric dies zu tun, ist durch ein PDF-Formulare mit

Für beide Antwort können Sie Justin Koivisto verwenden fill pdf Formularfeld PHP-Bibliothek. Für weitere Details gehen Sie bitte auf http://koivi.com/fill-pdf- Form-Felder / tutorial.php . Werfen Sie einen Blick dort für weitere Informationen.

Kredit zu Justin Koivisto für seine Arbeit

P. S

Für Abhilfe für eine Tabelle wie Ausgabe von PDF-Formular Anzeige beachten Sie bitte einige Lesung auf Oracle Business Intelligence Publisher zu nehmen Benutzerhandbuch - Erstellen einer PDF-Vorlage

Ich werde diese neue Antwort hinzufügen, da die FDF PHP-Erweiterung jetzt tot ist.

Ich habe gerade gefolgt diese Anweisungen und ein Perl-Skript ausführen endete dann die pdftk Befehl

Ich bin mir ziemlich bewusst, es ist alles andere als eine echte PHP-Lösung zu sein, aber es ist zuverlässig und relativ einfach auf jedem * nix-Plattform zu implementieren.

Die Werkzeuge beschrieben gibt es auch auf Debian zur Verfügung, falls Sie sich wundern.

Es ist Ein bisschen spät, aber haben einen Blick auf die PDFTemplate Bibliothek es tut exatly, was Sie wollen . Sie können Open Document-Dateien (ODT) und fügen Sie Platzhalter darin erstellen. Die PDFTemplate Bibliothek kann diesen Platzhalter ausfüllen (auch mit Bildern) und eine PDF-Datei erstellen.

ODT-Dateien mit Platzhalter PDF

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top