Drucken Escape Sequenzen an Drucker schicken
-
- Beiträge: 8
- Registriert: Sa 28. Jan 2023, 18:50
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.0)
- CPU-Target: 64Bit
- Wohnort: Bodensee
Drucken Escape Sequenzen an Drucker schicken
Hallo Zusammen,
zuerst möchte ich mich kurz vorstellen. Bin erst seit kurzem am programmieren mit der tollen
Entwicklungsumgebung Lazarus. Habe bisher einige Programme in VB.NET geschrieben.
Basic ist meine alte Leidenschaft (ZX80 ..)
Nun wollte ich es mal mit Pascal probieren (hatte die ersten Erfahrungen in der Berufsschule mit Turbo Pascal ist allerdings schon eine weile her ).
Ich habe aus Nostalgiegründen eine Typenradschreibmaschine mit Interface erworben.
Es ist eine Brother CE-550 mit dem IF-60 Interface.
Einen Druckertreiber gibt es nicht dafür.
So meine Idee ein Druckprogramm zu schreiben mit dem ich Textfiles an den Drucker senden kann (Windows Generic printer driver / RAW) das allerdings auch Fett / Kursiv .. kann.
Das klappt soweit ganz gut (wenn ich im Text <#b> schreibe schickt mein neu geschriebenes Programm die ESC Sequenz an den Drucker für Fettschrift (ESC + F) Coding: bold = Char(27)+'O'; ) Das schicke ich dann an den Drucker mit Printer.Write(S[1], Length(S), Written);
Soweit so gut. Was mir allerdings noch Probleme bereitet ist das Einstellen der CPI Einstellung.
Dazu ist laut IF-60 Handbuch folgende ESC Sequenz zu schicken:
ESC + US + n wobei n für 13 / 11 und 9 steht.
Ich habe nun schon denke ich fast alles probiert diese Sequenz an den Drucker zu schicken z.B.:
pitch12 = Char(27)+'US'+'11';
Leider druckt die Maschine dann S11 aus und interpretiert das Ganze nicht richtig.
Hat jemand eine Idee wie ich das an die Maschine schicken kann, dass dann auch 10 / 12 oder 15 CPI gedruckt wird?
Bin über jede Hilfe dankbar.
zuerst möchte ich mich kurz vorstellen. Bin erst seit kurzem am programmieren mit der tollen
Entwicklungsumgebung Lazarus. Habe bisher einige Programme in VB.NET geschrieben.
Basic ist meine alte Leidenschaft (ZX80 ..)
Nun wollte ich es mal mit Pascal probieren (hatte die ersten Erfahrungen in der Berufsschule mit Turbo Pascal ist allerdings schon eine weile her ).
Ich habe aus Nostalgiegründen eine Typenradschreibmaschine mit Interface erworben.
Es ist eine Brother CE-550 mit dem IF-60 Interface.
Einen Druckertreiber gibt es nicht dafür.
So meine Idee ein Druckprogramm zu schreiben mit dem ich Textfiles an den Drucker senden kann (Windows Generic printer driver / RAW) das allerdings auch Fett / Kursiv .. kann.
Das klappt soweit ganz gut (wenn ich im Text <#b> schreibe schickt mein neu geschriebenes Programm die ESC Sequenz an den Drucker für Fettschrift (ESC + F) Coding: bold = Char(27)+'O'; ) Das schicke ich dann an den Drucker mit Printer.Write(S[1], Length(S), Written);
Soweit so gut. Was mir allerdings noch Probleme bereitet ist das Einstellen der CPI Einstellung.
Dazu ist laut IF-60 Handbuch folgende ESC Sequenz zu schicken:
ESC + US + n wobei n für 13 / 11 und 9 steht.
Ich habe nun schon denke ich fast alles probiert diese Sequenz an den Drucker zu schicken z.B.:
pitch12 = Char(27)+'US'+'11';
Leider druckt die Maschine dann S11 aus und interpretiert das Ganze nicht richtig.
Hat jemand eine Idee wie ich das an die Maschine schicken kann, dass dann auch 10 / 12 oder 15 CPI gedruckt wird?
Bin über jede Hilfe dankbar.
- af0815
- Lazarusforum e. V.
- Beiträge: 6198
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Drucken Escape Sequenzen an Drucker schicken
Für mich hört sich das so an, als würde dein Drucker den Befehl nicht wirklich dekodieren. wenn er "S11" druckt, so druckt er nur das aus, was er nicht interpretieren kann.riscpower hat geschrieben: ↑Sa 28. Jan 2023, 19:07Soweit so gut. Was mir allerdings noch Probleme bereitet ist das Einstellen der CPI Einstellung.
Dazu ist laut IF-60 Handbuch folgende ESC Sequenz zu schicken:
ESC + US + n wobei n für 13 / 11 und 9 steht.
Ich habe nun schon denke ich fast alles probiert diese Sequenz an den Drucker zu schicken z.B.:
pitch12 = Char(27)+'US'+'11';
Leider druckt die Maschine dann S11 aus und interpretiert das Ganze nicht richtig.
Edit: https://ia803201.us.archive.org/21/item ... educed.pdf
Das IF 60 kann soweit ich das sehe nur 1 Byte Befehle. Ein ESC + US + n ist genauso zu sehen wie Esc + CR + P (Printer reset). ESC US meint den UnitSeperator Befehl (0x1F, bzw. 31 dez.)
Zuletzt geändert von af0815 am Sa 28. Jan 2023, 19:23, insgesamt 1-mal geändert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 8
- Registriert: Sa 28. Jan 2023, 18:50
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.0)
- CPU-Target: 64Bit
- Wohnort: Bodensee
Re: Drucken Escape Sequenzen an Drucker schicken
Ja das sehe ich auch so
Die Frage ist halt wie bekomme ich die beschriebene esc Sequenz so an den Drucker gesendet, dass er Sie versteht. Evtl. Hat ja noch jemand eine ähnliche Druckerkonstellation?
Die Frage ist halt wie bekomme ich die beschriebene esc Sequenz so an den Drucker gesendet, dass er Sie versteht. Evtl. Hat ja noch jemand eine ähnliche Druckerkonstellation?
- af0815
- Lazarusforum e. V.
- Beiträge: 6198
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Drucken Escape Sequenzen an Drucker schicken
Siehe Edit. Bei so alten Druckern sollte man die gute alte ASCII Tabelle auswendig können
BTW: Ich habe mit solchen Druckern selbst gearbeitet, deswegen habe ich noch ein wenig Ahnung aus meine Jugendzeit (SCNR)
US = Unit Seperator = 0x1F = 31 dec.
Edit:
Im Manual von dir gezeigten RS entspricht
RS = Record Seperator = 0x1E = 30 dec.
BTW: Ich habe mit solchen Druckern selbst gearbeitet, deswegen habe ich noch ein wenig Ahnung aus meine Jugendzeit (SCNR)
US = Unit Seperator = 0x1F = 31 dec.
Edit:
Im Manual von dir gezeigten RS entspricht
RS = Record Seperator = 0x1E = 30 dec.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 8
- Registriert: Sa 28. Jan 2023, 18:50
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.0)
- CPU-Target: 64Bit
- Wohnort: Bodensee
Re: Drucken Escape Sequenzen an Drucker schicken
Hi Super das bringt mich schon weiter ASCII Tabelle ist im Handbuch auch dabei da steht US (31) .
Jetzt habe ich es so probiert:
pitch12 = Char(27)+Char(31)+'11';
Dann druckt die Maschine eine 1 aus also die 11 bekommt er noch nicht interpretiert?
Jetzt habe ich es so probiert:
pitch12 = Char(27)+Char(31)+'11';
Dann druckt die Maschine eine 1 aus also die 11 bekommt er noch nicht interpretiert?
-
- Beiträge: 8
- Registriert: Sa 28. Jan 2023, 18:50
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.0)
- CPU-Target: 64Bit
- Wohnort: Bodensee
Re: Drucken Escape Sequenzen an Drucker schicken
11 wären ja schon wieder 2 Byte wie bekomme ich das dann an den Drucker?
- af0815
- Lazarusforum e. V.
- Beiträge: 6198
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Drucken Escape Sequenzen an Drucker schicken
Es ist immer die Frage ASCII oder binär. Bei diesen ESCape Sequenzen und den alten Dokumentationen ist ein wenig probieren angesagt. Also chr(11)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Drucken Escape Sequenzen an Drucker schicken
vielleicht für 9,11 oder 13 das Zeichen dazu senden und nicht den String: chr(11)
Gruß, Michael
-
- Lazarusforum e. V.
- Beiträge: 177
- Registriert: Sa 26. Mai 2012, 17:31
- OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
- CPU-Target: 64Bit
Re: Drucken Escape Sequenzen an Drucker schicken
Also sowas wie
Char(27)+Char(31) + Char(11)
kenne ich von anno Dunnemals auch noch als Steuerzeichen für den Drucker.
war nicht schön und immer druckerspezifisch, hat aber funktioniert.
Spezielle lesbare Zeichen waren eher Kyocera-spezifisch.
Char(27)+Char(31) + Char(11)
kenne ich von anno Dunnemals auch noch als Steuerzeichen für den Drucker.
war nicht schön und immer druckerspezifisch, hat aber funktioniert.
Spezielle lesbare Zeichen waren eher Kyocera-spezifisch.
just my two Beer
-
- Beiträge: 8
- Registriert: Sa 28. Jan 2023, 18:50
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.0)
- CPU-Target: 64Bit
- Wohnort: Bodensee
Re: Drucken Escape Sequenzen an Drucker schicken
Vielen Dank an alle für die Unterstützung.
Char27)+Char(31) + Char(11) Das war es.
Druckt nun einwandfrei.
Bin ganz happy mit eines meiner ersten Pascal Programme.
Macht echt riesig Spaß und dann noch die tolle Hilfe hier im Forum.
Ich wünsche allen noch einen schönen Sonntag und frohes programmieren
Falls jemand das Programm für seine Brother CE-550 in Verbindung mit dem IF-60
haben möchte, gerne eine PN.
Char27)+Char(31) + Char(11) Das war es.
Druckt nun einwandfrei.
Bin ganz happy mit eines meiner ersten Pascal Programme.
Macht echt riesig Spaß und dann noch die tolle Hilfe hier im Forum.
Ich wünsche allen noch einen schönen Sonntag und frohes programmieren
Falls jemand das Programm für seine Brother CE-550 in Verbindung mit dem IF-60
haben möchte, gerne eine PN.
- af0815
- Lazarusforum e. V.
- Beiträge: 6198
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Drucken Escape Sequenzen an Drucker schicken
Danke für die Bereitschaft. Gott sei Dank, bin ich aus dem Alter heraussen
Früher musst ich mich mit Matrix- und Daisywheel Druckern beschäftigen, weil für Durchschläge in Lagern wurden die lange noch gebraucht,
Dann war lange Ruhe. Bis die Etikettendrucker jetzt wieder da sind. Und auch dort geht alles nur mit ESC Sequenzen, weil man ja auch Daten in die RFIDs rein bekommen Muss und das kann wieder kein Treiber (meistens gar nicht für Linux vorgesehen), da sind wir wieder bei den guten alten ESCape Sequenzen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 8
- Registriert: Sa 28. Jan 2023, 18:50
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.0)
- CPU-Target: 64Bit
- Wohnort: Bodensee
Re: Drucken Escape Sequenzen an Drucker schicken
Gerne
Bin gerade wieder in dem Alter drin (55). Habe in meiner Ausbildung zum DV Kaufmann und danach
auch viel mit Matrixdruckern .. und deren Programmierung zu tun gehabt.
Was mich absolut an dem Typenraddrucker gereizt hat ist das Geräusch beim Drucken und das
Schriftbild.
Ja ziemlich nerdig
Re: Drucken Escape Sequenzen an Drucker schicken
Wenn du auf so etwas stehst, versuch einen alten Fernschreiber zu bekommen... 50Bd sind doch was
Gruß, Michael
-
- Beiträge: 8
- Registriert: Sa 28. Jan 2023, 18:50
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.0)
- CPU-Target: 64Bit
- Wohnort: Bodensee
Re: Drucken Escape Sequenzen an Drucker schicken
Das wäre es noch