TOP > AcroExch.PDPage > AddNewAnnot [...]
説明
ページの指定位置にテキスト注釈を新規追加します。
同時にPDAnnotオブジェクトを作成します。
形式
LPDISPATCH AddNewAnnot(long nIndexAddAfter,
BSTR szSubType,
LPDISPATCH iAcroRect);
引数
- 第1引数(long nIndexAddAfter) :
「-2」固定。他の値を指定すると失敗する。 - 第2引数(BSTR szSubType) :
注釈のタイプ。"Text"の固定。 - 第3引数(LPDISPATCH iAcroRect) :
注釈をセットするページの位置をRectオブジェクトで指定。
戻り値
- AcroPDAnnotオブジェクトでNull以外 :
成功。 - AcroPDAnnotオブジェクトでNull :
失敗。注釈を追加出来なかった。
動作するバージョン
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 | OK | 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
説明:最初の1ページにテキスト注釈を新規追加します。
- F8キーでステップ実行しながら動作確認する。
- 事前に参照設定をする。
001 Sub AcroExch_PDPage_AddNewAnnot()
002
003 Dim objAcroApp As New Acrobat.AcroApp
004 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
005 Dim objAcroPDDoc As New Acrobat.AcroPDDoc
006 Dim objAcroRect As New Acrobat.AcroRect
007 Dim objAcroPDPage As Acrobat.AcroPDPage
008 Dim objAcroPDAnnot As Acrobat.AcroPDAnnot
009 Dim lRet As Long '戻り値
010
011 'Acrobatを起動表示する
012 lRet = objAcroApp.Show '(注1)
013 'PDFドキュメントを開く
014 lRet = objAcroPDDoc.Open("E:\Test01.pdf")
015 '画面にPDFを表示する。
016 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") '(注1)
017 '1ページ目のPDPageオブジェクトを取得します
018 Set objAcroPDPage = objAcroPDDoc.AcquirePage(0)
019 'テキスト注釈の4枠サイズをセットする
020 With objAcroRect
021 .Top = 700
022 .bottom = .Top - 60
023 .Left = 300
024 .Right = .Left + 90
025 End With
026 'テキスト注釈を追加します
027 Set objAcroPDAnnot = objAcroPDPage.AddNewAnnot( _
028 -2, "Text", objAcroRect)
029 lRet = objAcroPDAnnot.SetContents( _
030 "これはテストのテキスト注釈です。")
031 '別名でPDFファイルを保存する
032 lRet = objAcroPDDoc.Save(PDSaveFull, _
033 "E:\Test01_A.pdf")
034 'PDFファイルを閉じる
035 lRet = objAcroPDDoc.Close
036
037 'Acrobatを閉じる
038 lRet = objAcroApp.Hide '(注1)
039 lRet = objAcroApp.Exit '(注1)
040
041 'オブジェクトを強制解放する
042 Set objAcroAVDoc = Nothing '(注1)
043 Set objAcroRect = Nothing
044 Set objAcroPDAnnot = Nothing
045 Set objAcroPDPage = Nothing
046 Set objAcroPDDoc = Nothing
047 Set objAcroApp = Nothing
048
049 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
補足
- 上記サンプルコードで「(注1)」は必要ありません。
その代り、外すとサイレントで実行します。 - 第3引数のRectオブジェクトで注釈の場所と四角サイズを指定しますが、
上記サンプルの様にBottomとLeftは自動計算にした方がいいです。
値を大きくしても見にくいだけで余り意味を持ちません。 - 参考ページ:
http://forums.adobe.com/thread/414635
http://forums.adobe.com/thread/763471 - PDFの座標系はページの左下隅を基点としていますが、
注釈の座標はページの左上隅を基点とします。
注意事項
- 第1引数は「-2」固定です。
Acrobat SDK 8.0にはページの位置指定等の説明があるが実際は違います。
-2以外の値を設定するとメソッドは失敗し、PDAnnotオブジェクトがNothingになってしまいます。 - [文書のセキュリティ]で「注釈」が追加不可になっていても、追加出来る事がある。
Acrobat 8.3.1 で動作確認済み。
動作確認環境
- WindowsXP Pro(+ SP3) +
Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate - Windows 7 64bit (+SP1) +
Acrobat 8.3.1 Pro + Office 2003 + MicrosoftUpdate
< 戻る >