TOP > *
英語ではブックマークと言っていますが日本語では「しおり」と言います。この「しおり」を扱うのが PDBookmark オブジェクトです。オブジェクト連携図を見ると「GetByTitle」メソッドで連携する様に見えますが、これだけ点線になっている事に注意が必要です。他のオブジェクトと連携方法が異なります。
基本コーディングはコレ↓
001 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
002 Dim objAcroPDDoc As New Acrobat.AcroPDDoc
003 Dim objAcroPDBookMark As Acrobat.AcroPDBookmark
004 Dim lRet As Long
005 'PDFファイルを開いて表示する
006 lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
007 'PDDocオブジェクトを取得する
008 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc
009 'objAcroPDBookMarkオブジェクトの作成(インスタンス化)
010 Set objAcroPDBookMark = _
011 CreateObject("AcroExch.PDBookmark")
012 '該当する「しおり」を検索する
013 lRet = objAcroPDBookMark.GetByTitle(objAcroPDDoc, _
014 "OLE capabilities in Acrobat")
PDBookmark オブジェクトはオブジェクトの宣言は出来ますがNEW指定は出来ません。必ず CreateObject でインスタンス化する必要があります。また、オブジェクト連携図に書かれている「GetByTitle」メソッドはしおりを検索するだけのメソッドです。結果的にはこの検索でPDBookmark オブジェクトへ連携された事になります。
一覧
| メソッド | 解説 |
|---|---|
| Destroy | ロジック上で現在扱っている該当する「しおり」を削除します。よって事前に検索(GetByTitle)しておく必要があります。 |
| GetByTitle | 該当する文字列を持った「しおり」が存在するかの検索をします。検索出来れば同時にAVDocオブジェクトと連携します。 |
| GetTitle | ロジック上で扱っている該当する「しおり」の文字列を返します。事前に検索(GetByTitle)しておく必要があります。 |
| IsValid | 現在AcroPDBookmarkオブジェクトが扱っている「しおり」の構造をチェックするものではありません。削除されたかを確認する為に用意されたメソッドです。他のIsValid メソッドとは意味合いが異なります。 |
| Perform | ロジック上で扱っている該当する「しおり」に定義されているアクションを実行(頁移動等)します。事前に検索(GetByTitle)しておく必要があります。 |
| SetTitle | 現在AcroPDBookmarkオブジェクトが扱っている「しおり」の文字列を変更します。事前に検索(GetByTitle)しておく必要があります。 |
備考
- 上記のメソッド一覧を見ても分かる通り、このPDBookmarkオブジェクトでは「しおり」の新規追加の機能は有りません。OLE(IAC)全体にもしおりの新規登録メソッドは存在しません。
- しおりの追加、削除、抽出ならば以下のツールの方をお勧めします。
CPDF:メッチャ多機能なPDFのコマンドライン・ツール
Adobe Web 解説
OLE Automation / AcroExch.PDBookmark (公式サイト・英語)
< TOPへ >
サイト管理人の技術メモ
これ以降はサイト管理者が当サイト又は当ページを維持&管理するためのメモです。見る必要も無く公開用にも書いてません。
「・・・オブジェクトの宣言は出来ますがNEW指定・・・」とか、そんな難しい表現で書いて、理解できる人が居るのかな? もっと約束事みたいな表現「この後はこの様な記述をする」とか「これは約束事です」の方が良いのではないか? ん~~~、悩む。時間が出来たら見直そう。
