TOP > AcroExch.PDAnnot > SetRect [...]
説明
注釈のGetSubtypeが "Text" の時は注釈アイコンのサイズを設定(変更) します。
注釈のGetSubtypeが "Popup" の時はテキスト編集のサイズを設定(変更) します。
注釈のGetSubtypeが "Link" の時は何も変化ありません。
よって、注釈のGetSubtypeが "Popup" の時のみ使用します。
形式
VARIANT_BOOL SetRect(LPDISPATCH iAcroRect);
引数
- 第1引数(LPDISPATCH iAcroRect) :
AcroRectオブジェクト(Top,bottom,Left,Right)を指定します。
戻り値
- -1 : 設定出来た。注)GetSubtypeが"Link"の時でも-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 | NO | 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キーでステップ実行しながら動作確認する。
- 事前に参照設定をする。
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
<実行前>

<実行後>

補足
- SetRectメソッドは GetSubtypeが"Text"の時は注釈アイコンのサイズを変更できる。しかしこれは意味が無い。理由は実行後に手動で注釈アイコンを移動させると元のサイズに戻ってしまうからだ。これはSetRectメソッドの仕様上のミスか、SetRectメソッド自身が過去の遺物と化したメソッドと考えられる。
<実行前>
<実行後> ※デ、デカイ!
<手動で少し下に移動した後> - 上記の実行結果は「Popup変更件数= 3」が正解。
つまり注意①の箇所の影響でテキスト注釈の判断が出来ない。
動作確認環境
- WindowsXP Pro(+ SP3) +
Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
< 戻る >