PDF automatisiert erzeugen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Du verwendest $this->empf1 im Konstruktor? Zu diesem Zeitpunkt ist es nämlich noch nicht gesetzt.

    Comment


    • #17
      Ok, sry hier nochmal der überarbeitete Code

      empf1 wird eigentlich erst im Header() benutzt.

      PHP Code:


      <?php

      define
      ("FPDF_FONTPATH","fpdf16/font/");
      include_once(
      'fpdf16/fpdf.php');


      // unsere Testklasse erbt von der FPDF-Klasse

      class Testklasse01 extends FPDF {

          
      // hier werden die Variablen für diese Klasse deklariert (also: "bekanntgemacht")

          
      private $empf1 "";
          public function 
      addempf1$name ) { $this->empf1 $name; }

          
      // der Konstruktor dieser Klasse

          
      function __construct() {

              
      // Konstruktor der vererbenden Klasse aufrufen (also den von FPDF)

              
      parent::__construct("P""mm""A4"); // L=Querformat(Landscape), P=Hochformat(Portrait)

              // hier werden die Variablen dieser Klasse initialisiert (also: "gefüllt")

          
      $this->header4 "Telefon: (0)1805-012815 (0,14€/Min*)";
          
      $this->header5 "Telefax: (0)1805-012816 (0,14€/Min*)";
          
      $this->header6 "eMail: Support@X.com";
          
      $this->header7 "Kundennummer: 1033669";
          
      $this->header8 "Rechnungsnummer: 100369";
          
      $this->header9 "Datum:";
          
      $this->datum date("d.m.Y");
          
      $this->rechnung "Rechnung:";
          
      $this->text1 "Sehr geehrter Herr X,";
              
      $this->text2 "wir freuen uns Sie als neuen Kunden begrüßen zu dürfen!";
              
      $this->text3 "Ihre 14 Tägige Testphase ist heute abgelaufen, daher haben wir Ihren Vertrag, wie auf unserer Seite";
              
      $this->text4 "beschrieben, in den \"Standart\"-Tarif gewechselt. Nachfolgend erhalten Sie Ihre Rechnung,";
              
      $this->text5 "wir werden den Betrag (";
              
      $this->gesamtpreisx "95,40 Euro";
              
      $this->text6 ") die nächsten Tage von Ihrem Konto abbuchen. Bitte sorgen Sie";
              
      $this->text7 "dafür dass Ihr Konto ausreichend gedeckt ist, um unnötige Chargeback Kosten zu vermeiden! Die im";
              
      $this->text8 "Falle eines Chargebacks entstehenden Bankgebühren (15,00 Euro) müssten wir Ihnen ansonsten";
              
      $this->text9 "zusätzlich berechnen.";
              
      $this->text10 "Ihr X.com Team";
          
      $this->rdatum "Datum:";
          
      $this->rleistung "Leistung:";
          
      $this->rpreis "Preis:";

              
      $a date("d.m.Y"); $b date("d.m"); $c date("Y"); $c++;
              
      $implode1 = array($b$c); $datumende implode("."$implode1);
              
      $implode2 = array($a$datumende); $datum2 implode(" - "$implode2);
              
      $this->datum2 $datum2;

          
      $this->leistung1 "Vermietung eines \"Recorder Standart\"-Servers";
          
      $this->leistung2 "für jeweils 1 Jahr (12 x 6,68)";

              
      $this->preisomwst "80,16 Euro";
              
      $this->mwst "15,23 Euro";
              
      $this->preisgesamt "95,40 Euro";
              
      $this->textmwst "Zzgl. 19% MwSt.:";
              
      $this->gesamtpreis "Gesamtpreis:";
              
      $this->umstid "UmSt-ID: Beantragt";
              
      $this->hra "HRA XX";
              
      $this->hra2 "Amtsgericht ...";


              
      // Einstellungen für das zu erstellende PDF-Dokument

              
      $this->SetDisplayMode(100);      // wie groß wird Seite angezeigt(in %)

              // Seite erzeugen (sozusagen: starten)

              
      $this->AddPage();
          }

          function 
      Header() {

          
      // Hintergrund

              
      $this->Image('bg.png'00);

          
      // eine Funktion zur Anzeige des Inhalts

              
      $this->SetFont("Arial","","10");
              
      $this->SetTextColor(000000000);
              
      $this->SetXY(24.545.5);
              
      $this->Cell(9010$this->empf1); // empf1 wird hier benutzt
                                                        // empf1 wird hier benutzt
                                                        // empf1 wird hier benutzt
                                                        // empf1 wird hier benutzt
                                                        // empf1 wird hier benutzt

              
      $this->SetFont("Arial","","10");
              
      $this->SetTextColor(000000000);
              
      $this->SetXY(24.545.5);
              
      $this->Cell(9019$this->abs2);


          }


          function 
      Footer() {

          }}




      mysql_connect("localhost","X","X") or die ("keine Verbindung möglich! Benutzername oder Passwort sind falsch");
      mysql_select_db("user") or die ("Die Datenbank existiert nicht.");

      // noch die auswahlkriterien überarbeiten!
      // noch die auswahlkriterien überarbeiten!
      // noch die auswahlkriterien überarbeiten!
      // noch die auswahlkriterien überarbeiten!
      // noch die auswahlkriterien überarbeiten!
      // noch die auswahlkriterien überarbeiten!

      $news_sql "SELECT id FROM user WHERE rechnungstatus = '0' ORDER BY id DESC";
      $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
      while (
      $row mysql_fetch_array($news_resultMYSQL_NUM))
      {
      $idausdb[] = $row[0];}

      $news_sql "SELECT vorname FROM user WHERE rechnungstatus = '0' ORDER BY id DESC";
      $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
      while (
      $row mysql_fetch_array($news_resultMYSQL_NUM))
      {
      $vornameausdb[] = $row[0];}

      $news_sql "SELECT servername FROM user WHERE rechnungstatus = '0' ORDER BY id DESC";
      $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
      while (
      $row mysql_fetch_array($news_resultMYSQL_NUM))
      {
      $servernameausdb[] = $row[0];}

      $anzahl count($idausdb);

      $news_sql "SELECT rechnungsnummer FROM user ORDER BY rechnungsnummer DESC";
      $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
      while (
      $row mysql_fetch_array($news_resultMYSQL_NUM))
      {
      $rechnungsnummerausdb[] = $row[0];}

      $rechnungsnummer $rechnungsnummerausdb[0];

      $a 0;

      while(
      $a $anzahl)
      {


      $rechnungsnummer++;

      $pdf = new Testklasse01();
      $pdf->addempf1"blub" );
      $pdf->Output(); // "$servernameausdb[$a]$a$a$anzahl$rechnungsnummer.pdf"

      $sql "UPDATE user SET
      `rechnungsnummer` = '" 
      $rechnungsnummer "',
      `rechnungname` = '" 
      $servernameausdb[$a] . $a $a $anzahl $rechnungsnummer "'
      WHERE id='"
      $idausdb[$a] ."'";
      $db_erg mysql_query$sql );

      $a++;

      }





      /* ACHTUNG: darf kein einziges Leerzeichen hinter phpend sein (wegen header) !!! */
      ?>
      Last edited by tim185; 27-05-2009, 19:43.

      Comment


      • #18
        Originally posted by tim185 View Post
        empf1 wird eigentlich erst im Header() benutzt.
        Aber Header() rufst du überhaupt nicht auf. Da du trotzdem merkst, dass empf1 leer ist, scheint die Parent-Klasse diese Methode aufzurufen. Wann genau geschieht das, bei der Konstruktion oder beim Output()?
        Oder wird Header() überhaupt nicht aufgerufen? Wie stellst du denn fest, dass empf1 leer ist?

        Comment


        • #19
          Wie genau der Header() aufgerufen wird kann ich dir nicht sagen da es ein fertigscript ist was ich nur bearbeitet (andere würden sagen geschändet ^^) habe.

          Aber das ist auf jedenfall der komplette code!

          Also zB.

          PHP Code:

                  $this
          ->SetFont("Arial","","10");
                  
          $this->SetTextColor(000000000);
                  
          $this->SetXY(24.545.5);
                  
          $this->Cell(9019$this->header4); 
          wird ja ausgegeben da kommt zB. wie weiter oben definiert:

          Telefon: (0)1805-012815 (0,14€/Min*)

          PHP Code:

                  $this
          ->SetFont("Arial","","10");
                  
          $this->SetTextColor(000000000);
                  
          $this->SetXY(24.545.5);
                  
          $this->Cell(9019$this->empf1); 
          hier müsste ja eigentlich "blub" angezeigt werden in der pdf aber es wird halt nichts angezeigt der bereich ist leer.

          -----

          Wenn ihr mir nicht glaubt... ich hab einfach mal die datei gezipt und hochgeladen ( die DB abfragen hab ich rausgenommen ) wenn ihr die testklasse01.php startet werdet ihr eine .pdf sehen allerdings fehlt der Name oben beim empfänger da müsste ja theoretisch "blub" stehen:

          http://mdrtest.md.funpic.de/rechnung.rar
          Last edited by tim185; 28-05-2009, 06:19.

          Comment


          • #20
            Originally posted by tim185 View Post
            Wie genau der Header() aufgerufen wird kann ich dir nicht sagen
            Dann kann ich dir nicht weiter helfen.

            Comment


            • #21
              ahh ich habs,

              $this->AddPage();

              der befehl im function __construct ruft den header() und footer() auf.
              Last edited by tim185; 28-05-2009, 08:39.

              Comment


              • #22
                Mach halt mal ein echo in Konstruktor, Header() und Output().

                Comment


                • #23
                  ahh ich habs,

                  $this->AddPage();

                  der befehl im function __construct ruft den header() und footer() auf.

                  Comment


                  • #24
                    JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

                    JAAAAAAAAAAAAAAAAAAa

                    JAAAAAAAAAAAAAAAAAAAAAAAAAA

                    ich habs !!!!


                    DANKE DANKE DANKE !!! ohne euch wäre ich nie drauf gekommen !!!!!!!!!!!!!!!!!!!!!!!!!!!

                    PHP Code:

                    ich erzeuge den header und footer nu einfach später

                    public function addpag(){ $this->AddPage(); } 
                    PHP Code:

                    $pdf 
                    = new Testklasse01();
                    $pdf->addempf1"blub" );
                    $pdf->addpag();
                    $pdf->Output(); 
                    JAAAA, danke =)
                    Last edited by tim185; 28-05-2009, 09:07.

                    Comment

                    Working...
                    X