Andreas: speziellen Drucker anprechen

Hallo zusammen,

ich habe folgendes Problem.
Ich möchte ein kleines Tool schreiben das Edikette für Aufträge ausdrucken soll.

alles kein Problem, die Auftragsnr bekommt er, die Daten zu ziehen ist auch nicht das Problem.

Aber wie kann ich jetzt einen speziellen Drucker ansprechen?

zb.:
Es soll 3 Fraben geben.

Drucker 1 = rot
Drucker 2 = blau
Drucker 3 = gelb

ISt es möglich das ich nun direkt den Text an DRucker 2 abschick, und den Text an Drucker 1, usw...

ohne das der Dialog aufgeht und ich den Drucker wählen muss.

Es sind alles Netzwerkdrucker...

Welche möglichkeiten habe ich?

Danke schon mal im Vorraus.

Gruß

  1. Mahlzeit,

    Ich möchte ein kleines Tool schreiben

    Mit PHP?

    das Edikette für Aufträge ausdrucken soll.

    Du meinst nicht zufällig "Etiketten"?

    Aber wie kann ich jetzt einen speziellen Drucker ansprechen?

    Du willst mit einer serverseitig ausgeführten Skript einen speziellen Drucker, der am Client angeschlossen ist, auswählen und benutzen?

    ISt es möglich das ich nun direkt den Text an DRucker 2 abschick, und den Text an Drucker 1, usw...

    Wie willst Du mit einem PHP-Skript, das auf einem Server läuft, etwas direkt an einen Drucker, der am Client angeschlossen ist, senden?

    Welche möglichkeiten habe ich?

    Ich denke, Du solltest Dein Konzept noch einmal überdenken.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Mahlzeit,

      Ich möchte ein kleines Tool schreiben

      Mit PHP?

      Ja. noch nie ein Tool in PHP geschrieben?

      das Edikette für Aufträge ausdrucken soll.

      Du meinst nicht zufällig "Etiketten"?

      Richtig! Danke.

      Aber wie kann ich jetzt einen speziellen Drucker ansprechen?

      Du willst mit einer serverseitig ausgeführten Skript einen speziellen Drucker, der am Client angeschlossen ist, auswählen und benutzen?

      Wer hat gesagt das der Drucker am Client angeschlossen ist?

      ISt es möglich das ich nun direkt den Text an DRucker 2 abschick, und den Text an Drucker 1, usw...

      Wie willst Du mit einem PHP-Skript, das auf einem Server läuft, etwas direkt an einen Drucker, der am Client angeschlossen ist, senden?

      siehe oben

      Welche möglichkeiten habe ich?
      Ich denke, Du solltest Dein Konzept noch einmal überdenken.

      OK. Mach ich gerne.
      Welchen anderen Weg müsste ich den gehen um soetwas zu realisieren?

      Gruß

      P.S.:Hab grad zufällig was von php_printers.dll gelesen. Werde da mal weiter nachforschen, aber anscheinend kann man ja doch per PHP einen Druckauftrag verschicken, sowas aber auch!

      1. Mahlzeit,

        Ja. noch nie ein Tool in PHP geschrieben?

        Doch.

        Aber wie kann ich jetzt einen speziellen Drucker ansprechen?

        Du willst mit einer serverseitig ausgeführten Skript einen speziellen Drucker, der am Client angeschlossen ist, auswählen und benutzen?

        Wer hat gesagt das der Drucker am Client angeschlossen ist?

        Keiner. Aber ich hatte das vermutet, da Du weiter unten in Deinem Posting folgendes geschrieben hast:

        ohne das der Dialog aufgeht und ich den Drucker wählen muss.

        Dieser Dialog geht AFAIK meistens dann auf, wenn ich im Browser "Drucken" wähle - und das wäre dann eben Client-seitig.

        Welche möglichkeiten habe ich?
        Ich denke, Du solltest Dein Konzept noch einmal überdenken.

        OK. Mach ich gerne.
        Welchen anderen Weg müsste ich den gehen um soetwas zu realisieren?

        Also wenn Du auf Deinem Server mehrere Drucker angeschlossen hast, sollte es eigentlich möglich sein, mit PHP (das ja nichts anderers als ein auf dem Server ausgeführtes Programm ist) auf diesen Druckern zu drucken (die entsprechenden Rechte vorausgesetzt).

        P.S.:Hab grad zufällig was von php_printers.dll gelesen. Werde da mal weiter nachforschen, aber anscheinend kann man ja doch per PHP einen Druckauftrag verschicken, sowas aber auch!

        Natürlich kann man das. Deine Problembeschreibung war vielleicht einfach etwas missverständlich.

        Ich würde aber vermuten, dass eine php_printers.dll nur auf einem Windows-Server funktionieren wird ...

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hallo

          Keiner. Aber ich hatte das vermutet, da Du weiter unten in Deinem Posting folgendes geschrieben hast:

          ohne das der Dialog aufgeht und ich den Drucker wählen muss.

          Dieser Dialog geht AFAIK meistens dann auf, wenn ich im Browser "Drucken" wähle - und das wäre dann eben Client-seitig.

          Und _genau_ darunter schrieb er:

          Es sind alles Netzwerkdrucker...

          Und die sollten doch über ihre IP -und damit jeder einzeln identifizierbar- ansprechbar sein, oder?

          Tschö, Auge

          --
          Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
          (Victor Hugo)
          Veranstaltungsdatenbank Vdb 0.2
          1. Hello,

            Und die sollten doch über ihre IP -und damit jeder einzeln identifizierbar- ansprechbar sein, oder?

            Wenn sie über einen Server verwaltet werden, sind sie i.d.R einer Queue zugeordnet. Diese wiederum kann einen Kanal haben, der in die Queue schreibt. Das wäre der einfachere Weg.

            Ob man mit PHP auch direkt auf ein Druckermodul zugreifen kann, das dann direkt über TCP/IP mit dem Drucker spricht, habe ich noch nie ausprobiert.

            Harzliche Grüße vom Berg
            http://bergpost.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

      2. Hello,

        Wer hat gesagt das der Drucker am Client angeschlossen ist?

        Es ist vollkommen unerheblich, wo der Drucker physisch angeschlossen sit, wenn das Netzwerk nur die passenden Agents und Spooler (Print-Server) dafür zur Verfügung stellt. Dann kann ein Drucker, der am lokalen Arbeitsplatz angeschlossen ist, durchaus dem gesamten Netzwerk zur Verfügung stehen.

        anscheinend kann man ja doch per PHP einen Druckauftrag verschicken, sowas aber auch!
        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. Hello,

    Aber wie kann ich jetzt einen speziellen Drucker ansprechen?

    Indem Du diesen Drucker auf dem Host, auf dem PHP läuft, auch mit einem Kanal verbindest (eine Print_Queue anlegst und ihn dieser zuordnest). Das ist Sache des Netzwerkbetriebssystems.

    Dann kannst Du mit fopen('LPTX','w') diesen Kanal einfach öffnen und die Daten mit fwrite() einfach wegschreiben.

    Der Client bekommt davon gar nichts mit, wenn Du ihm nicht anschließend der Ordnung halber eine Nachricht in die Response packst.

    Es bietet sich aber an, diese Ausgabe durch einen abgetrennten Prozess im Hintergrund machen zu lassen, weil sie ein wenig dauern könnte, je nach Menge der zu druckenden Daten.

    Solange willst Du den Client ggf. nicht auf Antwort warten lassen.

    Mit den Print_Queue-Funktionen Deines OS kannst Du dann hinterher ggf. nachfragen, ob der Job erledigt wurde. Er müsste ja auch beim Absenden im Queue-Monitor auftauchen. Wenn Der User darauf Zugriff hat, kann er den befragen.

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  3. Hallo
    es gibt diverse Möglichkeiten einen Drucker anzusprechen, auch mit PHP
    Ich selbst habe es auch schon mit der "printer.dll" gemacht.
    Dies wird aber nicht mehr unterstützt und ist nur unter Windows verügbar.
    Wenn du also dein Script mal auf Linux portieren möchtest, geht das nicht mehr.
    Manche Drucker können auch direkt z.b. per FTP angesprochen werden.
    Es kommt also darauf an um was für einen Drucker es sich handelt.

    Gruss
    hawk