Commit Graph

87 Commits

Author SHA1 Message Date
csoft2k 82c67aa646 Fix tabs behaviour (#238)
The changes done in this commit should help with the open issues:
#5, #27 and #161.
The old implementation lacked the NUL char at the end of the command, as
defined on the Epson ESC/POS Reference Guide (see
https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=53
). Also, the horizontal tab control character (CTL_HT) shouldn't be
there.

This implementation allows setting up to 32 tabs with a given tab width.
Both values are checked to be in the valid ranges defined on the guide.
Also, the TabPosError exception text has been rewritten to define the
stated above.
2017-07-26 10:01:08 +02:00
Romain Porte 9e47ff2505 Added test for cut without feed, fixed raw code for it 2017-07-26 09:09:32 +02:00
Romain Porte 9bc3b30a60 Optional feed for cut (closes #213) 2017-07-26 09:09:32 +02:00
Romain Porte 5bd6dcf471 Ensure QR codes have a border large enough (#235)
*  Ensure QR codes have a border large enough
(The QR code spec requires a border at least 4*box_size thick but we can't
 just set border=16 because that results in a QR code more than 255px tall
 and I'm not yet ready to use fullimage() as a backend for it)
This fix was originally commited by Stephan Sokolow on 2014-05-22
* Let the user print stuff using qr example
* fix tests
2017-07-24 15:04:54 +02:00
csoft2k 89dfb6cf86 Added the DLE EOT querying command. (#237)
* Added the DLE EOT querying command.
Added a function to check whether the printer is online or not, as well
as a reading method for USB printers.
* Update AUTHORS
* Add entry to .mailmap
* currently USB only
2017-07-24 13:57:02 +02:00
TAHRI Ahmed efec3e508c Fix SerialException when trying to close device on __del__ without verifing if is actually opened. 2017-06-19 13:42:46 +02:00
Patrick Kanzler 83b426f5fd Merge pull request #222 from MicroJoe/software-barcode
First implementation of software barcode
2017-06-19 12:57:05 +02:00
Romain Porte c4dd4f2960 Added ImageWidthError and its implementation (#226)
* Added ImageWidthError and its implementation

* Added unit tests for ImageWidthError

* Parse max_width to int before compare
2017-05-23 15:13:28 +02:00
Romain Porte 22cf6ad00b Allow users to change impl for soft_barcode 2017-05-22 20:21:35 +02:00
TAHRI Ahmed 1f427953a8 Preliminary support of pos 'line display' printing 2017-05-22 00:40:40 +02:00
Romain Porte a6e1d0df00 Using booleans for handling text size 2017-05-21 22:50:07 +02:00
Romain Porte c0b4d03692 Updated documentation of set method 2017-05-21 22:50:07 +02:00
Romain Porte a16d6bde06 Refactor of the set method, with tests 2017-05-21 22:50:07 +02:00
Romain Porte 737cc3176e First implementation of software barcode
Actually the hardware barcode implementation is very specific and not
generic enough for just adding a `soft_render=True` argument to it. This
is a first work that can be improved with other commits, maybe for
merging this method in the `barcode` method after some cleanup.

The width, height and text_distance were set using empiric
print-and-retry tests so that the generated barcode looks nice to the
eye (and to the eye of an Android scanner tool.

!WARNING! Printing a barcode that is too large in width will result in
the printer to go crazy trying to print an image that is too large for
it. This may be fixed by raising an exception in the `image` method.
2017-05-16 20:56:27 +02:00
Romain Porte 4b04a5c425 Fixed bad format of :code: in documentation 2017-05-14 21:33:43 +02:00
Dmytro Katyukha a7ee11a78c Bugfix in `control` method. print_and_feed default `n=1` 2017-03-29 15:24:36 +02:00
Dmytro Katyukha 43e0a87a74 Updated capabilities data to new version 2017-03-29 15:24:36 +02:00
Dmytro Katyukha abbe32f845 Refactored `cut` method. added `print_and_feed` method 2017-03-29 15:24:25 +02:00
Dmytro Katyukha 29cc8baab7 Handle cases when fullCut or partCut not available 2017-03-29 15:24:25 +02:00
Sam Cheng a0ef820947 add support for an ESCPOS_CAPABILITIES_FILE environment variable. This is useful in situations where package structure is changed, such as using cx-freeze 2017-03-27 14:39:49 +02:00
Patrick Kanzler 3ee787e8b1
change license to MIT 2017-01-31 03:55:50 +01:00
Patrick Kanzler e92f00cdf3
fix AttributeError when executing close
When self.device is already None an AttributeError will occur.
This is relevant to #189.
2017-01-30 16:14:58 +01:00
Patrick Kanzler 337e8ee19e
add flake8-checks to travis 2017-01-30 02:29:08 +01:00
Patrick Kanzler 81028f9a35
refactor not ... in to ... not in ... 2017-01-30 02:16:22 +01:00
Patrick Kanzler fb18bb34cc
normalize imports 2017-01-30 02:15:40 +01:00
Patrick Kanzler 94a0f2b94b
normalize whitespace 2017-01-30 01:57:36 +01:00
Patrick Kanzler ce94a1fc18
normalize whitespace 2017-01-30 01:52:26 +01:00
Patrick Kanzler b4920aafe2
increase allowed line-length, fix whitespace in cli.py 2017-01-30 01:41:01 +01:00
Patrick Kanzler c48a0bee51
use not in instead of not ... in 2017-01-30 00:50:58 +01:00
Patrick Kanzler c2fc464c55
reformat PEP8 and similar issues 2017-01-30 00:10:14 +01:00
Patrick Kanzler e4a21e94fc
improve doc, improve codepage_tables.py 2017-01-29 23:36:33 +01:00
Patrick Kanzler e595bc2150
doc update methods and printers and use autodoc 2017-01-26 00:28:33 +01:00
Thijs Triemstra 7bf6a1791b Correct fragment_height documentation default (#198) 2017-01-25 23:56:06 +01:00
Michael 10c589ae8d swap default fragment height to 960 2016-10-04 14:01:26 +11:00
Patrick Kanzler cd38cdf74e Merge pull request #170 from miracle2k/text-encoding
Text encoding
2016-09-29 19:23:54 +02:00
Patrick Kanzler 1b2f509758
use jaconv instead of jcconv for japanese chars
jaconv is available for more Python-versions and seems to be more
professional. Apart from that I added jaconv to the test-requirements
but not the requirements. (If the katakana-stuff really works we can
later add it as a real dependency)
2016-09-27 20:31:39 +02:00
belono a82fefb301 Add support for custom cash drawer kick sequence 2016-09-15 22:54:35 +02:00
Michael Billington 7b68d97f5f test fixes - just case-changes to match code page names, seems to need 'future' pip module 2016-09-13 20:28:54 +10:00
Michael Billington 7a7ea23628 fixes to arguments for _encode_char 2016-09-11 21:08:04 +10:00
Michael Billington 83f926758c adjust order in _encode_char to prioritise ASCII; ' ' is used in the character list to flag characters with no known UTF-8 code, better not encode as these 2016-09-11 21:06:44 +10:00
Michael Billington 9a65945fcd re-work encoder to consult the capabilities database and use custom code pages or python encoder as necessary 2016-09-11 21:03:55 +10:00
Michael Billington d9a6960f07 efficiency improvements for backwards encoding 2016-09-11 20:21:30 +10:00
Michael Billington b5bf1125db reverse the lookup order to correct encoding issues 2016-09-11 17:17:22 +10:00
Michael Billington 2c8bc1180d Merge branch 'text-encoding' of https://github.com/miracle2k/python-escpos into miracle2k-text-encoding 2016-09-11 14:19:34 +10:00
Patrick Kanzler f467cacdd8
improve import capabilities from a submodule
The capabilities are now imported as a submodule from
mike42/escpos-printer-db
fixes #174
2016-09-02 17:13:38 +02:00
Michael Elsdörfer ddc93d7369 Fix byte format() on Python 3. 2016-08-30 18:06:34 +02:00
Michael Elsdörfer c3e3ec5808 Merge branch 'capabilities' into text-encoding 2016-08-30 18:02:40 +02:00
Michael Elsdörfer c850a726cb Fix docstring warnings from QuantifedCode. 2016-08-30 17:55:58 +02:00
Michael Elsdörfer 73ef8c4c0a Write as many characters as possible at once. 2016-08-30 17:39:26 +02:00
Michael Elsdörfer 9aa1335fd2 Improve codepage selection logic. 2016-08-30 17:13:05 +02:00