mirror of
				https://github.com/python-escpos/python-escpos
				synced 2025-10-23 09:30:00 +00:00 
			
		
		
		
	Using booleans for handling text size
This commit is contained in:
		
				
					committed by
					
						
						Patrick Kanzler
					
				
			
			
				
	
			
			
			
						parent
						
							c0b4d03692
						
					
				
				
					commit
					a6e1d0df00
				
			@@ -422,7 +422,7 @@ class Escpos(object):
 | 
			
		||||
 | 
			
		||||
    def set(self, align='left', font='a', bold=False, underline=0, width=1,
 | 
			
		||||
            height=1, density=9, invert=False, smooth=False, flip=False,
 | 
			
		||||
            size='normal'):
 | 
			
		||||
            double_width=False, double_height=False, custom_size=False):
 | 
			
		||||
        """ Set text properties by sending them to the printer
 | 
			
		||||
 | 
			
		||||
        :param align: horizontal position for text, possible values are:
 | 
			
		||||
@@ -433,50 +433,53 @@ class Escpos(object):
 | 
			
		||||
 | 
			
		||||
            *default*: 'left'
 | 
			
		||||
 | 
			
		||||
        :param size: size modifier for text, possible values are:
 | 
			
		||||
 | 
			
		||||
            * 'normal'
 | 
			
		||||
            * '2h' for double text height
 | 
			
		||||
            * '2w' for double text width
 | 
			
		||||
            * '2x' for double text height and width (doubles the text surface)
 | 
			
		||||
            * 'custom' for custom text height and width
 | 
			
		||||
 | 
			
		||||
            In this last case, see the width and height parameters.
 | 
			
		||||
            *default*: 'normal'
 | 
			
		||||
 | 
			
		||||
        :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 width: text width multiplier when size is set to custom, decimal range 1-8,  *default*: 1
 | 
			
		||||
        :param height: text height multiplier when size is set to custom, decimal range 1-8, *default*: 1
 | 
			
		||||
        :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
 | 
			
		||||
 | 
			
		||||
        :type font: str
 | 
			
		||||
        :type invert: bool
 | 
			
		||||
        :type bold: bool
 | 
			
		||||
        :type underline: bool
 | 
			
		||||
        :type smooth: bool
 | 
			
		||||
        :type flip: bool
 | 
			
		||||
        :type size: str
 | 
			
		||||
        :type custom_size: bool
 | 
			
		||||
        :type double_width: bool
 | 
			
		||||
        :type double_height: bool
 | 
			
		||||
        :type align: str
 | 
			
		||||
        :type width: int
 | 
			
		||||
        :type height: int
 | 
			
		||||
        :type density: int
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        if size in TXT_STYLE['size']:
 | 
			
		||||
            self._raw(TXT_NORMAL)
 | 
			
		||||
            self._raw(TXT_STYLE['size'][size])
 | 
			
		||||
        elif size == 'custom':
 | 
			
		||||
        if custom_size:
 | 
			
		||||
            if 1 <= width <= 8 and 1 <= height <= 8 and isinstance(width, int) and\
 | 
			
		||||
              isinstance(height, int):
 | 
			
		||||
                size_byte = TXT_STYLE['width'][width] + TXT_STYLE['height'][height]
 | 
			
		||||
                self._raw(TXT_SIZE + six.int2byte(size_byte))
 | 
			
		||||
            else:
 | 
			
		||||
                raise SetVariableError()
 | 
			
		||||
        else:
 | 
			
		||||
            self._raw(TXT_NORMAL)
 | 
			
		||||
            if double_width and double_height:
 | 
			
		||||
                self._raw(TXT_STYLE['size']['2x'])
 | 
			
		||||
            elif double_width:
 | 
			
		||||
                self._raw(TXT_STYLE['size']['2w'])
 | 
			
		||||
            elif double_height:
 | 
			
		||||
                self._raw(TXT_STYLE['size']['2h'])
 | 
			
		||||
            else:
 | 
			
		||||
                self._raw(TXT_STYLE['size']['normal'])
 | 
			
		||||
 | 
			
		||||
        self._raw(TXT_STYLE['flip'][flip])
 | 
			
		||||
        self._raw(TXT_STYLE['smooth'][smooth])
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user