Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Papierschneider eines POS Druckers ansteuern (https://www.delphipraxis.net/216297-papierschneider-eines-pos-druckers-ansteuern.html)

TurboMagic 5. Dez 2024 20:57

Papierschneider eines POS Druckers ansteuern
 
Hallo,

ich würde gerne den Cutter eines POS Druckers benutzen.
Wenn ich das "roh" als ESC/Pos Kommando hin sende klappt alles.

Nur die Frage: gibt's da nicht direkt was im Drucken API von Windows dafür?
Ich konnte bisher noch nichts finden.

Und falls es nichts gibt:
Wenn ich meine bisherige Druckausgabe (die komplett auf ESC/Pos Befehle setzt)
durch Drucken per GDI/Printers.pas umsetelle, wo muss dann der Befehl zum
Ansteuern des Cutters hin? Vor EndPage und EndDoc oder zwischen EndPage und
EndDoc oder nach EndDoc?

Ach ja, für C# scheint's was "out of the box" zu geben:
https://learn.microsoft.com/en-us/uw...ntjob-cutpaper

himitsu 5. Dez 2024 21:51

AW: Papierschneider eines POS Druckers ansteuern
 
Bestimmt nach EndPage/EndDoc? (nachdem die Seite fertig ist)

Ich dachte TPrinter hätte eine Public/Protected Methode, zum Senden von Daten, aber nee?

Wenn du ans TPrinter.FPrinterHandle dran kommst, dann kannst du WritePrinter aus der Winapi.WinSpool.pas benutzen.
(
Delphi-Quellcode:
property Handle: HDC
ist ja das falsche Handle)




https://blog.idera.com/developer-too...hrough-escape/
https://github.com/git-bee/TRAWPrint...RawPrinter.pas

Redeemer 5. Dez 2024 21:52

AW: Papierschneider eines POS Druckers ansteuern
 
Zitat:

Zitat von TurboMagic (Beitrag 1543938)
Nur die Frage: gibt's da nicht direkt was im Drucken API von Windows dafür?
Ich konnte bisher noch nichts finden.

Man stellt in den Druckeinstellungen von Windows ein, dass nach dem Druck abgeschnitten werden soll. So ist das zumindest bei unseren Citizens.

TurboMagic 5. Dez 2024 21:58

AW: Papierschneider eines POS Druckers ansteuern
 
Zitat:

Zitat von himitsu (Beitrag 1543943)
Bestimmt nach EndPage/EndDoc? (nachdem die Seite fertig ist)

Ich dachte TPrinter hätte eine Public/Protected Methode, zum Senden von Daten, aber nee?

Wenn du ans TPrinter.FPrinterHandle dran kommst, dann kannst du WritePrinter aus der Winapi.WinSpool.pas benutzen.
(
Delphi-Quellcode:
property Handle: HDC
ist ja das falsche Handle)




https://blog.idera.com/developer-too...hrough-escape/
https://github.com/git-bee/TRAWPrint...RawPrinter.pas

Danke. Ich bekomme bisher schon RAW Daten an den Drucker geschickt und somit den Cutter angesteuert.
Nur mach' ich da halt derzeit alles per ESC/POS. Ich hatte halt gehofft, dass Windows schlau genug ist
für sowas auch mal endlich eine Methode bereit zu stellen,

TurboMagic 5. Dez 2024 22:00

AW: Papierschneider eines POS Druckers ansteuern
 
Zitat:

Zitat von Redeemer (Beitrag 1543945)
Zitat:

Zitat von TurboMagic (Beitrag 1543938)
Nur die Frage: gibt's da nicht direkt was im Drucken API von Windows dafür?
Ich konnte bisher noch nichts finden.

Man stellt in den Druckeinstellungen von Windows ein, dass nach dem Druck abgeschnitten werden soll. So ist das zumindest bei unseren Citizens.

Naja, dann müsste ich aber für jeden einzelnen Bon (also nicht eine Rechnung, sondern eine Wertmarke z.B. für 1x Pommes)
ein eigenes Dokument erzeugen. Und der Anwender muss das in den Druckertreiber Einstellungen einstellen.
Nur: Anwender und was einstellen...
...riecht nach mehr Supportaufwand.

Aber danke trotzdem!

himitsu 5. Dez 2024 22:03

AW: Papierschneider eines POS Druckers ansteuern
 
Windows ja
Embarcadero nein
und um es zu zementieren, verstecken sie den nötigen Zugang vor dir. :stupid:

Auch was den Zugang zu druckerspezifischen Settings betrifft.

jaenicke 5. Dez 2024 22:09

AW: Papierschneider eines POS Druckers ansteuern
 
Zitat:

Zitat von TurboMagic (Beitrag 1543938)
Ach ja, für C# scheint's was "out of the box" zu geben:
https://learn.microsoft.com/en-us/uw...ntjob-cutpaper

Das ist nicht nur für C#. Das kannst du auch problemlos in Delphi nutzen. Schau dir einfach mal die Unit Winapi.Devices.PointOfService.pas an, die im Rahmen der Windows RT API Schnittstellen mit Delphi mitgeliefert wird.

Zitat:

Zitat von TurboMagic (Beitrag 1543938)
Wenn ich meine bisherige Druckausgabe (die komplett auf ESC/Pos Befehle setzt)
durch Drucken per GDI/Printers.pas umsetelle

Wäre es im POS Bereich nicht sinnvoller, auf ePOS-Print XML zu setzen?

TurboMagic 5. Dez 2024 22:30

AW: Papierschneider eines POS Druckers ansteuern
 
Hallo,

danke für diese Hinweise!
Habe bei meiner Google Suche nichts gefunden gehabt, welches auf die
von dir aufgeführte Unit hinweißt oder das darunter liegende API.

Naja, der Druckencode ist schon älter und ich weiß auch noch nicht ob
dieses XML format vom Drucker unterstützt wird. Drucken üer GDI aber
definitiv.

Ich weiß noch nicht so recht, was mir ePOS-Print bringen soll.
Muss ich mal bei nächster Gelegenheit recherchieren.

jaenicke 5. Dez 2024 23:35

AW: Papierschneider eines POS Druckers ansteuern
 
Zitat:

Zitat von TurboMagic (Beitrag 1543951)
ich weiß auch noch nicht ob
dieses XML format vom Drucker unterstützt wird.

Das geht natürlich nur mit Druckern von Epson. Aber im Kassenbereich sind diese ja weit verbreitet.

Zitat:

Zitat von TurboMagic (Beitrag 1543951)
Ich weiß noch nicht so recht, was mir ePOS-Print bringen soll.
Muss ich mal bei nächster Gelegenheit recherchieren.

Ein wichtiger Vorteil ist, dass man keine Treiber und kein bestimmtes Betriebssystem benötigt. Man kann diese Druckaufträge einfach direkt an den Drucker schicken, ohne sich um Treiber oder die Druckerwarteschlange von Windows zu kümmern. Das macht die Einrichtung eines Kassensystems deutlich einfacher. Außerdem funktioniert es sehr gut z.B. mit Tablets oder cloudbasierter Kassensoftware.

Olli73 6. Dez 2024 06:41

AW: Papierschneider eines POS Druckers ansteuern
 
Wähl mal den Font "control" und size 9 (bei letzterem weiß ich nicht, ob das wichtig ist) und sende ein "P" ...

(Ist hoffentlich ein Epson-Drucker oder was kompatibles.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:16 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz