使用PyWin32进行打印:在哪里放置文件名?

时间:2019-03-26 19:22:11

标签: python file printing pywin32 network-printers

我可以使用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 :(得分:0)

文件名将在StartDoc中提供,其中第二个参数是DOCINFO的元组

例如,这将以文件名'test.pdf'打印到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元组指定打印作业参数