add set_with_default
This commit is contained in:
parent
7ef6d96078
commit
741fdc3919
@ -862,19 +862,19 @@ class Escpos(object):
|
||||
|
||||
def set(
|
||||
self,
|
||||
align: Optional[str] = "left",
|
||||
font: Optional[str] = "a",
|
||||
bold: Optional[bool] = False,
|
||||
underline: Optional[int] = 0,
|
||||
width: Optional[int] = 1,
|
||||
height: Optional[int] = 1,
|
||||
density: Optional[int] = 9,
|
||||
invert: Optional[bool] = False,
|
||||
smooth: Optional[bool] = False,
|
||||
flip: Optional[bool] = False,
|
||||
double_width: Optional[bool] = False,
|
||||
double_height: Optional[bool] = False,
|
||||
custom_size: Optional[bool] = False,
|
||||
align: Optional[str] = None,
|
||||
font: Optional[str] = None,
|
||||
bold: Optional[bool] = None,
|
||||
underline: Optional[int] = None,
|
||||
width: Optional[int] = None,
|
||||
height: Optional[int] = None,
|
||||
density: Optional[int] = None,
|
||||
invert: Optional[bool] = None,
|
||||
smooth: Optional[bool] = None,
|
||||
flip: bool = None,
|
||||
double_width: Optional[bool] = None,
|
||||
double_height: Optional[bool] = None,
|
||||
custom_size: Optional[bool] = None,
|
||||
) -> None:
|
||||
"""Set text properties by sending them to the printer.
|
||||
|
||||
@ -915,7 +915,7 @@ class Escpos(object):
|
||||
:type height: int
|
||||
:type density: int
|
||||
"""
|
||||
if custom_size:
|
||||
if custom_size is not None and custom_size:
|
||||
if (
|
||||
isinstance(width, int)
|
||||
and isinstance(height, int)
|
||||
@ -926,7 +926,7 @@ class Escpos(object):
|
||||
self._raw(TXT_SIZE + six.int2byte(size_byte))
|
||||
else:
|
||||
raise SetVariableError()
|
||||
else:
|
||||
elif custom_size is not None:
|
||||
self._raw(TXT_NORMAL)
|
||||
if double_width and double_height:
|
||||
self._raw(TXT_STYLE["size"]["2x"])
|
||||
@ -936,20 +936,92 @@ class Escpos(object):
|
||||
self._raw(TXT_STYLE["size"]["2h"])
|
||||
else:
|
||||
self._raw(TXT_STYLE["size"]["normal"])
|
||||
else:
|
||||
pass
|
||||
|
||||
self._raw(TXT_STYLE["flip"][flip])
|
||||
self._raw(TXT_STYLE["smooth"][smooth])
|
||||
self._raw(TXT_STYLE["bold"][bold])
|
||||
self._raw(TXT_STYLE["underline"][underline])
|
||||
self._raw(SET_FONT(six.int2byte(self.profile.get_font(font))))
|
||||
self._raw(TXT_STYLE["align"][align])
|
||||
if flip is not None:
|
||||
self._raw(TXT_STYLE["flip"][flip])
|
||||
if smooth is not None:
|
||||
self._raw(TXT_STYLE["smooth"][smooth])
|
||||
if bold is not None:
|
||||
self._raw(TXT_STYLE["bold"][bold])
|
||||
if underline is not None:
|
||||
self._raw(TXT_STYLE["underline"][underline])
|
||||
if font is not None:
|
||||
self._raw(SET_FONT(six.int2byte(self.profile.get_font(font))))
|
||||
if align is not None:
|
||||
self._raw(TXT_STYLE["align"][align])
|
||||
|
||||
if density != 9:
|
||||
if density is not None and density != 9:
|
||||
self._raw(TXT_STYLE["density"][density])
|
||||
|
||||
if invert is not None:
|
||||
self._raw(TXT_STYLE["invert"][invert])
|
||||
|
||||
def set_with_default(
|
||||
self,
|
||||
align: Optional[str] = "left",
|
||||
font: Optional[str] = "a",
|
||||
bold: Optional[bool] = False,
|
||||
underline: Optional[int] = 0,
|
||||
width: Optional[int] = 1,
|
||||
height: Optional[int] = 1,
|
||||
density: Optional[int] = 9,
|
||||
invert: Optional[bool] = False,
|
||||
smooth: bool = False,
|
||||
flip: bool = False,
|
||||
double_width: Optional[bool] = False,
|
||||
double_height: Optional[bool] = False,
|
||||
custom_size: Optional[bool] = False,
|
||||
) -> None:
|
||||
"""Set default text properties by sending them to the printer.
|
||||
|
||||
This function has the behavior of the `set()`-method from before
|
||||
version 3.
|
||||
If a parameter to this method is not supplied, a default value
|
||||
will be sent.
|
||||
Otherwise this method forwards the values to the
|
||||
:py:meth:`escpos.Escpos.set()`.
|
||||
|
||||
:param align: horizontal position for text, possible values are:
|
||||
|
||||
* 'center'
|
||||
* 'left'
|
||||
* 'right'
|
||||
|
||||
*default*: 'left'
|
||||
|
||||
:param font: font given as an index, a name, or one of the
|
||||
special values 'a' or 'b', referring to fonts 0 and 1.
|
||||
:param bold: text in bold, *default*: False
|
||||
:param underline: underline mode for text, decimal range 0-2, *default*: 0
|
||||
:param double_height: doubles the height of the text
|
||||
:param double_width: doubles the width of the text
|
||||
:param custom_size: uses custom size specified by width and height
|
||||
parameters. Cannot be used with double_width or double_height.
|
||||
:param width: text width multiplier when custom_size is used, decimal range 1-8, *default*: 1
|
||||
:param height: text height multiplier when custom_size is used, decimal range 1-8, *default*: 1
|
||||
:param density: print density, value from 0-8, if something else is supplied the density remains unchanged
|
||||
:param invert: True enables white on black printing, *default*: False
|
||||
:param smooth: True enables text smoothing. Effective on 4x4 size text and larger, *default*: False
|
||||
:param flip: True enables upside-down printing, *default*: False
|
||||
"""
|
||||
self.set(
|
||||
align=align,
|
||||
font=font,
|
||||
bold=bold,
|
||||
underline=underline,
|
||||
width=width,
|
||||
height=height,
|
||||
density=density,
|
||||
invert=invert,
|
||||
smooth=smooth,
|
||||
flip=flip,
|
||||
double_width=double_width,
|
||||
double_height=double_height,
|
||||
custom_size=custom_size,
|
||||
)
|
||||
|
||||
def line_spacing(self, spacing: Optional[int] = None, divisor: int = 180) -> None:
|
||||
"""Set line character spacing.
|
||||
|
||||
|
@ -8,7 +8,7 @@ from escpos.constants import SET_FONT, TXT_NORMAL, TXT_SIZE, TXT_STYLE
|
||||
|
||||
def test_default_values():
|
||||
instance = printer.Dummy()
|
||||
instance.set()
|
||||
instance.set_with_default()
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -30,7 +30,7 @@ def test_default_values():
|
||||
|
||||
def test_set_size_2h():
|
||||
instance = printer.Dummy()
|
||||
instance.set(double_height=True)
|
||||
instance.set_with_default(double_height=True)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -49,7 +49,7 @@ def test_set_size_2h():
|
||||
|
||||
def test_set_size_2w():
|
||||
instance = printer.Dummy()
|
||||
instance.set(double_width=True)
|
||||
instance.set_with_default(double_width=True)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -68,7 +68,7 @@ def test_set_size_2w():
|
||||
|
||||
def test_set_size_2x():
|
||||
instance = printer.Dummy()
|
||||
instance.set(double_height=True, double_width=True)
|
||||
instance.set_with_default(double_height=True, double_width=True)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -87,7 +87,7 @@ def test_set_size_2x():
|
||||
|
||||
def test_set_size_custom():
|
||||
instance = printer.Dummy()
|
||||
instance.set(custom_size=True, width=8, height=7)
|
||||
instance.set_with_default(custom_size=True, width=8, height=7)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_SIZE, # Custom text size, no normal reset
|
||||
@ -109,7 +109,7 @@ def test_set_size_custom():
|
||||
|
||||
def test_set_flip():
|
||||
instance = printer.Dummy()
|
||||
instance.set(flip=True)
|
||||
instance.set_with_default(flip=True)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -131,7 +131,7 @@ def test_set_flip():
|
||||
|
||||
def test_smooth():
|
||||
instance = printer.Dummy()
|
||||
instance.set(smooth=True)
|
||||
instance.set_with_default(smooth=True)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -153,7 +153,7 @@ def test_smooth():
|
||||
|
||||
def test_set_bold():
|
||||
instance = printer.Dummy()
|
||||
instance.set(bold=True)
|
||||
instance.set_with_default(bold=True)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -172,7 +172,7 @@ def test_set_bold():
|
||||
|
||||
def test_set_underline():
|
||||
instance = printer.Dummy()
|
||||
instance.set(underline=1)
|
||||
instance.set_with_default(underline=1)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -191,7 +191,7 @@ def test_set_underline():
|
||||
|
||||
def test_set_underline2():
|
||||
instance = printer.Dummy()
|
||||
instance.set(underline=2)
|
||||
instance.set_with_default(underline=2)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -213,7 +213,7 @@ def test_set_underline2():
|
||||
|
||||
def test_align_center():
|
||||
instance = printer.Dummy()
|
||||
instance.set(align="center")
|
||||
instance.set_with_default(align="center")
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -232,7 +232,7 @@ def test_align_center():
|
||||
|
||||
def test_align_right():
|
||||
instance = printer.Dummy()
|
||||
instance.set(align="right")
|
||||
instance.set_with_default(align="right")
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -255,7 +255,7 @@ def test_align_right():
|
||||
def test_densities():
|
||||
for density in range(8):
|
||||
instance = printer.Dummy()
|
||||
instance.set(density=density)
|
||||
instance.set_with_default(density=density)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
@ -278,7 +278,7 @@ def test_densities():
|
||||
|
||||
def test_invert():
|
||||
instance = printer.Dummy()
|
||||
instance.set(invert=True)
|
||||
instance.set_with_default(invert=True)
|
||||
|
||||
expected_sequence = (
|
||||
TXT_NORMAL,
|
||||
|
Loading…
x
Reference in New Issue
Block a user