TOP > AcroExch.PDBookmark > GetTitle [...]
説明
ロジック上で扱っている該当する「しおり」の文字列を取得します。
よって事前に検索(GetByTitle)しておく必要があります。
形式
BSTR GetTitle();
引数
- 無し。
戻り値
- 文字列。しおりの検索(GetByTitle)で、検索出来ないとNULL("")文字が返されます。
動作するバージョン
Version | Adobe Acrobat | 備考 |
---|---|---|
4 | - | Acrobat 4.0 ※Windows 98SE + Excel 2000 |
5 | - | Acrobat 5.0.5 |
6 | - | Acrobat 6.0.3 Pro |
7 | - | Acrobat 7.0.9 Pro Acrobat 7.1.4 Pro |
8 | OK | Acrobat 8.1.2 Pro |
9 | - | Acrobat 9.3.2 Extended |
10 | - | Acrobat X (10.1.8) Extended |
11 | - | Acrobat XI (11.0.04) Extended |
- OK = 動作する。
- NO = 動作しない。 戻り値が0を返す。
- - = 未確認。
サンプル:ExcelのVBA
説明:現在扱っているしおりの文字列を表示します。
- F8キーでステップ実行しながら動作確認する。
- 事前に参照設定をする。
001 Sub AcroExch_AcroPDBookmark_GetTitle()
002
003 Dim objAcroApp As New Acrobat.AcroApp
004 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
005 Dim objAcroPDDoc As New Acrobat.AcroPDDoc
006 Dim objAcroPDBookMark As Acrobat.AcroPDBookmark
007 Dim lRet As Long
008
009 'PDFファイルを開いて表示する
010 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "")
011 'PDDocオブジェクトを取得する
012 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc
013 'objAcroPDBookMarkオブジェクトの作成(インスタンス化)
014 Set objAcroPDBookMark = _
015 CreateObject("AcroExch.PDBookmark")
016 '該当する「しおり」を検索する
017 lRet = objAcroPDBookMark.GetByTitle(objAcroPDDoc, _
018 "HogeHoge")
019 '現在のPDBookmarkオブジェクトの
020 'しおりの文字列を表示します。
021 Debug.Print "(" & objAcroPDBookMark.GetTitle & ")"
022
023 'PDFファイルを保存して閉じます。
024 'lRet = objAcroAVDoc.Close(0)
025 'PDFファイルを保存しないで閉じます。
026 lRet = objAcroAVDoc.Close(1)
027
028 'Acrobatアプリケーションを終了する。
029 lRet = objAcroApp.Hide
030 lRet = objAcroApp.Exit
031
032 'オブジェクトを強制開放する
033 Set objAcroPDBookMark = Nothing
034 Set objAcroPDDoc = Nothing
035 Set objAcroAVDoc = Nothing
036 Set objAcroApp = Nothing
037
038 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
補足
- 事前に検索(GetByTitle)しておく必要があります。
- 事前に検索(GetByTitle)しておいた、同じ文字列が表示されます。
動作確認環境
- WindowsXP Pro(+ SP3) +
Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
< 戻る >
はじめまして。
VBA素人です。
しおり書き出しをしようと頑張っているのですが全く進まずコメントさせえて頂きました。
http://pdf-file.nnn2.com/?p=140
を参考に進めようと思ったのですが
objAcroPDBookMark.GetTitleはいつもからで対応に困っております。
acrobatのversionは10です。
その場合下記記述はこのままで良いのでしょうか。
Set objAcroPDBookMark = _
CreateObject("AcroExch.PDBookmark")
また、"HogeHoge"は""でもしおりを抽出してくれるのでしょか。
(しおりの文字をそのまま""の中に入れても反応有りませんでした。)
どうかご教授お願い致します。
とぉ さん はじめまして。
当ページの内容でしおりの抽出は出来ません。正確にはAcroPDBookMarkオブジェクトに機能が有りません。
以下を参考にして下さい。
1. PDFのしおり数を取得するVBAマクロ
2. CPDF:メッチャ多機能なPDFのコマンドライン・ツール
1はデバッグがしやすいですが、低速なので大量処理には向いてません。
2は高速で一覧取得、削除、登録等も出来ますが、Acrobat以外のソフトを使う必要があります。
Acrobat OLE(IAC)を使って、高速にしおりの抽出(173頁)する方法は有るのですが、現在はコチラのPC環境が動作不良(※インストールの失敗)で動作確認できません。
上記の2点でご検討下さい。
管理人様
お世話になっております。
『現在扱っているしおりの文字列を表示します。』とあったので
それをページ数分繰り返せばできるものと思っておりました。
管理人様の言われた『1』の方法で試してみたいと思います。
『2』に関しては社内規定で勝手にDLすることができず断念するしかないようなので。。。
『1』に関してもうまくいかない箇所がありますので
今後そのページで質問させていただきます。
ありがとうございました。