AcroExch.PDPage: SetRotate メソッド

TOP > AcroExch.PDPage > SetRotate      [...]


説明

現在のページを回転させる。

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

形式

VARIANT_BOOL SetRotate(short nRotate);

引数

  1. 第1引数(short nRotate):
    参照設定をしている場合はAcrobat OLE(IAC)専用の定数も使用できる。
    pdRotate0 = 0
    pdRotate90 = 90
    pdRotate180 = 180
    pdRotate270 = 270

戻り値

  • -1 : 成功。
  • -1以外 : 失敗。

動作するバージョン

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
8OKAcrobat 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編)
 

実行結果

Source file 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

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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



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

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