通过Python以双工模式打印PDF文件

时间:2017-11-22 13:29:05

标签: python pdf printing pywin32 shellexecute

我在Python中有一个打印PDF文件的脚本 该脚本使用win32api.ShellExecute()工作,一切都很好,但现在,我需要打印具有双面内容的PDF文件,具体的用户手册。
我尝试在win32print中设置双工模式,但没有任何作用,打印机仍然在2张纸上打印2页用于PDF而不是双面打印两页。 打印机在其他应用程序中使用此模式,但python脚本不能正常工作。 这是我用来打印的代码的一部分:

name = win32print.GetDefaultPrinter()
printdefaults = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS}
handle = win32print.OpenPrinter(name, printdefaults)
level = 2
attributes = win32print.GetPrinter(handle, level)
attributes['pDevMode'].Duplex
attributes['pDevMode'].Duplex = 1
win32print.SetPrinter(handle, level, attributes, 0)
win32print.GetPrinter(handle, level)['pDevMode'].Duplex
win32api.ShellExecute(0,'print','file.pdf','.','/route',0)

知道为什么这不起作用?感谢。

1 个答案:

答案 0 :(得分:1)

尝试运行此代码:

typedef basic_string<char, ci_char_traits> ci_string;

它可以在我的电脑上运行:Windows 10,Python 2.7.14,pypiwin32-220

注意:

  1. 在我的计算机上PRINTER_ACCESS_ADMINISTER导致“访问被拒绝” OpenPrinter。
  2. 在我的计算机上,SetPrinter因“访问被拒绝”而失败。但'双工'是 设置正确..