TOP > AcroExch.PDPage > SetRotate [...]
説明
現在のページを回転させる。
回転値は0度、90度、180度、270度の4種類のみ。
形式
VARIANT_BOOL SetRotate(short nRotate);
引数
- 第1引数(short nRotate):
※参照設定をしている場合はAcrobat OLE(IAC)専用の定数も使用できる。
pdRotate0 = 0
pdRotate90 = 90
pdRotate180 = 180
pdRotate270 = 270
戻り値
- -1 : 成功。
- -1以外 : 失敗。
動作するバージョン
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ドキュメントの各ページに設定されている回転度を0に戻す。
- F8キーでステップ実行しながら動作確認する。
- 事前に参照設定をする。
001 Sub AcroExch_PDPage_SetRotate()
002
003 Debug.Print "AcroExch_PDPage_SetRotate:" & Now
004 Dim objAcroApp As New Acrobat.AcroApp
005 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
006 Dim objAcroPDDoc As New Acrobat.AcroPDDoc
007 Dim objAcroPDPage As Acrobat.AcroPDPage
008 Dim objAcroAVPageView As Acrobat.AcroAVPageView
009 Dim objAcroPdAnnot As Acrobat.AcroPDAnnot
010 Dim lRet As Long '戻り値
011 Dim lCnt As Long '件数
012 Dim i As Long '添え字
013 Dim lPage As Long 'ページ数
014 Dim l0 As Long
015 Dim l90 As Long
016 Dim l180 As Long
017 Dim l270 As Long
018
019 'Acrobatを起動表示する
020 lRet = objAcroApp.Show
021 '画面にPDFドキュメントを表示する
022 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "")
023
024 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
025 Set objAcroAVPageView = objAcroAVDoc.GetAVPageView()
026 lPage = objAcroPDDoc.GetNumPages - 1
027 Debug.Print "PDF全頁数=" & (lPage + 1)
028
029 For i = 0 To lPage
030 'ページ移動する。
031 lRet = objAcroAVPageView.Goto(i)
032 '現在のページのPDPageオブジェクトを取得する
033 Set objAcroPDPage = objAcroAVPageView.GetPage
034 '現在のページに設定されている回転度
035 ' Debug.Print "Page=" & (i + 1) & " 回転=" & _
036 objAcroPDPage.GetRotate
037 '回転値を0に戻す
038 With objAcroPDPage
039 Select Case .GetRotate
040 Case pdRotate0
041 l0 = l0 + 1
042 Case pdRotate90
043 lRet = .SetRotate(pdRotate0)
044 l90 = l90 + 1
045 Case pdRotate180
046 lRet = .SetRotate(pdRotate0)
047 l180 = l180 + 1
048 Case pdRotate270
049 lRet = .SetRotate(pdRotate0)
050 l270 = l270 + 1
051 Case Else
052 Debug.Print "Proguramming Error"
053 End Select
054 End With
055 Next i
056 Debug.Print " 0度の頁=" & l0
057 Debug.Print " 90度の頁=" & l90
058 Debug.Print "180度の頁=" & l180
059 Debug.Print "270度の頁=" & l270
060
061 'PDFファイルを保存してで閉じる
062 lRet = objAcroAVDoc.Close(0)
063
064 'Acrobatを閉じる
065 lRet = objAcroApp.Hide
066 lRet = objAcroApp.Exit
067
068 'オブジェクトを強制解放する
069 Set objAcroAVDoc = Nothing
070 Set objAcroPdAnnot = Nothing
071 Set objAcroPDPage = Nothing
072 Set objAcroAVPageView = Nothing
073 Set objAcroPDDoc = Nothing
074 Set objAcroApp = Nothing
075
076 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
実行結果
Test_AcroPDPage_SetRotate:2008/07/25 17:24:45
PDF全頁数=34
0度の頁=31
90度の頁=1
180度の頁=1
270度の頁=1
Test_AcroPDPage_SetRotate:2008/07/25 17:25:00
PDF全頁数=34
0度の頁=34
90度の頁=0
180度の頁=0
270度の頁=0
※上記は2回実行した結果です。
補足
- 参照設定をしてオブジェクトブラウザでAcrobatを指定すると、
PDRotateFlagsのメンバーにpdRotate0(=0), pdRotate90(=90), pdRotate180(=180),
pdRotate270(=270)の4つが存在する。これは
Const pdRotate0 = 0
Const pdRotate90 = 90 (&H5A)
Const pdRotate180 = 180 (&HB4)
Const pdRotate270 = 270 (&H10E)
を定義したと同じ事になる。 - PDFの各ページは原本を回転させた時にその情報を各ページが持っている事がこれで判明する。
動作確認環境
- WindowsXP Pro(+ SP3) +
Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
< 戻る >