mirror of
				https://github.com/python-escpos/python-escpos
				synced 2025-10-23 09:30:00 +00:00 
			
		
		
		
	Add demo functions
This commit is contained in:
		
				
					committed by
					
						
						Davis Goglin
					
				
			
			
				
	
			
			
			
						parent
						
							cdf8f6be09
						
					
				
				
					commit
					7d74dcac00
				
			@@ -9,6 +9,45 @@ import six
 | 
			
		||||
import os
 | 
			
		||||
from . import printer, config
 | 
			
		||||
 | 
			
		||||
demo_functions = {
 | 
			
		||||
    'text': [
 | 
			
		||||
        {'txt': 'Hello, World!',}
 | 
			
		||||
    ],
 | 
			
		||||
    'qr': [
 | 
			
		||||
        {'text': 'This tests a QR code'},
 | 
			
		||||
        {'text': 'https://en.wikipedia.org/'}
 | 
			
		||||
    ],
 | 
			
		||||
    'barcodes_a': [
 | 
			
		||||
        {'bc': 'UPC-A',  'code': '13243546576'},
 | 
			
		||||
        {'bc': 'UPC-E',  'code': '132435'},
 | 
			
		||||
        {'bc': 'EAN13',  'code': '1324354657687'},
 | 
			
		||||
        {'bc': 'EAN8',   'code': '13243546'},
 | 
			
		||||
        {'bc': 'CODE39', 'code': '*TEST*'},
 | 
			
		||||
        {'bc': 'ITF',    'code': '55867492279103'},
 | 
			
		||||
        {'bc': 'NW7',    'code': 'A00000000A'},
 | 
			
		||||
    ],
 | 
			
		||||
    'barcodes_b': [
 | 
			
		||||
        {'bc': 'UPC-A',                       'code': '13243546576',          'function_type': 'B'},
 | 
			
		||||
        {'bc': 'UPC-E',                       'code': '132435',               'function_type': 'B'},
 | 
			
		||||
        {'bc': 'EAN13',                       'code': '1324354657687',        'function_type': 'B'},
 | 
			
		||||
        {'bc': 'EAN8',                        'code': '13243546',             'function_type': 'B'},
 | 
			
		||||
        {'bc': 'CODE39',                      'code': '*TEST*',               'function_type': 'B'},
 | 
			
		||||
        {'bc': 'ITF',                         'code': '55867492279103',       'function_type': 'B'},
 | 
			
		||||
        {'bc': 'NW7',                         'code': 'A00000000A',           'function_type': 'B'},
 | 
			
		||||
        {'bc': 'CODE93',                      'code': 'A00000000A',           'function_type': 'B'},
 | 
			
		||||
        {'bc': 'CODE93',                      'code': '1324354657687',        'function_type': 'B'},
 | 
			
		||||
        {'bc': 'CODE128A',                    'code': '*TEST*',               'function_type': 'B'},
 | 
			
		||||
        {'bc': 'CODE128B',                    'code': '*TEST*',               'function_type': 'B'},
 | 
			
		||||
        {'bc': 'CODE128C',                    'code': '*TEST*',               'function_type': 'B'},
 | 
			
		||||
        {'bc': 'GS1-128',                     'code': '00123456780000000001', 'function_type': 'B'},
 | 
			
		||||
        {'bc': 'GS1 DataBar Omnidirectional', 'code': '0000000000000',        'function_type': 'B'},
 | 
			
		||||
        {'bc': 'GS1 DataBar Truncated',       'code': '0000000000000',        'function_type': 'B'},
 | 
			
		||||
        {'bc': 'GS1 DataBar Limited',         'code': '0000000000000',        'function_type': 'B'},
 | 
			
		||||
        {'bc': 'GS1 DataBar Expanded',        'code': '00AAAAAAA',            'function_type': 'B'},
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    c = config.Config()
 | 
			
		||||
    printer = c.printer()
 | 
			
		||||
 | 
			
		||||
@@ -238,6 +277,29 @@ parser_command_panel_buttons.add_argument(
 | 
			
		||||
        required=True
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    parser_command_demo = command_subparsers.add_parser('demo', help='Demonstrates various functions')
 | 
			
		||||
    parser_command_demo.set_defaults(func='demo')
 | 
			
		||||
    demo_group = parser_command_demo.add_mutually_exclusive_group()
 | 
			
		||||
    demo_group.add_argument(
 | 
			
		||||
        '--barcodes-a',
 | 
			
		||||
        help='Print demo barcodes for function type A',
 | 
			
		||||
        action='store_true',
 | 
			
		||||
    )
 | 
			
		||||
    demo_group.add_argument(
 | 
			
		||||
        '--barcodes-b',
 | 
			
		||||
        help='Print demo barcodes for function type B',
 | 
			
		||||
        action='store_true',
 | 
			
		||||
    )
 | 
			
		||||
    demo_group.add_argument(
 | 
			
		||||
        '--qr',
 | 
			
		||||
        help='Print some demo QR codes',
 | 
			
		||||
        action='store_true',
 | 
			
		||||
    )
 | 
			
		||||
    demo_group.add_argument(
 | 
			
		||||
        '--text',
 | 
			
		||||
        help='Print some demo text',
 | 
			
		||||
        action='store_true',
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    if not printer:
 | 
			
		||||
        raise Exception('No printers loaded from config')
 | 
			
		||||
@@ -248,5 +310,23 @@ command_arguments = dict([k, v] for k, v in six.iteritems(args_dict) if v)
 | 
			
		||||
 | 
			
		||||
    target_command = command_arguments.pop('func')
 | 
			
		||||
 | 
			
		||||
    if hasattr(printer, target_command):
 | 
			
		||||
        # print command with args
 | 
			
		||||
        getattr(printer, target_command)(**command_arguments)
 | 
			
		||||
    else:
 | 
			
		||||
        command_arguments['printer'] = printer
 | 
			
		||||
        globals()[target_command](**command_arguments)
 | 
			
		||||
 | 
			
		||||
def demo(printer, **kwargs):
 | 
			
		||||
    for demo_choice in kwargs.keys():
 | 
			
		||||
        command = getattr(
 | 
			
		||||
            printer,
 | 
			
		||||
            demo_choice
 | 
			
		||||
            .replace('barcodes_a', 'barcode')
 | 
			
		||||
            .replace('barcodes_b', 'barcode')
 | 
			
		||||
        )
 | 
			
		||||
        for params in demo_functions[demo_choice]:
 | 
			
		||||
            command(**params)
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    main()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user