Commit Graph

119 Commits

Author SHA1 Message Date
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
Michael Elsdörfer 2f89f3fe3a Port to current version of escpos-printer-db. 2016-08-30 17:08:27 +02:00
Michael Elsdörfer 40be69347c Merge branch 'capabilities' into text-encoding 2016-08-30 16:14:22 +02:00
Michael Elsdörfer 58ea206c36 Avoid mutable default argumet. 2016-08-30 16:13:38 +02:00
Michael Elsdörfer b37f4fc8cc Merge branch 'capabilities' into text-encoding 2016-08-30 13:36:53 +02:00
Michael Elsdörfer b92eeed50b Add tests for the profile. 2016-08-30 13:27:48 +02:00
Michael Elsdörfer ea7769f8b2 Merge remote-tracking branch 'origin/development' into capabilities 2016-08-30 13:04:17 +02:00
Michael Elsdörfer 5fa89ff685 Automatically choose correct barcode function.
Tests for barcode function.
2016-08-30 13:02:58 +02:00
Michael Elsdörfer a07f84a5bc Match the current printer-db format. 2016-08-30 12:26:09 +02:00
Michael Elsdörfer 216184f43f Rework capabilities format based on Mike's ideas. 2016-08-27 12:17:35 +02:00
Michael Elsdörfer c7864fd785 Largely rewrite the magic text encoding feature. 2016-08-27 11:28:52 +02:00
Michael Elsdörfer f6ce7e45da Merge branch 'capabilities' into text-encoding 2016-08-26 15:29:31 +02:00
Michael Elsdörfer 3fd1a3de5d A suggested format for defining the code pages. 2016-08-26 15:14:28 +02:00
Michael Elsdörfer 214aa0d363 Fix issue with manually setting the encoding. 2016-08-26 15:14:02 +02:00
Patrick Kanzler cf41069829 Merge branch 'linespacing' of git://github.com/miracle2k/python-escpos into miracle2k-linespacing
Conflicts:
	src/escpos/constants.py
2016-08-26 14:16:06 +02:00
Michael Elsdörfer 632a104219 Fix docstring warning. 2016-08-26 11:59:40 +02:00
Michael Elsdörfer 8b5bc9cf8a Make the Escpos class accept a profile.
This is now used for the block_text function.
2016-08-26 10:41:01 +02:00
Michael Elsdörfer a8574ad9d7 Support loading capabilites YAML into Python classes. 2016-08-26 10:41:01 +02:00
Michael Elsdörfer ed3077f00f Define a capability format in YAML. 2016-08-26 10:41:01 +02:00
Michael Elsdörfer 07d47765aa Allow linespacing reset. Make this the default. 2016-08-26 10:38:36 +02:00
Michael Elsdörfer 854b75be30 Support changing the line spacing. 2016-08-26 10:34:52 +02:00
Michael Elsdörfer df0c874f6e Add constants for sheet mode, colors. 2016-08-26 10:30:29 +02:00
Patrick Kanzler 798893caee
refactor access of private member _img of qrcode
Since version 2.5 python-qrcode allows the direct access of the
PIL-functions. (We require version 4 and above).
Thus, we can simply call qr_img.convert() without accessing the private
member.
This refactoring is identical in functionality.
2016-08-15 23:24:06 +02:00
Patrick Kanzler e8d91a6735
test add type-check for the qr-printing 2016-08-15 23:23:07 +02:00
Patrick Kanzler 340a47d2f6 Merge pull request #152 from python-escpos/fix/large-image-printing
Fix/large image printing
2016-08-07 12:22:25 +02:00
Patrick Kanzler 38f9835931
fix printing of CODE128
The control sequence {A or {B or {C can't be part of the qr code.
For this the user has to supply this sequence.
2016-08-02 15:39:31 +02:00
Patrick Kanzler 87a6647053 fix force-encoding REBASE (contains todos)
* fixed the code of forced-encoding in order to make it work
* extended unittest for forced-encoding
* fixed the constant for Katakana-encoding
2016-08-02 04:42:21 +02:00
Patrick Kanzler f0bdbc4322 doc changelog and todos updated 2016-08-02 04:42:21 +02:00
Patrick Kanzler 0cfedb5706 add automatic codepage-changing
This code is adapted from the works by Frédéric Van der Essen in
pyxmlescpos.
I had to adapt the code completely in order to make it compatible with
modern unicode-handling

Further changes:
* improve text unittests in CLI and MagicEncode with hypothesis
* add feature force_encoding in order to enable old behaviour
* disable cli_text_test (for now)
* fix charcode(): it does now cooperate with the new structure
* remove redundant variable codepage from class Escpos
2016-08-02 04:42:21 +02:00
Patrick Kanzler b0af9e9652 improve restructure charcode-table
restructured the charcode table in order to be more accessible to
programmatic usage
2016-08-02 04:42:21 +02:00
Patrick Kanzler 3546e0c4bb improve the exceptions
also adds a stump for the tests for MagicEncode
2016-08-02 04:42:21 +02:00
Patrick Kanzler 3d98eb8b9c fix file-printer did not flush
The file-printer did not automatically flush and thus behaved
differently to the other printer-classes.
Now the default behaviour is to flush after every call of _raw(). This
can be disabled by calling the file-printer with auto_flush=False.

fixes #106
2016-08-02 04:25:54 +02:00
Patrick Kanzler 2ecf73074c
improve large image printing
images longer than 1024 pixels will be split into multiple fragments.
2016-08-02 00:04:43 +02:00
Renato.Lorenzi bef1a9cccf Change the interface param to timeout 2016-08-01 09:36:48 -03:00
Patrick Kanzler 80b714fdae
add basic argcomplete support 2016-07-23 10:39:40 +02:00
Patrick Kanzler a5cae3adb7 fix inconsistent behaviour of argparse-code
this affected certain versions of argparse in python3
2016-07-17 19:39:51 +02:00
Patrick Kanzler 9f5eed0020
add version-strings into the module
The version string is in the module as __version__ available.
In the doc the version will be automatically parsed. The version comes
from the installed module if on read the docs or directly from
setuptools_scm if you are working locally.
The CLI will issue the version string if you call it with the option
'version'. The CLI does not accept commands like '--version', since this
would not be conform with the rest of the interface (and argparse).

The configuration for loading the version-string is adapted from
pimutils/vdirsyncer. It autogenerates a version string setuptools_scm at
install-time and then adds it to the __version__ member in __init__.py

I adapted the GitHub-template with a fitting comment and bumped the
changelog.

closes #141
2016-07-17 19:39:42 +02:00
Patrick Kanzler 87438f9efa
SETUP move code to src
This way we can ensure that the packaged code is tested.
See https://hynek.me/articles/testing-packaging/ or c62a78c015

+ DOC adapt doc to new structure and test doc with travis
2016-06-20 17:48:14 +02:00