PDF automatisiert erzeugen

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

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

    Kommentar


    • #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) !!! */
      ?>
      Zuletzt geändert von tim185; 27.05.2009, 19:43.

      Kommentar


      • #18
        Zitat von tim185 Beitrag anzeigen
        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?

        Kommentar


        • #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
          Zuletzt geändert von tim185; 28.05.2009, 06:19.

          Kommentar


          • #20
            Zitat von tim185 Beitrag anzeigen
            Wie genau der Header() aufgerufen wird kann ich dir nicht sagen
            Dann kann ich dir nicht weiter helfen.

            Kommentar


            • #21
              ahh ich habs,

              $this->AddPage();

              der befehl im function __construct ruft den header() und footer() auf.
              Zuletzt geändert von tim185; 28.05.2009, 08:39.

              Kommentar


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

                Kommentar


                • #23
                  ahh ich habs,

                  $this->AddPage();

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

                  Kommentar


                  • #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 =)
                    Zuletzt geändert von tim185; 28.05.2009, 09:07.

                    Kommentar

                    Lädt...
                    X