Probleme mit PDF
Stephan
- php
0 Stefan Muenz0 Stephan
Hallo Forum, ich beschäftige mich zur Zeit mit der Erzeugung von
PDF-Doks mit PHP. Dazu habe ich das Beispiel-Skript in der PHP
Dokumentation ausprobiert. Es traten aber folgende Probleme auf:
Fatal error: Internal pdflib error: Resource configuration file 'pdflib.upr' not found in /usr/local/httpd/htdocs/pdf/test2.php on line 19
Es existiert zwar eine solche Datei im Verzeichnis
/usr/lib/pdflib/fonts/, aber offensichtlich kann das Skript die
Datei nicht finden.
Ich habe
pdf_set_parameter($pdf, "resourcefile", "/usr/lib/pdflib/fonts/pdflib.upr");
eingefügt. Damit konnte das Skript zwar die .upr Datei
finden, dafür aber keine Font-Dateien, obwohl
diese im selben Verz. wie die .upr Datei liegen.
Erst nachdem ich die Courier.afm ins Skriptverzeichnis kopiert
habe, rührte sich was. Allerdings wurde nur was mit der
Kodierung "ebcdic" angzeigt. Hier aber auch nur Kauderwelsch.
Auch das Erzeugen einer PDF-Datei on the fly funktioniert nicht,
da PDF_new() zu einer 'Call to undefined function' Meldung führt.
Ich weiss nicht mehr so recht weiter. Hoffe, ihr könnte mir helfen.
vielen Dank im voraus.
Stephan
PS. Meine Konfiguration:
SUSE 7.2
phpinfo():
PDF Support: enabled
PDFLib Version: 3.03
CJK Font Support: yes
In-memory PDF Creation Support: yes
Hallo Stephan
Damit konnte das Skript zwar die .upr Datei
finden, dafür aber keine Font-Dateien, obwohl
diese im selben Verz. wie die .upr Datei liegen.
Das Problem hatte ich auch bei meinen neulichen Versuchen, PDF mit pdflib zu generieren. Ich hab dann noch die upr-Datei editiert. Wie sehen denn dort bei dir die Eintraege fuer die Schriftarten aus, also z.B. fuer die courier.afm?
Bei mir hatte sich auch als wichtig herausgestellt, dass alle vier Kategorien der Datei abgearbeitet werden, die Datei also immer beginnt mit:
FontAFM
FontPFM
FontOutline
Encoding
.
Unter jeder der Kategorienueberschriften sollte auch wenigstens ein Eintrag stehen - zumindest meinen Erfahrungen nach. Bei "FontPFM" habe ich irgendeine pfm-Schrift, die ich hatte, ins upr-Verzeichnis kopiert und dann einen entsprechenden Eintrag gesetzt, in meinem Fall:
Universe=Uvs_____.pfm
Ebenso bei "FontOutline". Dazu hab ich einfach eine TTF-Schrift ins upr-Verzeichnis kopiert und den entsprechenden Eintrag hinzugefuegt, in meinem Fall:
ArialMT=Arial.ttf
Auch der absolute Pfad im oberen Teil der upr-Datei - die Zeile, die mit den beiden Slashes beginnt - sollte entsprechend angepasst werden, in deinem Fall:
//usr/lib/pdflib/fonts
viele Gruesse
Stefan Muenz
Hallo Stephan
Damit konnte das Skript zwar die .upr Datei
finden, dafür aber keine Font-Dateien, obwohl
diese im selben Verz. wie die .upr Datei liegen.
Das Problem hatte ich auch bei meinen neulichen Versuchen, PDF mit pdflib zu generieren. Ich hab dann noch die upr-Datei editiert. Wie sehen denn dort bei dir die Eintraege fuer die Schriftarten aus, also z.B. fuer die courier.afm?
viele Gruesse
Stefan Muenz
Hi Stefan, danke für die Tipps. Hier nochmal mein Skript:
<?php
$fp = fopen("test.pdf", "w");
$pdf = pdf_open($fp);
//pdf_set_parameter($pdf, "resourcefile", "/usr/lib/pdflib/fonts/pdflib.upr");
//pdf_set_parameter($pdf, "FontAFM", "Courier=Courier.afm");
pdf_set_info_author($pdf, "Uwe Steinmann");
pdf_set_info_title($pdf, "Test for PHP wrapper of PDFlib 2.0");
pdf_set_info_author($pdf, "Name of Author");
pdf_set_info_creator($pdf, "See Author");
pdf_set_info_subject($pdf, "Testing");
pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Page 1");
pdf_set_font($pdf, "Courier", 12, "winansi");
pdf_set_text_rendering($pdf, 1);
pdf_show_xy($pdf, $myText, 50, 750);
pdf_end_page($pdf);
pdf_close($pdf);
fclose($fp);
//header("Content-type: application/pdf");
//header("Location: test.pdf");
echo "<A HREF=getpdf.php>finished</A>";
?>
Ich habe noch n bischen rumprobiert und die, im Moment wieder
auskommentierten Zeilen hinzugefügt. Außerdem habe ich einige .afm
Dateien in das Verzeichnis meines Skripts kopiert. Danach gings
irgendwie. Das verrückte ist, dass ich heute die Zeilen auskommentiert
(siehe oben) und die .afm Dateien wieder gelöscht habe...
und oh Wunder es geht auf einmal auch so. Manchmal muss man einfach mal
drüber schlafen und das Problem löst sich von selber ;-).
Leider funktioniert PDF_new() immer noch nicht. Ist wohl erst ab der
PDFLib 4 enthalten.
Die 4 Kategorien in der upr-Datei enthalten alle nen Eintrag. Allerdings
ist der absolute Pfad auskommentiert und sowieso falsch. Werd ich mal
anpassen.
Eins ist mir noch aufgefallen. Die Schriftstärke erscheint beim ausdrucken
ziemlich fett, obwohl sie normal sein sollte.
Kann man das noch irgendwie einstellen?
Noch ne Frage, hast Du oder irgendjemand schonmal Erfahrungen mit der
PHP pdf Class von R&OS (www.ros.co.nz/pdf/) gemacht?
ciao
Stephan