AcroExch.PDAnnot: SetOpen メソッド

TOP > AcroExch.PDAnnot > SetOpen      [...]


説明

PDFファイル上のテキスト注釈を開いたり、閉じた状態に設定する。

形式

VARIANT_BOOL SetOpen(long bIsOpen);

引数

  1. 第1引数(long bIsOpen) :
    0以外の整数の時は開く。0は閉じる。

戻り値

  • 常に-1が返る。

動作するバージョン

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ファイルの開いているテキスト注釈を全て閉じる。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
001 Sub AcroExch_PDAnnot_SetOpen() 002 003 Debug.Print "AcroExch_PDAnnot_SetOpen:" & Now 004 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 005 Dim objAcroAVPageView As Acrobat.AcroAVPageView 006 Dim objAcroPDDoc As Acrobat.AcroPDDoc 007 Dim objAcroPDPage As Acrobat.AcroPDPage 008 Dim objAcroPDAnnot As Acrobat.AcroPDAnnot 009 Dim objRect As Acrobat.AcroRect 010 Dim lRet As Long '戻り値 011 Dim lPagesCnt As Long 'ページ数 012 Dim lAnnotsCnt As Long '注釈数 013 Dim i As Long '添え字 014 Dim j As Long '添え字 015 Dim lCnt As Long '件数 016 Dim lPopupCnt As Long 'Popup件数 017 018 lCnt = 0 019 lPopupCnt = 0 020 021 'PDFドキュメントを開いて表示する。 022 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") 023 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc() 024 Set objAcroAVPageView = objAcroAVDoc.GetAVPageView() 025 'PDFドキュメントのページ数を得る 026 lPagesCnt = objAcroPDDoc.GetNumPages() - 1 027 For i = 0 To lPagesCnt 028 '該当ページのページオブジェクトを得る ★注意① 029 Set objAcroPDPage = objAcroPDDoc.AcquirePage(i) 030 'PDFビュアーのページを移動させる 031 lRet = objAcroAVPageView.Goto(i) '(TEST用) 032 'ページに存在する注釈数を得る 033 lAnnotsCnt = objAcroPDPage.GetNumAnnots() - 1 034 For j = 0 To lAnnotsCnt 035 lCnt = lCnt + 1 036 Set objAcroPDAnnot = objAcroPDPage.GetAnnot(j) 037 If objAcroPDAnnot.GetSubtype = "Popup" Then 038 'GetSubtype が”Popup”の時だけ設定出来る 039 lRet = objAcroPDAnnot.SetOpen(0) '閉じる 040 lPopupCnt = lPopupCnt + 1 041 End If 042 Next j 043 Next i 044 Debug.Print "全件数= " & lCnt 045 Debug.Print "Popup変更件数= " & lPopupCnt 046 047 'PDFファイルを保存しないで閉じる 048 lRet = objAcroAVDoc.Close(1) '(TEST用) 049 'オブジェクトを強制解放する 050 Set objAcroAVDoc = Nothing 051 Set objAcroPDAnnot = Nothing 052 Set objAcroPDPage = Nothing 053 Set objAcroAVPageView = Nothing 054 Set objAcroPDDoc = Nothing 055 056 End Sub


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

 

実行結果


TEST_PDAnnot_SetOpen:2008/09/25 17:04:16
全件数= 247
Popup変更件数= 23

補足

  • SetOpenメソッドは GetSubtype = "Popup" の時のみ使用出来る。
  • 上記の実行結果は「Popup変更件数= 3」が正解。
    つまり注意①の箇所の影響でテキスト注釈の判断が出来ない。
    バグと思われる。

動作確認環境

  • WindowsXP Pro(+ SP3) +
    Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate

戻る

「AcroExch.PDAnnot: SetOpen メソッド」への3件のフィードバック

  1. PopupではなくTextで同じことがしたいのですが、不可能でしょうか?

  2. しゅうぞー さん
    はじめまして。

    「AcroExch.PDAnnot:SetOpen メソッド」関連の動きを再確認しました。この周辺部分は過去(2014年)にかなりの時間を当てて検証しました。相変わらず、GetSubtypeとGetContentsの内容、更にその表示順に規則性すら見つけられない不可解な動きをします。テストデータに問題が有るのかもしれませんが。過去に記憶に無い動きも見られます。

    質問内容に関しては「テストした結果が全て」でお願いします。
    つまり、テストで動いたら使用可能、動かなければ使用不可、となります。
    こちらで返答出来るだけの正確な動作確認が取れないからです。

    申し訳ありませんが、宜しくお願いいたします。

  3. 管理人さん

    早速の返信ありがとうございました。
    大変参考になりました。
    お忙しい中対応してくださり、感謝いたします。

コメントを残す

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

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

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

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れるとエラーになる場合が有ります。その時はコードの前後に <code> ・・・</code> タグを入れてください。

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