マルチレンディションの各レンディションは,プロパティを設定して管理できます。
レンディションに設定されているプロパティは,次の4種類です。
なお,レンディションのプロパティとしてユーザ定義プロパティは設定できません。
ここでは,次の図に示すようなレンディションのプロパティの管理例を使用して,それぞれのプロパティについて説明します。
図3-21 レンディションのプロパティの管理例
図3-21の例では,「図A」というバージョンなし文書のマスタレンディションとサブレンディションに,同じGIF形式でも異なる解像度(マスタレンディションは600dpi,サブレンディションは300dpi)で保存した文書ファイルを登録しています。マルチレンディション管理では,同じレンディションタイプを重複して登録できません。しかし,例えば,MIME名でレンディションタイプを統一している場合,"MIME::タイプ/サブタイプ ( コメント )"の形式でレンディションタイプを指定できるため,同じ拡張子のファイルでもレンディションタイプを重複させないで登録できます。この例の場合,"MIME::image/gif ( 600 )"および"MIME::image/gif ( 300 )"のように,コメントまで指定したレンディションタイプを設定して二つのGIF形式のレンディションを登録しています。
レンディションタイプは,文書の新規作成時や文書ファイルの更新時またはレンディションの追加時に指定します。このとき,レンディションタイプの指定を省略すると,レンディションタイプは設定されません。ファイルの拡張子から判断されて設定されることはありません。したがって,文書の新規作成時または更新時には,適切なレンディションタイプを設定してください。この例のように拡張子が同じでもファイルの保存状態などによって別々のレンディションに登録したい場合は,ファイルの拡張子だけでなく,コメントまで指定したレンディションタイプを明示的に指定してください。
マスタレンディションのレンディションタイプの値は,文書(バージョンなし文書またはバージョン付き文書)の新規作成時または文書ファイルの更新時に,文書のdbrProp_RenditionTypeプロパティの値として設定されます。したがって,文書のdbrProp_RenditionTypeプロパティをGetPropertyValuesメソッドまたはGetPropertyValuesAndLockメソッドで取得すると,マスタレンディションのレンディションタイプの値が取得されます。
また,UpdateContentAndRenditionTypeメソッドで,引数に変更前のレンディションタイプを指定しない形式を使用した場合は,マスタレンディションのレンディションタイプの値が更新されます。引数に変更前のレンディションタイプを指定する形式を使用した場合,指定したレンディションタイプを持つマスタレンディションまたはサブレンディションのレンディションタイプの値が更新されます。
サブレンディションのレンディションタイプは,GetRenditionListAndLockメソッドまたはGetRenditionListメソッドでレンディション一覧を取得する時にだけ取得できます。GetPropertyValuesAndLockメソッドまたはGetPropertyValuesメソッドや検索結果一覧の情報としては取得できません。
次に,レンディションタイプの指定方法について説明します。
MIME::タイプ/サブタイプ△〔;△パラメタ△〔;△パラメタ△〕…〕〔△(コメント群)〔△(コメント群)〕…〕
パラメタ ::= 属性 "=" 値
コメント群 ::= コメント | (コメント群)
各レンディションには,ファイル名を表すdbrProp_RetrievalNameプロパティを設定できます。dbrProp_RetrievalNameプロパティは,文書の新規作成時や文書ファイルの更新時またはレンディションの追加時に,指定した文書ファイルのファイル名が設定されます。図3-21の例ではマスタレンディションにはzuA600.gif,サブレンディションにはzuA300.gifという値が設定されています。また,dbrProp_RetrievalNameプロパティの値は,登録済みの各レンディションのレンディションタイプを指定してPutRenditionPropertyValuesメソッドで設定・更新できます。マスタレンディションのdbrProp_RetrievalNameプロパティは,PutPropertyValuesメソッドでも設定できます。GetPropertyValuesメソッドや検索結果として取得するプロパティとしてdbrProp_RetrievalNameプロパティを指定すると,マスタレンディションのdbrProp_RetrievalNameプロパティの値が取得されます。ただし,dbrProp_RetrievalNameプロパティは,属性検索の条件としては指定できません(例えば,「マスタレンディションの文書ファイルのファイル名が"zuA600.gif"である文書を検索する」のように指定できません)。サブレンディションのdbrProp_RetrievalNameプロパティの値は,GetRenditionListAndLockメソッドまたはGetRenditionListメソッドでレンディション一覧を取得する時にだけ取得できます。
マルチレンディション管理機能は,同じ内容を持つ複数のファイル形式を一つの文書として管理する機能です。このため,マスタレンディションとサブレンディションは,常に同じ内容にしておく必要があります。マスタレンディションのコンテントを更新した場合には,サブレンディションのコンテントも更新する必要があります。
マスタレンディションに対するサブレンディションの更新状態は,CdbrDocumentクラスのプロパティであるdbrProp_RenditionStatusプロパティによって表されます。このプロパティは,Integer32型の4バイトの値として表されます。上位2バイトと下位2バイトで,それぞれ意味を持ちます。
サブレンディションの更新状態は,dbrProp_RenditionStatusプロパティの下位2バイトで確認できます。下位2バイトによって表される内容を状態フラグといいます。この値は,マスタレンディションまたはサブレンディションのコンテントを更新した時に,DocumentBrokerによって設定されます。
サブレンディションのコンテントをDocumentBroker Rendering Optionのレンディション変換機能を使用して作成,登録するかどうかの設定は,dbrProp_RenditionStatusプロパティの上位2バイトで表されます。また,レンディション変換でエラーが発生したことを示す値も,上位2バイトの値として設定されます。上位2バイトによって表される内容を変換フラグといいます。なお,変換フラグは,DocumentBroker Rendering Optionを使用しない場合は使用しません。
マスタレンディションの場合,dbrProp_RenditionStatusプロパティの値は常に「DBR_RENDSTATUS_MASTERREND」(00000000:4バイトの16進数)です。
次に,サブレンディションの状態フラグと変換フラグについて説明します。
状態フラグは,dbrProp_RenditionStatusプロパティの下位2バイトの値として設定されます。この値はDocumentBrokerによって設定されます。
サブレンディションのdbrProp_RenditionStatusプロパティの下位2バイトに設定される値を次の表に示します。プロパティのデータ型は,Integer32型です。
表3-2 dbrProp_RenditionStatusプロパティの下位2バイトの値
定数 | 対応する値 (16進数値) | 説明 |
---|---|---|
DBR_RENDSTATUS_NO_SUBREND | 0001 | 指定したサブレンディションに対応するマスタレンディションのコンテントは登録済みですが,サブレンディションのコンテントが登録されていません。 |
DBR_RENDSTATUS_SUBREND_EXIST | 0002 | 指定したサブレンディションに対応するマスタレンディションおよびサブレンディションのコンテントが登録されています。 |
DBR_RENDSTATUS_MASTERREND_UPDATE | 0004 | 指定したサブレンディションに対応するマスタレンディションが更新されていますが,サブレンディションが更新されていないため,マスタレンディションとサブレンディションの内容が一致しません。 |
変換フラグは,dbrProp_RenditionStatusプロパティの上位2バイトの値として表されます。この値はPutRenditionPropertyValuesメソッドによって変更できます。また,DocumentBroker Rendering Optionによるレンディション変換実行時にエラーが発生した場合には,変換エラーを示す値が設定されます。
サブレンディションのdbrProp_RenditionStatusプロパティの上位2バイトの値を次の表に示します。プロパティのデータ型は,Integer32型です。
表3-3 dbrProp_RenditionStatusプロパティの上位2バイトの値
定数 | 対応する値 (16進数値) | 説明 |
---|---|---|
DBR_RENDSTATUS_CONVERT_NOTREQUIRED | 0000 | DocumentBroker Rendering Optionによるレンディション変換の対象になりません。 |
DBR_RENDSTATUS_CONVERT_REQUIRED | 0001 | DocumentBroker Rendering Optionによるレンディション変換の対象になります。 |
DBR_RENDSTATUS_CONVERT_ERROR | 0002 | DocumentBroker Rendering Optionで変換エラーが発生しました。 |
なお,状態フラグによって,変換フラグが取る値が異なります。
状態フラグと変換フラグの組み合わせについて,次の表に示します。
表3-4 状態フラグと変換フラグの組み合わせ
状態フラグ | 変換フラグ |
---|---|
DBR_RENDSTATUS_SUBREND_EXIST |
|
DBR_RENDSTATUS_NO_SUBREND |
|
DBR_RENDSTATUS_MASTERREND_UPDATE |
|
例えば,レンディションを追加する時にファイルパスを指定しなかった場合,変換フラグにDocumentBroker Rendering Optionによるレンディション変換を要求しないDBR_RENDSTATUS_CONVERT_NOTREQUIREDを指定することはできません。
また,ファイルパスを指定して更新したいサブレンディションに対しては,マスタレンディションとサブレンディションが不一致であることを表すDBR_RENDSTATUS_MASTERREND_UPDATEの状態でも,レンディション変換を要求しないDBR_RENDSTATUS_CONVERT_NOTREQUIREDを指定することができます。
dbrProp_RenditionStatusプロパティとメソッドの関係について説明します。
次のメソッドについて説明します。
dbrProp_RenditionStatusプロパティの値は,次のメソッドで取得できます。
dbrProp_RenditionStatusプロパティの値は,次のメソッドをコールした時に,DocumentBrokerによって変更されます。
メソッドによるプロパティの値の遷移を,次の図に示します。図中の(1)から(8)の番号は,表3-5から表3-7の説明中の番号と対応しています。
図3-22 メソッドによるdbrProp_RenditionStatusプロパティの値の遷移
図3-22の遷移の詳細を,メソッドごとに説明します。
表3-5 AddRenditionメソッドによって設定されるdbrProp_RenditionStatusプロパティの値
引数pFilePathの値 | 変換フラグ(上位2バイト) | 状態フラグ(下位2バイト) |
---|---|---|
サブレンディションに登録するファイル ((1)の遷移) | DBR_RENDSTATUS _CONVERT_NOTREQUIRED | DBR_RENDSTATUS _SUBREND_EXIST |
NULL (lConvertTypeにDBR_CONVERT_TYPE_BATCHを指定した場合) ((2)の遷移) | DBR_RENDSTATUS _CONVERT_REQUIRED | DBR_RENDSTATUS _NO_SUBREND |
表3-6 UpdateContentメソッドまたはUpdateContentAndRenditionTypeメソッドによるdbrProp_RenditionStatusプロパティの値の遷移(マスタレンディションを更新する場合)
メソッドをコールした時点の状態フラグ | 変換フラグ(上位2バイト) | メソッドをコールしたあとの状態フラグ(下位2バイト) |
---|---|---|
DBR_RENDSTATUS _SUBREND_EXIST ((3)の遷移) |
| DBR_RENDSTATUS _MASTERREND_UPDATE |
| ||
DBR_RENDSTATUS _MASTERREND_UPDATE ((4)の遷移) |
| DBR_RENDSTATUS _MASTERREND_UPDATE (遷移しない) |
| ||
| ||
DBR_RENDSTATUS _NO_SUBREND ((5)の遷移) |
| DBR_RENDSTATUS _NO_SUBREND (遷移しない) |
|
表3-7 UpdateContentメソッドまたはUpdateContentAndRenditionTypeメソッドによるdbrProp_RenditionStatusプロパティの値の遷移(サブレンディションを更新する場合)
メソッドをコールした時点の状態フラグ | 変換フラグ(上位2バイト) | メソッドをコールしたあとの状態フラグ(下位2バイト) |
---|---|---|
DBR_RENDSTATUS _SUBREND_EXIST ((6)の遷移) | メソッドをコールした時点の変換フラグ (遷移しない) | DBR_RENDSTATUS _SUBREND_EXIST (遷移しない) |
DBR_RENDSTATUS _MASTERREND_UPDATE ((7)の遷移) | DBR_RENDSTATUS_CONVERT_NOTREQUIRED | DBR_RENDSTATUS _SUBREND_EXIST |
DBR_RENDSTATUS _NO_SUBREND ((8)の遷移) | DBR_RENDSTATUS_CONVERT_NOTREQUIRED | DBR_RENDSTATUS _SUBREND_EXIST |
dbrProp_RenditionStatusプロパティの変換フラグは,PutRenditionPropertyValuesメソッドで設定できます。
例えば,ファイルパスを指定して追加したサブレンディションのコンテントを,レンディション変換によって更新されるようにする場合や,一度DocumentBroker Rendering Optionによるレンディション変換でエラーが発生したサブレンディションを,マスタレンディションのコンテントを更新したあとでレンディション変換の対象から外す場合などに,明示的に変換フラグを変更してください。
設定できる値は次のどちらかです。
ただし,次の設定はできません。
状態フラグによっては,ChangeMasterRenditionメソッドの実行が制限されます。
dbrProp_RenditionStatusプロパティの値の遷移の例として,DocumentBroker Rendering Optionによるサブレンディション更新の場合の例を,次の図に示します。
図3-23 DocumentBroker Rendering Optionによるサブレンディション更新の例
図3-23を説明します。
レンディションごとのコンテントの種別は,dbrProp_ContentTypeプロパティによって知ることができます。コンテントの種別から,レンディションのコンテントが次のうちのどれかを知ることができます。
このプロパティは,Integer32型の4バイトの値として表されます。
ユーザはdbrProp_ContentTypeプロパティを設定できません。dbrProp_ContentTypeプロパティを参照する場合は,GetRenditionListメソッドおよびGetRenditionListAndLockメソッドを使用します。また,マスタレンディションのdbrProp_ContentTypeプロパティは,GetPropertyValuesメソッド,GetPropertyValuesAndLockメソッド,または一部の一覧取得メソッドでも参照できます。
dbrProp_ContentTypeの値とコンテント種別の関係を次の表に示します。
表3-8 dbrProp_ContentTypeの値とコンテント種別の関係
dbrProp_ContentTypeの値 | 対応する値 | コンテント種別 |
---|---|---|
DBR_CONTENTTYPE_CONTENT | 0 | ContentTransferオブジェクト(シングルファイル文書であるコンテント)です。 |
DBR_CONTENTTYPE_FILELINK | 1 | ContentFileLinkオブジェクト(File Link文書であるコンテント)です。 |
DBR_CONTENTTYPE_MULTIFILE | 2 | ContentTransfersオブジェクト(マルチファイル文書であるコンテント)です。 |
DBR_CONTENTTYPE_REFERENCE | 3 | ContentReferenceオブジェクト(リファレンスファイル文書であるコンテント)です。 |
DBR_CONTENTTYPE_OTHER | -1 | 上記以外のコンテントを持つオブジェクトです。 |