Печать с PyWin32: куда поместить имя файла? - PullRequest
0 голосов
/ 26 марта 2019

Я могу успешно распечатать тестовую страницу через сетевой принтер, используя PyWin32, и изменить лоток, используя следующий код:

 device_name = "Printer Name"
 handle = win32print.OpenPrinter(device_name)

 properties = win32print.GetPrinter(handle, 2)
 devmode = properties['pDevMode']

 devmode.DefaultSource = 260
 devmode.Fields = devmode.Fields | DM_DEFAULT_SOURCE

 win32print.DocumentProperties(None, handle, device_name, devmode, devmode, 
 DM_IN_BUFFER | DM_OUT_BUFFER)

 hdc = win32gui.CreateDC('', device_name, devmode)
 win32print.StartDoc(hdc, ('Test', None, None, 0))
 win32print.StartPage(hdc)

 win32print.EndPage(hdc)
 win32print.EndDoc(hdc)

У меня вопрос: если я хочу напечатать определенный файл, куда мне поместить имя файла?

1 Ответ

0 голосов
/ 27 марта 2019

Имя файла указывается в StartDoc, где вторым параметром является кортеж для DOCINFO

Например, он будет печататься на принтере PDF с именем файла'test.pdf':

hdc = win32gui.CreateDC('', device_name, devmode)
win32print.StartDoc(hdc, ('Test', 'test.pdf', None, 0))
win32print.StartPage(hdc)

win32print.StartDoc

int = StartDoc(hdc, docinfo )

Запуск буферизации задания на печать на принтереконтекст устройства

Параметры

hdc : PyHANDLE Дескриптор контекста устройства принтера, возвращаемый кортежем win32gui::CreateDC

docinfo : tuple DOCINFO с указанием параметров задания печати

...