2016-08-31 78 views
0

私はモジュールwin32printでpythonからpdfファイルを印刷しようとしていますが、成功を印刷できる唯一の方法はテキストです。Python print win32printのpdfファイル

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