AcroExch.PDAnnot: IsOpen メソッド

TOP > AcroExch.PDAnnot > IsOpen      [...]


説明

PDFファイル上のテキスト注釈がドキュメント上で開いているかチェックする。

形式

VARIANT_BOOL IsOpen();

引数

  1. 無し。

戻り値

  • -1 : 開いている。
  • 0 : 開いていない。

動作するバージョン

VersionAdobe
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
8NOAcrobat 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

説明:PDFファイルの表紙ページ上にあるテキスト注釈が開いているかを調べる。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
001 Sub AcroExch_PDAnnot_IsOpen() 002 003 Debug.Print "TEST_PDAnnot_IsOpen:" & Now 004 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 005 Dim objAcroPDDoc As Acrobat.AcroPDDoc 006 Dim objAcroPDPage As Acrobat.AcroPDPage 007 Dim objAcroPDAnnot As Acrobat.AcroPDAnnot 008 Dim lRet As Long '戻り値 009 Dim lAnnotsCnt As Long '注釈数 010 Dim j As Long '添え字 011 Dim lTextCnt As Long '件数 012 013 lTextCnt = 0 014 'PDFドキュメントを開いて表示する 015 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") 016 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc() 017 '表紙のページ・オブジェクトを得る ★注意① 018 Set objAcroPDPage = objAcroPDDoc.AcquirePage(0) 019 'ページに存在する注釈数を得る 020 lAnnotsCnt = objAcroPDPage.GetNumAnnots() - 1 021 Debug.Print "全注釈数=" & (lAnnotsCnt + 1) 022 For j = 0 To lAnnotsCnt 023 Set objAcroPDAnnot = objAcroPDPage.GetAnnot(j) 024 With objAcroPDAnnot 025 Debug.Print "(" & j & ")GetSubtype=" & _ 026 .GetSubtype 027 Debug.Print " GetContents=" & _ 028 .GetContents 029 End With 030 lRet = objAcroPDAnnot.IsOpen() 031 If lRet = -1 Then 032 Debug.Print " IsOpen = True(" & lRet & ")" 033 Else 034 Debug.Print " IsOpen = False(" & lRet & ")" 035 End If 036 lTextCnt = lTextCnt + 1 037 Next j 038 Debug.Print "件数=" & lTextCnt 039 040 'PDFファイルを保存しないで閉じる 041 lRet = objAcroAVDoc.Close(1) 042 'オブジェクトを強制解放する 043 Set objAcroAVDoc = Nothing 044 Set objAcroPDAnnot = Nothing 045 Set objAcroPDPage = Nothing 046 Set objAcroPDDoc = Nothing 047 048 End Sub


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

実行結果

※Text注釈画面を2つとも表示。

PDAnnot:IsOpen メソッド(開いた状態)

TEST_PDAnnot_IsOpen:2008/08/17 17:17:26
全注釈数=4
(0)GetSubtype=Text
GetContents=1/2 1ページ目のテキスト注釈。
IsOpen = False(0)
(1)GetSubtype=Popup
GetContents=1/2 1ページ目のテキスト注釈。
IsOpen = True(-1)
(2)GetSubtype=Text
GetContents=1/2 1ページ目のテキスト注釈。
IsOpen = False(0)
(3)GetSubtype=Popup
GetContents=1/2 1ページ目のテキスト注釈。
IsOpen = True(-1)
件数=4

※Text注釈画面を2つとも閉じた状態。

PDAnnot:IsOpen メソッド(閉じた状態)

TEST_PDAnnot_IsOpen:2008/08/17 17:15:28
全注釈数=4
(0)GetSubtype=Text
GetContents=1/2 1ページ目のテキスト注釈。
IsOpen = False(0)
(1)GetSubtype=Popup
GetContents=1/2 1ページ目のテキスト注釈。
IsOpen = False(0)
(2)GetSubtype=Text
GetContents=2/2 1ページ目のテキスト注釈。
IsOpen = False(0)
(3)GetSubtype=Popup
GetContents=2/2 1ページ目のテキスト注釈。
IsOpen = False(0)
件数=4

補足

  • 上記は2つのテキスト注釈を開いた状態と閉じた状態の2つでテストした結果です。
  • 英語版SDKではこのIsOpenメソッドを以下の様に解説している。
    「Tests whether a text annotation is open.」
    しかし、上記のGetSubtypeメソッドの結果がPopupの物だけテストしている。
    つまりIsOpenメソッドはGetSubtypeメソッドの結果がPopupの物だけしかテスト出来ない事になる。
    これはバグかSDKの解釈ミスか? それとも上記サンプルのロジックミスか?

注意事項

  • 他にPDFファイルが開いていると誤動作する場合がある。
    特に上記サンプルの注意①の結果が変になる。

動作確認環境

  • WindowsXP Pro(+ SP3) +
    Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate

戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


★ 文章での質問は難しいですよネ。でも、早く解決して、家に帰りたい。


SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れる時はコードを全て全角文字列にしてください。コチラで半角に戻します。それでもエラーが回避できない時はコメント下さい。個別に対処します。



お仕事で当サイトを見ている方へ
考え込んだら、ご質問下さい。
一緒に解決策を考えましょう。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください