Python27-在windows 8.1或10上不显示打印机

Python27-在windows 8.1或10上不显示打印机,python,windows,winapi,printing,Python,Windows,Winapi,Printing,我安装了32位Python和32位win32print。当我在windows 8或10上执行以下代码时,我没有得到任何打印机输出列表。只有它的打印:() 为什么它不起作用 import win32print printers = win32print.EnumPrinters(5) print printers 预期输出: 尝试1:当我尝试这段代码时,打印机醒了,但什么也没打印出来,没有纸张出来,根本没有打印 import os, sys import win32print p = win

我安装了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纸打印到打印机上

试试下面的方法

printers = win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL, None, 1)
print (printers)
在Windows 8和10中,应列出“Microsoft打印到PDF”。你可以用

hDC.CreatePrinterDC ('Microsoft Print to PDF')
另请参见和的文档


例如,此代码将直接将PDF文件打印到
“c:\\test\\\ u 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 ()
试试下面的方法

printers = win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL, None, 1)
print (printers)
在Windows 8和10中,应列出“Microsoft打印到PDF”。你可以用

hDC.CreatePrinterDC ('Microsoft Print to PDF')
另请参见和的文档


例如,此代码将直接将PDF文件打印到
“c:\\test\\\ u 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
使用了错误的参数。我之前的回答毫无意义,我不知道我在说什么。我更新了它。也许我会删除旧答案。我无意中重新访问了此答案,似乎您刚刚为
EnumPrinters
使用了错误的参数。我之前的回答毫无意义,我不知道我在说什么。我更新了它。也许我会删除旧的答案。