![]() |
im Netzwerk Drucker auswählen ?
Hi,
ich muß verschiedene Drucker ansteuern. Deshalb gibt es einen PrintDialog. Nun habe ich hier einen Nadeldrucker Epson LQ-870. Der hängt am Server.
Delphi-Quellcode:
Leider druckt der nichts. Im PrintDialog ist er allerdings aufgeführt. Wo liegt der Fehler ? Ich habe den Freigabenamen im Verdacht. 8)
if dlgDrucker.Execute then begin
DruckerName := Printer.Printers [Printer.PrinterIndex]; showmessage ('*'+Druckername+'*'); AssignFile (d,DruckerName); rewrite (d); showmessage ('aktiver Drucker ab jetzt : '+Printer.Printers [Printer.PrinterIndex]); StatusBar.SimpleText := 'Drucker : '+DruckerName; end; |
Re: im Netzwerk Drucker auswählen ?
Hallo,
kannst du aus der normalen Betriebssystemumgebung mit diesem Printer drucken? Freigabename kriegst du raus indem du Start-->Einstellungen-->Drucker dann den betreffenden Drucker auswählst. Rechte Maustaste-->Eigenschaften-->Freigabe. Dort steht dann der Freigabename. Vergleiche den mit dem Namen der dir zur Auswahl angeboten wird. Wenn der Drucker ein Netzwerkdrucker ist (was du ja sagst) solltest du ihn anpingen können. Rainer |
Re: im Netzwerk Drucker auswählen ?
Hallo,
bei mir funktioniert das so:
Delphi-Quellcode:
Rainer
procedure TForm1.Button1Click(Sender: TObject);
var druckername:string;d:textfile; begin if dlgDrucker.Execute then begin DruckerName := Printer.Printers [Printer.PrinterIndex]; showmessage ('*'+Druckername+'*'); AssignFile (d,DruckerName); rewrite (d); writeln(d,'Test'); closefile(d); showmessage ('aktiver Drucker ab jetzt : '+Printer.Printers [Printer.PrinterIndex]); StatusBar.SimpleText := 'Drucker : '+DruckerName; end; end; |
Re: im Netzwerk Drucker auswählen ?
Du meinst das CloseFile ? Geht auch nicht. Ging das bei dir auch im Netzwerk ? Momentan wäre folgende Frage wichtig : muß im AssignFile der komplette Name des Druckers rein oder der abgekürzte Freigabename ?
|
Re: im Netzwerk Drucker auswählen ?
hallo hansa,
siehst du denn den netzwerkdrucker? |
Re: im Netzwerk Drucker auswählen ?
Ich bin doch nicht blöd. :mrgreen:
|
Re: im Netzwerk Drucker auswählen ?
hallo blinder :mrgreen:
Zitat:
also folgendes funktioniert bei mir problemlos:
Delphi-Quellcode:
raikvar DruckerName:String; f:TextFile; begin if PrintDialog1.Execute then begin DruckerName := Printer.Printers [Printer.PrinterIndex]; showmessage ('*'+DruckerName+'*'); AssignFile (f, 'DruckerName'); rewrite(f); showmessage ('aktiver Drucker ab jetzt : '+Printer.Printers [Printer.PrinterIndex]); StatusBar1.SimpleText := 'Drucker : '+ DruckerName; end; end; |
Re: im Netzwerk Drucker auswählen ?
Folgendes Ergebnis : der Drucker muß so angesprochern werden :
\\<Servername>\<Druckername> Womit allerdings das nächste Problem auftaucht : der Druckername ist nicht etwa der vollständige Name des Druckers, so wie er in den Einstellungen zu sehen ist, sondern der Freigabename im Netzwerk (also 8 Zeichen). Deshalb stellt sich jetzt die Frage wie ich mit dem Printdialog den Drucker auswählen kann, gleichzeitig aber auch den entsprechenden Freigabenamen im Netzwerk an mein Programm zurückliefere. 8) Mit dem Namen alleine kommt das nämlich nicht zurecht. |
Re: im Netzwerk Drucker auswählen ?
24 St. rum ? Also Push. :mrgreen:
Zitat:
|
Re: im Netzwerk Drucker auswählen ?
Würde es etwas bringen wenn du den Netzwerkdrucker auf einen LPT-Port mappst?
|
Re: im Netzwerk Drucker auswählen ?
|
Re: im Netzwerk Drucker auswählen ?
Hallo Hansa,
nur um die Begriffe zu ordnen: ein Netzwerkdrucker hat eine IP-Adresse und ist erreichbar sobald er eingeschaltet ist. Ein im Netzwerk freigegebener Drucker hat einen Freigabenamen (die Empfehlung dessen Länge auf 8 zu begrenzen hat historische Gründe) und ist über eine Workstation erreichbar. Soweit die "andere" Seite. Auf dem Rechner, auf dem dein Druckprogramm läuft, muss der Drucker eingerichtet sein, egal ob Freigabename oder IP-Adresse. Wenn es Probleme gibt, dann kann es sich um ein Rechte-Problem handeln, oder du hast bei der Einbindung einen Fehler gemacht. Beschreibe mal präzise was du da so gemacht hast und vielleicht wird dir dabei schon selbst klar, was schief läuft. Grüße vom marabu PS: so alt wie dein thread ist - gibt es den Drucker überhaupt noch? |
Re: im Netzwerk Drucker auswählen ?
Zitat:
|
Re: im Netzwerk Drucker auswählen ?
Hi Hansa,
Fehler 103 ist Datei-IO-Error :gruebel:
Code:
Öffne mal CMD und gib folgendes ein:103 Datei nicht geöffnet Wird von CloseFile, Read Write, Seek, Eof, FilePos, FileSize, Flush, BlockRead oder BlockWrite gemeldet, wenn die Datei nicht geöffnet ist.
Code:
nun schau mal nach wie der Drucker heisst, und ob das Share da ist.
net view \\server
jetzt drucke über DOS:
Code:
bitte für ^L -> Strg+L drücken(für Seitenvorschub).
dir c:\ >>\\server\Epson870
echo ^L >>\\server\Epson870 Wenn da Fehlermeldungen kommen, liegt es an den Zugriffsrechten. mfg BrunoT PS dieser Drucker ist grafikfähig und kann auch mit Canvas drucken. :lol: |
Re: im Netzwerk Drucker auswählen ?
Ich würde nicht versuchen, irgendwie an die Freigabe des Druckers heranzukommen, sondern den Windows Spooler beauftragen meine Daten zu übertragen.
![]() |
Re: im Netzwerk Drucker auswählen ?
Liste der Anhänge anzeigen (Anzahl: 1)
Fehlermeldungen kommen keine, sofern der Drucker so ausgewählt wird : \\+Rechnername+\+Freigabename (8 Zeichen). Kleiner Nachteil : es kommen nur leere Seiten. :shock:
P.S.: was soll das zuckersüße ? :mrgreen: Da will man mal zuerst den Anhang beifügen, um ihn nicht zu vergessen und kriegt von Gerome einen Rüffel. :lol: Verdammt, jetzt geht Attachment nicht mal. :zwinker: Mal sehen, ob der Beitrag hier tatsächlich erscheint. 8) |
Re: im Netzwerk Drucker auswählen ?
und Hansa geht der DOS-Druck?
|
Re: im Netzwerk Drucker auswählen ?
DOS-Druck ? Habe ich übersprungen. :stupid: Es geht jetzt fast so wie gewünscht. Also mit AssignFile, writeln usw. Allerdings hat das Ganze immer noch den Schönheitsfehler, daß der Printdialog nutzlos ist. Es geht nur über Freigabename ! Damit könnte ich leben, dann muß eben eine INI-Datei her. Wenn es geht, irgendwie über den PrintDialog den Drucker auszuwählen und daraus den Freigabename zu ermitteln dann wäre es perfekt. 8)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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