Method of conversion from PDF to JPEG.
説明
Acrobat PDF の全ページを JPEG ファイルに変換します。各ページのテキストも画像も1ファイルの JPEG ファイルに変換して出力します。
JPEG ファイル名にはページ番号が自動付加されます。Acrobat OLE の JSObject とExcel VBA OLE の機能を利用します。
サンプル:ExcelのVBA
- 参照設定を事前に行う。
- F8キーでステップ実行しながら動作確認出来ます。
001 Option Explicit
002
003 Private Sub CommandButton9_Click()
004
005 Dim objAcroApp As New Acrobat.AcroApp
006 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
007 Dim objAcroPDDoc As Acrobat.AcroPDDoc
008 Dim lRet As Long
009 Dim jso As Object
010
011 'Acrobatアプリケーションを起動する。
012 lRet = objAcroApp.Show
013 'PDFファイルを開いて表示する。
014 lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
015 'PDDocオブジェクトを取得する
016 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
017 'JavaScriptオブジェクトを作成する。
018 Set jso = objAcroPDDoc.GetJSObject
019 jso.SaveAs "E:¥test-01.jpeg", "com.adobe.acrobat.jpeg"
020
021 'PDFファイルを変更無しで閉じます。
022 lRet = objAcroAVDoc.Close(1)
023 'Acrobatアプリケーションを終了する。
024 lRet = objAcroApp.Hide
025 lRet = objAcroApp.Exit
026 'OLEを行うとAcrobatが不安定になるので、
027 '一応オブジェクトを強制開放する。
028 Set jso = Nothing
029 Set objAcroAVDoc = Nothing
030 Set objAcroApp = Nothing
031 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
補足
- Acrobat Readerでは出来ません。
Acrobat本体がデフォルトでインストールされているパソコン環境だけです。
- 以下が変換後のファイル名のイメージです。
- 上記サンプルでは objAcroApp.Show でAcrobatアプリ本体を起動表示しています。これはjso.SaveAs メソッドを連続で行うときに発生する不可解なエラー回避策です。高速化したいのならば objAcroApp.CloseAllDocs に置き換えて下さい。
- 当サンプルよりも以下の関数を利用してのJPEG 変換をおすすめします。
「関数:PDFを特定のフォーマットに変換する」
当ページのサンプルよりも安全にJPEG 変換が可能になります。
注意
- 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にはありません。
- OSがインストールされているC:ドライブへの保存は出来ません。
詳細は、「Acrobat JavaScript における「Safe Path」についての注意事項」を参照。
動作確認環境
- WindowsXP Pro + SP3 +
Acrobat 8.1.6 Pro + Office 2003 + フルMicrosoftUpdate
< サンプル一覧 >
本当に助かりました。
手で一つ一つやるなど、地獄のような作業なので。笑
wordもアップデ-ト後に設定が自動になっていたりと米国人は自動が好きなようです。
ありがとうございました。
こんにちは。
PDFファイルを画像ファイルに変換する際、解像度を指定して変換することは可能でしょうか?
宜しくお願い申し上げます。
小沢 さん はじめまして。
変換時にその様なオプション等は存在しません。
当サイト内でも「解像度の指定」は見たことは無いです。
別途、他ソフトで変換するしか手がないと思われます。