Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Print-Befehl auch bei Netzwerkdruckern (https://www.delphipraxis.net/94981-print-befehl-auch-bei-netzwerkdruckern.html)

Mikro 28. Jun 2007 21:13


Print-Befehl auch bei Netzwerkdruckern
 
HI,

da ich gebeten wurde, alle Fragen einzeln zu schreiben, bitte nicht wundern, wenn ich jetzt mehrere Threads öffne... ;-)

Also bei dem Problem geht es darum, dass ich einen Druckbefehl:
Delphi-Quellcode:
AssignPrn(Auswertung);
Rewrite(Auswertung);
Printer.Canvas.Font := Memo1.Font;
for Line := 0 to Memo1.Lines.Count - 1 do
Writeln(Auswertung, Memo1.Lines[Line]);
CloseFile(Auswertung);
Dieser funktioniert allerdings nur auf meinem Laptop. Wenn ich es auf einem anderen Rechner versuche, klappt es nicht. Ich denke mal, weil es ein Netzwerkdrucker ist, ist ja sonst kein UNterschied, würde ich jetzt mal als Depp behaupten...

Kann mir da einer helfen?? Also der Drucker macht nichts und in den Aufträgen hat er einen Fehler...

Muetze1 28. Jun 2007 21:47

Re: Print-Befehl auch bei Netzwerkdruckern
 
Zitat:

Zitat von Mikro
... und in den Aufträgen hat er einen Fehler...

Welchen? Was sagt die Statusseite zu dem Drucker? Klappt Notepad mit dem Drucker?

Mikro 28. Jun 2007 21:52

Re: Print-Befehl auch bei Netzwerkdruckern
 
In dem Fenster für die Druckaufträge steht nicht mal der Dateiname oder sonst was... Und rechts davon steht eben nur Fehler... Mehr kann ich eucht nicht sagen, darf NOtebook auch nicht an Drucker anschließen, wegen Firmennetz etc... (Sicherheit)

Muetze1 28. Jun 2007 21:56

Re: Print-Befehl auch bei Netzwerkdruckern
 
Zitat:

Zitat von Mikro
In dem Fenster für die Druckaufträge steht nicht mal der Dateiname oder sonst was...

Ist bei deiner Art der Druckauftragsauslösung auch korrekt. Woher sollte er sich auch einen Dateinamen ausdenken, wenn du die Daten direkt schreibst.

Zitat:

Zitat von Mikro
..., darf NOtebook auch nicht an Drucker anschließen, wegen Firmennetz etc... (Sicherheit)

Ich hatte Notepad geschrieben, nicht Notebook. Du sollst nichts umverkabeln.

Aber mal was grundlegendes: Warum überhaupt auf diese komplizierte Weise? Kompliziert im Sinne von den alten Dateiroutinen. Du hast doch mit der VCL OOP Mittel zur Hand bekommen, die du ja mit dem Printer-Objekt schon teilweise nutzt...

DGL-luke 28. Jun 2007 22:30

Re: Print-Befehl auch bei Netzwerkdruckern
 
Hat das Printer-Objekt denn noch die Line-Printer-Schnittstellen (also writeline und so)?

Ansonsten muss man sich halt mit Canvas.TextOut begnügen.

Mikro 28. Jun 2007 22:47

Re: Print-Befehl auch bei Netzwerkdruckern
 
schadet es, wenn ich gar keine Ahnung habe, wovon ihr redet?? Ich hab gestern Delphi installiert, hab keine Updates oder sonst was drauf, alles Standart... Kann mir das einer erklären??

DGL-luke 28. Jun 2007 22:53

Re: Print-Befehl auch bei Netzwerkdruckern
 
Hallo,

Delphi-Quellcode:
Printer.Canvas.Font := Memo1.Font;
for Line := 0 to Memo1.Lines.Count - 1 do
  Printer.Canvas.TextOut(10, Round(Line * Printer.Font.Size * 1.25), Memo1.Lines[Line]);
ersetze deinen code einfach damit. für anspruchsvollere sachen die gdi-funktion MSDN-Library durchsuchenDrawText auschecken ;-)

PS: Damit greifst du nicht mehr auf die alten Lineprinter-Schnittstellen zu und es sollte auch über Netzwerk funktionieren. Hoffe ich.

DP-Maintenance 29. Jun 2007 06:17

DP-Maintenance
 
Dieses Thema wurde von "r_kerber" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Delphi-Frage

Mikro 29. Jun 2007 15:28

Re: Print-Befehl auch bei Netzwerkdruckern
 
hab mal grad deinen Code statt meinem eingefügt. DU hast in der letzte Zeile bei Printer.Font.Size das Canvas vergessen. Aber trotzdem funktioniert der Code nicht. Ich bkeomme die Fehlermeldung "Der Drucker ist nicht am Drucken"...

DGL-luke 29. Jun 2007 15:34

Re: Print-Befehl auch bei Netzwerkdruckern
 
Oh, Sorry:

Delphi-Quellcode:
Printer.BeginDoc;

Printer.Canvas.Font := Memo1.Font;
for Line := 0 to Memo1.Lines.Count - 1 do
  Printer.Canvas.TextOut(10, Round(Line * Printer.Canvas.Font.Size * 1.25), Memo1.Lines[Line]);

Printer.EndDoc;

Mikro 29. Jun 2007 15:55

Re: Print-Befehl auch bei Netzwerkdruckern
 
Hmmm.... sehr komisch. Jetzt funktioniert das Drucken wieder, hab mir auch gedacht, dass die Befehle noch dabei müssen, hab sie aber nicht mehr gefunden... Der druckt aber jetzt voll den Sch*** aus, sehe die Memo, weiß also, was er ausdrucken sollte.
Der druckt nur eine Zeile, wobei er bei der ersten Ziffer sogar noch ne andere Zahl hinschreibt... kurios :-D

DGL-luke 29. Jun 2007 16:00

Re: Print-Befehl auch bei Netzwerkdruckern
 
Hm.

Vorschlag zum Testen:

Delphi-Quellcode:
Printer.BeginDoc;

Printer.Canvas.Font := Memo1.Font;

Text := Memo1.Text; // Text IS string

brect := rect(10,10,Printer.Canvas.Width-11,Printer.Canvas.Height-11); //brect IS TRect

DrawText(Printer.Canvas.Handle, @Text[1],Length(Text),brect,DT_LEFT);

Printer.EndDoc;

Mikro 29. Jun 2007 16:05

Re: Print-Befehl auch bei Netzwerkdruckern
 
Canvas hat keine Breite und keine Höhe ;-) zumindest beschwert der sich bei mir, undefinierter Bezeichner... Hast in der 4ten Zeile nen ; vergessen ;-) Danke für deine Bemühungen, echt klasse von dir... Ah ; haste schon gefunden :-)

DGL-luke 29. Jun 2007 16:27

Re: Print-Befehl auch bei Netzwerkdruckern
 
Oh damn, stimmt, dann müssen wir MSDN-Library durchsuchenGetDeviceCaps anzapfen.

Delphi-Quellcode:
Printer.BeginDoc;

Printer.Canvas.Font := Memo1.Font;

Text := Memo1.Text; // Text IS string

brect := rect(10,10,GetDeviceCaps(Printer.Canvas.Handle,HORZRES)-11,GetDeviceCaps(Printer.Canvas.Handle,VERTRES)-11); //brect IS TRect

DrawText(Printer.Canvas.Handle, @Text[1],Length(Text),brect,DT_LEFT);

Printer.EndDoc;
So sollts dann aber klappen.

Mikro 29. Jun 2007 16:32

Re: Print-Befehl auch bei Netzwerkdruckern
 
wunderbar, jetzt druckt er wieder... auch alles :-D
Muss dann am Montag oder so im Netzwerk probieren, vielen Dnak...

Mikro 5. Jul 2007 16:09

Re: Print-Befehl auch bei Netzwerkdruckern
 
Hej, konnte es jetzt endlich mal ausprobieren. Also es funzt über Netzwerk immer noch nicht. Am Drucker liegt es auch nicht, wenn der lokal angeschlossen ist, klappt es...

shmia 5. Jul 2007 19:00

Re: Print-Befehl auch bei Netzwerkdruckern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mal grundsätzlich:
unter Windows kann man einen Drucker nur benutzen, wenn er in der Systemsteuerung angelegt wurde.
Es ist dabei gleichgültig, ob der Drucker lokal oder irgendwo im Netzwerk angeschlossen ist.
In der Druckersteuerung kann man dann unter Eigenschaften auch eine Testseite ausdrucken.
Solange die Testseite nicht rauskommt, braucht man über Programmieren oder Fehler im eigenen Programm gar nicht reden.

Den nächste Schritt ist dann, mit WordPad oder WinWord irgend einen Text zu drucken.
Siehe Anhang.
Erst wenn das funktioniert hat, muss man sich Gedanken machen, was man am eigenen Prog. ändern muss,
damit etwas gedruckt wird.

Mikro 5. Jul 2007 19:18

Re: Print-Befehl auch bei Netzwerkdruckern
 
gut, vll hab ich mich einfach nur blöd ausgedrückt, so das du denkst, dass ich null Ahnung habe.
Ich weiß auch, dass ein Drucker eingerichtet sein muss und habe es auch schon mit Word etc probiert. Selber Drucker funktioniert mit dem Befehl nur an dem PC, an dem er direkt hängt, nicht aber an dem PC, der an ihn über Netzwerk angeschlossen ist.

Mikro 7. Jul 2007 17:27

Re: Print-Befehl auch bei Netzwerkdruckern
 
hat jmd noch eine Idee, wie ich nen Befehl zum Drucken auch übers Netzwerk bekommen??


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 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