TOP > AcroExch.PDDoc > SetFlags [...]
説明
文書フラグをOLEで使用中のPDFドキュメントにセットします。
文書フラグはビット単位でセットします。
形式
VARIANT_BOOL SetFlags(long nFlags);
引数
- 第一引数 (long nFlags):
文書フラグの定数を指定します。 合計で指定も出来ます。
PDDocWasRepaired, PDDocNewMajorVersion,
PDDocNewMinorVersion, PDDocOldVersion 等。
戻り値
- 戻り値は常に、-1 が返されます。
動作するバージョン
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_SetFlags()
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 '現在の文書フラグの状態を表示する。
027 Debug.Print "AcroPDDoc.GetFlags(1)=" & objAcroPDDoc.GetFlags()
028
029 '文書フラグを変更する =+1
030 lRet = objAcroPDDoc.SetFlags(PDDocNeedsSave)
031 '文書フラグの状態を表示する。
032 Debug.Print "AcroPDDoc.GetFlags(2)=" & objAcroPDDoc.GetFlags()
033
034 '文書フラグを変更する =2+1024
035 lRet = objAcroPDDoc.SetFlags(PDDocRequiresFullSave _
036 + PDDocIsLinearized)
037 '文書フラグの状態を表示する。
038 Debug.Print "AcroPDDoc.GetFlags(3)=" & objAcroPDDoc.GetFlags()
039
040 'PDFファイルを閉じます。
041 lRet = objAcroAVDoc.Close(1)
042 'PDDocオブジェクトのGetFlagsメソッドの戻り値を表示する。
043 '※以下のGetFlags()はAcrobat v4,v5,v6では実行エラーになる
044 ' Debug.Print "AcroPDDoc.GetFlags(9)=" & objAcroPDDoc.GetFlags()
045
046 'Acrobatアプリケーションを終了する。
047 'lRet = objAcroApp.Hide
048 lRet = objAcroApp.Exit
049
050 'オブジェクトを強制解放する
051 Set objAcroPDDoc = Nothing
052 Set objAcroAVDoc = Nothing
053 Set objAcroApp = Nothing
054
055 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
実行結果
PDFファイル(Test01.pdf)のPDFバージョンは「1.3」を使用しました。
▼ Acrobat v4.0 の結果
AcroPDDoc.GetFlags(1)=1024 ※ 2進表示=10000000000
AcroPDDoc.GetFlags(2)=1029 ※ 2進表示=10000000101
AcroPDDoc.GetFlags(3)=1031 ※ 2進表示=10000000111
▼ Acrobat v5.0 の結果
AcroPDDoc.GetFlags(1)=1152 ※ 2進表示=10010000000
AcroPDDoc.GetFlags(2)=1157 ※ 2進表示=10010000101
AcroPDDoc.GetFlags(3)=1159 ※ 2進表示=10010000111
▼ Acrobat v6.0 の結果
AcroPDDoc.GetFlags(1)=1152 ※ 2進表示=10010000000
AcroPDDoc.GetFlags(2)=1157 ※ 2進表示=10010000101
AcroPDDoc.GetFlags(3)=1159 ※ 2進表示=10010000111
▼ Acrobat v7.0 の結果
AcroPDDoc.GetFlags(1)=1152 ※ 2進表示=10010000000
AcroPDDoc.GetFlags(2)=1157 ※ 2進表示=10010000101
AcroPDDoc.GetFlags(3)=1159 ※ 2進表示=10010000111
AcroPDDoc.GetFlags(9)=0
▼ Acrobat v8.0 の結果
AcroPDDoc.GetFlags(1)=1152 ※ 2進表示=10010000000
AcroPDDoc.GetFlags(2)=1157 ※ 2進表示=10010000101
AcroPDDoc.GetFlags(3)=1159 ※ 2進表示=10010000111
AcroPDDoc.GetFlags(9)=0
▼ Acrobat v9.0 の結果
AcroPDDoc.GetFlags(1)=1152 ※ 2進表示=10010000000
AcroPDDoc.GetFlags(2)=1157 ※ 2進表示=10010000101
AcroPDDoc.GetFlags(3)=1159 ※ 2進表示=10010000111
AcroPDDoc.GetFlags(9)=0
補足
- Acrobvat v4.0以外の実行結果は同じです。(バグ?
- 第一引数の値は数値でも指定できるが、ミスをする可能性が有るので、定数を使用します。
- 第一引数の値は合計値を指定する事も出来ます。
- 第一引数の値に値=1(PDDocNeedsSave)を指定すると、同時に値=4(PDDocIsModified)も指定された状態になります。
- 制限事項(英語原文):Flags to be set. See PDDoc.GetFlags for a description of the flags. The flags PDDocWasRepaired, PDDocNewMajorVersion, PDDocNewMinorVersion, and PDDocOldVersion are read-only and cannot be set.
翻訳すると、この4つの文書フラグは使用出来ない、と書かれているみたいです。
文書フラグ自体の意味が理解出来ない部分があるので、テストして解説が出来ません。(スイマセン
注意
- 備考の4番目にも書きましたが、SetFlagsメソッドの実行結果は連鎖反応を起こし、他の値(文書フラグ)も設定される事があります。
- Acrobat v4.0 ~ Acrobat v6.0 ではCloseメソッドを実行した後にGetFlagsを実行するとOLEオートメーションの実行エラーになる。
実行時エラー'-2147417851 (80010105)':
オートメーション エラーです。
サーバーによる例外が返されました。 - Acrobat v7.0 ~ Acrobat v9.0 ではCloseメソッドを実行した後にGetFlagsメソッドを実行すると、戻り値は「0」になる。
動作確認環境
- 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
< 戻る >