以编程方式从命令行打印多个副本

时间:2010-08-11 20:10:55

标签: windows batch-file pdf printing cmd

我的应用程序生成35到55个PDF文件,我必须自动打印4份。

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

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

我安装了Adobe Acrobat Reader。

我该怎么做?

2 个答案:

答案 0 :(得分: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"
  )
)

只需为缺少的参数插入适当的值。

答案 1 :(得分:0)

您可以使用pdfprint.exe(第三方实用程序)来达到目的。 我们使用相同的方法打印在指定位置生成的一堆pdf文件。 您可以编写批处理文件whcih接受参数,如打印机名称,没有副本,pdf文件FULL PATH,日志文件名称读取状态,方向L-landscape或纵向和调用批处理文件来自某些应用程序,如.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%

如有任何问题,请告诉我。 祝你有愉快的一天。

相关问题