fpdf seite erstellen

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

  • fpdf seite erstellen

    hallo alle zusammen!

    Ich sitz schon tagelang rum und versuche mit php ein pdf-file zu erzeugen.
    Was ich dabei nicht auf die Reihe kriege ist folgendes:

    Ich möchte zum Bsp Zeugnisse eines Schülers aus einer Klasse aus der DB (mysql) aufrufen und als pdf ausgeben (zum drucken), dazu habe ich 2 Eingabefelder, wo ich mir die Klasse aussuche und dann den entsprechenden Schüler, dessen Zeugnisse angezeigt werden sollen. Die 2 vars übergebe ich an die php-Datei die dann auch das pdf generieren soll. Dort hab ich dann auch den DB-Aufruf mit den beiden Bedingungen (Klasse, Name), somit erhalte ich ein Array wo jede Zeile quasi ein Zeugnis repräsentiert. Mein Problem ist, dass jedes Zeugnis auf eine neue Seite soll und das jedes Datum (quasi jede Zelle einer Zeile) frei auf dem Pdf-File plaziert werden soll. Der Grund dafür sind Vordrucke, auf welche die Zeugnisse gedruckt werden sollen.

    Ich habe dazu noch nirgends was gefunden, was mir irgendwie ne Anregung gegeben hat, wie ich das anstellen kann.

    Ich wäre sehr dankbar wenn mir jemand helfen könnte.

    mfg Jericho

  • #2
    servus,
    man positioniert die Texte folgendermassen

    PHP-Code:
    pdf_set_font($pdfdoc"Helvetica"8"winansi"); //Schriftart etc.
    pdf_set_text_pos($pdfdoc60710); //Position (ausgehend von unten links
    pdf_show($pdfdoc"Text"); //hier steht dein Text 
    Anwälte in Vulkane werfen -
    Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

    Kommentar


    • #3
      Wenn du bei fpdf bleiben möchtest (was ich sehr löblich finde!) dann benötigst du andere Befehle.

      Wundere mich das du Tage daran sitzt, denn die Doku gibt doch alles her:
      SetXY für die Positionierung und z.B. Cell für dein Textfeld

      Die Befehle für Formatierungen lasse ich hier mal weg. Wie weit bist du denn? und wo sind deine fehler genau?
      ... und besucht mal den ebay(TM)-browser überhaupt: Lauge
      und damit das Fragen nen Ende hat: Der Progger davon sitzt mir gegenüber !

      Kommentar


      • #4
        Das Problem ist nicht das Platzieren selber, sondern das ich das Rückgabearray des DB-Aufrufs so zerpflückt bekomme, dass jede Zelle einer Zeile einer Variable zugeordnet wird, so das diese dann mit deinen beschriebenen Zeilen auf dem pdf-Dokument angeordnet werden können. Die Spalten sind meinetwegen der Name des Lehrers, das Fach usw, und jede Zeile ist dann ja ein Zeugnis dieses Schülers. Ich muss also die Zeilen auf die einzelnen pdf-Seiten aufteilen (ein Zeugnis = eine Pdf-Seite) und jeweils die einzelnen Spaltenwerte als Variable zur Verfügung haben.

        PHP-Code:
        $zeugnis_=mysql_db_query("****""select * from zeugnis where name='$schueler' and klasse='$klasse' order by ID"); 
        for (
        $i=0;$i<20;$i++){
        $_zeugnis=mysql_fetch_array($zeugnis_);
        $zeugnis=$_zeugnis[];} 
        Wenn ich in die [] jeweils die Zahl der Spalte der Tabelle Zeugnis schreibe, hab ich ja schonmal die Einzelnen Spalten. Dann muss ich irgendwie nur noch deren Zellen den Variablen zuordnen, wobei ja die jeweils oberste Zelle einen Wert hat, der auf die erste Pdf Seite soll, die 2te Zelle von oben dann aufs 2te pdf.Blatt usw...

        Oder kann ich irgendwie die Zellposition im Rückgabearry direkt ansprechen, so das ich bei der Ausgabe diese Position angebe und dann bei jeder neuen Seite halt die Position um eine Zeile erhöhe oder so??


        danke schonmal


        mfg Jericho

        Kommentar


        • #5
          oops hier muß noch etwas am proggen gefeilt werden:
          Zuletzt geändert von muecke0815; 17.11.2003, 12:18.
          ... und besucht mal den ebay(TM)-browser überhaupt: Lauge
          und damit das Fragen nen Ende hat: Der Progger davon sitzt mir gegenüber !

          Kommentar


          • #6
            du wirst nen fehler bekommen mit deiner for schleife, wenn du weniger als 20 zeilen zurückbekommst. also arbeite hier mit while (siehe doku!)

            und dein $_zeugnis enthält schon alles was du brauchst. jede Zelle bekommt sein Inhalt mit $_zeugnis["spaltenname"]. also z.b. $_zeugnis["SchuelerName"] oder $_zeugnis["EnglischNote"]. der inhalt ist dann in den jeweilgen cellen unterzubringen.

            prinzip:
            PHP-Code:
            $result mysql_query("select ... ") or die(mysql_error());
            while(
            $row mysql_fetch_array($result))
            {
                
            $pdf->AddPage(); //Beginne mit neuem Blatt
                
            $pdf->Cell(40,10,$row["Name"]);
                
            $pdf->Cell(50,50,$row["ENote"]);
                
            $pdf->Cell(40,100,$row["DNote"]);


            oder by ID macht doch keinen echten Sinn oder?
            Zuletzt geändert von muecke0815; 17.11.2003, 12:21.
            ... und besucht mal den ebay(TM)-browser überhaupt: Lauge
            und damit das Fragen nen Ende hat: Der Progger davon sitzt mir gegenüber !

            Kommentar


            • #7
              @muecke0815

              So wie du es beschrieben hast komm ich ans erste Zeugnis ran, d.h. ich kann damit die Daten der Spalten fürs erste Zeugnis anzeigen. (DNote...), oder hab ich was nicht geschnallt???
              In dem Array ($result) sind aber noch mehr Zeilen die jeweils ein weiters Zeugnis darstellen, die Spaltendaten der Zeilen sollen dann auch angezeigt werden und zwar jeweils auf ner neuen pdf-Seite, das heisst ich müsste im Array eine Zeile Weiter rutschen und auch ein neues pbf-Blatt dazu erzeugen lassen...

              Order by ID hat nur ne kleine Bedeutung, und zwar haste dann die Zeugnisse in chronologischer reihenfolge, so wie sie erstellt wurden. Man hat also nachm Drucken alle Zeugnisse in richtiger Reihenfolge.


              Danke schonmal muecke


              mfg Jericho

              Kommentar


              • #8
                um die zeile weiter rutschen brauchst du dich nicht kümmern!

                jeder weitere aufruf von mysql_fetch_array "rutscht" ne zeile tiefer. deshalöb auch die while schleife.
                ... und besucht mal den ebay(TM)-browser überhaupt: Lauge
                und damit das Fragen nen Ende hat: Der Progger davon sitzt mir gegenüber !

                Kommentar


                • #9
                  Jo danke, ich hab wiedermal viel zu kompliziert gedacht.

                  Ich habs gleich mal getestet, funtzt. Vielen lieben Dank für die schnelle Hilfe.

                  Jetzt muss ich nur noch meine ganzen Werte positionieren wegen diesem ollen Vordruck.

                  Dankeschön und bis zum nächsten Problem...

                  mfg Jericho

                  Kommentar

                  Lädt...
                  X