AcroExch.PDAnnot: SetRect メソッド

TOP > AcroExch.PDAnnot > SetRect      [...]


説明

注釈のGetSubtypeが "Text" の時は注釈アイコンのサイズを設定(変更) します。

注釈のGetSubtypeが "Popup" の時はテキスト編集のサイズを設定(変更) します。

注釈のGetSubtypeが "Link" の時は何も変化ありません。

よって、注釈のGetSubtypeが "Popup" の時のみ使用します。

形式

VARIANT_BOOL SetRect(LPDISPATCH iAcroRect);

引数

  1. 第1引数(LPDISPATCH iAcroRect) :
    AcroRectオブジェクト(Top,bottom,Left,Right)を指定します。

戻り値

  • -1 : 設定出来た。注)GetSubtypeが"Link"の時でも-1が返る。
  • 0 : 設定出来なかった。又は設定出来ない。

動作するバージョン

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_SetRect() 002 003 Debug.Print "AcroExch_PDAnnot_SetRect:" & 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 objAcroRect As New 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 'テキスト注釈の4枠サイズをセットする 022 With objAcroRect 023 .Top = 751 024 .bottom = .Top - 60 025 .Left = 100 026 .Right = .Left + 90 027 End With 028 029 'PDFドキュメントを開いて表示する。 030 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") 031 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc() 032 Set objAcroAVPageView = objAcroAVDoc.GetAVPageView() 033 'PDFドキュメントのページ数を得る 034 lPagesCnt = objAcroPDDoc.GetNumPages() - 1 035 For i = 0 To lPagesCnt 036 '該当ページのページオブジェクトを得る ★注意① 037 Set objAcroPDPage = objAcroPDDoc.AcquirePage(i) 038 'PDFビュアーのページを移動させる 039 lRet = objAcroAVPageView.Goto(i) '(TEST用) 040 'ページに存在する注釈数を得る 041 lAnnotsCnt = objAcroPDPage.GetNumAnnots() - 1 042 For j = 0 To lAnnotsCnt 043 lCnt = lCnt + 1 044 Set objAcroPDAnnot = objAcroPDPage.GetAnnot(j) 045 'Debug.Print objAcroPDAnnot.GetSubtype 046 If objAcroPDAnnot.GetSubtype = "Popup" Then 047 'Popup注釈 048 lRet = objAcroPDAnnot.SetRect(objAcroRect) 049 lPopupCnt = lPopupCnt + 1 050 End If 051 Next j 052 Next i 053 Debug.Print "全件数= " & lCnt 054 Debug.Print "Popup変更件数= " & lPopupCnt 055 056 'PDFファイルを保存しないで閉じる 057 lRet = objAcroAVDoc.Close(1) '(TEST用) 058 'オブジェクトを強制解放する 059 Set objAcroAVDoc = Nothing 060 Set objAcroPDAnnot = Nothing 061 Set objAcroPDPage = Nothing 062 Set objAcroAVPageView = Nothing 063 Set objAcroPDDoc = Nothing 064 Set objAcroRect = Nothing 065 066 End Sub


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

 

実行結果

TEST_PDAnnot_SetRect:2008/10/06 15:35:43
全件数= 247
Popup変更件数= 15

<実行前>

PDAnnot:SetRect メソッド 実行前

<実行後>

PDAnnot:SetRect メソッド 実行後

補足

  • SetRectメソッドは GetSubtypeが"Text"の時は注釈アイコンのサイズを変更できる。しかしこれは意味が無い。理由は実行後に手動で注釈アイコンを移動させると元のサイズに戻ってしまうからだ。これはSetRectメソッドの仕様上のミスか、SetRectメソッド自身が過去の遺物と化したメソッドと考えられる。
    <実行前>
    AcroPDDoc:SetRect メソッドの実行前 Text

    <実行後> ※デ、デカイ!
    AcroPDDoc:SetRect メソッドの実行後 Text(1)

    <手動で少し下に移動した後>
    AcroPDDoc:SetRect メソッドの実行後 Text(2)
  • 上記の実行結果は「Popup変更件数= 3」が正解。
    つまり注意①の箇所の影響でテキスト注釈の判断が出来ない。

動作確認環境

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

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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



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

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