TOP > *
はじめに
PDFファイルをOLE(IAC)でオープンするとOLEのオブジェクトは文書フラグ(the document's flags)と言う状態を表す数値を持ちます。たとえば、「最適化された」、「変更された」、と言う状態です。
一覧
全部で12種類の状態を表す数値が有ります。その値を16進数とビット単位で見ます。2進数のビット単位で見るとよく判ります。
| 定数 | 値 | 状態 (2進数) |
|---|---|---|
| PDDocNeedsSave | 1 (&H1) | PDFドキュメントは変更されました。保存する必要が有る。 (2進数=1 :1桁) |
| PDDocRequiresFullSave | 2 (&H2) | PDFドキュメントの内容が増えました。PDSaveFull(全体保存)で保存(Saveメソッド)しなければいけません。 (2進数=10 :2桁) |
| PDDocIsModified | 4 (&H4) | PDFドキュメントがわずかに変更されました。たとえばテキスト注釈の位置が変わったとか。 (2進数=100 :3桁) |
| PDDocDeleteOnClose | 8 (&H8) | このPDFドキュメントは閉じる時に削除される。そうゆう一時的なPDFドキュメントとして扱われています。 (2進数=1000 :4桁) |
| PDDocWasRepaired | 16 (&H10) | 開いた時にPDFドキュメントは修復されました。 (2進数=10000 :5桁) |
| PDDocNewMajorVersion | 32 (&H20) | PDFドキュメントのメジャー・バージョン(メジャー リリース番号)は現在より新しいです。 (2進数=100000 :6桁) |
| PDDocNewMinorVersion | 64 (&H40) | PDFドキュメントのマイナー・バージョン(マイナ リリース番号)は現在より新しいです。 (2進数=1000000 :7桁) |
| PDDocOldVersion | 128 (&H80) | PDFドキュメントのバージョンは現在より古いです。 注意:この値はCreaFlagsメソッドでもクリアは出来ない(です)。ドキュメントをオープンしている限り、常に持っている状態(みたい)です。 (2進数=10000000 :8桁) |
| PDDocSuppressErrors | 256 (&H100) | エラーを表示しない。 (2進数=100000000 :9桁) |
| PDDocIsEmbedded | 512 (&H200) | PDFドキュメントはコンパウンドドキュメントに埋め込まれています。 (2進数=1000000000 :10桁) ※この値はSDKに記述漏れ。 |
| PDDocIsLinearized | 1024 (&H400) | PDFドキュメントが直線化(WEB用に最適化)されています。 (2進数=10000000000 :11桁) ※この値はSDKに記述漏れ。 |
| PDDocIsOptimized | 2048 (&H800) | PDFドキュメントは最適化されています。 (2進数=100000000000 :12桁) ※この値はSDKに記述漏れ。 |
処理中の文書フラグの値が128ならば定数「PDDocOldVersion(=128)」の状態になっています。状態は複数を組み合わせた形で持つ事が可能になっています。
Excelのオブジェクトブラウザ
Excelの参照設定を行うと上記の定数はVBA内で定数定義しなくてもオブジェクトのメンバーとして提供されますから、通常の定数として使う事が出来ます。
備考
- このページの説明で「ビット単位」、「オブジェクトのメンバー」が判らない人は無視しても結構です。
- 上記の定数はVB.BAS、又はVB.hにも定義されています。
注意点
- Acrobatアプリケーションのバージョンでは無く、
PDFファイルの「PDFのバージョン」(PDF仕様)によって文書フラグの状態が変わります。(再検討要)
Adobe Web 解説
OLE Automation / AcroExch.PDDoc / GetFlags (公式サイト・英語)
文書フラグ(document’s flags)についての解説は上記URLでしか見つかっていません。但し、PDDocIsEmbedded、PDDocIsLinearized、PDDocIsOptimizedの3つに関しては載っていません。
< TOPへ >
サイト管理人の技術メモ
これ以降はサイト管理者が当サイト又は当ページを維持&管理するためのメモです。見る必要も無く公開用にも書いてません。
この文書フラグが存在する意味がイマイチ理解出来ないです。また利用価値も見つけられない。それなのにこれに関するメソッドが3つも存在する。ClearFlags , GetFlags , SetFlags メソッド。どうゆう使い方をするのでしょうか?
