AcroExch.PDPage: GetRotate メソッド

TOP > AcroExch.PDPage > GetRotate      [...]


説明

現在のページに設定されている回転値を得る。

回転値は0度、90度、180度、270度の4種類のみです。

 

形式

short GetRotate();

 

引数

  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ドキュメントの各ページに設定されている回転度を集計する。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
  • 以下はIAC.BASを利用していない。

 

Sub AcroExch_PDPage_GetRotate()

    Debug.Print "Test_AcroPDPage_GetRotate:" & Now
    Dim objAcroApp          As New Acrobat.AcroApp
    Dim objAcroAVDoc        As New Acrobat.AcroAVDoc
    Dim objAcroPDDoc        As New Acrobat.AcroPDDoc
    Dim objAcroPDPage       As Acrobat.AcroPDPage
    Dim objAcroAVPageView   As Acrobat.AcroAVPageView
    Dim objAcroPdAnnot      As Acrobat.AcroPDAnnot
    Dim lRet                     As Long     '戻り値
    Dim lCnt                     As Long     '件数
    Dim i                         As Long     '添え字
    Dim lPage                  As Long     'ページ数
    Dim l0                       As Long
    Dim l90                     As Long
    Dim l180                   As Long
    Dim l270                   As Long
    
    'Acrobatを起動表示する
    lRet = objAcroApp.Show
    '画面にPDFドキュメントを表示する
    lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
    
    Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
    Set objAcroAVPageView = objAcroAVDoc.GetAVPageView()
    lPage = objAcroPDDoc.GetNumPages - 1
    Debug.Print "PDF全頁数=" & (lPage + 1)
    
    For i = 0 To lPage
        'ページ移動する。
        lRet = objAcroAVPageView.Goto(i)
        '現在のページのPDPageオブジェクトを取得する
        Set objAcroPDPage = objAcroAVPageView.GetPage
        'ページ回転されているページの集計
        Select Case objAcroPDPage.GetRotate
        Case pdRotate0
            l0 = l0 + 1
        Case pdRotate90
            l90 = l90 + 1
        Case pdRotate180
            l180 = l180 + 1
        Case pdRotate270
            l270 = l270 + 1
        Case Else
            Debug.Print "Proguramming Error"
        End Select
        'ページ回転されているページの回転度を表示する
        Debug.Print "Page=" & (i + 1) & " 回転=" & _
                    objAcroPDPage.GetRotate
    Next i
    
    Debug.Print "  0度の頁=" & l0
    Debug.Print " 90度の頁=" & l90
    Debug.Print "180度の頁=" & l180
    Debug.Print "270度の頁=" & l270
    
    'PDFファイルを保存しないで閉じる(TEST用)
    lRet = objAcroAVDoc.Close(1)

    'Acrobatを閉じる
    lRet = objAcroApp.Hide
    lRet = objAcroApp.Exit

    'オブジェクトを強制解放する
    Set objAcroAVDoc = Nothing
    Set objAcroPdAnnot = Nothing
    Set objAcroPDPage = Nothing
    Set objAcroAVPageView = Nothing
    Set objAcroPDDoc = Nothing
    Set objAcroApp = Nothing

End Sub

 

実行結果

Test_AcroPDPage_GetRotate:2008/07/25 16:30:32
PDF全頁数=34
Page=1 回転=0
Page=2 回転=0
Page=3 回転=0
Page=4 回転=90
Page=5 回転=270
Page=6 回転=180
Page=7 回転=0
Page=8 回転=0
Page=9 回転=0
Page=10 回転=0
Page=11 回転=0
Page=12 回転=0
Page=13 回転=0
Page=14 回転=0
Page=15 回転=0
Page=16 回転=0
Page=17 回転=0
Page=18 回転=0
Page=19 回転=0
Page=20 回転=0
Page=21 回転=0
Page=22 回転=0
Page=23 回転=0
Page=24 回転=0
Page=25 回転=0
Page=26 回転=0
Page=27 回転=0
Page=28 回転=0
Page=29 回転=0
Page=30 回転=0
Page=31 回転=0
Page=32 回転=0
Page=33 回転=0
Page=34 回転=0
0度の頁=31
90度の頁=1
180度の頁=1
270度の頁=1

 

補足

  • 参照設定をしてオブジェクトブラウザで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

 

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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

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