Zum Inhalt springen

pdf_generator2 und pdflib

Erstellt am 21. August 2007 · 2 Antworten · letzte Antwort am 22. August 2007

Tags: Frage

McGregor ·

Hi!

Ich benutze den pdf_generator2 zur Generierung von PDF-Druckansichten. Das funktioniert auch wunderbar.

Ich verwende dabei die pdflib, da wir hier eine Vollversion liegen haben. In dieser Vollversion ist es auch möglich vorhandene PDF-Dateien einzubinden.

Ich würde nun gerne im pdf_generator2 dieses nutzen und ein PDF als Basis in den Hintergrund legen.
Der Vorteil liegt auf der Hand. Es sind nur Pfade, also keine großen Bilder, womit die Dateigröße wesentlich kleiner sein sollte und außerdem kann ich das PDF vergrößern ohne dass ich Qualitätsverluste habe.
Ich weiss, dass das ein wenig übertrieben ist aber wir arbeiten hier in einer Druckerei und da sollte das schon optimal gezeigt werden...

Kann mir jemand sagen, wo und wie ich das PDF als Basis in das generierte einbinden kann?

Danke
McGregor

McGregor ·

Hi!

Ich hab's dann hinbekommen. Hier die Anleitung:

Datei typo3conf/ext/pdf_generator2/html2ps/output._interface.class.php bearbeiten:
Folgende Zeile nach "class OutputDriver {" hinzufügen:

function add_pdf($pdf_name,$page) { }

dann die Datei typo3conf/ext/pdf_generator2/html2ps/output.pdflib.class.php bearbeiten:

Folgende Funktion hinzufügen (z.B. an Zeile 65):

function add_pdf($pdf_name,$page) {
 $my_pdf_doc = pdf_open_pdi($this->pdf,$pdf_name,"pdiwarning true",0);
 $s = pdf_open_pdi_page($this->pdf,$my_pdf_doc,$page,"pdiwarning true");
 pdf_fit_pdi_page($this->pdf,$s,0,0,"adjustpage");
 pdf_close_pdi_page($this->pdf,$s);
}

Dann noch ziemlich am Ende (Zeile 1016 nach pdf_begin_page() ):

 $this->add_pdf('DeinDateiname.pdf',1);

Dann muss das PDF mit obigen Namen noch in das Root-Verzeichnis gelegt werden (ich habe alle möglichen Pfadangaben ausprobiert aber nur hier hat es funktioniert).

Und wichtig !!! Das PDF darf nicht neuer sein als ihr in den Constanten einstellt. Beispiel:
- Version eures PDF 1.5
- Version des zu generienden PDFs 1.4
ergibt einen Fehler (oder überhaupt kein Dokument). Also immer darauf achten!!!!

So. Damit lässt sich nun eine PDF-Vorlage in den Hintergrund legen.
Beachtet aber (wie schon geschrieben), dass dies nur mit einer lizensierten Version von pdflib mit PDI geht! Diese kostet ca. 1000€. Also nicht billig. Wer es aber zur Verfügung hat (so wie ich) kann dies sicher gut gebrauchen.

Grüße
McGregor

McGregor ·

Hallo!

Nachtrag:

Wenn Ihr das Template-PDF auch auf den folgenden Seiten braucht, dann ergänzt die Datei output.pdflib.class.php in der Funktion next_page():

$this->add_pdf('DeinDateiname.pdf',1);

Fügt die bekannte Zeile nach "pdf_begin_page(" innerhalb der Funktion ein.
Wenn Ihr noch einen Offset für den folgenden Text braucht, dann ändert den Wert innerhalb des translate-Aufrufs in dieser Funktion z.B.:

pdf_translate($this->pdf, 0, -$this->offset-110);

Grüße
McGregor