TOP > サンプル / 関数 > PDFをHTMLに変換する方法/1 [...]
はじめに
PDFのHTML変換に関しては
を参考にして下さい。
当ページのサンプルは不適切です。
しかし、この様な事も出来る、と言う意味で残して置きます。
Acrobat本体で「名前を付けて保存」ダイアログで「ファイルの種類」でHTMLを指定すると同ダイアログ右側の「設定(E)...」である程度HTML出力に対して変更できます。
以下がサンプルです。
説明
PDFをHTMLに変換します。
Acrobat OLEとExcel VBAの機能を利用します。
まず、Acrobat OLEでPDFを開きます。
次にAcrobatのファイルメニューにある「名前を付けて保存」をショートカットキーで開きます。
これはVBAのSendKeysステートメントを利用します。
それに対して、更にSendKeysステートメントを使って「名前を付けて保存」ダイアログ画面の「ファイルの種類」を「HTML」にして「保存」ボタンをクリックします。
このスクリプトが実行中はパソコンを操作しては絶対ダメです。
SendKeysステートメントが失敗します。
SendKeysステートメントはデスクトップ画面上で最上位のアクティブな画面に実行されるからです。
サンプル:ExcelのVBA
- 参照設定を事前にする。
- F8キーでステップ実行しながら動作確認出来ません。
SendKeysステートメントを使っている為です。
Sub CommandButton9_Click()
Dim objAcroApp As New Acrobat.AcroApp
Dim objAcroPDDoc As New Acrobat.AcroPDDoc
Dim objAcroAVDoc As Acrobat.AcroAVDoc
Dim lRet As Long
lRet = objAcroApp.Show
lRet = objAcroPDDoc.Open("E:¥iac_developer_guide.pdf")
objAcroPDDoc.OpenAVDoc "E:¥iac_developer_guide.pdf"
'「名前を付けて保存」ダイアログを開く
lRet = objAcroApp.MenuItemExecute("SaveAs")
'「ファイルの種類(T)」コンボボックスにフォーカスを持っていく [Alt+T]
SendKeys "%T", True
'「ファイルの種別(T)」で「HTML 4.01 - CSS 1.0 準拠(*.htm,*.html)」を選択する [HH]
SendKeys "H", True
SendKeys "H", True
'「保存(S)」ボタンをクリック [Alt+S]
SendKeys "%S", True
'Acrobatアプリケーションを終了する。
lRet = objAcroApp.Hide
lRet = objAcroApp.Exit
'OLEを行うとAcrobatが不安定になるので一応オブジェクトを強制開放する。
Set objAcroPDDoc = Nothing
Set objAcroAVDoc = Nothing
Set objAcroApp = Nothing
End Sub
補足
- Acrobat Readerでは出来ません。
Acrobat本体がデフォルトでインストールされているパソコン環境だけです。 - 上記サンプルにも書きましたが、AcrobatはOLEを使用したり、又は環境が古い(新規インストールからの期間が1年以上になる)と不安定になる事があります。
その場合はOSから再インストールするとある程度安定します。 - 上記サンプルの改良版を次に掲載しています。
動作確認環境
- WindowsXP Pro + SP2 +
Acrobat 8.1.2 Pro + Office 2003
< サンプル一覧 >