win32print和多台打印机

2024-10-01 09:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我应该打印一个本地pdf文件,如果打印机名被定义(一个普通字符串),程序应该把文件发送到一个特定的打印机,否则它应该使用默认打印机。在

这段代码可以工作,但还是要使用默认打印机!在

global printer_name
if printer_name:
    print "printer",nome_stampante
else:
    nome_stampante = win32print.GetDefaultPrinter()
    print "default printer"

out = '/d:"%s"' % nome_stampante

win32api.ShellExecute (
    0,
    "print",
    filename,
    out,
    ".",
    0
)

哪里出错了?在

非常感谢


Tags: 文件字符串代码name程序if定义pdf
1条回答
网友
1楼 · 发布于 2024-10-01 09:29:58

您的代码使用全局变量,没有人知道printer_name的设置位置和{}中的内容。我建议您使用函数,将打印文件使用选定的打印机。这看起来像:

import win32api
import win32print

def win_print(filename, printer_name = None):
    if not printer_name:
        printer_name = win32print.GetDefaultPrinter()
    out = '/d:"%s"' % (printer_name)
    win32api.ShellExecute(0, "print", filename, out, ".", 0)


def test_print():
    win_print('test.txt')
    win_print('test.txt', 'PDFCreator')


if __name__ == '__main__':
    test_print()

相关问题 更多 >