ESC/P
# ESC/P

ESC/P (Epson Standard Code for Printers) ist eine von Seiko Epson entwickelte Befehlssprache zur Ansteuerung von Druckern. In der Ära der Nadeldrucker wurde diese in z. T. leicht veränderter Form auch von anderen Herstellern verwendet (z. B. NEC).

Namensgebend für ESC/P ist die Einleitung der Escape-Sequenzen mit dem Zeichen ESC (Escape = hexadezimal 1B oder dezimal 27) des ASCII-Zeichensatzes. Zum Beispiel erfolgt das Einschalten von Fettschrift mit ESC E und das Ausschalten von Fettschrift mit ESC F (hierbei ist die Groß-/Kleinschreibung zu beachten, denn mit ESC e wird z. B. ein Tabulatorabstand definiert).

## Beispiel: Grafikdruck mit einem Neun-Nadel-Drucker

ESC * m $n_L$ $n_H$ $d_1$ … $d_k$

Mit diesem Befehl werden k Spalten Rastergrafik gedruckt. Das Escape-Zeichen hat den ASCII-Code 27 und das Sternchen den Code 42.

Das Byte m ist die Auflösung in horizontaler Richtung, z. B. steht 5 für 72 dpi oder 3 für 240 dpi. Die Auflösung in vertikaler Richtung beträgt hier immer 72 dpi und ergibt sich aus dem Nadelabstand.

Die Bytes $n_L$ und $n_H$ ergeben zusammen die Anzahl k (Low Byte, High Byte) der zu druckenden Spalten.

Für jede Spalte ist ein Byte d zu senden, das die anzuschlagenden Nadeln bitweise codiert. Bit 7 steht dabei für die oberste Nadel. Die unterste (neunte) Nadel wird nicht benutzt.

Um sinnvoll Grafik zu drucken, benötigt man noch zwei weitere Befehle: Wagenrücklauf (CR = 0x0d bzw. 13) und Papiervorschub um n/216 Zoll (ESC J n). Um direkt unter der gedruckten Zeile die nächste zu drucken, ist hier für n 24 einzusetzen. Wird jedoch für n der Wert 8 eingesetzt, so beträgt der Vorschub $^8⁄_3$ des Nadelabstands. Auf diese Weise kann mit dreifacher vertikaler Auflösung, also 216 dpi gedruckt werden. Der Ausdruck dauert dann allerdings auch dreimal so lange.

Um die hier gezeigte Beispielgrafik zu drucken, müsste man also folgende Daten an den Drucker senden:

| 27 42 5 24 0 | Drucke 24 Spalten mit 72 dpi |
| - | - |
| 0 7 15 31 62 124 120 113 241 225 224 224 224 224 225 241 113 120 124 62 31 15 7 0 | Bilddaten |
| 13 | Wagenrücklauf |
| 27 74 24 | Papiervorschub um 24/216 Zoll |
| 27 42 5 24 0 | Drucke 24 Spalten mit 72 dpi |
| 255 255 255 129 0 0 0 195 195 195 1 1 1 1 195 195 195 0 0 0 129 255 255 255 | Bilddaten |
| 13 | Wagenrücklauf |
| 27 74 24 | Papiervorschub um 24/216 Zoll |
| 27 42 5 24 0 | Drucke 24 Spalten mit 72 dpi |
| 0 224 240 248 124 62 30 142 143 199 199 199 199 199 199 143 142 30 62 124 248 240 224 0 | Bilddaten |
| 13 | Wagenrücklauf |
| 27 74 24 | Papiervorschub um 24/216 Zoll |
