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

Windows 使用命令行打印特定的PDF页面,windows,shell,pdf,command-line,printing,Windows,Shell,Pdf,Command Line,Printing,我在Windows平台上工作 可以在特定页面打开PDF文件: AcroRd32.exe /A "page=3" "file.pdf" 打印特定页面是否有类似的解决方案?比如: AcroRd32.exe /P "page=3" "file.pdf" 打印特定页面是否有类似的解决方案? 比如: 否。没有打印特定页面的选项 您可以使用/p选项和VBS(或类似)脚本来操作打印对话框并选择要打印的页面: AcroRd32.exe/p路径名-执行Adobe Reader并显示打印对话框 有关可能的命令行

我在Windows平台上工作

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

AcroRd32.exe /A "page=3" "file.pdf"
打印特定页面是否有类似的解决方案?比如:

AcroRd32.exe /P "page=3" "file.pdf"
打印特定页面是否有类似的解决方案? 比如:

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

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

AcroRd32.exe/p路径名
-执行Adobe Reader并显示打印对话框

有关可能的命令行选项的列表,请参见下文


如何在Windows上使用Acrobat和Adobe Reader的命令行? 这些是不受支持的命令行,但对某些开发人员有效

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

注意:下面的所有示例都使用Adobe Reader,但也适用于Acrobat

如果使用的是Acrobat,请在命令行中将Acrobat.exe替换为AcroRd32.exe

AcroRd32.exe路径名
-执行Adobe Reader并显示文件,必须提供其完整路径

命令行的其他选项包括:

  • /n

    启动Acrobat或Adobe Reader的单独实例,即使有 目前正在开放

  • /s

    打开Acrobat或Adobe Reader,抑制启动屏幕

  • /o

    打开Acrobat或Adobe Reader,抑制“打开文件”对话框

  • /h

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

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

AcroRd32.exe/t路径“printername”“drivername”“portname”
- 启动Adobe Reader并打印一个文件,该文件的
路径必须完全正确
指定,但不显示“打印”对话框

/t
选项的四个参数计算为
路径
打印名称
drivername
portname
(所有字符串)

  • printername
    -打印机的名称

  • drivername
    -打印机驱动程序的名称,显示在打印机属性中

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

来源

我是这样做的:

pdf\u print\u 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"
测试:

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"
请参阅此处,了解我的完整记录和进一步利用情况等


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

或者,如果你“喜欢”一句台词:

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"

@伊尼安,更新了我的问题,@Blobonat,它有什么帮助?