※読む前に : この「文書フラグ」を扱う人はいないと思うので、特に時間が無い人は読む必要はありません。
はじめに
PDFファイルをOLE(IAC)で扱う(オープンする)と、(一時的な)PDFドキュメントのオブジェクトは文書フラグ(the document's flags)と言うモノを持ちます。
処理中のPDFファイルの状態を示します。
たとえば、「最適化された」、「変更されたので保存する必要がある」、と言うモノです。
(判りにくいです、ネ)
一覧
全部で12種類の状態を持つ様になっています。
定数 | 値 | 状態 (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ドキュメントはコンパウンドドキュメントに埋め込まれています。 ※この値はSDKの一部に記述漏れが有る。 (2進数=1000000000 :10桁) |
PDDocIsLinearized | 1024 (&H400) |
PDFドキュメントが直線化(WEB用に最適化)されています。 ※この値はSDKの一部に記述漏れが有る。 (2進数=10000000000 :11桁) |
PDDocIsOptimized | 2048 (&H800) |
PDFドキュメントは最適化されています。 ※この値はSDKの一部に記述漏れが有る。 (2進数=100000000000 :12桁) |
状態は文書フラグ(the document's flags)と言う値で持っています。
その値を16進数で見ます。
更にビット単位で見ます。
2進数のビット単位で見るとよく判ります。
つまり、処理中の文書フラグの値が128ならば定数「PDDocOldVersion(=128)」の状態になっています。
状態は複数を組み合わせた形で持つ事が可能になっています。
Excelのオブジェクトブラウザ
参照設定を行うと上記の定数はVBA内で定数定義しなくてもオブジェクトのメンバーとして提供されますから、通常の定数として使う事が出来ます。
備考
- このページの説明で「ビット単位」、「オブジェクトのメンバー」が判らない人は無視しても結構です。
- 上記の定数はVB.BAS、又はVB.hにも定義されています。
注意点
- Acrobatアプリケーションのバージョンでは無く、
PDFファイルの「PDFのバージョン」(PDF仕様)によって文書フラグの状態が変わります。
一部解説WEBサイト(英語)
http://livedocs.adobe.com/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/IAC_API_OLE_Objects.103.111.html
サイト管理者の独り言
この文書フラグが存在する意味がイマイチ理解出来ないです。
また利用価値も見つけられない。
それなのにこれに関するメソッドが3つも存在する。
ClearFlags , GetFlags , SetFlags メソッド。どうゆう使い方をするのでしょうか?
< TOPへ >