Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] FPDF Problem

Einklappen

Neue Werbung 2019

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

  • [Erledigt] FPDF Problem

    Hallo zusammen
    ich habe ein hoffentlich nur kleines Problem.
    Ich erstelle mittels fpdf eine PDF datei aus einer mysql Datenbank.
    Solange es wenige datensätze sind klappt alles wunderbar.
    sobald aber so viele datensätze vorhanden sind das diese nicht mehr auf eine seite passen, sieht es so aus:
    erste seite komplett gefüllt und bei jedem weiteren datensatz macht er eine neue seite wo in der ersten zeite ein neuer datensatz steht und dann die nächste seite mit nur einem datensatz.
    er soll aber einfach die zweite seite füllen dann die dritte usw.
    weiß jemand wie ich das ralisieren kann?
    falls der quellcode benötigt wird werde ich ihn posten.
    danke schonmal für eure hilfe

  • #2
    Ich würde einfach mal nach „fpdf table multiple pages“ oder so suchen. Dort findest du sicher funktionierende Ansätze, die du als Vorlage nehmen kannst.

    Kommentar


    • #3
      Hi danke erstmal für deine schnelle antwort.

      also muss ich das mit tabellen machen?
      lese die daten über eine while-schleife aus und mache immer nur ne neue zeile

      PHP-Code:
      while($eur_aus=mysql_fetch_object($get_eur_aus)){
              
      $get_laufnr=mysql_query("SELECT laufnr FROM euer WHERE ID='$eur_aus->ID'");
              
      $laufnr=mysql_fetch_object($get_laufnr);
              
      $timestamp=strtotime($eur_aus->datum);
              
      $datum=date("d.m.Y",$timestamp);
              
      $pdf->SetXY(20,$abstand);
              
      $pdf->Cell(30,10,$datum,1,0,'C');
              if(
      $laufnr->laufnr!='0'){
                  
      $pdf->Cell(20,10,$laufnr->laufnr,1,0,'C');
              }
              else{
                  
      $pdf->Cell(20,10,'-',1,0,'C');
              }
              
      $pdf->Cell(40,10,utf8_decode($eur_aus->zweck),1,0,'C');
              
      $pdf->Cell(40,10,utf8_decode($eur_aus->grund),1,0,'C');
              
      $pdf->Cell(40,10,number_format($eur_aus->betrag,2,",",".").' EUR',1,0,'R');
              
      $abstand=$abstand+10;
              
      $ausgaben=$ausgaben+$eur_aus->betrag;
          } 

      Kommentar


      • #4
        Oh, sorry. Ich dachte, du redest von Tabellen. Weiß gerade nicht, wie ich darauf komme.

        Das Problem dürfte sein, dass $abstand irgendwann einen Wert annimmt, der so groß ist, dass er nicht mehr auf eine Seite passt. FPDF wird den Inhalt dann wohl auf die nächste Seite verschieben. Beim nächsten Schleifendurchlauf ist $abstand dann noch mal 10 höher, was natürlich dann wieder nicht auf eine Seite passt, weshalb wieder eine neue Seite angelegt wird. Das wiederholt sich dann.

        Ich kann dir spontan nicht sagen, wie du das behebst, aber es dürfte in FPDF wohl irgendwas geben, das etwa die aktuelle Seite liefert oder die maximale Höhe einer Seite. Über die Informationen solltest du den Punkt ermitteln können, an dem du $abstand zurücksetzen musst.

        Kannst testweise in der Schleife einfach mal einen Counter mitlaufen lassen und immer dann $abstand wieder auf 0 setzen, wenn der Counter durch 5 teilbar ist oder so (Modulo).

        Notfalls einen passenden Wert hardcoden. Das sollte aber eleganter gehen.

        Die mysql-Erweiterung ist zudem veraltet. http://php-de.github.io/jumpto/faq/#deprecated-mysql

        Und deine Query in der Schleife müsstest du auch über einen JOIN lösen können.

        Kommentar


        • #5
          Jo vielen danke. hab jetzt
          PHP-Code:
          if($abstand%270=0){
          $pdf->AddPager();
          $abstand=20
          das klappt

          Kommentar

          Lädt...
          X