【问题标题】:Print PDF from VBscript or command line without acrobat.exe [closed]在没有 acrobat.exe 的情况下从 VBscript 或命令行打印 PDF [关闭]
【发布时间】:2013-11-01 18:19:55
【问题描述】:

是否可以将 pdf 文档打印到 vbscript 内的默认打印机或在没有 AcroRd32.exe 的情况下从命令行打印?

理想情况下,只需将 pdf 发送到打印机而不需要其他程序就可以了。

  • 或-

是否有第 3 方 .exe 程序可以打印 pdf 而无需对话、无需打开且不会在 Windows 任务栏中显示?

.exe 需要是独立的(因此不需要 Windows 安装过程)。

我可以为 .exe 支付高达 100 美元的费用,只要它可以在另一个应用程序中分发。免费也很棒。

这让我很难过。

【问题讨论】:

    标签: windows pdf printing vbscript silent


    【解决方案1】:

    这个怎么样:

    Option Explicit
    
    Const FILE_TO_PRINT = "C:\full\path\to\your\file.pdf"
    Dim shl
    Dim fldr
    Dim files,file
    
    Set shl = CreateObject("Shell.Application")
    Set fldr = shl.Namespace("C:\full\path\to\your\")
    Set files = fldr.Items
    
    
    For Each file in files
      If LCase(file.Path) = LCase(FILE_TO_PRINT) Then
        file.InvokeVerbEx("Print")
      End If
    
    Next
    
    Set shl = Nothing
    Set fldr = Nothing
    Set files = Nothing
    WScript.Quit
    

    Shell.Application 对象需要文件所在的文件夹,常量FILE_TO_PRINT 需要文件的完整路径。

    InvokeVerbEx("Print") 在 Foxit Reader 或 Acrobat 等相关程序中打开文件,并将其发送到默认打印机。

    它与在资源管理器中右键单击文件并单击“打印”具有相同的效果

    【讨论】:

    • 这将打开 adobe,打印文档并在任务栏上保持 adobe 处于打开状态。然后可以在 vbscript 中关闭 adobe。这种方法的问题是,当 adobe 打开和关闭时,整个屏幕都会闪烁。
    • 只有在系统上安装了一些提供打印选项的 PDF 处理程序时才会起作用。
    • 如果您担心屏幕闪烁,那么我假设您正在尝试找到一种完全在后台执行此操作的解决方案?
    • 是的,完全在后台。
    【解决方案2】:

    我认为您不能单独使用 VBScript 打印 PDF。但是,SumatraPDF 应该能够为所欲为。它是一个独立的可执行文件,您可以使用 -print-to-default 选项将 PDF 打印到默认打印机:

    filename = "C:\path\to\some.pdf"
    
    Set sh = CreateObject("WScript.Shell")
    sh.Run "sumatrapdf.exe -print-to-default """ & filename & """", 0, True
    

    有关详细信息,请参阅manual

    【讨论】:

    • 我试过 SumantraPDF。它说“无法打印此文件”。 Sumantra 能够在其 GUI 中打开文件并打印。不知道为什么它不能从命令行工作。我已经厌倦了来自不同来源的 PDF 并且都给出了相同的错误。如果 Sumantra 有效,这正是我想要的类型。
    • 系统是否配置了默认打印机?
    • 嘿嘿!!!这是工作!好的!!它需要文件的完整路径。如果是这种情况,我想我期待一个“找不到文件”错误。这很棒。
    • 我在 dos shell 中尝试过,现在只是将它移到 vbscript 中,哇......这很快。 SumantraPDF 很棒。
    • 根据您的操作,Adobe Reader License 不允许将其用于无头打印或从服务器打印或打印。继续尝试 Sumatra,但请注意,如果您批量打印大量并且需要速度,则速度会很慢。来自 SumatraPDF 论坛:“总的来说,Sumatra 不擅长打印,所以我不建议在 [大量场景] 中使用它。目前我们通过为每一页生成位图并将这些位图发送到打印机来打印。”跨度>
    猜你喜欢
    • 1970-01-01
    • 2014-05-29
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多