Deno:在 ESC/POS 打印机上打印位图

huangapple go评论58阅读模式
英文:

Deno: Print bitmap on ESC/POS printer

问题

I'm currently trying to print out a bitmap with my ESC/POS printer. For this I followed this documentation.

How to connect to the printer I already figured out here.

But now I have the problem that when I try to send a special instruction to the printer it just prints the instruction as ASCII string and does not interpret it.

The code I am currently using looks like this:

// connect to printer
const connection = await Deno.connect( {transport: 'tcp', hostname: '<PRINTER IP>', port: 9100} );

// read in file
const file = await Deno.readFile( './ticket.txt' );

// send file to printer
await connection.write( file );

// close connection
connection.close();

The ticket.txt file looks like this (It is the same as on the EPSON example page.):
[The rest of the content appears to be in binary or hexadecimal format and is not translatable text.]

英文:

I'm currently trying to print out a bitmap with my ESC/POS printer. For this I followed this documentation.

How to connect to the printer I already figured out here.

But now I have the problem that when I try to send a special instruction to the printer it just prints the instruction as ASCII string and does not interpret it.

The code I am currently using looks like this:

// connect to printer
const connection = await Deno.connect( {transport: &#39;tcp&#39;, hostname: &#39;&lt;PRINTER IP&gt;&#39;, port: 9100} );

// read in file
const file = await Deno.readFile( &#39;./ticket.txt&#39; );

// send file to printer
await connection.write( file );

// close connection
connection.close();

The ticket.txt file looks like this (It is the same as on the EPSON example page.):

ESC &quot;@&quot;
GS &quot;(L&quot; 139   7  48  67  48   &quot;G1&quot;   1 128   0 120   0  49
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x3C 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x7C 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x81 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03 0xF8 0x00 0x00 0x00 0x01
0x83 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x1F 0x87 0x80 0x00 0x00 0x01
0x87 0xFD 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x3F 0x00 0x78 0x00 0x00 0x01
0x87 0xF1 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x3E 0x00 0x1F 0x00 0x00 0x01
0x83 0xE7 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x5C 0x00 0x0F 0xC0 0x00 0x01
0x80 0x4F 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x4E 0x00 0x07 0xE0 0x00 0x01
0x80 0x7F 0xE0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x4F 0x00 0x01 0xF0 0x00 0x01
0x80 0x3F 0xF0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x87 0x80 0x01 0xF8 0x00 0x01
0x80 0x3F 0xF0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x83 0x80 0x00 0xFC 0x00 0x01
0x80 0x1F 0xC8 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x81 0xC0 0x00 0x7E 0x00 0x01
0x80 0x1F 0x98 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0xC0 0x00 0x3F 0x00 0x01
0x80 0x0E 0x3C 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x60 0x00 0x3F 0x00 0x01
0x80 0x0C 0xFC 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x10 0x00 0x1F 0x80 0x01
0x80 0x05 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x0C 0x00 0x1F 0x80 0x01
0x80 0x07 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x03 0xFF 0xFF 0x80 0x01
0x80 0x03 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x3F 0xFF 0x80 0x01
0x80 0x03 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01 0xFF 0x80 0x01
0x80 0x01 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x07 0xFF 0x80 0x00 0x1F 0x80 0x01
0x80 0x01 0xFF 0xC0 0x00 0x00 0x00 0x00 0x00 0x07 0x80 0x7F 0x00 0x01 0x00 0x01
0x80 0x00 0xFF 0xE0 0x00 0x00 0x00 0x00 0x00 0x0F 0xC0 0x00 0xFF 0x01 0x00 0x01
0x80 0x00 0xFF 0xE0 0x00 0x00 0x00 0x00 0x00 0x0F 0xE0 0x00 0x00 0xFA 0x00 0x01
0x80 0x00 0x7F 0xF0 0x00 0x00 0x00 0x00 0x00 0x0F 0xF8 0x00 0x00 0x06 0x00 0x01
0x80 0x00 0x7F 0xF8 0x00 0x00 0x00 0x00 0x00 0x1F 0xFF 0xC0 0x00 0x1C 0x00 0x01
0x80 0x00 0x3F 0xF8 0x00 0x00 0x00 0x00 0x00 0x1F 0xFF 0xFF 0xFF 0xFC 0x00 0x01
0x80 0x00 0x3F 0xFC 0x00 0x00 0x00 0x00 0x00 0x1F 0xFF 0xFF 0xFF 0xF8 0x00 0x01
0x80 0x00 0x1F 0xFE 0x00 0x00 0x00 0x00 0x00 0x1F 0xFF 0xFF 0xFF 0xF8 0x00 0x01
0x80 0x00 0x1F 0xFF 0x80 0x00 0x00 0x00 0x00 0x1F 0xFF 0xFF 0xFF 0xF0 0x00 0x01
0x80 0x00 0x0F 0xFF 0xF0 0x00 0x00 0x00 0x00 0x1F 0xFF 0xFF 0xFF 0xE0 0x00 0x01
0x80 0x00 0x0F 0xFF 0xFE 0x00 0x00 0x00 0x00 0x1F 0xFF 0xFF 0xFF 0xC0 0x00 0x01
0x80 0x00 0x07 0xFF 0xFF 0x80 0x00 0x00 0x00 0x0F 0xFF 0xFF 0xFF 0x80 0x00 0x01
0x80 0x00 0x03 0xFF 0xFF 0xE0 0x00 0x00 0x00 0x0F 0xFF 0xFF 0xFF 0x00 0x00 0x01
0x80 0x00 0x03 0xFF 0xFF 0xF0 0x00 0x00 0x00 0x0F 0xFF 0xFF 0xFE 0x00 0x00 0x01
0x80 0x00 0x07 0xFF 0xFF 0xFC 0x00 0x00 0x00 0x0F 0xFF 0xFF 0xFC 0x00 0x00 0x01
0x80 0x00 0x07 0xFF 0xFF 0xFC 0x00 0x00 0x00 0x07 0xFF 0xFF 0xF8 0x00 0x00 0x01
0x80 0x00 0x0F 0xFF 0xFF 0xFE 0x00 0x00 0x00 0x07 0xFF 0xFF 0xF0 0x00 0x00 0x01
0x80 0x00 0x0F 0xFF 0xFF 0xFE 0x00 0x00 0x00 0x07 0xFF 0xFF 0xE0 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFF 0xFF 0x00 0x00 0x00 0x03 0xFF 0xFF 0xC0 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFF 0xFF 0x00 0x00 0x00 0x03 0xFF 0xFF 0x80 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFF 0xFE 0x80 0x00 0x00 0x03 0xFF 0xFF 0x00 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFF 0xFC 0x80 0x00 0x00 0x03 0xFF 0xFE 0x00 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFF 0xF8 0xC0 0x00 0x00 0x03 0xFF 0xFC 0x00 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFF 0xF1 0x40 0x00 0x00 0x03 0xFF 0xE0 0x00 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFF 0xE3 0x20 0x00 0x00 0x07 0x80 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFF 0xC3 0x20 0x00 0x00 0x07 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFF 0x02 0x10 0x00 0x00 0x0F 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xFC 0x06 0x10 0x00 0x00 0x0E 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x1F 0xFF 0xE0 0x04 0x08 0x00 0x00 0x0E 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x0F 0xFF 0x00 0x0C 0x08 0x00 0x00 0x1C 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x08 0x00 0x00 0x1C 0x04 0x00 0x00 0x38 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x08 0x00 0x00 0x38 0x04 0x00 0x00 0x38 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x04 0x00 0x00 0xF0 0x02 0x00 0x00 0x70 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x04 0x00 0x01 0xE0 0x02 0x00 0x00 0xE0 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x04 0x00 0x07 0xC0 0x01 0x00 0x00 0xE0 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x02 0x00 0x1F 0x80 0x01 0x00 0x01 0xC0 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x02 0x00 0xFE 0x00 0x00 0x80 0x01 0xC0 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x01 0x03 0xFC 0x00 0x00 0x80 0x03 0x80 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x01 0x0F 0xF0 0x00 0x00 0x58 0x03 0x80 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0xFF 0xC0 0x00 0x00 0x67 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0xFF 0x00 0x00 0x00 0x63 0xC7 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x7C 0x00 0x00 0x00 0x73 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x78 0x00 0x00 0x00 0x73 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x40 0x00 0x00 0x00 0x3B 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x20 0x00 0x00 0x00 0x3B 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x20 0x00 0x00 0x00 0x1B 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x20 0x00 0x00 0x00 0x1F 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x10 0x00 0x00 0x00 0x0F 0xFF 0xC0 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x10 0x00 0x00 0x00 0x0F 0xFF 0xE0 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x08 0x00 0x00 0x00 0x07 0xFF 0xE0 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x08 0x00 0x00 0x00 0x03 0xFF 0xE0 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x04 0x00 0x00 0x00 0x01 0xFF 0xC0 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x04 0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x70 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0xE0 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x20 0x00 0x00 0x01 0xF8 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x20 0x00 0x00 0x03 0xF8 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x20 0x00 0x00 0x0F 0xFC 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x10 0x00 0x00 0x3F 0xFC 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x10 0x00 0x03 0xFF 0xFC 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x08 0x00 0x3F 0xFF 0xFC 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x08 0x03 0xFF 0xFF 0xFC 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x04 0x3F 0xFF 0xFF 0xFC 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x07 0xFF 0xFF 0xFF 0xF8 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x03 0xFF 0xFF 0xFF 0xF8 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x03 0xFF 0xFF 0xFF 0xF0 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x01 0xFF 0xFF 0xFF 0xE0 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x01 0xFF 0xFF 0xFF 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0xFF 0xFF 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0xFF 0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x7F 0xFF 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x7F 0xFF 0xF8 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x3F 0xFF 0xE0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x1F 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x0F 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x07 0xF0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
GS &quot;(L&quot;   6   0  48  69  &quot;G1&quot;   1 1
GS &quot;V&quot; 66 0

If I send the whole now to the printer then it prints me the entire thing only as text out.

What do I have to change so that the printer interprets the text as instruction?

Thanks! ~Mqx

答案1

得分: 1

EPSON example page描述的样本数据被假定通过这个工具Send Data Tool进行处理,转换为ESC/POS命令并打印。

您有几个选项。

  • 创建一个程序,根据这些页面上描述的规范Commands in Code Order等,将样本文本数据转换为ESC/POS命令,并在发送之前进行处理。
  • 同样地,根据规范手动将样本文本数据转换为ESC/POS命令的二进制数据并发送。
    顺便提一下,您可以使用上述工具创建一个转换为二进制数据文件的样本文本文件。Send Data Tool
  • 使用现有库,根据库的规范创建样本数据,并通过该库发送。
英文:

The sample data described on that page EPSON example page is assumed to be processed by this tool Send Data Tool, converted to ESC/POS commands, and printed.

You have several options.

  • Create a program that converts the sample text data into ESC/POS commands based on the specifications described on these pages Commands in Code Order, etc., and process it before sending.
  • Similarly, based on the specifications, manually convert the sample text data into binary data for ESC/POS commands and send it.
    By the way, you can create a sample text file converted to binary data file with the above tool. Send Data Tool
  • Use some existing library, create sample data according to the specifications of the library, and send it from the library.

huangapple
  • 本文由 发表于 2023年2月16日 16:10:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/75469397.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定