Merge remote-tracking branch 'manpaz/master'
This commit is contained in:
commit
50b0691e68
10
CHANGELOG
10
CHANGELOG
|
@ -26,12 +26,18 @@ CHANGELOG
|
||||||
* 2015-04-21 - Version 1.0.5
|
* 2015-04-21 - Version 1.0.5
|
||||||
- Merge pull request #45 from Krispy2009/master
|
- Merge pull request #45 from Krispy2009/master
|
||||||
. Raising the right error when wrong charcode is used
|
. Raising the right error when wrong charcode is used
|
||||||
. Sent by Krispy2009@gmail.com
|
. Sent by Kristi <Krispy2009@gmail.com>
|
||||||
|
|
||||||
* 2015-07-06 - Version 1.0.6
|
* 2015-07-06 - Version 1.0.6
|
||||||
- Merge pull request #53 from ldos/master
|
- Merge pull request #53 from ldos/master
|
||||||
. Extended params for serial printers
|
. Extended params for serial printers
|
||||||
. Sent by cafeteria.ldosalzira@gmail.com
|
. Sent by ldos <cafeteria.ldosalzira@gmail.com>
|
||||||
|
|
||||||
* 2015-08-22 - Version 1.0.7
|
* 2015-08-22 - Version 1.0.7
|
||||||
- Issue #57: Fixed transparent images
|
- Issue #57: Fixed transparent images
|
||||||
|
|
||||||
|
* 2015-10-27 - Version 1.0.8
|
||||||
|
- Merge pull request #59 from zouppen/master
|
||||||
|
. Support for images vertically longer than 256 pixels
|
||||||
|
. Sent by Joel Lehtonen <joel.lehtonen@koodilehto.fi>
|
||||||
|
- Updated README
|
||||||
|
|
62
README
62
README
|
@ -4,16 +4,7 @@ ESCPOS
|
||||||
Python library to manipulate ESC/POS Printers.
|
Python library to manipulate ESC/POS Printers.
|
||||||
|
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
1. Dependencies
|
1. Description
|
||||||
|
|
||||||
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
|
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,
|
those printers handled by ESC/POS commands, as defined by Epson,
|
||||||
|
@ -33,60 +24,13 @@ paper, carrier return, printer reset and others concerned to the
|
||||||
carriage alignment.
|
carriage alignment.
|
||||||
|
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
3. Define your printer
|
2. Documentation
|
||||||
|
|
||||||
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
|
|
||||||
*** NOTE: Always finish the sequence with Epson.cut() otherwise
|
|
||||||
you will endup with weird chars being printed.
|
|
||||||
|
|
||||||
from escpos import *
|
|
||||||
|
|
||||||
""" Seiko Epson Corp. Receipt Printer M129 Definitions (EPSON TM-T88IV) """
|
|
||||||
Epson = escpos.Escpos(0x04b8,0x0202)
|
|
||||||
Epson.text("Hello World")
|
|
||||||
Epson.image("logo.gif")
|
|
||||||
Epson.barcode
|
|
||||||
Epson.barcode('1324354657687','EAN13',64,2,'','')
|
|
||||||
Epson.cut()
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
5. Links
|
|
||||||
|
|
||||||
Please visit project documentation at:
|
Please visit project documentation at:
|
||||||
https://github.com/manpaz/python-escpos/wiki
|
https://github.com/manpaz/python-escpos/wiki
|
||||||
|
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
6. Donations
|
3. Donations
|
||||||
|
|
||||||
There are some different prints I'd like to acquire, but unfortunately
|
There are some different prints I'd like to acquire, but unfortunately
|
||||||
not all, even used, are cheaper and easy to get.
|
not all, even used, are cheaper and easy to get.
|
||||||
|
|
|
@ -45,7 +45,7 @@ class Escpos:
|
||||||
buffer = ""
|
buffer = ""
|
||||||
|
|
||||||
self._raw(S_RASTER_N)
|
self._raw(S_RASTER_N)
|
||||||
buffer = "%02X%02X%02X%02X" % (((size[0]/size[1])/8), 0, size[1], 0)
|
buffer = "%02X%02X%02X%02X" % (((size[0]/size[1])/8), 0, size[1]&0xff, size[1]>>8)
|
||||||
self._raw(binascii.unhexlify(buffer))
|
self._raw(binascii.unhexlify(buffer))
|
||||||
buffer = ""
|
buffer = ""
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ class Escpos:
|
||||||
|
|
||||||
if im.size[0] > 512:
|
if im.size[0] > 512:
|
||||||
print ("WARNING: Image is wider than 512 and could be truncated at print time ")
|
print ("WARNING: Image is wider than 512 and could be truncated at print time ")
|
||||||
if im.size[1] > 255:
|
if im.size[1] > 0xffff:
|
||||||
raise ImageSizeError()
|
raise ImageSizeError()
|
||||||
|
|
||||||
im_border = self._check_image_size(im.size[0])
|
im_border = self._check_image_size(im.size[0])
|
||||||
|
|
|
@ -41,11 +41,19 @@ class Usb(Escpos):
|
||||||
if self.device is None:
|
if self.device is None:
|
||||||
print("Cable isn't plugged in")
|
print("Cable isn't plugged in")
|
||||||
|
|
||||||
if self.device.is_kernel_driver_active(0):
|
check_driver = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
check_driver = self.device.is_kernel_driver_active(0)
|
||||||
|
except NotImplementedError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if check_driver is None or check_driver:
|
||||||
try:
|
try:
|
||||||
self.device.detach_kernel_driver(0)
|
self.device.detach_kernel_driver(0)
|
||||||
except usb.core.USBError as e:
|
except usb.core.USBError as e:
|
||||||
print("Could not detatch kernel driver: %s" % str(e))
|
if check_driver is not None:
|
||||||
|
print("Could not detatch kernel driver: %s" % str(e))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.device.set_configuration()
|
self.device.set_configuration()
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -4,7 +4,7 @@ from distutils.core import setup
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='escpos',
|
name='escpos',
|
||||||
version='1.0.7',
|
version='1.0.8',
|
||||||
url='https://github.com/manpaz/python-escpos',
|
url='https://github.com/manpaz/python-escpos',
|
||||||
download_url='https://github.com/manpaz/python-escpos.git',
|
download_url='https://github.com/manpaz/python-escpos.git',
|
||||||
description='Python library to manipulate ESC/POS Printers',
|
description='Python library to manipulate ESC/POS Printers',
|
||||||
|
|
Loading…
Reference in New Issue