PDFファイルと同じ階層に同名のフォルダを作成し、その配下にPNGで変換する
使用方法:本ソースファイルを「.vbs」にて保存。変換したいファイルを本スクリプトへドラッグ&ドロップすると自動的に開始される。
Ghostscriptのパスは環境によって変更する。
Option Explicit
' GhostScriptへのパスとオプションを指定
Const GS_PATH = "C:\Ghostscript\bin\gswin64c.exe"
Const GS_OPTION = "-dSAFER -dBATCH -dNOPAUSE -sDEVICE=pngalpha -r300"
' FileSystemObjectとシェル
Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objShell: Set objShell = CreateObject("WScript.Shell")
' 変数定義
Dim tmpFN ' ループ変数(ファイル名)
Dim tmpBaseName ' ループ内変数(拡張子を除くファイル名)
Dim tmpCurFolder ' ループ内変数(カレントフォルダ)
Dim tmpDstFolder ' ループ内変数(出力先フォルダ)
Dim tmpstrCmd ' ループ内変数(コマンドライン)
' 直接実行しても動作しない
If Wscript.Arguments.Count = 0 Then Wscript.Quit
' ドラッグアンドドロップされたファイルをひとつずつ変換する
For Each tmpFN In WScript.Arguments
' 拡張子を除くファイル名を取得
tmpBaseName = objFSO.GetBaseName(tmpFN)
' カレントフォルダと出力先フォルダを指定、出力先フォルダがなければ作成する
tmpCurFolder = objFSO.GetParentFolderName(tmpFN)
tmpDstFolder = tmpCurFolder & "\" & tmpBaseName & "\"
If Not objFSO.FolderExists(tmpDstFolder) Then objFSO.CreateFolder(tmpDstFolder)
' コマンドライン組み立て
tmpstrCmd = Join( Array(_
GS_PATH, _
GS_OPTION, _
"-sOutputFile=" & tmpDstFolder & tmpBaseName & "_page%03d.png", _
tmpFN), " ")
' 出力先フォルダへ変換する
objShell.Run tmpstrCmd, 1, True
Next
Set objShell = Nothing
Set objFSO = Nothing
' 完了メッセージを表示
MsgBox "PDFファイルをPNGに変換しました。", vbOKOnly + vbInformation, WScript.ScriptName