TOP > AcroExch.PDDoc > GetFlags [...]
説明
文書フラグを取得します。
文書フラグは合計された状態で返されます。
形式
long GetFlags();
引数
- 無し
戻り値
- 戻り値は、文書フラグの定数をが合計されて返されるます
PDDocWasRepaired, PDDocNewMajorVersion,
PDDocNewMinorVersion, PDDocOldVersion 等。
動作するバージョン
Version | Adobe Acrobat | 備考 |
---|---|---|
4 | OK | Acrobat 4.0 ※Windows 98SE + Excel 2000 |
5 | OK | Acrobat 5.0.5 |
6 | OK | Acrobat 6.0.3 Pro |
7 | OK | Acrobat 7.0.9 Pro Acrobat 7.1.4 Pro |
8 | OK | Acrobat 8.2.2 Pro |
9 | OK | Acrobat 9.3.2 Extended |
10 | - | Acrobat X (10.1.8) Extended |
11 | - | Acrobat XI (11.0.04) Extended |
- OK = 動作する。
- NO = 動作しない。 戻り値が0を返す。
- - = 未確認。
サンプル:Excel のVBA
説明: AcroPDDocオブジェクトを作成して、動作確認をする。
- F8キーでステップ実行しながら動作確認する。
- 事前に参照設定をする。
- 以下のサンプルはAcrobatアプリケーションを画面表示しないで行っています。
001 Sub AcroExch_PDDoc_GetFlags()
002
003 'Acrobatオブジェクトの定義&作成
004 'Acrobat 4,5,6 の時
005 ' Dim objAcroApp As Acrobat.CAcroApp
006 ' Dim objAcroAVDoc As Acrobat.CAcroAVDoc
007 ' Dim objAcroPDDoc As Acrobat.CAcroPDDoc
008 ' Set objAcroApp = CreateObject("AcroExch.App")
009 ' Set objAcroAVDoc = CreateObject("AcroExch.AVDoc")
010
011 'Acrobat 7,8,9,10,11 の時
012 Dim objAcroApp As New Acrobat.AcroApp
013 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
014 Dim objAcroPDDoc As Acrobat.AcroPDDoc
015
016 '以降はAcrobat全て共通
017 Dim lRet As Long '戻り値
018
019 '①PDFファイルを開く。(メモリ上)
020 lRet = objAcroAVDoc.Open("C:\work\Test01.pdf", "")
021 '②Acrobatアプリケーションを起動し、画面表示する。
022 'lRet = objAcroApp.Show
023
024 'PDDocオブジェクトを取得する。
025 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
026 'PDDocオブジェクトのGetFlagsメソッドの戻り値を表示する。
027 Debug.Print "AcroPDDoc.GetFlags(1)=" & objAcroPDDoc.GetFlags()
028
029 'ページ3から4を削除する
030 lRet = objAcroPDDoc.DeletePages(2, 3)
031 Debug.Print "AcroPDDoc.GetFlags(2)=" & objAcroPDDoc.GetFlags()
032
033 lRet = objAcroPDDoc.ClearFlags(PDDocOldVersion)
034 Debug.Print "AcroPDDoc.GetFlags(3)=" & objAcroPDDoc.GetFlags()
035
036 lRet = objAcroPDDoc.ClearFlags(PDDocNeedsSave)
037 Debug.Print "AcroPDDoc.GetFlags(4)=" & objAcroPDDoc.GetFlags()
038
039 lRet = objAcroPDDoc.ClearFlags(PDDocIsModified)
040 Debug.Print "AcroPDDoc.GetFlags(5)=" & objAcroPDDoc.GetFlags()
041
042 lRet = objAcroPDDoc.ClearFlags(PDDocOldVersion + _
043 PDDocNeedsSave + _
044 PDDocIsModified)
045 Debug.Print "AcroPDDoc.GetFlags(6)=" & objAcroPDDoc.GetFlags()
046
047 'PDFファイルを閉じます。
048 lRet = objAcroAVDoc.Close(1)
049 'PDDocオブジェクトのGetFlagsメソッドの戻り値を表示する。
050 '※以下のGetFlags()はAcrobat v4,v5,v6では実行エラーになる
051 Debug.Print "AcroPDDoc.GetFlags(9)=" & objAcroPDDoc.GetFlags()
052
053 'Acrobatアプリケーションを終了する。
054 'lRet = objAcroApp.Hide
055 lRet = objAcroApp.Exit
056 'オブジェクトを強制解放する
057 Set objAcroPDDoc = Nothing
058 Set objAcroAVDoc = Nothing
059 Set objAcroApp = Nothing
060
061 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
実行結果
PDFファイル(Test01.pdf)のPDFバージョンは「1.3」を使用しました。
▼ Acrobat v4.0 の結果
※1029=1024+4+1
AcroPDDoc.GetFlags(1)=1024
AcroPDDoc.GetFlags(2)=1029
AcroPDDoc.GetFlags(3)=1029
AcroPDDoc.GetFlags(4)=1024
AcroPDDoc.GetFlags(5)=1024
AcroPDDoc.GetFlags(6)=1024
▼ Acrobat v5.0 の結果
※1152=1024+128
※1157=1024+128+4+1
AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152
▼ Acrobat v6.0 の結果
AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152
▼ Acrobat v7.0 の結果
AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152
AcroPDDoc.GetFlags(9)=0
▼ Acrobat v8.0 の結果
AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152
AcroPDDoc.GetFlags(9)=0
▼ Acrobat v9.0 の結果
AcroPDDoc.GetFlags(1)=1152
AcroPDDoc.GetFlags(2)=1157
AcroPDDoc.GetFlags(3)=1157
AcroPDDoc.GetFlags(4)=1152
AcroPDDoc.GetFlags(5)=1152
AcroPDDoc.GetFlags(6)=1152
AcroPDDoc.GetFlags(9)=0
補足
- 以下の注意を参照。
- 上記の実行結果は文書フラグが持っている値の合計です。しかし、この値でどんな文書フラグが立っているのか直ぐには判りません。その値の見方の手順を以下に示します。
- Windows OSのアクセサリに有る「電卓」を起動します。そしてメニューから[表示(V)] -> [関数電卓(S)] を選択クリックします。
- 以下の画面に変わります。
- ここでGetFlagsメソッドの戻り値「1152」を入力します。そして「2進」チェックをクリックします。
- 「1152」が「10010000000」に変わります。
これは「10010000000=10000000000+10000000」と言う意味で、「11桁+8桁」の数字です。ここで文書フラグに書かれている桁数を見ると「PDDocIsLinearized+PDDocOldVersion」になります。それぞれの意味は、
・PDDocIsLinearized : PDFドキュメントが直線化(WEB用に最適化)されています
・PDDocOldVersion : PDFドキュメントのバージョンは現在より古いです
これがその時のPDFドキュメントの状態を表します。
- Windows OSのアクセサリに有る「電卓」を起動します。そしてメニューから[表示(V)] -> [関数電卓(S)] を選択クリックします。
注意
- Acrobat v4.0 ~ Acrobat v6.0 ではCloseメソッドを実行した後にGetFlagsを実行するとOLEオートメーションの実行エラーになる。
実行時エラー'-2147417851 (80010105)':
オートメーション エラーです。
サーバーによる例外が返されました。 - Acrobat v7.0 ~ Acrobat v9.0 ではCloseメソッドを実行した後にGetFlagsメソッドを実行すると、戻り値は「0」になる。
- PDDocOldVersion(値:128)はクリア出来ません。
- PDDocIsModified(値:4)をクリアすると、同時にPDDocNeedsSave(値:1)もクリアされます。この逆も発生します。
動作確認環境
- Windows98SE( + WindowsUpdate)
+ Acrobat 4.0 + Office 2000 - WindowsXP Pro( + SP3 + WindowsUpdate)
+ Acrobat 5.0.5 + Office 2003( + SP3) - WindowsXP Pro( + SP3 + WindowsUpdate)
+ Acrobat 6.0.3 Pro + Office 2003( + SP3) - WindowsXP Pro( + SP2 + WindowsUpdate)
+ Acrobat 7.0.9 Pro + Office 2003 - WindowsXP Pro( + SP3 + WindowsUpdate)
+ Acrobat 7.1.4 Pro + Office 2003( + SP3) - WindowsXP Pro( + SP3 + WindowsUpdate)
+ Acrobat 8.2.2 Pro + Office 2003( + SP3) - WindowsXP Pro( + SP3 + WindowsUpdate)
+ Acrobat 9.3.2 Extended + Office 2003( + SP3)
Adobe Web 解説 URL(英語) v9.1
< 戻る >