AcroExch.PDAnnot: Perform メソッド

TOP > AcroExch.PDAnnot > Perform      [...]


説明

PDFファイル上のリンク注釈の動作を実行します。

つまりリンク先に移動します。

 

形式

VARIANT_BOOL Perform(LPDISPATCH iAcroAVDoc);

 

引数

  1. 第1引数(LPDISPATCH iAcroAVDoc) :
    開いているAcroAVDoctオブジェクト。

 

戻り値

  • -1 : 正常に実行された。
  • 0 : 正常に実行させなかった。

 

動作するバージョン

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

 

説明:PDFファイルの目次ページ上にあるリンク注釈を全て実行します。

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

 

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub AcroExch_PDAnnot_Perform()

    Debug.Print "AcroExch_PDAnnot_Perform:" & Now
    Dim objAcroAVDoc           As New Acrobat.AcroAVDoc
    Dim objAcroAVPageView   As Acrobat.AcroAVPageView
    Dim objAcroPDDoc           As Acrobat.AcroPDDoc
    Dim objAcroPDPage         As Acrobat.AcroPDPage
    Dim objAcroPDAnnot       As Acrobat.AcroPDAnnot
    Dim lRet                       As Long     '戻り値
    Dim lAnnotsCnt             As Long     '注釈数
    Dim j                           As Long     '添え字
    Dim lTextCnt                As Long     '件数
    Const lPage = 2                   '目次ページ番号

    lTextCnt = 0
    'PDFドキュメントを開いて表示する
    lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
    Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
    Set objAcroAVPageView = objAcroAVDoc.GetAVPageView()
    '3ページ目のページオブジェクトを得る ★注意①
    Set objAcroPDPage = objAcroPDDoc.AcquirePage(lPage)
    'ページに存在する注釈数を得る
    lAnnotsCnt = objAcroPDPage.GetNumAnnots() - 1
    Debug.Print "全注釈数=" & (lAnnotsCnt + 1)
    For j = 0 To lAnnotsCnt
        Set objAcroPDAnnot = objAcroPDPage.GetAnnot(j)
        'PDFビュアーのページを移動させる
        lRet = objAcroAVPageView.Goto(lPage) '(TEST用)
        Call Sleep(500'(TEST用)
        If objAcroPDAnnot.GetSubtype = "Link" Then
            lRet = objAcroPDAnnot.Perform(objAcroAVDoc)
            lTextCnt = lTextCnt + 1
            If lRet <> -1 Then
                Debug.Print "Perform=False(" & lRet & ")"
            End If
            Call Sleep(500'(TEST用)
        End If
    Next j
    Debug.Print "実行件数=" & lTextCnt
    
    'PDFファイルを保存しないで閉じる
    lRet = objAcroAVDoc.Close(1)
    'オブジェクトを強制解放する
    Set objAcroAVDoc = Nothing
    Set objAcroAVPageView = Nothing
    Set objAcroPDAnnot = Nothing
    Set objAcroPDPage = Nothing
    Set objAcroPDDoc = Nothing

End Sub

 

実行結果

PDAnnot:Perform メソッド
TEST_PDAnnot_Perform:2008/08/19 21:04:43
全注釈数=41
実行件数=39

 

補足

  • 3ページ目にリンク注釈がある頁をテストに使用しました。
  • 上記サンプルはテストの動きが判りやすいようにSleep関数が入っています。
    実用時には不要なので削除して下さい。
  • ここで言っている「リンク注釈」とは、テキスト注釈とは全く異なります。
    PDFドキュメント上にある透明テキストにリンク情報を持たせたものです。

 

動作確認環境

  • 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.