Python PyWin32打印:指定副本数
我正在构建一个函数来打印文件夹中的PDF文件,我需要指定副本的数量,实际上我是通过循环副本的数量来完成的,并在其中运行该函数。但是,当副本数较高时,打印池会饱和。从逻辑上讲,它会为每个副本生成一个要打印的文档,而不是将打印内容分组到一个具有X个副本数的文档中 下面是我使用win32print一次性打印单个文档的代码。 有人知道这个参数或告诉函数副本数的选项吗 谢谢Python PyWin32打印:指定副本数,python,pywin32,Python,Pywin32,我正在构建一个函数来打印文件夹中的PDF文件,我需要指定副本的数量,实际上我是通过循环副本的数量来完成的,并在其中运行该函数。但是,当副本数较高时,打印池会饱和。从逻辑上讲,它会为每个副本生成一个要打印的文档,而不是将打印内容分组到一个具有X个副本数的文档中 下面是我使用win32print一次性打印单个文档的代码。 有人知道这个参数或告诉函数副本数的选项吗 谢谢 from os import path import win32print from win32com import client
from os import path
import win32print
from win32com import client
import time
import win32api
import pywintypes
name = win32print.GetDefaultPrinter() # verify that it matches with the name of your printer
printdefaults = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS} # Doesn't work with PRINTER_ACCESS_USE
handle = win32print.OpenPrinter(name, printdefaults)
level = 2
attributes = win32print.GetPrinter(handle, level)
#attributes['pDevMode'].Duplex = 1 #no flip
#attributes['pDevMode'].Duplex = 2 #flip up
attributes['pDevMode'].Duplex = 3 #flip over
win32print.SetPrinter(handle, level, attributes, 0)
win32print.GetPrinter(handle, level)['pDevMode'].Duplex
win32api.ShellExecute(0,'print','manual1.pdf','.','/manualstoprint',0)
你有选择使用苏门答腊PDF吗?大多数命令行PDF选项可能非常有限(例如在本例中),但苏门答腊岛的命令中有一个选项可以指定这样的副本(3x表示3个副本):
当然,要做到这一点,您需要从python进行子流程调用,而不是使用win32api。有关苏门答腊岛命令行的更多信息我不想在集成操作系统之前使用任何其他PDF应用程序,这就是我使用win32print的原因。这是因为包含此函数的完整程序非常大,我不想让用户安装其他程序来执行基本功能。所以我需要知道Win32Print中是否有这样做的选项。在这种情况下,您的选项可能会受到限制,我担心,我不相信Win32Print有这样的功能。如果您主要关心的是池中的打印作业太多,您可以尝试使用PyPDF2将同一文档的多个副本合并到一个较大的PDF文件中,然后将其作为单个打印作业发送。我将查看PyPDF的文档,这可以解决我的问题,这不是我喜欢的方式,但无论如何都可以工作。谢谢
SumatraPDF -print-to-default -silent -exit-on-print -print-settings "3x" "[document location]"