PDFをJPEGに変換する方法(Excel VBAサンプル)

TOP > サンプル / 関数 > *      [...]


Method of conversion from PDF to JPEG.

 

説明

Acrobat PDF の全ページを JPEG ファイルに変換します。

JPEG ファイル名にはページ番号が自動付加されます。

Acrobat OLE の JSObject とExcel VBA OLE の機能を利用します。

 

サンプル:ExcelのVBA

 

  • 参照設定を事前に行う。
  • F8キーでステップ実行しながら動作確認出来ます。

 

Option Explicit

Private Sub CommandButton9_Click()

    Dim objAcroApp As New Acrobat.AcroApp
    Dim objAcroAVDoc As New Acrobat.AcroAVDoc
    Dim objAcroPDDoc As Acrobat.AcroPDDoc
    Dim lRet As Long
    Dim jso As Object
    
    'Acrobatアプリケーションを起動する。
    lRet = objAcroApp.Show
    'PDFファイルを開いて表示する。
    lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
    'PDDocオブジェクトを取得する
    Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
    'JavaScriptオブジェクトを作成する。
    Set jso = objAcroPDDoc.GetJSObject
    jso.SaveAs "E:¥test-01.jpeg", "com.adobe.acrobat.jpeg"
    
    'PDFファイルを変更無しで閉じます。
    lRet = objAcroAVDoc.Close(1)
    'Acrobatアプリケーションを終了する。
    lRet = objAcroApp.Hide
    lRet = objAcroApp.Exit
    'OLEを行うとAcrobatが不安定になるので、
    '一応オブジェクトを強制開放する。
    Set jso = Nothing
    Set objAcroAVDoc = Nothing
    Set objAcroApp = Nothing
End Sub

 





 

補足

 

  1. Acrobat Readerでは出来ません。
    Acrobat本体がデフォルトでインストールされているパソコン環境だけです。
     
  2. 以下が変換後のファイル名のイメージです。
     
    Method of conversion from PDF to JPEG.
     
  3. 上記サンプルでは objAcroApp.Show でAcrobatアプリ本体を起動表示しています。
    これはjso.SaveAs メソッドを連続で行うときに発生する不可解なエラー回避策です。
    高速化したいのならば objAcroApp.CloseAllDocs に置き換えて下さい。
     
  4. 当サンプルよりも以下の関数を利用してのJPEG 変換をおすすめします。
    関数:PDFを特定のフォーマットに変換する」 
    当ページのサンプルよりも安全にJPEG 変換が可能になります。
     

 

注意

 

  1. Acrobat SDK 8.1 に書かれている第2引数の説明が一部間違っています。
    以下が正解です。

    SDK:com.adobe.Acrobat.jpeg ※間違い
    正解:com.adobe.acrobat.jpeg ※「a」1文字違う
    この情報は、"C:¥Program Files¥Adobe¥Acrobat 8.0¥Acrobat¥ExportTask.xml" ファイルに入っている内容から当サイト管理者が勝手に判断したものです。
    この「ExportTask.xml」ファイルに関する説明はAcrobat SDKにはありません。
     
  2. OSがインストールされているC:ドライブへの保存は出来ません
    詳細は、「Acrobat JavaScript における「Safe Path」についての注意事項」を参照。
     

 

動作確認環境

 

  • WindowsXP Pro + SP3 +
    Acrobat 8.1.6 Pro + Office 2003 + フルMicrosoftUpdate

 

サンプル一覧

「PDFをJPEGに変換する方法(Excel VBAサンプル)」への3件のフィードバック

  1. Win XP環境で作業している者です。
    現在,Acrobat 9.0でPDFファイルを上記のようにJPG変換する作業をしています。
    バージョン9.0では,Acrobatのファイルメニューから,「別名で保存」で連番が降られたJPGファイルが出来ます。
    解像度もppi/cm単位で設定出来ます。
    ただ,デフォルトでは,解像度をプルダウンメニューで,何寿類かの特定の解像度しか選べないので,プルダウンメニューで設定したあとで,解像度の数字の部分だけを,200ppi/pxelの数値でcm単位に変えて変換しています。
    ただこの設定ではカスタム設定保存が出来なくて,新規のPDFを処理するたびにデフォルトに戻ってしまいます。
    それと,解像度を200ppi/pxelに設定した後で,解像度は変えずに,pixelだけをUPして,JPGに書き出すスクリプトはどうやって設定するのでしょうか?
    以上の2点の処理で困ってます。
    ちなみに,最後の解像度はそのままに,pixel数をUPして,ドキュメントサイズを大きくする作業は,残念ながらPhotoshopのバッチで処理しています。
    なんせPDFの数が膨大にあるため,なんとかAcrobatで動くVBあるいはJavascriptdで実行出来ないかと思っています。
    ご教授よろしくお願いいたします。

  2. 内容は確認しました。
    現在、この値をどの様な形でAcrobat 9.0が管理しているか調査しています。
    ・レジストリ
    ・C:ドライブのどこかのファイル(xml?)
    しばらくお時間を下さい。

  3. kimさん。遅れましたが、初めまして。
    これまでの中間報告です。
    <1点目>
    Acrobat Pro Extended 9.0
    Acrobat Pro Extended 9.1
    + Office 2003 + Win XP(フルUP)環境
    で確認しましたが、JPEG変換の解像度はカスタム変更してもデフォルトには戻りません。「別名で保存」に問題は見つかりませんでした。
     そこで一度、試して欲しいのですが。メニューから[編集]->[環境設定]->環境設定ダイアログ画面->[PDFからの変換]->[JPEG]で[解像度]を選択して[設定を編集(E)]ボタンでデフォルトの解像度が変更できる?と予想しています。試して下さい。
    <2点目>
     「別名で保存」の設定パラメータ画面にその値が無いので無理かと・・。これに関してはAcrobat側の問題では無く、VBA(VB)側の処理方法だと思います。
     なお、解像度のリスト値が保存されている箇所は見つけることが出来ませんでした。が、再度調査したいと思っています。
     とりあえず、今日はココまで。(汗

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin