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キーでステップ実行しながら動作確認する。
- 事前に参照設定をする。
Sub AcroExch_PDAnnot_SetRect()
Debug.Print "AcroExch_PDAnnot_SetRect:" & 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 objAcroRect As New Acrobat.AcroRect
Dim lRet As Long '戻り値
Dim lPagesCnt As Long 'ページ数
Dim lAnnotsCnt As Long '注釈数
Dim i As Long '添え字
Dim j As Long '添え字
Dim lCnt As Long '件数
Dim lPopupCnt As Long 'Popup件数
lCnt = 0
lPopupCnt = 0
'テキスト注釈の4枠サイズをセットする
With objAcroRect
.Top = 751
.bottom = .Top - 60
.Left = 100
.Right = .Left + 90
End With
'PDFドキュメントを開いて表示する。
lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
Set objAcroAVPageView = objAcroAVDoc.GetAVPageView()
'PDFドキュメントのページ数を得る
lPagesCnt = objAcroPDDoc.GetNumPages() - 1
For i = 0 To lPagesCnt
'該当ページのページオブジェクトを得る ★注意①
Set objAcroPDPage = objAcroPDDoc.AcquirePage(i)
'PDFビュアーのページを移動させる
lRet = objAcroAVPageView.Goto(i) '(TEST用)
'ページに存在する注釈数を得る
lAnnotsCnt = objAcroPDPage.GetNumAnnots() - 1
For j = 0 To lAnnotsCnt
lCnt = lCnt + 1
Set objAcroPDAnnot = objAcroPDPage.GetAnnot(j)
'Debug.Print objAcroPDAnnot.GetSubtype
If objAcroPDAnnot.GetSubtype = "Popup" Then
'Popup注釈
lRet = objAcroPDAnnot.SetRect(objAcroRect)
lPopupCnt = lPopupCnt + 1
End If
Next j
Next i
Debug.Print "全件数= " & lCnt
Debug.Print "Popup変更件数= " & lPopupCnt
'PDFファイルを保存しないで閉じる
lRet = objAcroAVDoc.Close(1) '(TEST用)
'オブジェクトを強制解放する
Set objAcroAVDoc = Nothing
Set objAcroPDAnnot = Nothing
Set objAcroPDPage = Nothing
Set objAcroAVPageView = Nothing
Set objAcroPDDoc = Nothing
Set objAcroRect = Nothing
End Sub
実行結果
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
< 戻る >