2013-10-23 259 views
4

是否可以將PDF文檔打印到vbscript內部的默認打印機或者沒有AcroRd32.exe的命令行中?從VBscript或命令行打印PDF而不使用acrobat.exe

理想情況下,如果只是發送PDF到打印機,而不需要另一個程序。

  • 或 -

是否有可打印的PDF沒有對話,而無需打開和沒有在Windows任務欄上顯示一個第三方的.exe程序?

該.exe需要是獨立的(所以不需要Windows安裝過程)。

我確定支付高達100美元的.exe只要它可以分佈在另一個應用程序內。免費也很棒。

這讓我很難過。

回答

5

我不認爲你可以單獨打印PDF文件使用VBScript文件。但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

+1

我試過SumantraPDF。它說「無法打印此文件」。 Sumantra能夠在其GUI中打開文件並進行打印。不知道爲什麼它不能從命令行工作。我已經厭倦了來自不同來源的PDF,並且都給出了相同的錯誤。如果Sumantra工作,這正是我想要的東西的類型。 –

+0

系統是否配置了默認打印機? –

+1

嘿嘿!!!!這是工作!尼斯!它需要需要文件的完整路徑。如果是這樣的話,我想我預計會發現'文件未找到'錯誤。這很棒。 –

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")在福昕閱讀器或Acrobat等相關程序中打開該文件,並將其發送到默認打印機。

它具有相同的效果右鍵單擊資源管理器,然後點擊「打印」

+0

這將打開Adobe,打印文檔並保持Adobe在任務欄上打開。然後可以關閉vbscript內的adobe。這種方法的問題是,當Adobe打開並關閉整個屏幕閃爍。 –

+0

這隻有在系統上安裝了某些提供打印選項的PDF處理程序時纔有效。 –

+0

如果你擔心屏幕閃爍,那麼我假設你正在試圖找到一個完全在後臺完成這個操作的解決方案? – Jobbo