From 9bc3b30a6097326cdac6fbcb6d5c4c9430c75847 Mon Sep 17 00:00:00 2001 From: Romain Porte Date: Tue, 18 Jul 2017 18:50:38 +0200 Subject: [PATCH 1/2] Optional feed for cut (closes #213) --- src/escpos/escpos.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/escpos/escpos.py b/src/escpos/escpos.py index ec4df3b..64e8e05 100644 --- a/src/escpos/escpos.py +++ b/src/escpos/escpos.py @@ -574,7 +574,7 @@ class Escpos(object): self._raw(LINESPACING_FUNCS[divisor] + six.int2byte(spacing)) - def cut(self, mode='FULL'): + def cut(self, mode='FULL', feed=True): """ Cut paper. Without any arguments the paper will be cut completely. With 'mode=PART' a partial cut will @@ -584,9 +584,11 @@ class Escpos(object): .. todo:: Check this function on TM-T88II. :param mode: set to 'PART' for a partial cut. default: 'FULL' + :param feed: print and feed before cutting. default: true :raises ValueError: if mode not in ('FULL', 'PART') """ - self.print_and_feed(6) + if feed: + self.print_and_feed(6) mode = mode.upper() if mode not in ('FULL', 'PART'): From 9e47ff2505d83469d589b90e50490863a04d4d56 Mon Sep 17 00:00:00 2001 From: Romain Porte Date: Sun, 23 Jul 2017 11:11:22 +0200 Subject: [PATCH 2/2] Added test for cut without feed, fixed raw code for it --- src/escpos/escpos.py | 8 ++++++-- test/test_function_cut.py | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 test/test_function_cut.py diff --git a/src/escpos/escpos.py b/src/escpos/escpos.py index 64e8e05..ef2c026 100644 --- a/src/escpos/escpos.py +++ b/src/escpos/escpos.py @@ -587,8 +587,12 @@ class Escpos(object): :param feed: print and feed before cutting. default: true :raises ValueError: if mode not in ('FULL', 'PART') """ - if feed: - self.print_and_feed(6) + + if not feed: + self._raw(GS + b'V' + six.int2byte(66) + b'\x00') + return + + self.print_and_feed(6) mode = mode.upper() if mode not in ('FULL', 'PART'): diff --git a/test/test_function_cut.py b/test/test_function_cut.py new file mode 100644 index 0000000..d485e0e --- /dev/null +++ b/test/test_function_cut.py @@ -0,0 +1,17 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +import six + +import escpos.printer as printer +from escpos.constants import GS + + +def test_cut_without_feed(): + """Test cut without feeding paper""" + instance = printer.Dummy() + instance.cut(feed=False) + expected = GS + b'V' + six.int2byte(66) + b'\x00' + assert(instance.output == expected)