LAMP: verfügbare Drucker

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

  • LAMP: verfügbare Drucker

    Gibt es eine elegantere Möglichkeit, eine Liste der installierten/verfügbaren Drucker zu erhalten?

    Arbeite momemntan mit exec() wie folgt:
    PHP-Code:
     function getPrinters() {
            
    $this->printersInstalled = array();
            
    $lines = array();
            
    exec ("lpstat -t |grep printer |grep 'is idle'",$lines);
            foreach(
    $lines as $line) {
                
    preg_match_all("/printer ([a-z0-9]*) /",$line,$ma);
                if (
    count($ma[1])) {
                    
    $this->printersInstalled[] = $ma[1][0];
                }        
            }
        } 
    aber irgendwie scheint mir das etwas schwammig...
    chansel0049
    ----------------------------------------------------
    if you've reached the bottomline - dig further!
    Übersetzer gesucht? http://www.babelport.com

  • #2
    PHP-Code:
    function getPrinters() {
        
    $cmd "lpstat -p all | grep 'is idle' | awk '{printf(\"%s\n\", \$2)}'";
        
    $this->printersInstalled explode("\n"shell_exec($cmd));

    Ohne Gewähr.

    (Ich würde von einer get-Funktion erwarten, dass sie was zurückgibt.)

    Kommentar


    • #3
      da gab es zwar etwas für windows, aber vielleicht nützen dir die user notes: http://de2.php.net/printer

      Kommentar


      • #4
        Da steht nur, wie man unter Unix drucken kann, nicht wie man Drucker auflistet.

        Edit zu meinem obigen Post:
        Wenn auch busy printer erwünscht sind, den grep-Teil raus lassen.
        Wenn ein cupsd läuft, würde ich den nutzen. Dafür gibt es sicher fertige Scripte (bei Google).

        Kommentar


        • #5
          ich schätze, onemorenerd wird recht haben.

          Kommentar


          • #6
            Danke erstmal ...

            @onemorenerd:
            direkt an awk pipen liefert leider nichts zurück ... letzlich ist der Ansatz aber ja nur geringfügig anders ...

            Hab gerade gegoogelt aber nichts entsprechendes finden können zu CUPS , noch ein Tip?

            P.S. gemäß man kennt lpstat kein schlüsselwort all (sollte es vielleicht -a gewesen für accepting state oder einfach nur erzwungenes listen aller Drucker (da reicht -p aus))
            Zuletzt geändert von chansel0049; 11.07.2005, 17:46.
            chansel0049
            ----------------------------------------------------
            if you've reached the bottomline - dig further!
            Übersetzer gesucht? http://www.babelport.com

            Kommentar


            • #7
              wenn du cups installiert hast, findest du unter

              http://localhost:631/printers

              deine Drucker, incl. allen Stati, wie "bereit", "Papier alle", ...
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Kommentar


              • #8
                Die übliche Vielfalt unter Linux ... mein lpstat gibt bei -p nur den default printer aus, mit all bekomme ich alle.

                Für CUPS: http://www.cups.org/scripting.php erzählt was von PHP-Scripting-Support. Wie der genau aussieht, weiß ich nicht. (Falls du CUPS hast, schau mal ins Verzeichnis scripting.) Die Webseiten der Adminoberfläche zu parsen wäre noch mehr Aufwand als obiger Zweizeiler.

                Kommentar


                • #9
                  Danke, das hat geholfen ...
                  chansel0049
                  ----------------------------------------------------
                  if you've reached the bottomline - dig further!
                  Übersetzer gesucht? http://www.babelport.com

                  Kommentar

                  Lädt...
                  X