![]() |
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: ![]() |
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:
ist ja das falsche Handle)
property Handle: HDC
![]() ![]() |
AW: Papierschneider eines POS Druckers ansteuern
Zitat:
|
AW: Papierschneider eines POS Druckers ansteuern
Zitat:
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, |
AW: Papierschneider eines POS Druckers ansteuern
Zitat:
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! |
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. |
AW: Papierschneider eines POS Druckers ansteuern
Zitat:
Zitat:
|
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. |
AW: Papierschneider eines POS Druckers ansteuern
Zitat:
Zitat:
|
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.) |
AW: Papierschneider eines POS Druckers ansteuern
Hmm..
Zitat:
Hier aktivieren wir das Schneiden nach dem Druckende im Treiber. Unsere Druckroutine kann dann einfach per TPrinter das Etikett drucken, muss nur am unteren Rand einen kleinen schwarzen Punkt setzen, damit das Etikett die richtige höhe hat und nicht nach der letzten Text-Zeile bereits abschneidet. Im Treiber steht glaube ich dann auch Endlospapier oder A4..... |
AW: Papierschneider eines POS Druckers ansteuern
Zitat:
Zitat:
Mir fehlt jetzt nur noch, wie ich so eine Interface Referenz bekomme. Eine erste Google Suche mit Delphi mit als Suchbegriff hat noch nichts in der Richtung geliefert. Naja, evtl. mal nach dem Mittagessen ohne Delphi als Stichwort suchen und dann schauen ob das was adaptierbares raus kommt. Die Frage wäre auch, ob ich das mit normalem GDI Drucken mischen kann. Diejenigen Interfaces in der Unit die sich mit Textdrucken beschäftigen scheinen ja wieder Text direkt senden zu wollen; womit man wieder direkt von den wenigen beim Drucker vorhandenen Schriftgrößen abhängig wäre. Heutige POS Drucker sind aber auch für Grafikdruck schnell genug, d.h. ich würde eher eine Mischung aus GDI Drucken und den Cut fähigen Interfaces dieser Unit bevorzugen. Ist das technisch möglich und wie müsste ich das angehen? |
AW: Papierschneider eines POS Druckers ansteuern
Was für ein Drucker ist es überhaupt?
Probiere doch Mal das mit control Font aus... |
AW: Papierschneider eines POS Druckers ansteuern
Zitat:
Zitat:
Escapesequenzen kann man mit der erwähnten control Schriftart schicken, aber man kann diese auch direkt an den Drucker schicken. Wenn du GDI verwenden möchtest, solltest du den Weg gehen. |
AW: Papierschneider eines POS Druckers ansteuern
Ok! Danke mal soweit. Die WinRT Geschichten sind ja eher eine Umsetzung mittels Druckerschriftarten usw.
und damit nicht so flexibel. Da hast du dann sicherlicht recht: entweder diese so verwenden wie im API dort angegeben oder gar nicht. |
AW: Papierschneider eines POS Druckers ansteuern
Du kannst natürlich auch auf eine TBitmap rendern und diese dann lediglich auf eine Zeichenfläche kopieren. Das hat den Riesenvorteil, dass du diese zu Debugzwecken auch speichern kannst. Und du kannst sie als Vorschau im Programm anzeigen. Ich habe das auch selbst so umgesetzt.
Mit diesem Bild kannst du dann jegliche Schnittstelle nutzen, egal ob du die WinRT Funktionalität, einen Delphi-TPrinter oder das XML-Format von Epson verwendest. Du musst lediglich vorher schauen welche native Auflösung der Drucker hat, damit dort nicht skaliert werden muss. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 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