Ankündigung

Einklappen
Keine Ankündigung bisher.

html2fpdf: variable Textdateien formatieren

Einklappen

Neue Werbung 2019

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

  • html2fpdf: variable Textdateien formatieren

    Ahoi. Hoffe ich habe ein Fortgeschrittenen-Thema:
    Der User soll über entsprechende Skripte und MySQL-Abfragen Dateien (einer Zeitungsausgabe) ankreuzen und als PDF ausgeben können. Die entsprechenden Textdateie-Namen werden per Array in ein html2pdf-Script übergeben und es werden auch alle gewünschten Dateien als PDF ausgegeben.
    Aber wie formatiere ich diese Seiten? Spalten, Textausrichtung (innerhalb einer Cell) usw.? Bislang werden die Dateien nur einspaltig und linksbündig ausgegeben. Lediglich die Schriftgröe kriege ich hin.
    Die Befehle innerhalb von html2fpdf kenne ich ein wenig und kann sich auch anwenden - allerdings nur vor der Schleife, mit der die Textdatei-Namen eingelesen werden.
    Ich schaffe es nicht, hinter den (zweiten) Aufruf "for ($i = 0; $i ..." weitere Befehle zur PDF-Gestaltung einzugeben oder - anders versucht - in den Aufruf $pdf->Cell(x,y,'text',0,1,'R'); als Text das Textarray einzulesen.

    Was mache ich falsch? Geht eine weitere Seitengestaltung vielleicht gar nicht mit dynamischen Elementen? Muss ich alles in der Quell-TXT-Datei per HTML formatieren?

    Hier die wichtigen Teile des Codes:

    Code:
    $arrayName = $mein_array;
    $arrayLength = count($arrayName);
    
      for ($i = 0; $i < $arrayLength; $i++){
      //hier muss ich ein Fragezeichen hinter den Dateinamen entfernen :-(
    			$test44 = substr($arrayName[$i], 0, -1);
    			
    			$htmlFile = $test44;
    			$file = fopen($htmlFile,"r");
    			$size_of_file = filesize($htmlFile);
    			$buffer = fread($file, $size_of_file);
      }
    
    fclose($file);
    $pdf=new HTML2FPDF();
    $pdf->AddPage();
    
    $pdf->SetFont('Times','',12);
    
    // hier m?sste wohl ein Cell-Aufruf rein
    //der als Text die Variabel $buffer oder $test44 enth?lt
    //$pdf->Cell(x,y,$buffer,0,1,'R'); liefert Mist
    
    for ($i = 0; $i < $arrayLength; $i++){
    
    	$pdf->WriteHTML($buffer);
    }
    $pdf->Output();
    
    ?>

  • #2
    Wie wäre es mit MultiCell() als Alternative ?

    Kommentar


    • #3
      Zitat von CIX88
      Wie wäre es mit MultiCell() als Alternative ?
      Es bleibt auch bei Multicell die Frage, wie ich als Textvariabel die Schleife reinbekomme, die die Textdateien einliest.

      $pdf->MultiCell(x, y, $text , 0, r, 0);

      Unter $text müsste ja jetzt die Schleife "for ($i = 0; $i ..." rein, damit das Array der Dateinamen eingelesen werden kann.
      Theoretisch müsste ich den MultiCell-Aufruf teilen, nach dem Motto:

      $pdf->MultiCell(x, y,
      for ($i = 0; $i ...
      , 0, r, 0);

      Aber da meckert php natürlich. Lässt sich das vielleicht als Funktion definieren, die dann alt $text übergeben werden kann?

      Kommentar


      • #4
        Es bleibt auch bei Multicell die Frage, wie ich als Textvariabel die Schleife reinbekomme, die die Textdateien einliest.
        Hmm, ganz einfach $text .= ....

        Und dann MultiCell() ... $text ...

        Kommentar


        • #5
          Code:
          $text .= ....
          MultiCell() ... $text ...
          Etwa so? Kommt aber ein Fehler. Muss die Schleife in Anführungsstriche? Klappt auch nicht. Multicell-Aufruf nach der abschließenden Schleifenklammer klappt auch nicht ...

          $text .= for ($i = 0; $i < $arrayLength; $i++){;
          $pdf->MultiCell(x, y, $text , 0, r, 0);
          $pdf->WriteHTML($buffer);

          }

          $pdf->Output();


          Ergänzung:

          Ich glaube ich habe es:
          $txt = '';
          for ($i = 0; $i < $arrayLength; $i++) {
          $pdf->MultiCell(x, y, $txt , 0, r, 0);
          $pdf->WriteHTML($buffer);
          }


          Danke ersteinmal


          Noch ne Ergänzung:
          Klappt doch nicht.
          Jetzt wird immer ein und dieselbe Textdatei ausgegeben und nicht die Schleife. Mit der Klammer stimmt wohl etwas nicht. Suche weiter nach einer Lösung.

          Kommentar

          Lädt...
          X