php-Seite druckfähig machen

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

  • php-Seite druckfähig machen

    Hallo,

    ich habe eine php-Seite, die eine Tabelle beinhaltet welche auf eine mySQL Datenbank zugreift. Diese Tabelle hat zur Zeit ca. 20 Spalten.

    Nun soll diese Tabelle ausgedruckt werden können (A4 / Querformat), aber da passt nicht die ganze Seite drauf und egal was im Druckmenü eingestellt wird, es will einfach nicht funktionieren dass er die Seite mit der kompletten Breite verkleinert auf einer Seite darstellt, sondern er druckt sie in Normalgröße aus und schneidet ab der 13. Spalte einfach ab (eine 2. Seite wird erst gar nicht gedruckt).

    Daher zunächst meine Frage: Wie bekomme ich sowas hin?

    Nach ein bischen rumsuchen habe ich auf die Schnelle folgende Möglichkeiten gefunden:

    1.) ausdrucken über "irgendeinen" php-code, der die Felder der mySQL Datenbank ausliest und ausdruckt
    => Hier habe ich keine wirklich hilfreichen Infos gefunden wie genau das passieren soll

    2.) die gewünschten Spalten in eine Exceltabelle importieren lassen und dann darüber ausdrucken
    => Da habe ich nur Anleitungen für MSSQL-Server und ODBC / Accessdatenbanken finden können

    3.) Export in eine pdf-Datei
    => Wobei ich mich zum Einen hierbei frage ob die pdf-Ansicht wirklich das gewünschte Ergebniss bringt und zum Anderen diese Möglichkeit bewusst auf Platz 3 verwiesen habe, da hierzu wohl noch die Installation eines pdf-creators o.ä. von Nöten ist

    Hat irgendjemand einen Tip für mich, welche Möglichkeit man hat, bzw. wie man am einfachsten eine Seite verkleinert / angepasst auf einer DIN A4 Seite quer ausdrucken kann?

  • #2
    1.) ausdrucken über "irgendeinen" php-code, der die Felder der mySQL Datenbank ausliest und ausdruckt
    PHP kann irgendwie nicht drucken...

    die gewünschten Spalten in eine Exceltabelle importieren lassen und dann darüber ausdrucken
    z.b. http://pear.php.net/package/Spreadsheet_Excel_Writer

    Export in eine pdf-Datei
    z.B. http://www.fpdf.de/ (PHP-Klasse) oder über http://www.htmldoc.org (Server-Komponente)
    Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

    Kommentar


    • #3
      Original geschrieben von eintrachtemil
      http://pear.php.net/package/Spreadsheet_Excel_Writer
      Muss man dazu irgendwelche PEAR-Klassen auf dem Server bzw. dem Ort des vorhandenen PHP5 installieren?

      Kommentar


      • #4
        Ok Frage hat sich schon erledigt, habe PEAR auf dem Server schon drauf :-)

        Kommentar


        • #5
          Beim durchstöbern der Links habe ich einen einfachen Code gefunden, den sogar ICH implementieren könnte / kann

          PHP-Code:
          <?php 
          $DatabaseHost 
          "localhost"
          $DatabaseUser "user"
          $DatabasePassword "password"
          $Database "mydatabase"
          $Table "Tabelle";

          header('Content-Type: text/x-csv');
          header('Expires: ' gmdate('D, d M Y H:i:s') . ' GMT');
          header('Content-Disposition: attachment; filename=download.csv');
          header('Pragma: no-cache');

          $DatabasePointer mysql_connect($DatabaseHost$DatabaseUser$DatabasePassword);
          mysql_select_db($Database$DatabasePointer);

          $ResultPointer mysql_query("SELECT lfd_nr, kat, rev FROM $Table");

          for(
          $i 0$Export ""$i mysql_num_rows($ResultPointer); $i++)
          {
              
          $Daten mysql_fetch_object($ResultPointer);

              
          $Spalte[] = str_replace("\"""\"\""$Daten->lfd_nr);
              
          $Spalte[] = str_replace("\"""\"\""$Daten->kat);
              
          $Spalte[] = str_replace("\"""\"\""$Daten->rev);
              
              for(
          $j 0$j count($Spalte); $j++)
              {
                  
          $Export .= "\"" $Spalte[$j] . "\"";

                  if(
          $j != count($Spalte)-1)
                  {
                      
          $Export .= ";";
                  }
              }
              
          $Export .= "\r\n";
              
          $Spalte "";
          }

          echo
          $Export;

          ?>

          Ich habe nun alle Daten von Zeile 3-7 und 23-25 angepasst ... aber es wird nur ein leeres Excelblatt geöffnet, und keine Daten exportiert, trotz richtiger Angabe der Tabellen bzw. Datenbankfeldnamen (Spalte1 => name ; Spalte2 => adresse usw...)

          Wo muss ich eventuell noch was anpassen AUSSER "Spalte1" umzubenennen?


          PHP-Code:
          $Spalte[] = str_replace("\"""\"\""$Daten->lfd_nr);
          $Spalte[] = str_replace("\"""\"\""$Daten->kat);
          $Spalte[] = str_replace("\"""\"\""$Daten->rev); 
          Muss hier was in die eckige Klammer bei $Spalte[ ] ? Oder bei der str_replace-Teil ?

          Kommentar


          • #6
            Auch diese Frage hat sich mittlerweile erledigt !

            Kommentar


            • #7
              Dann wäre es schön zu wissen, warum es sicher erledigt hat.
              Will heissen, was hast Du geändert um zu Lösung zu kommen.
              Ist mit Sicherheit für andere die ggf. vor dem selben Problem stehen hilfreich seine Lösung hier zu posten.


              Gruß

              Michael
              Gruß

              Michael

              Kommentar


              • #8
                Tja wenn ich das wüsste...
                keine Ahnung warum er mir vorher immer ein leeres Blatt präsentiert hat, mittlerweile füllt er das Blatt jedenfalls komplett mit Daten, wenn auch auf eine art und weise die ich so nicht möchte aber das ist ein anderes Problem und habe ich hier gepostet.

                Kommentar


                • #9
                  Poste einfach mal den Code mit dem Du das jetzt machst und dann reicht das schon.
                  Gruß

                  Michael

                  Kommentar


                  • #10
                    Original geschrieben von fritzje610
                    Poste einfach mal den Code mit dem Du das jetzt machst und dann reicht das schon.
                    Das ist exakt der selbe Code... ich habe nichts dran geändert!
                    Darum bin ich ja so verdutzt ...

                    Kommentar

                    Lädt...
                    X