AcroExch.PDPage: GetNumAnnots メソッド

TOP > AcroExch.PDPage > GetNumAnnots      [...]


説明

AcroPDPageオブジェクトで指定されたページに存在する全注釈数を返す。

形式

long GetNumAnnots();

引数

  1. 無し。

戻り値

  • 0以上の数値。
  • 0ならば注釈はページに無い。※ <- SDKにはこの記述は無い。

動作するバージョン

VersionAdobe
Acrobat
備考
4-Acrobat 4.0    ※Windows 98SE + Excel 2000
5
-
Acrobat 5.0.5
6
-
Acrobat 6.0.3 Pro
7NOAcrobat 7.0.8 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ファイルに存在する注釈オブジェクトの種類の総数をチェックする。

★注意:以下のサンプルは正しい結果を得る事が出来ません。
バグか、SDK資料の解釈ミスか。調査中です。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。

 

 

001 Sub AcroExch_PDPage_GetNumAnnots() 002 003 Dim objAcroApp As New Acrobat.AcroApp 004 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 005 Dim objAcroPDDoc As New Acrobat.AcroPDDoc 006 Dim objAcroPDPage As Acrobat.AcroPDPage 007 Dim objAcroPDAnnot As Acrobat.AcroPDAnnot 008 Dim lRet As Long '戻り値 009 Dim lCnt As Long '件数 010 Dim i As Long '添え字 011 Dim j As Long '添え字 012 Dim k As Long '添え字 013 Dim lPage As Long 'ページ数 014 Dim lPageHitCnt As Long 'ページ数合計 015 016 Dim lAnnots As Long 017 Dim lCntText As Long 018 Dim lCntLink As Long 019 Dim lCntPopup As Long 020 Dim lCntEtc As Long 021 Dim bSkip As Boolean 022 023 'Acrobatを起動表示する 024 lRet = objAcroApp.Show '(TEST用) 025 'PDFドキュメントを開く 026 lRet = objAcroPDDoc.Open("E:\Test01.pdf") 027 '画面にPDFを表示する。 028 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") '(TEST用) 029 030 lPageHitCnt = 0 031 lCntText = 0 032 lCntLink = 0 033 lCntPopup = 0 034 lCntEtc = 0 035 036 lPage = objAcroPDDoc.GetNumPages - 1 037 Debug.Print "全頁数=" & lPage + 1 038 039 For i = 0 To lPage 040 Set objAcroPDPage = Nothing '(TEST用) 041 Set objAcroPDPage = objAcroPDDoc.AcquirePage(i) 042 'ページにおける注釈の数を得ます。★バグ有り? 043 lAnnots = objAcroPDPage.GetNumAnnots - 1 044 bSkip = True 045 For k = 0 To lAnnots 046 '注釈のページ勢ぞろいから指定された注釈を得ます。 047 Set objAcroPDAnnot = Nothing '(TEST用) 048 '注釈オブジェクトPDAnnotを作成する。★バグか? 049 Set objAcroPDAnnot = objAcroPDPage.GetAnnot(k) 050 '注釈オブジェクトが存在するかの事前チェック 051 If Not (objAcroPDAnnot Is Nothing) Then 052 bSkip = False 053 Select Case objAcroPDAnnot.GetSubtype 054 Case "Text" 055 lCntText = lCntText + 1 056 Case "Link" 057 lCntLink = lCntLink + 1 058 Case "Popup" 059 lCntPopup = lCntPopup + 1 060 Case Else 061 lCntEtc = lCntEtc + 1 062 End Select 063 End If 064 Next k 065 If bSkip = False Then 066 lPageHitCnt = lPageHitCnt + 1 067 End If 068 Next i 069 070 Debug.Print "Text の合計=" & lCntText 071 Debug.Print "Popup の合計=" & lCntPopup 072 Debug.Print "Link の合計=" & lCntLink 073 Debug.Print "その他の合計=" & lCntEtc 074 Debug.Print "ヒット頁数=" & lPageHitCnt 075 076 'PDFファイルを閉じる 077 lRet = objAcroPDDoc.Close 078 079 'Acrobatを閉じる 080 lRet = objAcroApp.Hide '(TEST用) 081 lRet = objAcroApp.Exit '(TEST用) 082 083 'オブジェクトを強制解放する 084 Set objAcroAVDoc = Nothing '(TEST用) 085 Set objAcroPDAnnot = Nothing 086 Set objAcroPDPage = Nothing 087 Set objAcroPDDoc = Nothing 088 Set objAcroApp = Nothing '(TEST用) 089 090 End Sub


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

実行結果

Source file 全頁数=34 Text の合計=7 Popup の合計=0 Link の合計=236 その他の合計=0 ヒット頁数=14

※上記の結果は正しくありません。「Textの合計」と「Popupの合計」は共に3が正解です。

補足

  • Acrobat Pro 8.1.2でTest01.pdfを見るとテキスト注釈は3つしか存在しません。だから「Textの合計」と「Popupの合計」は共に3が正解です。※この考え方で合っているとサイト管理者は考えています。
  • F8キーでステップ実行し、各メソッドによりどのような動きをするかよく観察すること。
  • (TEST用)はテスト用のロジックで実用時は不要です。
  • 「If Not (objAcroPDAnnot Is Nothing) Then」のロジックは不要かもしれません。

動作確認環境

  • WindowsXP Pro( + SP3) +
    Acrobat 7.0.8 Pro + Office 2003 + MicrosoftUpdate
  • WindowsXP Pro( + SP3) +
    Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
    ※2つのPC環境で動作確認をしたが、結果不良でした。

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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



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

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