AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Papierschneider eines POS Druckers ansteuern
Thema durchsuchen
Ansicht
Themen-Optionen

Papierschneider eines POS Druckers ansteuern

Ein Thema von TurboMagic · begonnen am 5. Dez 2024 · letzter Beitrag vom 7. Dez 2024
Antwort Antwort
Seite 2 von 2     12   
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#11

AW: Papierschneider eines POS Druckers ansteuern

  Alt 6. Dez 2024, 16:05
Hmm..

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.
Wir verwenden Drucker von Zebra mit Cutter für Endlos-Etiketten, um hier unterschiedlich lange Etiketten zu erzeugen.
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.....
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#12

AW: Papierschneider eines POS Druckers ansteuern

  Alt 7. Dez 2024, 12:13
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.
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.
Ich hab' mir die Unit mal grob angeschaut. Das sind lauter Interface Deklarationen.
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?
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
755 Beiträge
 
#13

AW: Papierschneider eines POS Druckers ansteuern

  Alt 7. Dez 2024, 12:33
Was für ein Drucker ist es überhaupt?

Probiere doch Mal das mit control Font aus...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.647 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Papierschneider eines POS Druckers ansteuern

  Alt 7. Dez 2024, 14:05
Ich hab' mir die Unit mal grob angeschaut. Das sind lauter Interface Deklarationen.
Mir fehlt jetzt nur noch, wie ich so eine Interface Referenz bekomme.
Da hilft ChatGPT z.B. weiter.

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.
Dann solltest du die WinRT Geschichten nicht verwenden. Ich habe das nur verlinkt, weil du es erwähnt hattest. Aber dann solltest du auch alles damit machen.

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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#15

AW: Papierschneider eines POS Druckers ansteuern

  Alt 7. Dez 2024, 15:16
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.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.647 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Papierschneider eines POS Druckers ansteuern

  Alt 7. Dez 2024, 15:55
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:28 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