代码之家  ›  专栏  ›  技术社区  ›  Raj More

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

  •  2
  • Raj More  · 技术社区  · 14 年前

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

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

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

    我安装了Adobe Acrobat Reader。

    我该怎么做?

    2 回复  |  直到 8 年前
        1
  •  4
  •   Joey    14 年前

    Adobe Reader只能直接打印一份副本。但是,没有什么可以阻止您循环并打印4次。不过,可能需要更长的时间,因为文档必须发送到打印机四次。

    Acrobat SDK Developer FAQ :

    AcroRd32.exe /t path "printername" "drivername" "portname" 启动Adobe Reader并在取消打印对话框的同时打印文件。必须完全指定路径。

    的四个参数 /t 选项评估为 path , printername , drivername portname (所有字符串)。

    字幕 打印机的名称。
    驱动名称 打印机驱动程序名称,如打印机属性中所示。
    端口名 打印机端口。 端口名 不能包含任何“/”字符;如果包含,输出将路由到该打印机的默认端口。

    所以你可以用这样的方法:

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

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

        2
  •  0
  •   ChrisF    8 年前

    您可以使用pdfprint.exe(第三方实用程序)来实现此目的。 我们使用相同的方法来打印在指定位置生成的一组PDF文件。 您可以在接受打印机名称、份数、PDF文件完整路径、日志文件名读取状态、方向L-横向或纵向等参数的情况下编写批处理文件,并从.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%
    

    有什么问题请告诉我。 祝您有个美好的一天。