Drucken Escape Sequenzen an Drucker schicken

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
riscpower
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

Beitrag von riscpower »

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 :D ).

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.

Benutzeravatar
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

Beitrag von af0815 »

riscpower hat geschrieben:
Sa 28. Jan 2023, 19:07
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.
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.

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).

riscpower
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

Beitrag von riscpower »

Ja das sehe ich auch so :D
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?

riscpower
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

Beitrag von riscpower »

image.jpg
Seite aus dem Handbuch
(3.08 MiB) Noch nie heruntergeladen

Benutzeravatar
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

Beitrag von af0815 »

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.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

riscpower
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

Beitrag von riscpower »

Hi Super das bringt mich schon weiter ASCII Tabelle ist im Handbuch auch dabei da steht US (31) :roll: .

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?

riscpower
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

Beitrag von riscpower »

11 wären ja schon wieder 2 Byte wie bekomme ich das dann an den Drucker?

Benutzeravatar
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

Beitrag von af0815 »

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).

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Drucken Escape Sequenzen an Drucker schicken

Beitrag von six1 »

vielleicht für 9,11 oder 13 das Zeichen dazu senden und nicht den String: chr(11)
Gruß, Michael

Joh
Lazarusforum e. V.
Beiträge: 176
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

Beitrag von Joh »

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.
just my two Beer

riscpower
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

Beitrag von riscpower »

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 :D

Falls jemand das Programm für seine Brother CE-550 in Verbindung mit dem IF-60
haben möchte, gerne eine PN.

Benutzeravatar
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

Beitrag von af0815 »

riscpower hat geschrieben:
So 29. Jan 2023, 11:09
Falls jemand das Programm für seine Brother CE-550 in Verbindung mit dem IF-60
haben möchte, gerne eine PN.
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).

riscpower
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

Beitrag von riscpower »

af0815 hat geschrieben:
So 29. Jan 2023, 11:42

Danke für die Bereitschaft. Gott sei Dank, bin ich aus dem Alter heraussen :-)
Gerne :D
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 :lol:

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Drucken Escape Sequenzen an Drucker schicken

Beitrag von six1 »

Wenn du auf so etwas stehst, versuch einen alten Fernschreiber zu bekommen... 50Bd sind doch was :lol:
Gruß, Michael

riscpower
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

Beitrag von riscpower »

Das wäre es noch :D

Antworten