ImageMagickのインストール
Windows10を、64ビットで使ってます。
(VBScriptはWindowsにもともとインストールされています。)
ImageMagickは下のダウンロードリンクからImageMagick-7.0.8-12-Q16-x64-dll.exeをインストール。
なお、インストールの際の「Select Additional Tasks」のダイアログで、一番下のInstall ImageMagickObject OLE Control」のところにチェックしておきます。(VBScriptから使うため)
リンクDownload @ ImageMagick
ImageMagickでPDFを扱う場合は、Ghostscriptのインストールが必要になるので、下のリンクからDownloadのリンクをたどってGhostscript 9.25 for Windows (64 bit) をインストールしました。
(現在は9.26)
これをインストールしていると、IrfanViewからもPDFの操作が可能になります。(これはいずれ)
リンクGhostscript
ImageMagickでPDFを画像データに変換する
では、いよいよPDFを画像データに変換してみましょう。
次のVBScriptをpdf2jpg.vbs等の拡張子vbsの名前で保存します。
このファイル(またはショートカット)に変換したいPDFファイルをドラッグ&ドロップします。
PDFが複数ページに渡っている場合は、ページの分だけ画像ファイルが生成されます。
Set WS = CreateObject("WScript.Shell") Set FS = CreateObject("Scripting.FileSystemObject") Set IM = CreateObject("ImageMagickObject.MagickImage.1") For Each strFile In WScript.Arguments 'ドラッグ&ドロップしたファイルと同じ場所にJPGファイルを書き出します。(拡張子を.pngにすればPNGになります) OutputPath = FS.BuildPath(FS.GetParentFolderName(strFile), FS.GetBaseName(strFile) & ".jpg") 'すでに同じ名前のファイルが存在している場合には(1)(2)(3)等をつけていきます。 OutputPath = CheckFilePath(OutputPath) '次の400は解像度、1280は画像の幅ですので用途に応じて調整します。Web用であれば解像度は96で十分かも。 IM.Convert "-density", "400", "-geometry", "1280", strFile, OutputPath Next '同じファイル名がある場合は(1)等をつける Private Function CheckFilePath(FilePath) Dim tmpFolderPath, tmpFileName, tmpExtName, tmpFilePath If FS.FileExists(FilePath) then tmpFolderPath = FS.GetParentFolderName(FilePath) tmpFileName = FS.GetBaseName(FilePath) tmpExtName = FS.GetextensionName(FilePath) If Not Left(tmpExtName, 1)="." then tmpExtName = "." & tmpExtName For i = 1 to 1000 tmpFilePath = FS.BuildPath(tmpFolderPath, tmpFileName & "(" & i & ")" & tmpExtName) If Not FS.FileExists(tmpFilePath) then Exit For Next Else tmpFilePath = FilePath End If CheckFilePath = tmpFilePath End Function
特に拡張子の判断はしていないので、PNGファイルなどほとんどのファイルはjpgに変換できると思います。
また、スクリプト内の.jpgを他の対応している拡張子に変更すればそのファイル形式に変換されます。(便利!)
まあ、これでPDFファイルを一括して画像ファイルにすることが可能になりました。
さっと中身を見たい時に便利かも。
コメント