使用 os.startfile() 打印到特定打印机 [英] Print to a specific printer with os.startfile()

查看:154
本文介绍了使用 os.startfile() 打印到特定打印机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以打印到特定打印机而不是默认打印机吗

Can I print to a specific printer instead of the default printer with

os.startfile(filename, 'print')

我没有找到关于第三个参数的任何信息.

I haven't found anything about the third parameter.

推荐答案

使用 win32print.EnumPrinters(2),您可以获得所有已安装的打印机.

With win32print.EnumPrinters(2) you get all the installed Printers.

这是一个运行在 windows10 机器上的 python 2.7 解释器.

This is a python 2.7 interpreter running on a windows10 machine.

import win32api
import win32print
import os
import time
import shutil

#all_printers = win32print.EnumPrinters(2)
defaultPrinter = win32print.GetDefaultPrinter()
if defaultPrinter != 'TSC TC200 UG':
    win32print.SetDefaultPrinter('TSC TC200 UG')
pdf_dir = "Y:\\HOTFOLDER_DRUCK\\TSC_TC200_ETIKETTEN_UG\\INPUT"
archiv = "Y:\\HOTFOLDER_DRUCK\\TSC_TC200_ETIKETTEN_UG\\ARCHIV"

while True:
    files = os.listdir(pdf_dir)
    if files > 0:
        for f in files:
            print "printing file "+ str(pdf_dir+f) +" on "+str(win32print.GetDefaultPrinter())
            win32api.ShellExecute(0, "print", os.path.join(pdf_dir,f), None,  ".",  0)
            time.sleep(6)
            shutil.copy(os.path.join(pdf_dir,f),os.path.join(archiv,f))
            os.remove(os.path.join(pdf_dir,f))

这篇关于使用 os.startfile() 打印到特定打印机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆