AcroExch.PDPage: RemoveAnnot メソッド

TOP > AcroExch.PDPage > RemoveAnnot      [...]


説明

ページ注釈配列からインデックス指定して、該当する注釈を削除する。

 

形式

VARIANT_BOOL RemoveAnnot(long nIndex);

 

引数

  1. 第1引数(long nIndex) :
    注釈配列の削除したいインデックスを指定する。最初は0。

 

戻り値

  • -1 : 成功。
  • -1以外 : 失敗。
    注意)SDKには上記と異なる表記がされている。

 

動作するバージョン

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
NO
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

 

説明:PDFドキュメントから全ての注釈を削除する。

※★GetNumAnnots メソッドの動作が不安定なのでサンプルの結果は保証出来ません。

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

 

Sub AcroExch_PDPage_RemoveAnnot()

    Debug.Print "AcroExch_PDPage_RemoveAnnot:" & Now
    Dim objAcroApp             As New Acrobat.AcroApp
    Dim objAcroAVDoc         As New Acrobat.AcroAVDoc
    Dim objAcroPDDoc         As New Acrobat.AcroPDDoc
    Dim objAcroPDPage        As Acrobat.AcroPDPage
    Dim objAcroAVPageView   As Acrobat.AcroAVPageView
'    Dim objAcroPdAnnot      As Acrobat.AcroPDAnnot
    Dim lRet                       As Long     '戻り値
    Dim lCnt                       As Long     '件数
    Dim i                            As Long     '添え字
    Dim k                           As Long     '添え字
    Dim lPage                     As Long     'ページ数
    Dim lAnnots                  As Long

    'Acrobatを起動表示する
    lRet = objAcroApp.Show
    '画面にPDFドキュメントを表示する。
    lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
    
    Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
    Set objAcroAVPageView = objAcroAVDoc.GetAVPageView()
    lPage = objAcroPDDoc.GetNumPages - 1
    Debug.Print "PDF全頁数=" & lPage + 1
    
    For i = 0 To lPage
        'ページ移動する。
        lRet = objAcroAVPageView.Goto(i)
        '現在のページのPDPageオブジェクトを取得する。
        Set objAcroPDPage = objAcroAVPageView.GetPage
        'ページにおける注釈の数を得ます。★バグ有り?
        lAnnots = objAcroPDPage.GetNumAnnots - 1
        For k = 0 To lAnnots
            '注釈のページ勢ぞろいから指定された注釈を得る
'            Set objAcroPdAnnot = objAcroPDPage.GetAnnot(k)
'            Debug.Print "Type=" & objAcroPdAnnot.GetSubtype
'            Debug.Print "Text=" & objAcroPdAnnot.GetContents
            lRet = objAcroPDPage.RemoveAnnot(k)
            lCnt = lCnt + 1
        Next k
        Debug.Print "Page=" & (i + 1) & " Deleted Annot=" & k
    Next i
    Debug.Print "削除した注釈数=" & lCnt
    
    'PDFファイルを保存しないで閉じる(TEST用)
    lRet = objAcroAVDoc.Close(1)

    'Acrobatを閉じる
    lRet = objAcroApp.Hide
    lRet = objAcroApp.Exit

    'オブジェクトを強制解放する
    Set objAcroAVDoc = Nothing
'    Set objAcroPdAnnot = Nothing
    Set objAcroPDPage = Nothing
    Set objAcroAVPageView = Nothing
    Set objAcroPDDoc = Nothing
    Set objAcroApp = Nothing

End Sub

 

実行結果

Test_AcroPDPage_RemoveAnnot:2008/07/25 13:40:57
PDF全頁数=34
Page=1 Deleted Annot=4
Page=2 Deleted Annot=2
Page=3 Deleted Annot=39
Page=4 Deleted Annot=10
Page=5 Deleted Annot=0
Page=6 Deleted Annot=0
Page=7 Deleted Annot=1
Page=8 Deleted Annot=2
Page=9 Deleted Annot=0
Page=10 Deleted Annot=1
Page=11 Deleted Annot=7
Page=12 Deleted Annot=0
Page=13 Deleted Annot=0
Page=14 Deleted Annot=2
Page=15 Deleted Annot=0
Page=16 Deleted Annot=0
Page=17 Deleted Annot=1
Page=18 Deleted Annot=0
Page=19 Deleted Annot=0
Page=20 Deleted Annot=0
Page=21 Deleted Annot=0
Page=22 Deleted Annot=0
Page=23 Deleted Annot=0
Page=24 Deleted Annot=0
Page=25 Deleted Annot=0
Page=26 Deleted Annot=1
Page=27 Deleted Annot=0
Page=28 Deleted Annot=0
Page=29 Deleted Annot=0
Page=30 Deleted Annot=0
Page=31 Deleted Annot=0
Page=32 Deleted Annot=3
Page=33 Deleted Annot=81
Page=34 Deleted Annot=91
削除した注釈数=245

※1ページ目と2ページ目はOKです。他の結果は不明です。

 

補足

  • GetAnnotIndexメソッドはAcrobat Pro v8.1.2 では使用しない事をお薦めします。

 

 

動作確認環境

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

 

戻る

コメントを残す

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

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

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

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れるとエラーになる場合が有ります。その時はコードの前後に <code> ・・・</code> タグを入れてください。

This site uses Akismet to reduce spam. Learn how your comment data is processed.