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

TOP > *


はじめに

PDFファイルをOLE(IAC)でオープンするとOLEのオブジェクトは文書フラグ(the document's flags)と言う状態を表す数値を持ちます。たとえば、「最適化された」、「変更された」、と言う状態です。 

一覧

全部で12種類の状態を表す数値が有ります。その値を16進数とビット単位で見ます。2進数のビット単位で見るとよく判ります。

定数状態 (2進数)
PDDocNeedsSave1
(&H1)
PDFドキュメントは変更されました。保存する必要が有る。
(2進数=1 :1桁)
PDDocRequiresFullSave2
(&H2)
PDFドキュメントの内容が増えました。PDSaveFull(全体保存)で保存(Saveメソッド)しなければいけません。
(2進数=10 :2桁)
PDDocIsModified4
(&H4)
PDFドキュメントがわずかに変更されました。たとえばテキスト注釈の位置が変わったとか。
(2進数=100 :3桁)
PDDocDeleteOnClose8
(&H8)
このPDFドキュメントは閉じる時に削除される。そうゆう一時的なPDFドキュメントとして扱われています。
(2進数=1000 :4桁)
PDDocWasRepaired16
(&H10)
開いた時にPDFドキュメントは修復されました。
(2進数=10000 :5桁)
PDDocNewMajorVersion32
(&H20)
PDFドキュメントのメジャー・バージョン(メジャー リリース番号)は現在より新しいです。
(2進数=100000 :6桁)
PDDocNewMinorVersion64
(&H40)
PDFドキュメントのマイナー・バージョン(マイナ リリース番号)は現在より新しいです。
(2進数=1000000 :7桁)
PDDocOldVersion128
(&H80)
PDFドキュメントのバージョンは現在より古いです。
注意:この値はCreaFlagsメソッドでもクリアは出来ない(です)。ドキュメントをオープンしている限り、常に持っている状態(みたい)です。
(2進数=10000000 :8桁)
PDDocSuppressErrors256
(&H100)
エラーを表示しない。
(2進数=100000000 :9桁)
PDDocIsEmbedded512
(&H200)
PDFドキュメントはコンパウンドドキュメントに埋め込まれています。
(2進数=1000000000 :10桁)
※この値はSDKに記述漏れ。
PDDocIsLinearized1024
(&H400)
PDFドキュメントが直線化(WEB用に最適化)されています。
(2進数=10000000000 :11桁)
※この値はSDKに記述漏れ。
PDDocIsOptimized2048
(&H800)
PDFドキュメントは最適化されています。
(2進数=100000000000 :12桁)
※この値はSDKに記述漏れ。

 

 

処理中の文書フラグの値が128ならば定数「PDDocOldVersion(=128)」の状態になっています。状態は複数を組み合わせた形で持つ事が可能になっています。

 

Excelのオブジェクトブラウザ

Excelの参照設定を行うと上記の定数はVBA内で定数定義しなくてもオブジェクトのメンバーとして提供されますから、通常の定数として使う事が出来ます。

オブジェクトブラウザから見た文書フラグ
Excelのオブジェクトブラウザで文書フラグで使える定数を表示

 

備考

  • このページの説明で「ビット単位」、「オブジェクトのメンバー」が判らない人は無視しても結構です。
  • 上記の定数は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  メソッド。どうゆう使い方をするのでしょうか?

 

コメントを残す

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

CAPTCHA



SAMURAI Plugin

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

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



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

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