Python PyWin32打印:指定副本数

Python PyWin32打印:指定副本数,python,pywin32,Python,Pywin32,我正在构建一个函数来打印文件夹中的PDF文件,我需要指定副本的数量,实际上我是通过循环副本的数量来完成的,并在其中运行该函数。但是,当副本数较高时,打印池会饱和。从逻辑上讲,它会为每个副本生成一个要打印的文档,而不是将打印内容分组到一个具有X个副本数的文档中 下面是我使用win32print一次性打印单个文档的代码。 有人知道这个参数或告诉函数副本数的选项吗 谢谢 from os import path import win32print from win32com import client

我正在构建一个函数来打印文件夹中的PDF文件,我需要指定副本的数量,实际上我是通过循环副本的数量来完成的,并在其中运行该函数。但是,当副本数较高时,打印池会饱和。从逻辑上讲,它会为每个副本生成一个要打印的文档,而不是将打印内容分组到一个具有X个副本数的文档中

下面是我使用win32print一次性打印单个文档的代码。 有人知道这个参数或告诉函数副本数的选项吗

谢谢

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]"