Method of conversion from PDF to RTF.
説明
Acrobat PDF を RTF ファイルに変換します。
Acrobat OLE の JSObject とExcel VBA OLE の機能を利用します。
サンプル:ExcelのVBA
- F8キーでステップ実行しながら動作確認出来ます。
- 参照設定を事前にする。
001 Option Explicit
002
003 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.rtf", "com.adobe.acrobat.rtf"
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
032 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
補足
- Acrobat Readerでは出来ません。
Acrobat本体がデフォルトでインストールされているパソコン環境だけです。
- 上記サンプルでは objAcroApp.Show でAcrobatアプリ本体を起動表示しています。
これはjso.SaveAs メソッドを連続で行うときに発生する不可解なエラー回避策です。
高速化したいのならば objAcroApp.CloseAllDocs に置き換えて下さい。
- 当サンプルよりも以下の関数を利用してのRTF 変換をおすすめします。
「関数:PDFを特定のフォーマットに変換する」
当ページのサンプルよりも安全にRTF 変換が可能になります。
注意
- PDFを全く同じ表示形式では変換されません。
- Acrobat SDK 8.1 に書かれている第2引数の説明が一部間違っています。
以下が正解です。
SDK:com.adobe.Acrobat.rtf ※間違い
正解:com.adobe.acrobat.rtf ※「a」1文字違う
この情報は、"C:¥Program Files¥Adobe¥Acrobat 8.0¥Acrobat¥ExportTask.xml"ファイルに入っている内容から当サイト管理者が勝手に判断したものです。
この「ExportTask.xml」ファイルに関する説明はAcrobat SDKにはありません。
- PDFをRTFファイルに変換するサンプルを上記に掲載しましたが、 Office Word 2003 では開かないで下さい。
WORD変換と同じ変な結果が表示されます。
必ずワードパットで開いて見て下さい。
ただ、表紙部分が欠落する現象はWORD変換と同じです。
変換後の内容を必ず確認して使用して下さい。
WORD変換よりはマシな変換です。
- OSがインストールされているC:ドライブへの保存は出来ません。
詳細は、 「Acrobat JavaScript における「Safe Path」についての注意事項」を参照。
動作確認環境
- WindowsXP Pro + SP3 +
Acrobat 8.1.6 Pro + Office 2003 + フルMicrosoftUpdate
< サンプル一覧 >