TOP > AcroExch.PDPage > RemoveAnnot [...]
説明
ページ注釈配列からインデックス指定して、該当する注釈を削除する。
形式
VARIANT_BOOL RemoveAnnot(long nIndex);
引数
- 第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キーでステップ実行しながら動作確認する。
- 事前に参照設定をする。
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編)
実行結果
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
< 戻る >