使用命令行打印特定的PDF页面

时间:2016-08-01 12:04:42

标签: windows shell pdf command-line printing

我在Windows平台上工作。

可以在特定页面打开PDF文件:

AcroRd32.exe /A "page=3" "file.pdf"

打印特定页面是否有类似的解决方案?类似的东西:

AcroRd32.exe /P "page=3" "file.pdf"

3 个答案:

答案 0 :(得分:2)

是否有类似的打印特定页面的解决方案?

  

类似的东西:

AcroRd32.exe /P "page=3" "file.pdf"

没有。没有打印特定页面的选项。

您可以使用/p选项和VBS(或类似)脚本来操作“打印”对话框并选择要打印的所需页面:

AcroRd32.exe /p pathname - 执行Adobe Reader并显示“打印”对话框。

请参阅下文,了解可能的命令行选项列表。

如何在Windows上使用Acrobat和Adobe Reader的命令行?

  

这些是不受支持的命令行,但对某些开发人员有用。

     

除了下面列出的内容之外,没有这些命令的文档。您可以从命令行使用Acrobat和Adobe Reader显示和打印PDF文件。

     

注意:以下所有示例均使用Adobe Reader,但也适用于Acrobat。

     

如果您使用的是Acrobat,请在命令行上用Acrobat.exe代替AcroRd32.exe。

     

AcroRd32.exe pathname - 执行Adobe Reader并显示必须提供完整路径的文件。

     

命令行的其他选项是:

     
      
  • /n

         

    启动单独的Acrobat或Adobe Reader实例,即使是一个   目前已开放。

  •   
  • /s

         

    打开Acrobat或Adobe Reader,禁止启动画面。

  •   
  • /o

         

    打开Acrobat或Adobe Reader,禁止打开文件对话框。

  •   
  • /h

         

    在最小化的窗口中打开Acrobat或Adobe Reader。

  •   
     

AcroRd32.exe /p pathname - 执行Adobe Reader并显示   打印对话框。

     

AcroRd32.exe /t path "printername" "drivername" "portname" -   启动Adobe Reader并打印文件,其path必须完整   指定,同时禁止打印对话框。

     

/t选项的四个参数评估为pathprintername,   drivernameportname(所有字符串)。

     
      
  • printername - 您的打印机名称。

  •   
  • drivername - 打印机驱动程序名称,与打印机属性中显示的名称相同。

  •   
  • portname - 打印机的端口。 portname不能包含任何/个字符;如果是,则将输出路由到默认端口   打印机。

  •   

来源Acrobat Developer FAQ

答案 1 :(得分:1)

ImageMagick 可以将PDF文档的特定页面提取为图像,因此,如果要打印第3页,可以使用以下命令(请记住,它从ZERO页面开始计数) :

magick file.pdf[2] page.bmp
mspaint /pt page.bmp

或者,如果您有用于单线的“ penchant”

magick file.pdf[2] page.bmp && mspaint /pt page.bmp

如果分辨率太低/块状,请使用:

magick -density 144 file.pdf[2] page.bmp

如果您不喜欢 MS-Paint ,或者出于某些原因而更喜欢PNG文件:

magick file.pdf[2] page.png
rundll32 C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo "page.png" "Fictional HP Printer"

答案 2 :(得分:-1)

这是我的方法:

pdf_print_sendkeys.vbs:

Dim ObjArgs
Set ObjArgs = wscript.arguments

cmd = objargs(0) & " /P " & objargs(1)

Set objShell = WScript.CreateObject ("WScript.shell")
objshell.exec(cmd)
WScript.Sleep 5000
objShell.AppActivate "Print"
objShell.SendKeys "%g", TRUE ' Alt + g [Pages]
objShell.SendKeys "{TAB}", TRUE ' Input Pages
objShell.SendKeys objargs(2), TRUE ' Start and End Page
objShell.SendKeys "{ENTER}", TRUE ' Print!

Set objShell = Nothing

测试:

wscript  "C:\tmp\pdf_print_sendkeys.vbs" "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" "C:\tmp\test.pdf" "2-3"

有关我的完整文章和进一步的使用等信息,请参见此处。

https://www.freesoftwareservers.com/display/FREES/Print+PDF+Via+Batch+-+AcroRd32.exe+Switches+-+Print+Specific+Pages