2010-08-11 57 views
2

我的应用程序会生成35到55个PDF文件,其中我必须自动打印4个副本。以编程方式从命令行打印多个副本

所有这些文件都在一个文件夹中。

我的要求是使用批处理文件打印每个文件的四个副本。

我安装了Adobe Acrobat Reader。

我该怎么做?

回答

4

Adob​​e Reader只能够直接打印单个副本。但是,没有任何东西阻止您循环打印4次。但是,可能需要更长的时间,因为必须将文档发送到打印机四次。

Acrobat SDK Developer FAQ

AcroRd32.exe /t path "printername" "drivername" "portname" - 启动Adobe Reader和打印文件,同时抑制打印对话框。路径必须完全指定。

/t选项的四个参数计算为pathprinternamedrivernameportname(所有字符串)。

printername - 打印机的名称。
drivername - 打印机驱动程序的名称,因为它出现在打印机的属性中。
portname - 打印机的端口。 portname不能包含任何“/”字符;如果是这样,输出将被路由到该打印机的默认端口。

所以,你也许可以用这样的:

for %%F in (*.pdf) do (
    for /L %%i in (1,1,4) do (
    AcroRd32.exe /t "%%~fF" "printername" "drivername" "portname" 
) 
) 

只需插入相应的值丢失的参数。

0

您可以使用pdfprint.exe(第三方实用程序)来达到目的。 我们使用相同的方式打印在指定位置生成的一堆pdf文件。 您可以编写批处理文件,它接受像打印机名称,副本号,pdf文件FULL PATH,读取状态的日志文件名以及方向L-landscape或portrait和从某些应用程序(如.net)调用批处理文件的参数。

我们有如下的书面批处理文件:

@echo off 
:. %1 - Printer Name 
:. %2 - Number of Copies 
:. %3 - PDF File path to print 
:. %4 - Name of Log file 
:. %5 - Orientation of pdf printing file 1 = Portratit and 2 = Landscape 
:. Add -restoreprinter -checkjobstatus which will maintain the default printer settings. 

set PdfPrintPath=some valid path (C:\Folder) where pdfprint.exe is placed 

%PdfPrintPath%\pdfprint.exe -restoreprinter -printer %1 -copies %2 -orient %5 %3 

set ErrLevel=%errorlevel% 

请让我知道任何问题。 祝您有愉快的一天。