2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« コマンドラインでPDFファイルを印刷する。 | トップページ | コマンドラインでPDFファイルを印刷する。(その3) »

2007年7月 3日 (火)

コマンドラインでPDFファイルを印刷する。(その2)

/cjsオプションが7.0で追加されたものの、8.1で廃止されたので、スクリプト。

Adobe Reader 6.0 ~ 8.1 用

PDF印刷.VBS PDFファイル...

Set fso=CreateObject("Scripting.FileSystemObject")
Set wShell=CreateObject("WScript.Shell")
Path=wShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\acrord32.exe\")
Path=Replace(Path,"""","")
Path=wShell.ExpandEnvironmentStrings(Path)
Printer=Split(wShell.RegRead("HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device"),",")(0)
Set pExec=wShell.Exec(""""&Path&""" /n /h""")
Do While Not wShell.AppActivate(pExec.ProcessID)
  WScript.Sleep 100
Loop
For Each File In WScript.Arguments
  File=fso.GetFile(File).Path
  Set oExec=wShell.Exec(""""&Path&""" /n /t """&File&""" """&Printer&"""")
  Do While oExec.Status=0
    WScript.Sleep 100
  Loop
Next
If pExec.Status=0 Then pExec.Terminate

Adobe Reader 7.0 ~ 8.1 用

PDF印刷.VBS PDFファイル...

Set fso=CreateObject("Scripting.FileSystemObject")
Set wShell=CreateObject("WScript.Shell")
Path=wShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\acrord32.exe\")
Path=Replace(Path,"""","")
Path=wShell.ExpandEnvironmentStrings(Path)
Set pExec=wShell.Exec(""""&Path&""" /n /h""")
Do While Not wShell.AppActivate(pExec.ProcessID)
  WScript.Sleep 100
Loop
For Each File In WScript.Arguments
  File=fso.GetFile(File).Path
  Set oExec=wShell.Exec(""""&Path&""" /n /t """&File&"""")
  Do While oExec.Status=0
    WScript.Sleep 100
  Loop
Next
If pExec.Status=0 Then pExec.Terminate

/tオプションは、他にAdobe Readerがないと、終了せずに残ります。
そこで、最初にダミーのAdobe Readerを起動し、最後に終了します。
GetObjectよりは速いでしょう。

« コマンドラインでPDFファイルを印刷する。 | トップページ | コマンドラインでPDFファイルを印刷する。(その3) »