Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Netzwerkdrucker ansprechen? (https://www.delphipraxis.net/186403-netzwerkdrucker-ansprechen.html)

Rads 1. Sep 2015 06:57

Netzwerkdrucker ansprechen?
 
Guten Morgen zusammen,

ich beschäftige mich gerade mit dem Thema "Drucken mit Delphi" und hoffe dass ihr mir bei meinem Problem helfen könnt.

Delphi-Quellcode:
listbox1.items := printer.printers;
so kann ich alle verfügbaren Drucker ermitteln.

Gibt es eine Möglichkeit, einen Drucker über seine IP-Adresse auszuwählen (anzusprechen), der sich im Netzwerk befindet, ohne diesen neuen Druckertreiber auf der Maschine, auf der die Anwendung läuft, installieren zu müssen?

Oder wie kann ich alle verfügbaren Drucker, die einen/den gleichen Treiber haben, vermitteln und über die IP ansprechen?

Danke im Voraus für die Antworten..

nahpets 1. Sep 2015 08:14

AW: Netzwerkdrucker ansprechen?
 
Schau Dir bitte mal http://www.4craws.co.uk/9-winapieg/2...umprinters-api an, ist zwar kein Delphi, sollte aber verständlich sein.

Dort wird die Konstante PRINTER_ENUM_LOCAL genutzt.
Unter Delphi 7 findet man in der WinSpool.pas weitere Konstanten:
Delphi-Quellcode:
PRINTER_ENUM_DEFAULT    = $00000001;
PRINTER_ENUM_LOCAL      = $00000002;
PRINTER_ENUM_CONNECTIONS = $00000004;
PRINTER_ENUM_FAVORITE   = $00000004;
PRINTER_ENUM_NAME       = $00000008;
PRINTER_ENUM_REMOTE     = $00000010;
PRINTER_ENUM_SHARED     = $00000020;
PRINTER_ENUM_NETWORK    = $00000040;
Schau bitte mal, ob Du damit weiterkommst.

Sherlock 1. Sep 2015 08:33

AW: Netzwerkdrucker ansprechen?
 
Zitat:

Zitat von Rads (Beitrag 1314142)
Guten Morgen zusammen,

ich beschäftige mich gerade mit dem Thema "Drucken mit Delphi" und hoffe dass ihr mir bei meinem Problem helfen könnt.

Delphi-Quellcode:
listbox1.items := printer.printers;
so kann ich alle verfügbaren Drucker ermitteln.

Gibt es eine Möglichkeit, einen Drucker über seine IP-Adresse auszuwählen (anzusprechen), der sich im Netzwerk befindet, ohne diesen neuen Druckertreiber auf der Maschine, auf der die Anwendung läuft, installieren zu müssen?

Oder wie kann ich alle verfügbaren Drucker, die einen/den gleichen Treiber haben, vermitteln und über die IP ansprechen?

Danke im Voraus für die Antworten..

Hast Du irgendwo ein Programm gesehen, daß das kann? Ich kenne nur Programme, die installierte Drucker ansprechen. Wofür auch die Mühe? Das Windows Printing System macht seine Arbeit doch ganz gut. Wenn das Kundenforderung ist, verlang bitte mächtig viel Asche dafür.

Sherlock

Rads 1. Sep 2015 09:02

AW: Netzwerkdrucker ansprechen?
 
Zitat:

Schau Dir bitte mal http://www.4craws.co.uk/9-winapieg/2...umprinters-api an, ist zwar kein Delphi, sollte aber verständlich sein.
Danke für deine Antwort. ich schaue es mir an

@ Sherlock: Danke für deine Antwort.
Zitat:

Ich kenne nur Programme, die installierte Drucker ansprechen. Wofür auch die Mühe? Das Windows Printing System macht seine Arbeit doch ganz gut.
Ja.. ich weiß, dass Windows das nicht kann und Informationen für den Drucker braucht. Ich dachte es gäbe irgendwie eine Möglichkeit.
Zitat:

Wenn das Kundenforderung ist, verlang bitte mächtig viel Asche dafür
Ja.. Du hast recht!


..Und wie kann ich einen Drucker über die IP-Adresse ansprechen und zum Drucken verwenden?

CSI 1. Sep 2015 09:27

AW: Netzwerkdrucker ansprechen?
 
Hi,

so sende ich Daten übers Netz direkt an einen Etikettendrucker.
(wobei der Drucker seine eigene Drucker-Sprache hat)

Code:
     IdTCPClient1.Connect;
     try
       //stream erzeugen
       myStream := TMemoryStream.Create();
       try

         //stream füllen aus einem Memo
         MemoIP.Lines.SaveToStream(myStream);

         //stream senden
         myStream.Position := 0;
         IdTCPClient1.IOHandler.Write(myStream);
       finally
         myStream.Free;
       end;
     finally
       IdTCPClient1.Disconnect;
     end;
Solltest du den zu druckenden Inhalt, der normalerweise in den Druckerpuffer geht
in einen Steram umleiten können, sollte das funktionieren.
Hab's selbst noch nicht getestet.

In meinem Fall erstelle ich die Druckbefehle selbst.

franktron 1. Sep 2015 10:01

AW: Netzwerkdrucker ansprechen?
 
Damit sollte das vielleicht gehen https://de.wikipedia.org/wiki/Intern...nting_Protocol

Rads 1. Sep 2015 14:34

AW: Netzwerkdrucker ansprechen?
 
Zitat:

Damit sollte das vielleicht gehen https://de.wikipedia.org/wiki/Intern...nting_Protocol
Danke für den Link

Mal schauen, ob ich damit weiterkomme

Ich muss das nochmal besprechen, ob es sich das überhaupt lohnt...

Danke euch allen :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz