主要用到了win32print,win32gui,以及PIL。
主要步骤
1、连接打印机
hprinter = win32print.OpenPrinter(printer_name)
2、自定义设置
devmode = win32print.GetPrinter(hprinter, 2)["pDevMode"] # 获取配置
devmode.DriverData = b'DINU"\x00H\x01\xa4\x03\x00\x000`
3、创建新DC(设备上下文)
pDC = win32gui.CreateDC("WINSPOOL", printer_name, devmode)
4、创建文档
win32print.StartDoc(pDC, ("some_name", None, None, 0))
5、创建页面
win32print.StartPage(pDC)
6、打印
image = Image.open(image_file)
dib = ImageWin.Dib(image)
dib.draw(pDC, (0, 0, image.width, image.height))
7、结束页面
win32print.EndPage(pDC)
8、结束文档
win32print.EndDoc(pDC)
全部代码
需要注意
自定义配置,我这里是先修改打印机的设置,然后通过devmode.DriverData获取二进制配置信息。当然你也可以网上找到window的开发文档,里面有详细的配置信息,转成python代码即可