PHP erzeugen

Hallo!

Ich arbeite an einem Projekt, wo bestimmte vom User eingegebene Daten als PDF ausgegeben werden können. Die Schwierigkeit an der Sache ist eigentlich, dass in dem PDF auch vom User hochgeladene Bilder sein müssen. Da ich nicht wusste, wie man das mit FDF macht, hab ich mir mal was anderes gesucht und bin auf Folgendes gestoßen: http://www.selfphp.info/funktionsreferenz/pdf_funkti… und habe mir in einer Klasse diverse funktionen zur PDFErzeugung zusammengebastelt. Unter anderem zur Erzeugung von Text:

pdf\_set\_font($dokument, 'Times-Roman', 12,$opt);
pdf\_set\_text\_pos($dokument, $x, $y);
pdf\_show($dokument, $txt); 

Funktioniert tadellos. Aber nun habe ich das Problem, dass ich eine ganz bestimmte Schriftart (century gothic) für das PDF brauche. Laut einem Forumsbeitrag den ich gefunden habe, sind die „Core-Fonts“ Courier, Helvetica und Times New Roman. Da ich nicht mal genau weiß, wieso das PDF erzeugen mit diesen Funktionen funktioniert, hab ich auch keine Ahnung, wie man vielleicht auch weitere Fonts einbindet.

Hat jemand einen Vorschlag, wie ich irgendwie century gothic da dargestellt kriege? Oder kann mir nen Hinweis geben, wo ich das nachlesen kann?

Und: ist das eigentlich PDFlib was ich da nutze? Oder was genau ist das?

Danke,
Chi

Hi!

Eigentlich ist ja hier alles gut beschrieben:
http://es.php.net/manual/de/ref.pdf.php

Wenn du es so machst, benutzt du die „PDFlib“.

Viele Grüße
André

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Eigentlich ist ja hier alles gut beschrieben:
http://es.php.net/manual/de/ref.pdf.php

Wenn du es so machst, benutzt du die „PDFlib“.

Viele Grüße
André

Danke. Da war ich schon, ich ging erst davon aus, dass das was ich da benutze was anderes als PDFlib ist… weil die Funktion die da beschrieben ist (PDF_load_font) bei mir nicht geht, die wirft ne errormessage aus: Call to undefined function: pdf_load_font()

Kann das sein, dass bei mir am server ne ältere Version von PDFLib installiert ist?

WEnn das das Problem ist, bräucht ich nur noch ne ältere Variante der pdf_load_font()

Grüße,
Chi

Hi!

Hast du die neueste PDFlib drauf?
Welche Distribution benutzt du und wie hast du es installiert? Über einen Paketmanager oder über den Source Code?

Viele Grüße
André

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Hast du die neueste PDFlib drauf?
Welche Distribution benutzt du und wie hast du es installiert?
Über einen Paketmanager oder über den Source Code?

Viele Grüße
André

Ich weiß weder, welche Version ich habe noch wie ich das rausfinde. Ich arbeite lokal, das ganze wird aber auf nen Webserver gespielt, heißt, ich weiß nich inwieweit ich da beeinflussen kann, welche PDFlib installiert is/wird.

Muss man PDFLib tatsächlich installieren? Alles was mit server/apache/keine ahnung zu tun hat, is nich so mein Fachgebiet.

Wenn du „nur“ einen Webserver online hast, kannst du deinen Provider mal bitten alles auf den neuesten Stand zu bringen, dann kann er dir auch sagen was da zur Zeit im Einsatz ist.
Bei einem Root-Server muss man das dann einmal händisch updaten, dauert nur ein paar Minuten.

Viele Grüße
André

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wenn du „nur“ einen Webserver online hast, kannst du deinen
Provider mal bitten alles auf den neuesten Stand zu bringen,
dann kann er dir auch sagen was da zur Zeit im Einsatz ist.
Bei einem Root-Server muss man das dann einmal händisch
updaten, dauert nur ein paar Minuten.

Viele Grüße
André

Und wenn das keine Alternative ist? Gibts ne andere Möglichkeit? Eben wie z.b. eine ältere Version des Befehls finden oder so ?

Eigentlich ist ja hier alles gut beschrieben:
http://es.php.net/manual/de/ref.pdf.php

Wenn du es so machst, benutzt du die „PDFlib“.

Danke. Da war ich schon, ich ging erst davon aus, dass das was
ich da benutze was anderes als PDFlib ist… weil die Funktion
die da beschrieben ist (PDF_load_font) bei mir nicht geht, die
wirft ne errormessage aus: Call to undefined function:
pdf_load_font()

pruefe mit phpinfo() welche pdflib version du hast.
im manual steht fuer jeden befehl, ab welcher version er verfuegbar ist.

schau, ob dir statt pdf_load_font vllt. pdf_findfont weiterhilft.
http://de2.php.net/manual/de/function.pdf-findfont.php

Da kann ich dir leider nicht helfen. Ich benutze immer die neuesten Versionen auf meinem Root-Server…
Einfach mal nach googeln, da findest sich bestimmt etwas.

Viele Grüße
André

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Da kann ich dir leider nicht helfen. Ich benutze immer die
neuesten Versionen auf meinem Root-Server…
Einfach mal nach googeln, da findest sich bestimmt etwas.

Viele Grüße
André

Gegoogelt hab ich schon. Ich hab folgenden Befehl gefunden der nicht sofort vom server abgelehnt wird:

PDF\_set\_parameter($dokument, "FontOutline", "CenturyGothic=GOTHICB.TTF"); 
$font = PDF\_findfont($dokument, "CenturyGothic", winansi, 1);

Da krieg ich allerdings auch ne Fehlermeldung, und zwar erst bei der zweiten Zeile, weil nämlcih keine Schriftart mit dem Namen gefunden wird. Wo muss die TTF Datei denn sein damit das geht bzw. muss die im PDFLib Verzeichnis irgendwo sein oder gibts da sonst irgendeine Möglichkeit?

YESSS!!! Viele Stunden Recherche aber jetzt… jetzt… GEHTS.

PDF\_set\_parameter($dokument,"prefix","/work/www/images/fonts");
PDF\_set\_parameter($dokument, "FontOutline", "CenturyGothic=GOTHIC.TTF"); 

Das wichtige war das Setzen des Pfades für die Fonts. Mit diesen zwei Zeilen wird die Schrift (die natürlich als TTF im Ordner fonts liegen muss) erkannt und man kann sie mit CenturyGothic in diesem Fall aufrufen!

In der Hoffnung dass dieser Beitrag jemand anders vielleicht mal sehr viel Sucharbeit erspart,

Chi