Thermal printers: Difference between revisions

From XPUB & Lens-Based wiki
 
(9 intermediate revisions by the same user not shown)
Line 6: Line 6:


[[File:Epson-tm20III-at-xpub.jpg|thumb|right]]
[[File:Epson-tm20III-at-xpub.jpg|thumb|right]]
===Command line===
Plug the USB into your computer or server first.
In Linux/Mac, the printer should appear at one of the <code>/dev/</code> sockters, which should be a path similar to:
/dev/usb/lp0
Try to send some text to the printer:
$ echo "hello" > /dev/usb/lp0
If you get an '''permission denied''' error, you can check the permissions of the socket of the printer:
$ ls -la /dev/usb/lp0
Which returns something like the following:
crw-rw---- 1 root lp 180, 2 Nov  6 12:48 /dev/usb/lp2
In this case, the printer socket is owned by the user <code>root</code> and by the group <code>lp</code>.
With the <code>groups</code> command you can check if you are part of the <code>lp</code> group:
$ groups
If not, you can add yourself with:
$ sudo addgroup USERNAME lp


===Python===
===Python===
With the '''escpos Python library''' you can use the printer from a Python script.
* to install the library: https://pypi.org/project/escpos/
* documentation: https://python-escpos.readthedocs.io/en/latest/user/usage.html
====USB====
You can choose to connect over an "usb" connection"
<syntaxhighlight lang="python">
from escpos.printer import Usb
p = Usb(0x04b8, 0x0e28)
# this is the specific nr for this printer
# you can find it with $ lsusb
p.text("Hello World\n")
</syntaxhighlight>
Or a "file handler" connection:
<syntaxhighlight lang="python">
from escpos.printer import Usb
p2 = File("/dev/usb/lp0")
p2.text("HELLO!\n")
</syntaxhighlight>
====network====


<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
Line 16: Line 76:
<small>From: [[User:Ohjian/XPUB_1#Code:_Good_Bye_Aymeric,_Hello_Epson_Printer]]</small>
<small>From: [[User:Ohjian/XPUB_1#Code:_Good_Bye_Aymeric,_Hello_Epson_Printer]]</small>


==Gallery==
<gallery>
File:Cocktail_generator_2.0.gif|Cocktail generator made for Aymeric's goodbye party in action! (Who made it? Jian and Chae?), see also: [[SI_17_-_Productive_Play#Cocktail_Generator_for_Aymeric's_Goodbye_Party_(with_Jian)]] and [[User:Ohjian/XPUB_1#Cocktail_Generator]]
File:Cocktail-generator-setup-01.jpg|Cocktail generator setup
</gallery>


[[Category:Printers]]
[[Category:Printers]]

Latest revision as of 16:27, 6 November 2023

a.k.a. receipt printers

We have the following thermal printers at XPUB:

Epson TM20III

Epson-tm20III-at-xpub.jpg

Command line

Plug the USB into your computer or server first.

In Linux/Mac, the printer should appear at one of the /dev/ sockters, which should be a path similar to:

/dev/usb/lp0

Try to send some text to the printer:

$ echo "hello" > /dev/usb/lp0

If you get an permission denied error, you can check the permissions of the socket of the printer:

$ ls -la /dev/usb/lp0

Which returns something like the following:

crw-rw---- 1 root lp 180, 2 Nov  6 12:48 /dev/usb/lp2

In this case, the printer socket is owned by the user root and by the group lp.

With the groups command you can check if you are part of the lp group:

$ groups

If not, you can add yourself with:

$ sudo addgroup USERNAME lp

Python

With the escpos Python library you can use the printer from a Python script.

USB

You can choose to connect over an "usb" connection"

from escpos.printer import Usb

p = Usb(0x04b8, 0x0e28) 
# this is the specific nr for this printer
# you can find it with $ lsusb

p.text("Hello World\n")

Or a "file handler" connection:

from escpos.printer import Usb

p2 = File("/dev/usb/lp0")
p2.text("HELLO!\n")

network

from escpos.printer import Network
kitchen = Network("145.24.131.103") 
#EPSON Receipt Printer. Printer IP Address will be spit out when plugged

From: User:Ohjian/XPUB_1#Code:_Good_Bye_Aymeric,_Hello_Epson_Printer

Gallery