mit PHP erzeugtes bild bild.php in PDF einbinden

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

  • mit PHP erzeugtes bild bild.php in PDF einbinden

    Hallo,
    ich habe ein großes Problem muss einen Haufen an Bildern die mit PHP aus DB Werten erstellt werden, in ein PDF Dokument bringen. Nur habe ich keine Ahnung wie ich das Anstellen soll ohne, dass ich open_memory_image nutze. Denn nur so kann ich PHP Bilder einfügen. meine Bilder sind aber als einzelne PHP dateien abgespeichert. Mit rückgabe für en Browser als PNG.
    Jetzt meine Frage an die Profis: Wie kann ich eine externe Datei, die sonst im Browser angezeigt wird, in einem PDF Dokument einfügen.

    Die Datei heißt bild.php und benötigt als GET Parameter stat=1&size=8&pti=19.

    Das nächste Problem was auftaucht ist das ich komplexe HTML Tabellen die sich fast täglich ändern und mit DB Werten gefüllt sind, in ein PDF Dokument bekommen muss. Soll heißen wenn ich in der HTMLausgabe die Tabelle ändere, Überschrift etc. also was sichtbares, soll das auch im PDF so dargestellt werden. quasi HTML to PDF.

    Diese beiden Sachen sollen dann auch zusammen in einem Dokument sein.

    Schonmal besten Dank

    Flattman

  • #2
    Du kannst ein Datei auch über eine URL einlesen!

    PHP-Code:
    $url 'http://meinserver.de/bild.php?stat=1&size=8&pti=19';
    $fd fopen($url,'rb');
    $imagedata fread($fd,filesize($url));
    fclose($fd); 
    Nun kanst Du damit machen was du willst.

    PS: allow_url_fopen muss angeschaltet sein (php.ini)
    Zuletzt geändert von cst; 12.07.2004, 15:39.
    Ich denke, also bin ich.
    Manche sind trotzdem!

    Kommentar


    • #3
      problem ist das das einlesen der Datei über URL nicht funzt bei mir. Desweitern läuft den der PHP Compiler einmal drüber so das ich das Ergebnis also ein Bild zurückbekomme oder bekomme ich den Quellcode des Skriptes?

      MFG &thx
      Flattman

      Kommentar


      • #4
        Original geschrieben von cst
        PS: allow_url_fopen muss angeschaltet sein (php.ini)
        Wenn das Auslesen per URL nicht funktioniert, dann muss du entweder die Datei lokal einspielen, oder du hast ein Problem (ich wüsste nicht, wie man das machen sollte)..

        Du könntest auch das Script einbinden, welches das aktuelle Bild in eine DB speichert (wie auch immer man das macht, ich arbeite eigentlich nicht mit den PHP-Bildfunktionen), und dein Script ruft die Spalte dann auf. Aber eigentlich auch eine blöde Idee..
        PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

        Kommentar


        • #5
          Original geschrieben von Flattman
          Desweitern läuft den der PHP Compiler einmal drüber so das ich das Ergebnis also ein Bild zurückbekomme oder bekomme ich den Quellcode des Skriptes?
          wenn du eine PHP-ressource über HTTP aufrufst, bekommst du immer die ausgabe dieses scriptes (sofern der parser nicht ausgefallen ist).
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            aso.
            ich habe es jetzt mal mit open_memory_image probiert. nur leider muss ich den Apache und PHP unter Win laufen lassen, so dass er mir immer die Fehlermeldung ausschmeißt, dass die Funktion nicht existiert.

            KENNT JEMAND NE LÖSUNG WIE ICH DAS UNTER WINDOWS NUTZEN KANN?

            phpversion: 4.3.7
            pdflib: 5.0.3
            cpdf: 2.02-r1-2
            apache: 1.3.29

            wenn das laufen würde würde das so klappen wie ich es will.

            MFG & thx
            Flattman

            Kommentar


            • #7
              Original geschrieben von Flattman
              oder bekomme ich den Quellcode des Skriptes?
              Die Bytes des Bildes!
              Ich denke, also bin ich.
              Manche sind trotzdem!

              Kommentar


              • #8
                Original geschrieben von Flattman
                aso.
                ich habe es jetzt mal mit open_memory_image probiert.
                Kenn ich gar nicht.
                Willst du das Bild in den Speicher laden und dann damit etwas veranstalten? Dann nimm GD und imagecreatfrom{gif|jpeg|png}().
                Ich denke, also bin ich.
                Manche sind trotzdem!

                Kommentar


                • #9
                  ich lasse per imagecreate ein Bild erstellen welches dann ja im Speicher leigt. Die Funktion pdf_open_memory_image soll aus diesem Bild dann ein PDF Bild erzeugen, welches dann mit image_place eingefügt wird. nur leider bekomme ich mittlerweile die Fehlermeldung das die Funktion open_memory.... nicht gefunden werden kann. Habe schon bei Bug @ php.net geschaut da steht tatsächlich was drin, aber die meinen das in der Version 4.3.7 das auf jeden drin sein sollte und auch funzen sollte. Im Quellcode von php 4.3.7 habe ich folgendes gefunden:

                  PHP-Code:
                  #if HAVE_LIBGD13
                      
                  PHP_FE(pdf_open_memory_imageNULL)
                  #endif 
                  kann es sein das die Funktion nur funzt wenn ich GD 1.3 drin habe? Ich habe GD Lib 2 drin. Habe mir sogar schon überlegt mir die Sources selbst zu compilieren aber unter Windows habe ich da keine Lust zu, weil mir hier die C Umgebung fehlt.

                  Und scheinbar ist das Ganze nur auf Windowskisten so unter Linux ist die Funktion verfügbar.

                  MFG&THX
                  Flattman

                  Kommentar


                  • #10
                    LATEIN @ ENDE
                    Ich denke, also bin ich.
                    Manche sind trotzdem!

                    Kommentar


                    • #11
                      mmmmhhh trotzdem ein dickes Danke, dass Ihr euch meines Problemes angenommen habt. Aber was nicht ist wohl nicht.

                      MFG&thx
                      flattman

                      Kommentar


                      • #12
                        habe einen großen schritt schon wieder gemacht. Habe den Bildinhalt jetzt in einer Variable vorliegen. Wie kann ich jetzt diese mit pdf_open_image ins pdf drücken?

                        habe es mit fopen über eine URL gemacht. Prob war nur, dass es SSL war und PHP das nciht mochte, also musste ich erst OpenSSL einrichten. Jetzt läuft es.

                        so funzt es:
                        PHP-Code:
                        <?php
                        $filename
                        ="https://127.0.0.1/e-shop/konzernlogo.png";
                        $filename="konzernlogo.png";
                        $handle fopen ($filename"rb");
                        while (!
                        feof($handle)) {
                           
                        $buffer fgets($handle4096);
                           
                        $contents.=$buffer;
                        }
                        fclose ($handle);
                        //echo $contents;
                        $sizearray_sum(count_chars ($contents));
                        //echo $size;

                        $fd fopen("test24.pdf""w");
                        $pdfdoc pdf_open($fd);
                        pdf_begin_page($pdfdoc400600);
                        $pdfimage pdf_open_image($pdfdoc"png""fileref"$filename$size508038"");
                        pdf_place_image($pdfdoc$pdfimage,1,5001);
                        pdf_end_page($pdfdoc);

                        pdf_close($pdfdoc);
                        fclose($fd);
                        ?>
                        so nicht (obwohl er mir Daten im $contents anzeigt):

                        PHP-Code:
                        <?php
                        $filename
                        ="https://127.0.0.1/e-shop/konzernlogo.png";
                        //$filename="konzernlogo.png";
                        $handle fopen ($filename"rb");
                        while (!
                        feof($handle)) {
                           
                        $buffer fgets($handle4096);
                           
                        $contents.=$buffer;
                        }
                        fclose ($handle);
                        //echo $contents;
                        $sizearray_sum(count_chars ($contents));
                        //echo $size;
                        $size=filesize($filename);

                        $fd fopen("test24.pdf""w");
                        $pdfdoc pdf_open($fd);
                        pdf_begin_page($pdfdoc400600);
                        $pdfimage pdf_open_image($pdfdoc"auto""fileref"$filename$size508038"");
                        pdf_place_image($pdfdoc$pdfimage,1,5001);
                        pdf_end_page($pdfdoc);

                        pdf_close($pdfdoc);
                        fclose($fd);
                        ?>
                        Hier mal die aktuelle Ausgabe:

                        PHP-Code:
                        Fatal errorPDFlib error: [1054PDF_open_image'__raw__image__data__' does not appear to be a PNG file in c:\webserver\www_ssl\e-shop\test.php on line 17 
                        Ich muss das aber unbedingt da rein haben.

                        Kommentar

                        Lädt...
                        X