PDFドキュメントの文書フラグとは

TOP > *      [...]


※読む前に : この「文書フラグ」を扱う人はいないと思うので、特に時間が無い人は読む必要はありません。

 

はじめに

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へ

コメントを残す

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

CAPTCHA



SAMURAI Plugin

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

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



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

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