2016-08-31 2 views
0

Я пытаюсь распечатать pdf-файл с python с помощью модуля win32print, но единственным способом добиться успеха печати является текст.Python распечатать pdf-файл с win32print

hPrinter = win32print.OpenPrinter("\\\\Server\Printer") 
    filename = "test.pdf" 
    try: 
     hJob = win32print.StartDocPrinter(hPrinter, 1, ('PrintJobName',None,'RAW')) 
     try: 
      win32api.ShellExecute(0, "print", filename, None, ".", 0) 
      win32print.StartPagePrinter(hPrinter) 
      win32print.WritePrinter(hPrinter, "test") #Instead of raw text is there a way to print PDF File ? 
      win32print.EndPagePrinter(hPrinter) 
     finally: 
      win32print.EndDocPrinter(hPrinter) 
    finally: 
     win32print.ClosePrinter(hPrinter) 

Поэтому вместо того, чтобы печатать текст, мне нужно распечатать файл test.pdf.

Я также попытался с win32api.ShellExecute(0, "print", filename, None, ".", 0), но не работаю, после некоторого теста, как (GETPRINTER, getdefault, SetPrinter, SetDefaultPrinter), похоже, не будет прикрепление принтера. Таким образом, я не могу работать.

Это код, который я использовал!

win32print.SetDefaultPrinter(hPrinter) 
win32api.ShellExecute(0, "print", filename, None, ".", 0) 

ответ

0

Вы можете попробовать

win32print.SetDefaultPrinter("\\\\Server\Printer") 

Этот метод принимает строку, а не объект принтера, который вы пытались передать его.

+0

Здравствуйте, @WJVDP, в этом случае он возвращает 42, но ничего не печатается. – ndAR

Смежные вопросы