使用python的win32print模块打印PDF文档?

sly*_*ete 2 python windows pdf winapi postscript

我正在尝试使用win32print模块打印PDF文档.显然这个模块只能接受PCL或原始文本.那是对的吗?

如果是,是否有可用于将PDF文档转换为PCL的模块?

我打算使用ShellExecute; 但是,这不是一个选项,因为它只允许打印到默认打印机.我需要在各种网络上的服务器上打印各种打印机.

谢谢你的帮助,皮特

sly*_*ete 9

我最终使用Ghostscript来完成这项任务.有一个命令行工具依赖于名为gsprint的 Ghostscript .

您甚至不需要安装Acrobat来以这种方式打印PDF,这非常好.

这是一个例子:

在命令行上:

gsprint -printer \\server\printer "test.pdf"
Run Code Online (Sandbox Code Playgroud)

来自python:

win32api.ShellExecute(0, 'open', 'gsprint.exe', '-printer "\\\\' + self.server + '\\' + self.printer_name + '" ' + file, '.', 0)
Run Code Online (Sandbox Code Playgroud)

请注意,我在这些示例中添加了我的PATH变量,因此在调用可执行文件时我不必包含整个路径.

然而,有一个缺点.该代码是根据GPL许可的,因此在商业软件中没有用处.

希望这有助于某人,皮特

  • 您可以这样做,或者将Ghostscript输出到打印机支持的任何语言,例如PCL/Postscript.这样做的好处是,如果需要,您可以打开输出文件并插入托盘选择等命令. (2认同)
  • GPL不一定是劣势.;) (2认同)
  • 您需要安装 gsview。gsprint 包含在 gsview 3.4 及更高版本中。安装 gsview 后,gsprint.exe 应与 gsview 可执行文件位于同一目录中。 (2认同)