AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Netzwerkdrucker druckt nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Netzwerkdrucker druckt nicht

Ein Thema von Hansa · begonnen am 26. Sep 2004 · letzter Beitrag vom 5. Okt 2004
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Netzwerkdrucker druckt nicht

  Alt 26. Sep 2004, 17:44
Ich habe hier folgenden Code :


Delphi-Quellcode:
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;
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Netzwerkdrucker druckt nicht

  Alt 27. Sep 2004, 20:46
Muß da mal endlich weiterkommen.

assignfile (d,'LPT1:'); 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 ?

Soll ich vielleicht einen PrintDialog einsetzen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#3

Re: Netzwerkdrucker druckt nicht

  Alt 27. Sep 2004, 20:49
Zitat:
Soll ich vielleicht einen PrintDialog einsetzen ?
Das ist eine sehr gute Idee weil du außerdem nicht weißt auf welchem Drucker der User ausdrucken möchte - es könnten ja mehrere vorhanden sein!
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von writeln
writeln

Registriert seit: 30. Aug 2004
Ort: Hamburg
28 Beiträge
 
#4

Re: Netzwerkdrucker druckt nicht

  Alt 27. Sep 2004, 21:42
niemand schreibt hier ungestraft *writeln*

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!

---

Eine bessere Lösung ist, einen Reportgenerator zu benutzen, oder gleich mit dem TPrinter.Canvas von Delphi zu arbeiten.

Grüße
Sascha
...und ich sach noch: "drück nich auf F9"...
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Netzwerkdrucker druckt nicht

  Alt 28. Sep 2004, 01:28
Zitat von writeln:
niemand schreibt hier ungestraft *writeln*
hehe, warum denn nicht. Oder habe ich dich auf dem falschen Fuß erwischt ?

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:
PROCEDURE Breitschrift;
  BEGIN
    Printer.Canvas.Font.Size := 20;
  END;
Geht lokal auch. Und die Administration dürfte per ShellExecute wohl auch kein großes Problem sein.
Gruß
Hansa
  Mit Zitat antworten Zitat
Mattin

Registriert seit: 4. Sep 2003
72 Beiträge
 
Delphi 7 Professional
 
#6

Re: Netzwerkdrucker druckt nicht

  Alt 28. Sep 2004, 07:10
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:
//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;
Mit der API- Funktion

 AddPrinterConnection(PChar(Drucker)); oder

 DeletePrinterConnection(PChar(Drucker)); kann ein Drucker auf der Workstation installiert werden.

[edit=Sharky]Doppelposting gelöscht. Mfg, Sharky[/edit]
Mit freundlichen Grüßen
Mattin

http://www.martin-karwoth.de
  Mit Zitat antworten Zitat
Mattin

Registriert seit: 4. Sep 2003
72 Beiträge
 
Delphi 7 Professional
 
#7

Re: Netzwerkdrucker druckt nicht

  Alt 28. Sep 2004, 07:24
Ups.... Sorry sollte nicht doppelt sein....
Mit freundlichen Grüßen
Mattin

http://www.martin-karwoth.de
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Netzwerkdrucker druckt nicht

  Alt 5. Okt 2004, 14:00
Hi,

es geht so :

Delphi-Quellcode:
AssignFile (d,'\\SYSDBA\HPLASERJ');
rewrite (d);
und dann eben so weiter :

Delphi-Quellcode:
procedure println (st : string);
begin
  writeln (d,st);
end;
Wie ich das sehe muß man hierzu aber den DOS-Druckernamen verwenden. Wie kann ich den jetzt bei mehreren Druckern ermitteln ?

@Mattin: was zum Teufel soll da das Blockwrite, Port, Buffer usw. ? Ich sehe darin keinerlei Sinn. 8) Hast du vielleicht einen seriellen Drucker gemeint ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:55 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