PDFファイルと同じ階層に同名のフォルダを作成し、その配下にPNGで変換する
使用方法:本ソースファイルを「.vbs」にて保存。変換したいファイルを本スクリプトへドラッグ&ドロップすると自動的に開始される。
Ghostscriptのパスは環境によって変更する。
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
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 |