Method of conversion from PDF to HTML 3.2.
説明
PDF を HTML 3.2 形式に変換します。
Acrobat OLE の JSObject とExcel VBA OLE の機能を利用します。
サンプル:ExcelのVBA
- F8キーでステップ実行しながら動作確認出来ます。
- 参照設定を事前にする。
Option Explicit
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.html", "com.adobe.acrobat.html-3-20"
'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
補足
- Acrobat Readerでは出来ません。
Acrobat本体がデフォルトでインストールされているパソコン環境だけです。
- 上記サンプルでは objAcroApp.Show でAcrobatアプリ本体を起動表示しています。
これはjso.SaveAs メソッドを連続で行うときに発生する不可解なエラー回避策です。
高速化したいのならば objAcroApp.CloseAllDocs に置き換えて下さい。
- 当サンプルよりも以下の関数を利用してのHTML3.2 変換をおすすめします。
「関数:PDFを特定のフォーマットに変換する」
当ページのサンプルよりも安全にHTML 3.2 変換が可能になります。
- 「PDFをHTMLへ変換する上でのイメージファイルを扱う注意事項」も参照
注意
- Acrobat SDK 8.1 に書かれている第2引数の説明が一部間違っています。
以下が正解です。
SDK:com.adobe.Acrobat.html-3-20 ※間違い
正解:com.adobe.acrobat.html-3-20 ※「a」1文字違う
この情報は、"C:¥Program Files¥Adobe¥Acrobat 8.0¥Acrobat¥ExportTask.xml"ファイルに入っている内容から当サイト管理者が勝手に判断したものです。
この「ExportTask.xml」ファイルに関する説明はAcrobat SDKにはありません。
- PDFをHTMLに変換するには、前提条件が1つあります。
Acrobat本体ファイルメニューの「名前を付けて保存」ダイアログ表示->「ファイルの種類」を「HTML 3.2」に一旦します。
そして「設定」ボタンが有効になるので「設定」ボタンを押して、「HTML 3.2として保存の設定」画面で「サブホルダを使用」チェックをオフにします。
そうしないと、連続でPDFをHTML変換する時に画像イメージが固定フォルダ名で上書きされてしまいます。
なお、この設定はAcrobat本体が終了しても保存されます。
これを変更するOLE操作方法は調査中(いつかは不明)です。
- OSがインストールされているC:ドライブへの保存は出来ません。
詳細は、「Acrobat JavaScript における「Safe Path」についての注意事項」を参照。
動作確認環境
- WindowsXP Pro + SP3 +
Acrobat 8.1.6 Pro + Office 2003 + フルMicrosoftUpdate
< サンプル一覧 >