AcroExch.PDPage: AddNewAnnot メソッド

TOP > AcroExch.PDPage > AddNewAnnot      [...]


説明

ページの指定位置にテキスト注釈を新規追加します。

同時にPDAnnotオブジェクトを作成します。

形式

LPDISPATCH AddNewAnnot(long nIndexAddAfter,
        BSTR szSubType,
        LPDISPATCH iAcroRect);

引数

  1. 第1引数(long nIndexAddAfter) :
    「-2」固定。他の値を指定すると失敗する。
  2.  第2引数(BSTR szSubType) :
    注釈のタイプ。"Text"の固定。
  3. 第3引数(LPDISPATCH iAcroRect) :
    注釈をセットするページの位置をRectオブジェクトで指定。

戻り値

  • AcroPDAnnotオブジェクトでNull以外 :
    成功。
  • AcroPDAnnotオブジェクトでNull :
    失敗。注釈を追加出来なかった。

動作するバージョン

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
8OKAcrobat 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

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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



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

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