FreePDF, JpGraph

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • FreePDF, JpGraph

    Hallo,

    ich erstellt mit JpGraph (1.17-beta) Diagramme, die ich gerne in dynamisch generierte PDF-Dokumente einfügen möchte. Die PDFs erstelle ich mit FreePDF (Version 1.51).

    Wenn ich nun die Datei diagramm1.php habe und die im img-Tag aufrufen wird das Diagramm korekt angezeigt. Die folgende Zeile mit fpdf ergibt jedoch den Fehler:FPDF error: Missing or incorrect image file: diagramm1.php

    PHP-Code:
    $pdf->Image('diagramm1.php',50,20,700,400,'JPEG'); 
    Ich habe fpdf angewiesen jpg zu erstellen mit

    PHP-Code:
    $graph->img->SetImgFormat("jpeg"); 
    ändert aber nichts am Fehler.

    Ich möchte es gerne vermeiden, die Grafiken auf meinem Webserver zuspeichern und dann die erstellten Dateien ins pdf einzubinden.

    Könnt ihr mir helfen oder ist es nicht möglich die php-Datei mit den Diagramm direkt als Image einzubinden ?

    Vielen Dank für eure Hilfe!

  • #2
    Könnt ihr mir helfen oder ist es nicht möglich die php-Datei mit den Diagramm direkt als Image einzubinden ?
    Doch, ist es.

    Missing or incorrect image file
    Das heißt Fehlende oder fehlerhafte Bilddatei. Nicht, daß es grundsätzlich nicht geht.

    - Stimmt der Pfad auch ganz bestimmt? Testausgabe machen.
    - Gibt die php-Datei auch einen richtigen Header aus?
    Zuletzt geändert von pekka; 22.10.2004, 09:47.

    Kommentar


    • #3
      @pekka: der Pfad ist korrekt - alles liegt zum Test im selben Verzeichnis. Ich benutze eine HTML-Datei mit img-Tag zur Testausgabe des Diagramms - funktioniert tadellos.

      Zu deinem zweiten Hinweis: die generierte PDF-Datei ist korrekt (wenn ich die Zeile $pdf->Image ... rausnehme wird mein PDF angezeigt.

      Die Header der von JpGraph erzeugen Bilder sollen wohl auch passen, da die Anzeige ja grundsätzlich Möglich ist.

      Hast du das selber schon mal probiert oder schließt du anhand der Fehlermeldung das es grundsätzlich möglich sein muss ?

      Kommentar


      • #4
        Hast du das selber schon mal probiert oder schließt du anhand der Fehlermeldung das es grundsätzlich möglich sein muss ?
        Letzteres. Zwischen PHP-Generierten und von einem Bildprogramm erzeugten JPEGs besteht grundsätzlich kein Unterschied. Allerdings war ich da, muß ich zugeben, etwas voreilig - es gibt Formatunterschiede bei JPEGs. Mache mal einen Test: Laß die diagramm.php eine Ausgabe in eine Datei machen (z.B. "ergebnis.jpg"). Wenn diese in Photoshop o.ä. korrekt aussieht, sich dann aber auch nicht einbinden läßt, poste sie hier.

        Kommentar


        • #5
          ok. dann werde ich das wohl auch hinbekommen ...

          habe gerade Versucht das Diagramm mit Stroke('test.jpg') auszugeben und dabei festgestellt, dass keine Schreibrechte gesetzt sind. Jetzt muss ich das erstmal nachlesen und einstellen - dann melde ich mich wieder.

          Danke.

          Kommentar


          • #6
            ähm ... habe jetzt ein Verzeichnis angelegt (/tmp/jpgraph_cache). Nun soll dieses Verzeichnis Schreibrechte für Apache/PHP haben, was mir auch durchaus einleuchtet. Aber wie bekomme ich raus, welcher Benutzer/Gruppe den Apache bzw. PHP (als Modul kompiliert) betreibt ?

            der Befehl
            Code:
            ps -ef|grep httpd
            gibt mir jede Menge nobodys

            Kann mir jemand erklären wie ich jetzt vorgehen muss um den entsprechenden User bzw. die entsprechende Gruppe zu finden.

            Vielen Dank.

            Kommentar


            • #7
              Mach doch einfach innerhalb von deinen Testverzeichnes ein Unterverzeichnes was du mit 0777 versiehst. Dort speicherst du das Diagramm zwischen und schaust es dir dann nochmal ganz in Ruhe an.
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar


              • #8
                @Wotan: ok, das löst das Problem fürs erste - habe ich gemacht. Das Bild wird nun geschrieben. Danke für den Tipp.

                @pekka:
                habe nun ein PNG erstellt und das fertige test.png in freepdf eingebunden. Das wird angezeigt. Auch mit MS Photo Editor wird das png korrekt dargestellt.

                Wenn ich direkt die php-Datei anspreche bekomme ich den o.g. Fehler.

                Hast du noch eine Idee woran es liegen kann? Das bild hänge ich mal an.

                Danke.
                Angehängte Dateien

                Kommentar


                • #9
                  Hm. Seltsam. Bist Du ganz ganz sicher, daß der Aufruf im Skript korrekt ist? Alle Parameter richtig und so? Ich halte dich nicht für blöd, aber meistens liegt es an solchen Sachen.

                  Alternativ könntest Du - falls irgendein Teil der PDF-Funktionen vielleicht doch auf die Dateiendung achtet, was ich mir aber eigentlich nicht vorstellen kann! - das PHP-Skript mit der Endung .png bzw. .jpg versehen und Apache anweisen, Dateien mit diesen Endungen durch den PHP-Parser zu jagen.

                  Abhängig von Servereinstellungen, Umgebung und so weiter müsste die Zeile für die .htaccess-Datei (Im selben Verzeichnis wie das Bildausgabeskript) ungefähr so aussehen:

                  AddType application/x-httpd-php .png .jpg

                  Kommentar


                  • #10
                    STOP!!! Du schreibst oben etwas von JPG und nun auf einmal PNG! Du kannst kein PNG mit einem JPG Befehl bei FPDF einfügen. Also entweder du läst ein JPG erstellen oder aber du liest in FPDF ein PNG ein!
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #11
                      @pekka: der Aufruf in freepdf ist genau wie oben beschrieben. Die Umbennung in .php mit Anpassung der httpd.conf habe ich probiert - der Fehler bleibt.

                      @Wotan: ja, schon klar ... ich habe zuerst in JpGraph keinen Typ für die Grafik angezeigt, laut Doku wird als Standard png gewählt. Als das nicht klappte habe ich JpGraph expliziet angewiesen ein jpg zu erstellen. In freepdf habe ich jeweils den passenden Typ angegeben.

                      Nachdem ihr mir dann geraten habt das erzeugte Diagramm zunächst einmal abzuspeichern habe ich das Cache-Verzeichnis angelegt und bin wieder zu png zurückgekehrt.

                      Hier der aktuelle Stand meiner Versuche: die png-Datei wird von JpGraph erzeugt und im Cache gespeichert. Binde ich diese Datei mit dem o.g. Befehl in freepdf ein wird das Bild ordnungsgemäß angezeigt. Gebe ich als Quelle das php-Script an (Stroke wird geändert, kein speichern, sondern Stream) tritt der Fehler auf.

                      In eine HTML-Seite im img-Tag werden beide Varianten korrekt angezeigt.

                      Nun könnte ich ja mit dem Caching arbeiten - aber es wäre mir lieber ohne ...

                      Vielleicht habt ihr noch einen Rat oder Tipp für mich ?

                      Vielen Dank für die bisherige Unterstützung!

                      Kommentar


                      • #12
                        in der Zwischenzeit habe ich noch mal alles versucht. Ich habe php4.3.10 auf den Linux gepackt (vielleicht lag es an PHP5?) und JpGraph 1.16 benutzt. Das Problem besteht nach wie vor.

                        Ich füge ins PDF mit
                        Code:
                        $pdf->Image("jpgraph-1.16/src/Examples/example2.php",10,50,0,0,'PNG');
                        ein Beispiel von JpGraph ein und erhalte den Fehler "FPDF error: Not a PNG file: jpgraph-1.16/src/Examples/example2.php" im Browser.

                        Der Aufruf im img-Tag funktioniert. Auch das PDF wird ohne die o.g. Zeile korrekt erstellt.

                        Habt ihr noch irgendwelche Vorschläge für mich?

                        Danke.

                        Kommentar

                        Lädt...
                        X