Stephan: Probleme mit PDF

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

  1. 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

    1. 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