Ankündigung

Einklappen
Keine Ankündigung bisher.

php Bild aas mysql DB als PDF drucken (tcpdf)

Einklappen

Neue Werbung 2019

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

  • php Bild aas mysql DB als PDF drucken (tcpdf)

    Hallo zusammen,
    Ich habe ein kleines Problem.
    Ich möchte mir ein PDF Formular bauen das ich als PDF Drucken möchte.

    Das Klappt auch schon ganz gut mit tcpdf

    Aber Ich habe iene Unterschrift in einer DB mit Format blob gespeichert, das Bild ansehen klappt, so bald ich es aber an tcpdf übergebe kommt nicht an und es kommt zu den Fehler
    "TCPDF ERROR: Some data has already been output, can't send PDF file"

    Hat da jemand ein Erfahrung oder eine Idee?

    Bild as der DB holen
    und anzeigen

    PHP-Code:

    <?php

    require_once "../function/db_verbindung.php";



     
    $q_data $mysqli->query("SELECT * FROM ticket_unterschrift WHERE ST_NUMMER = '$ST_NUMMER'");
                        if (
    mysqli_num_rows($q_data) == 0){
                            
    $unterschrift ="keine Unterschrift Vorhanden";
                        }  else {   


    while(
    $row $ergebnis->fetch_array()) {
    $image =$row"UNTERSCHRIFT"] ;    
    $DATUM =$row["DATUM"] ;

    }


        
    $unterschrift "<div id='servicebericht-unterschrift'>"
            
    "<h3>Unterschrift<hr width= '100%'></h3>"
            
    "<img src="" . $image . "" width='400' height='90'>"
            
    "<br>"
            
    "<p style='font-size:10px'>$DATUM</p>"
            
    "<div>";
                        }
       
    ?>
    Bild als PDF Drucken

    PHP-Code:

    <?php
    $ST_NUMMER 
    =201117142022;


    include (
    "./function/function_unterschrift.php");


    $unterschrift ='<img src="'$image .'">';
    $unterschrift2  base64_decode($image);

    echo 
    $unterschrift;

    //$pdf->Image($image, 18, "", 174, 0, '', '', 'N', false, 300, '', false);

    //$html .= nl2br($unterschrift3);

     
    $html ="test";


     require_once(
    'tcpdf/tcpdf.php');

    // Erstellung des PDF Dokuments
    $pdf = new TCPDF(PDF_PAGE_ORIENTATIONPDF_UNITPDF_PAGE_FORMATtrue'UTF-8'false);

    // Dokumenteninformationen
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor('JP');
    $pdf->SetTitle('Servicebericht');
    $pdf->SetSubject('Servicebericht');

    $pdfName "test2.pdf";

    // Header und Footer Informationen
    $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN''PDF_FONT_SIZE_MAIN));
    $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA''PDF_FONT_SIZE_DATA));

    // Auswahl des Font
    $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

    // Auswahl der MArgins
    $pdf->SetMargins(PDF_MARGIN_LEFTPDF_MARGIN_TOPPDF_MARGIN_RIGHT);
    $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
    $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

    // Automatisches Autobreak der Seiten
    $pdf->SetAutoPageBreak(TRUEPDF_MARGIN_BOTTOM);

    // Image Scale
    $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

    // Schriftart
    $pdf->SetFont('dejavusans'''7);

    // Neue Seite
    $pdf->AddPage();

    // Fügt den HTML Code in das PDF Dokument ein
    $pdf->writeHTML($htmltruefalsetruefalse'');

    //Ausgabe der PDF

    //Variante 1: PDF direkt an den Benutzer senden:
    $pdf->Output('test.pdf''I');

    //Variante 2: PDF im Verzeichnis abspeichern:
    //$pdf->Output(dirname(__FILE__).'/'.$pdfName, 'F');
    //echo 'PDF herunterladen: <a href="'.$pdfName.'">'.$pdfName.'</a>';

  • #2
    PHP-Code:
    echo $unterschrift
    Die Fehlermeldung sagt das ja eigentlich aus. Du gibst vor dem Kreieren des PDFs etwas aus, was nicht geht. Wenn du das echo rausnimmst sollte es gehen.

    Kommentar


    • #3
      Nein es geht leider auch ohne „echo“ nicht
      hatte ich auch schon
      Hier hab ich nur mal getestet ob ob das Bild anzeigt wird.

      Kommentar


      • #4
        Du hast irgendwo eine Ausgabe. Vielleicht auch ein Leerzeichen oder ein newline vor dem <?php

        Kommentar


        • #5
          und in deinem include ist ganz sicher auch keine Ausgabe?

          PHP-Code:
          include ("./function/function_unterschrift.php"); 
          Ansonsten könnte auch hier das Problem liegen, gibt
          PHP-Code:
          $pdf->writeHTML($htmltruefalsetruefalse''); 
          Vielleicht schon Code aus?

          Ansonsten wie steuerst du die Seite denn an? ich vermute die ist in ein anderes Projekt eingebettet? werden hier vielleicht schon vorher eine Kopfzeite oder eine Navigation ausgegeben?

          Kommentar


          • #6
            Ne, ->writeHTML ist eine Funktion von TCPDF und gibt nichts aus.

            Kommentar


            • #7
              In der function_unterschrift ist zwar eine Ausgabe drin, die nutze ich aber bei meiner Fehlersuche nicht. Ich suche schon länger ind deshalb habe ich alles rusgeschmissen, Bilder Ausgabe läuft, nur wenn ich die Daten aus der DB übergebe kommt es zu den Fehler.
              Andere Übergabe laufen als PDF, habe Tabellen usw. als PDF gedruckt das läuft auch, habe jetzt alles ausgeklammert und nur noch die Unterschrift drin ist.

              Kommentar


              • #8
                Wir können dir leider nicht mehr sagen als dass irgendwo etwas drin sein muss. Wie gesagt kann es auch einfach ein Leerzeichen vor <?php sein. Oder <?php erst auf der zweiten Linie.

                Am besten schmeisst du alles raus was du hast und lässt nur die pure PDF-Erstellung drin. Und dann bindest du Schritt für Schritt deine Sachen wieder ein, damit solltest du den Fehler eigentlich eingrenzen können. Wenn du wirklich irgendwo einen output hast wäre es noch eine Variante einfach $pdf->Output() rauszunehmen und zu schauen was dir angezeigt wird.

                Kommentar


                • #9
                  Dann zeig uns wie dein Code jetzt aussieht. Wenn TCPDF sich über eine Ausgabe beschwert, dann ist dort sehr wahrscheinlich auch eine Ausgabe.

                  Kommentar


                  • #10
                    tja ... was soll ich schreiben das Leerzeichen vor dem "<?php" war es gewesen in der function.
                    Ich kann euch nur danken für den Tipp, ich wäre da im Winter 2027 erst draufgekommen.

                    Herzlichen Dank !!

                    Kommentar

                    Lädt...
                    X