【问题标题】:Python27 - on windows 8.1 or 10 not showing the printersPython27 - 在 Windows 8.1 或 10 上不显示打印机
【发布时间】:2016-10-30 02:10:29
【问题描述】:

我安装了 32 位 Python 和 32 位的 win32print。当我在 Windows 8 或 10 上执行以下代码时,我没有得到任何打印机输出列表。只有它的印刷品:()

为什么它不起作用?

import win32print
printers = win32print.EnumPrinters(5)
print printers

预期输出:

尝试 1:当我尝试此代码时,打印机唤醒,但没有打印任何文件,没有打印,根本没有打印。

import os, sys
import win32print
p = win32print.OpenPrinter('RICOH Aficio SP 4310N') 
job = win32print.StartDocPrinter (p, 1, ("test of raw data", None, "RAW")) 
win32print.StartPagePrinter (p) 
win32print.WritePrinter (p, "data to print") 
win32print.EndPagePrinter (p)

尝试2:这是用A4纸打印到打印机

import win32ui
X=50; Y=50
input_string = "COPY PASTE COPY PASTE COPY PASTE LINE"
multi_line_string = input_string.split()
hDC = win32ui.CreateDC ()
hDC.CreatePrinterDC ('RICOH Aficio SP 4310N')
hDC.StartDoc ('FILE NAME FILE NAME')
hDC.StartPage ()
for line in multi_line_string:
     hDC.TextOut(X,Y,line)
     Y += 100
hDC.EndPage ()
hDC.EndDoc ()

【问题讨论】:

    标签: python windows winapi printing


    【解决方案1】:

    试试下面的

    printers = win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL, None, 1)
    print (printers)
    

    在 Windows 8 和 10 中应列出 "Microsoft Print to PDF"。你可以使用

    hDC.CreatePrinterDC ('Microsoft Print to PDF')
    

    另请参阅 (EnumPrinters/Python)(EnumPrinters/WinAPI) 的文档


    例如,此代码将直接打印 PDF 文件到"c:\\test\\_python.pdf"。如果StartDoc 不包含文件名,则打印对话框将询问 pdf 输出文件名。

    import win32print, win32ui
    
    X=50; Y=50
    input_string = "COPY PASTE COPY PASTE COPY PASTE LINE"
    multi_line_string = input_string.split()
    hDC = win32ui.CreateDC ()
    hDC.CreatePrinterDC ('Microsoft Print to PDF')
    hDC.StartDoc('PrintJobName','c:\\test\\_python.pdf')
    hDC.StartPage ()
    for line in multi_line_string:
         hDC.TextOut(X,Y,line)
         Y += 100
    hDC.EndPage ()
    hDC.EndDoc ()
    

    【讨论】:

    • 我无意中重新访问了这个答案,看来你只是为EnumPrinters 设置了错误的参数。我之前的回答没有任何意义,我不知道我在做什么。我更新了它。也许我会删除旧答案。
    猜你喜欢
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多