Delphi-PRAXiS
Seite 1 von 2  1 2      

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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.
Seite 1 von 2  1 2      

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