2016-03-08 14:47:40 +00:00
#############################################################
python-escpos - Python library to manipulate ESC/POS Printers
#############################################################
.. image :: https://travis-ci.org/python-escpos/python-escpos.svg?branch=master
:target: https://travis-ci.org/python-escpos/python-escpos
:alt: Continous Integration
.. image :: https://landscape.io/github/python-escpos/python-escpos/master/landscape.svg?style=flat
:target: https://landscape.io/github/python-escpos/python-escpos/master
:alt: Code Health
2016-03-21 19:23:46 +00:00
.. image :: https://codecov.io/github/python-escpos/python-escpos/coverage.svg?branch=master
:target: https://codecov.io/github/python-escpos/python-escpos?branch=master
:alt: Code Coverage
2016-03-08 14:47:40 +00:00
.. image :: https://readthedocs.org/projects/python-escpos/badge/?version=stable
2016-04-30 13:22:14 +00:00
:target: http://python-escpos.readthedocs.io/en/latest/?badge=stable
2016-03-08 14:47:40 +00:00
:alt: Documentation Status
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 library tries to implement the functions provided by the ESC/POS-commandset and supports sending text, images,
barcodes and qr-codes to the printer.
Text can be aligned/justified and fonts can be changed by size, type and weight.
Also, this module handles some hardware functionalities like cutting paper, control characters, printer reset
and similar functions.
2017-01-29 22:20:11 +00:00
Since supported commands differ from printer to printer the software tries to automatically apply the right
settings for the printer that you set. These settings are handled by
`escpos-printer-db <https://github.com/receipt-print-hq/escpos-printer-db> `_ which is also used in
`escpos-php <https://github.com/mike42/escpos-php> `_ .
2016-03-08 14:47:40 +00:00
Dependencies
------------
This library makes use of:
2017-06-22 13:54:21 +00:00
* `pyusb <https://github.com/walac/pyusb> `_ for USB-printers
* `Pillow <https://github.com/python-pillow/Pillow> `_ for image printing
* `qrcode <https://github.com/lincolnloop/python-qrcode> `_ for the generation of QR-codes
* `pyserial <https://github.com/pyserial/pyserial> `_ for serial printers
* `viivakoodi <https://github.com/kxepal/viivakoodi> `_ for the generation of barcodes
2016-03-08 14:47:40 +00:00
Documentation and Usage
-----------------------
The basic usage is:
.. code :: python
2016-08-11 09:25:40 +00:00
from escpos.printer import Usb
2016-03-08 14:47:40 +00:00
2017-01-29 22:20:11 +00:00
""" Seiko Epson Corp. Receipt Printer (EPSON TM-T88III) """
p = Usb(0x04b8, 0x0202, 0, profile="TM-T88III")
2016-08-11 09:25:40 +00:00
p.text("Hello World\n")
p.image("logo.gif")
bug/doc: Fix invalid EAN-13 barcode in examples
In the various examples and python-escpos CLI there are a number of uses
of `13243546557687` as an EAN-13 example. This EAN barcode is invalid
as the checksum should be `0` and not `7`.
```
$ python test_print.py
Traceback (most recent call last):
File "test_print.py", line 5, in <module>
p.barcode('13243546557687', 'EAN13', 64, 2, '', '')
File "/home/pi/fatt-display/lib/python3.7/site-packages/escpos/escpos.py", line 433, in barcode
bc=bc,
escpos.exceptions.BarcodeCodeError: No Barcode code was supplied (Barcode '13243546557687' not in a valid format for type 'EAN13')
```
This patch set removes `13243546557687` and replaces it with the valid
number `40063813339310`.
In researching the list of [assigned prefixes issued by
G1][g1-prefixes] there seemed to be no "officially" defined test prefix, so
this change was made to be minimally invasive using the number from the
existing test cases.
Resolves #350
Affects #176
[g1-prefixes]: https://www.gs1.org/standards/id-keys/company-prefix
[test-code]: https://www.barcodelookup.com/4006381333931
2019-06-30 01:35:49 +00:00
p.barcode('4006381333931', 'EAN13', 64, 2, '', '')
2016-08-11 09:25:40 +00:00
p.cut()
2016-03-08 14:47:40 +00:00
2019-06-04 21:57:19 +00:00
Another example based on the Network printer class:
2019-05-11 11:33:33 +00:00
.. code :: python
from escpos.printer import Network
kitchen = Network("192.168.1.100") #Printer IP Address
kitchen.text("Hello World\n")
bug/doc: Fix invalid EAN-13 barcode in examples
In the various examples and python-escpos CLI there are a number of uses
of `13243546557687` as an EAN-13 example. This EAN barcode is invalid
as the checksum should be `0` and not `7`.
```
$ python test_print.py
Traceback (most recent call last):
File "test_print.py", line 5, in <module>
p.barcode('13243546557687', 'EAN13', 64, 2, '', '')
File "/home/pi/fatt-display/lib/python3.7/site-packages/escpos/escpos.py", line 433, in barcode
bc=bc,
escpos.exceptions.BarcodeCodeError: No Barcode code was supplied (Barcode '13243546557687' not in a valid format for type 'EAN13')
```
This patch set removes `13243546557687` and replaces it with the valid
number `40063813339310`.
In researching the list of [assigned prefixes issued by
G1][g1-prefixes] there seemed to be no "officially" defined test prefix, so
this change was made to be minimally invasive using the number from the
existing test cases.
Resolves #350
Affects #176
[g1-prefixes]: https://www.gs1.org/standards/id-keys/company-prefix
[test-code]: https://www.barcodelookup.com/4006381333931
2019-06-30 01:35:49 +00:00
kitchen.barcode('4006381333931', 'EAN13', 64, 2, '', '')
2019-05-11 11:33:33 +00:00
kitchen.cut()
2016-04-30 13:22:14 +00:00
The full project-documentation is available on `Read the Docs <https://python-escpos.readthedocs.io> `_ .
2016-03-08 14:47:40 +00:00
Contributing
------------
2017-08-08 11:30:16 +00:00
This project is open for any contribution! Please see `CONTRIBUTING.rst <http://python-escpos.readthedocs.io/en/latest/dev/contributing.html> `_ for more information.
Disclaimer
----------
None of the vendors cited in this project agree or endorse any of the patterns or implementations.
Its names are used only to maintain context.