AcroExch.PDPage: RemoveAnnot メソッド

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


説明

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

形式

VARIANT_BOOL RemoveAnnot(long nIndex);

引数

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

戻り値

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

動作するバージョン

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ドキュメントから全ての注釈を削除する。

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

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

 

 

001 Sub AcroExch_PDPage_RemoveAnnot() 002 003 Debug.Print "AcroExch_PDPage_RemoveAnnot:" & Now 004 Dim objAcroApp As New Acrobat.AcroApp 005 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 006 Dim objAcroPDDoc As New Acrobat.AcroPDDoc 007 Dim objAcroPDPage As Acrobat.AcroPDPage 008 Dim objAcroAVPageView As Acrobat.AcroAVPageView 009 ' Dim objAcroPdAnnot As Acrobat.AcroPDAnnot 010 Dim lRet As Long '戻り値 011 Dim lCnt As Long '件数 012 Dim i As Long '添え字 013 Dim k As Long '添え字 014 Dim lPage As Long 'ページ数 015 Dim lAnnots As Long 016 017 'Acrobatを起動表示する 018 lRet = objAcroApp.Show 019 '画面にPDFドキュメントを表示する。 020 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") 021 022 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc() 023 Set objAcroAVPageView = objAcroAVDoc.GetAVPageView() 024 lPage = objAcroPDDoc.GetNumPages - 1 025 Debug.Print "PDF全頁数=" & lPage + 1 026 027 For i = 0 To lPage 028 'ページ移動する。 029 lRet = objAcroAVPageView.Goto(i) 030 '現在のページのPDPageオブジェクトを取得する。 031 Set objAcroPDPage = objAcroAVPageView.GetPage 032 'ページにおける注釈の数を得ます。★バグ有り? 033 lAnnots = objAcroPDPage.GetNumAnnots - 1 034 For k = 0 To lAnnots 035 '注釈のページ勢ぞろいから指定された注釈を得る 036 ' Set objAcroPdAnnot = objAcroPDPage.GetAnnot(k) 037 ' Debug.Print "Type=" & objAcroPdAnnot.GetSubtype 038 ' Debug.Print "Text=" & objAcroPdAnnot.GetContents 039 lRet = objAcroPDPage.RemoveAnnot(k) 040 lCnt = lCnt + 1 041 Next k 042 Debug.Print "Page=" & (i + 1) & " Deleted Annot=" & k 043 Next i 044 Debug.Print "削除した注釈数=" & lCnt 045 046 'PDFファイルを保存しないで閉じる(TEST用) 047 lRet = objAcroAVDoc.Close(1) 048 049 'Acrobatを閉じる 050 lRet = objAcroApp.Hide 051 lRet = objAcroApp.Exit 052 053 'オブジェクトを強制解放する 054 Set objAcroAVDoc = Nothing 055 ' Set objAcroPdAnnot = Nothing 056 Set objAcroPDPage = Nothing 057 Set objAcroAVPageView = Nothing 058 Set objAcroPDDoc = Nothing 059 Set objAcroApp = Nothing 060 061 End Sub


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

実行結果

Source file 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> タグを入れてください。

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