![]() |
Netzwerkdrucker druckt nicht
Ich habe hier folgenden Code :
Delphi-Quellcode:
Der Drucker, der an der Workstation dran ist druckt von da aus. Von einem anderen Rechner, bei dem der Netzwerkdrucker als Standarddrucker eingerichtet ist, wird nicht gedruckt.
var d : Text;
PROCEDURE DruckLn (st : string); BEGIN writeln (d,st); END; procedure TForm1.FormShow(Sender: TObject); begin showmessage ('ÄÄÄÄ'); assignfile (d,'LPT1:'); rewrite (d); druckln ('kjljljll'); closefile (d); end; |
Re: Netzwerkdrucker druckt nicht
Muß da mal endlich weiterkommen.
Delphi-Quellcode:
Das geht ja wohl sowieso nicht. LPT1: ist lokal vorhanden. Was muß nun da hin im Netzwerk ? Wie wäre es z.B. auch bei USB und wenn es auch nur lokal ist ?
assignfile (d,'LPT1:');
Soll ich vielleicht einen PrintDialog einsetzen ? |
Re: Netzwerkdrucker druckt nicht
Zitat:
|
Re: Netzwerkdrucker druckt nicht
niemand schreibt hier ungestraft *writeln* :P
Readln und Writeln stammen ja noch aus (DOS)-Zeiten, als Pascal Ausgaben an der Console erfolgten, deshalb ist meines Wissens die *Druckerauswahl* auf (COM:, CON: und LPT: Ports beschränkt). Als *Workaround* kannst Du versuchen, einen LPT-Port auf einen Netzwerkdrucker zu mappen. Unter der (DOS)-Eingabeaufforderung mit NET USE. z.B. wenn der Netzwerkdrucker an einem anderen PC-(Server) hängt mit: net use LPT2: \\Computername\Druckername oder wenn der Drucker an einem Printserver hängt mit: net use LPT2: PrintserverIP\DruckerID Allerdings mußt Du das ganze per BATch-Datei per Autostart an der jeweiligen Arbeitsstation automatisieren, wenn es eine Dauerhafte Lösung sein soll. Das ganze ist ziemlich Fehlerträchtig und kompliziert zu administrieren! :roll: --- Eine bessere Lösung ist, einen Reportgenerator zu benutzen, oder gleich mit dem TPrinter.Canvas von Delphi zu arbeiten. Grüße |
Re: Netzwerkdrucker druckt nicht
Zitat:
net use LPT2: \\Computername\Druckername Scheint so zu gehen, aber nicht aus meinem Delphi Programm. Gebe ich "Net use..." von Hand ein, so kommt die Meldung: erfolgreich. Und mit dem Canvas, das mache ich ungefähr so :
Delphi-Quellcode:
Geht lokal auch. Und die Administration dürfte per ShellExecute wohl auch kein großes Problem sein.
PROCEDURE Breitschrift;
BEGIN Printer.Canvas.Font.Size := 20; END; |
Re: Netzwerkdrucker druckt nicht
Hallo Hansa,
dieses Problem hatte ich auch. In dieser Form funktioniert der Druck auf einem Netzwerkdrucker einwandfrei. Vorraussetzung ist das der Drucker auf der Workstation installiert ist.
Delphi-Quellcode:
Mit der API- Funktion
//sPfad=c:\MeinOrdner, sDatei=MeineDatei, sDrucker= \\MeinPrintServer\HPLaserjet
procedure DruckeDatei(sPfad, sDatei, sDrucker : String); var Read : Integer; Port, Datei : File; buffer: array [1..128] of Char; begin if FileExists((sPfad + sDatei) then begin AssignFile(Datei,sPfad + sDatei); // Datei zum Drucken angeben Reset(Datei,1); AssignFile(Port, sDrucker); // Drucker zurordnen Rewrite(Port, 1); repeat BlockRead(Datei, buffer, SizeOf(buffer), Read); BlockWrite(Port, buffer, Read); // Application.ProcessMessages; until EOF(Datei) or (Read <> SizeOf(buffer)); CloseFile(Datei); CloseFile(Port); end; end;
Delphi-Quellcode:
oder
AddPrinterConnection(PChar(Drucker));
Delphi-Quellcode:
kann ein Drucker auf der Workstation installiert werden.
DeletePrinterConnection(PChar(Drucker));
[edit=Sharky]Doppelposting gelöscht. Mfg, Sharky[/edit] |
Re: Netzwerkdrucker druckt nicht
Ups.... Sorry sollte nicht doppelt sein....
|
Re: Netzwerkdrucker druckt nicht
Hi,
es geht so :
Delphi-Quellcode:
und dann eben so weiter :
AssignFile (d,'\\SYSDBA\HPLASERJ');
rewrite (d);
Delphi-Quellcode:
Wie ich das sehe muß man hierzu aber den DOS-Druckernamen verwenden. Wie kann ich den jetzt bei mehreren Druckern ermitteln ?
procedure println (st : string);
begin writeln (d,st); end; @Mattin: was zum Teufel soll da das Blockwrite, Port, Buffer usw. ? :shock: Ich sehe darin keinerlei Sinn. 8) Hast du vielleicht einen seriellen Drucker gemeint ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz