PDFをJPEG・PNG等の画像データに変換する方法

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ファイルを一括して画像ファイルにすることが可能になりました。
さっと中身を見たい時に便利かも。

タイトルとURLをコピーしました