Good day!

i use your package for changing  printer settings (duplex, copies).
for duplex it is work, but for copies it doesn't.

@source_code
def set_duplex(printer_name):
    # print_defaults = {"DesiredAccess": win32print.PRINTER_ACCESS_ADMINISTER}
    print_defaults = {"DesiredAccess": win32print.PRINTER_ACCESS_USE}
    handle = win32print.OpenPrinter(printer_name, print_defaults)

    level = 2
    attributes = win32print.GetPrinter(handle, level)

    print('Printer= ', printer_name)
    print('Copies= ', win32print.GetPrinter(handle, level)['pDevMode'].Copies)
    print('Duplex= ', win32print.GetPrinter(handle, level)['pDevMode'].Duplex)

    # attributes['pDevMode'].Duplex = 1    # no flip
    attributes['pDevMode'].Duplex = 2    # flip up
    # attributes['pDevMode'].Duplex = 3  # flip over

    attributes['pDevMode'].Copies = 4

    #for key in attributes:
    #    print('{}'.format(key))
    
    #for n in dir(attributes['DevMode']):
    #    print('{} {}'.format(n, getattr(attributes['DevMode'], n)))

    try:
        print('try')
        win32print.SetPrinter(handle, level, attributes, 0)
        print('Copies= ', win32print.GetPrinter(handle, 
level)['pDevMode'].Copies)
        print('Duplex= ', win32print.GetPrinter(handle, 
level)['pDevMode'].Duplex)
    except Exception as e:
        print(e)
    win32print.ClosePrinter(handle)


def print_excel(printer_no, path_to_file, duplex='Y', copies=4):
    printer_name = app_config.PRINTER_NAMES[printer_no]

    if duplex == 'Y':
        set_duplex(printer_name=printer_name)

    win32api.ShellExecute(
        1,
        'printto',
        path_to_file,
        '{}'.format(printer_name),
        '.',
        0
    )

if __name__ == '__main__':
    set_duplex(printer_name='\\\\server_name\\printer_name')


if i change and then check (just print) properties changed and document printed 
on both sides, but only 1 copy, not 4.
may be you know what did i miss ?

My question on stackoverflow: 
https://stackoverflow.com/questions/58415047/python-win32print-how-to-change-copies
 
<https://stackoverflow.com/questions/58415047/python-win32print-how-to-change-copies>


-- Pavel

_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32

Reply via email to