2010-02-26 08:54:46 +00:00
|
|
|
ESCPOS
|
|
|
|
======
|
|
|
|
|
|
|
|
Python library to manipulate ESC/POS Printers.
|
|
|
|
|
|
|
|
------------------------------------------------------------------
|
|
|
|
1. Dependencies
|
|
|
|
|
|
|
|
In order to start getting access to your printer, you must ensure
|
|
|
|
you have previously installed the following python modules:
|
|
|
|
|
|
|
|
* pyusb (python-usb)
|
|
|
|
* PIL (Python Image Library)
|
|
|
|
|
|
|
|
------------------------------------------------------------------
|
|
|
|
2. Description
|
|
|
|
|
|
|
|
Python ESC/POS is a library which lets the user have access to all
|
|
|
|
those printers handled by ESC/POS commands, as defined by Epson,
|
|
|
|
from a Python application.
|
|
|
|
|
|
|
|
The standard usage is send raw text to the printer, but in also
|
|
|
|
helps the user to enhance the experience with those printers by
|
|
|
|
facilitating the bar code printing in many different standards,
|
|
|
|
as well as manipulating images so they can be printed as brand
|
|
|
|
logo or any other usage images migh have.
|
|
|
|
|
|
|
|
Text can be aligned/justified and fonts can be changed by size,
|
|
|
|
type and weight.
|
|
|
|
|
|
|
|
Also, this module handles some hardware functionalities like, cut
|
|
|
|
paper, carrier return, printer reset and others concerned to the
|
|
|
|
carriage alignment.
|
|
|
|
|
|
|
|
------------------------------------------------------------------
|
|
|
|
3. Define your printer
|
|
|
|
|
|
|
|
Before start create your Python ESC/POS printer instance, you must
|
|
|
|
see at your system for the printer parameters. This is done with
|
|
|
|
the 'lsusb' command.
|
|
|
|
|
|
|
|
First run the command to look for the "Vendor ID" and "Product ID",
|
|
|
|
then write down the values, these values are displayed just before
|
|
|
|
the name of the device with the following format:
|
|
|
|
|
|
|
|
xxxx:xxxx
|
|
|
|
|
|
|
|
Example:
|
|
|
|
Bus 002 Device 001: ID 1a2b:1a2b Device name
|
|
|
|
|
|
|
|
Write down the the values in question, then issue the following
|
|
|
|
command so you can get the "Interface" number and "End Point"
|
|
|
|
|
|
|
|
lsusb -vvv -d xxxx:xxxx | grep iInterface
|
|
|
|
lsusb -vvv -d xxxx:xxxx | grep bEndpointAddress | grep OUT
|
|
|
|
|
|
|
|
The first command will yields the "Interface" number that must
|
|
|
|
be handy to have and the second yields the "Output Endpoint"
|
|
|
|
address.
|
|
|
|
|
|
|
|
By default the "Interface" number is "0" and the "Output Endpoint"
|
|
|
|
address is "0x82", if you have other values then you can define
|
|
|
|
with your instance.
|
|
|
|
|
|
|
|
------------------------------------------------------------------
|
|
|
|
4. Define your instance
|
|
|
|
|
|
|
|
The following example shows how to initialize the Epson TM-TI88IV
|
2012-07-28 23:02:57 +00:00
|
|
|
*** NOTE: Always finish the sequence with Epson.cut() otherwise
|
|
|
|
you will endup with weird chars being printed.
|
2010-02-26 08:54:46 +00:00
|
|
|
|
|
|
|
from escpos import *
|
|
|
|
|
|
|
|
""" Seiko Epson Corp. Receipt Printer M129 Definitions (EPSON TM-T88IV) """
|
|
|
|
Epson = escpos.Escpos(0x04b8,0x0202,0)
|
|
|
|
Epson.text("Hello World")
|
|
|
|
Epson.image("logo.gif")
|
|
|
|
Epson.barcode
|
|
|
|
Epson.barcode('1324354657687','EAN13',64,2,'','')
|
|
|
|
Epson.cut()
|
|
|
|
|
|
|
|
------------------------------------------------------------------
|
|
|
|
5. Links
|
|
|
|
|
|
|
|
Please visit project homepage at:
|
|
|
|
http://repo.bashlinux.com/projects/escpos.html
|
|
|
|
|
|
|
|
Manuel F Martinez <manpaz@bashlinux.com>
|
|
|
|
|