(57)【特許請求の範囲】
【請求項１】
ＶＤＰアプリケーションから印刷ジョブを取得するデータ取得手段と、
前記データ取得手段で取得された印刷ジョブを解析し、可変データの繰り返しの単位であるレコードに対応する印刷ジョブを構成する要素のレコードレベルを推定するデータ解析手段と、
前記データ解析手段で推定されたレコードレベルを含む複数のレコードレベルからユーザからのレコードレベルの選択を受け付けるレコードレベル選択オブジェクトを含み、前記レコードレベル選択オブジェクトにおいて、前記データ解析手段で推定されたレコードレベルが選択された状態のレコードレベル設定画面を初期画面として表示装置に表示するよう制御するレコードレベル表示制御手段と、
前記レコードレベル設定画面の前記レコードレベル選択オブジェクトを介して選択されたレコードレベルを取得するレコードレベル選択取得手段と、
前記レコードレベル選択取得手段で取得された前記レコードレベルを前記印刷ジョブの後工程の装置に伝達する伝達手段と、
を有する情報処理装置。
【請求項２】
前記レコードレベル設定画面は、前記印刷ジョブのページの内容を表示する領域を更に含み、
前記レコードレベル表示制御手段は、前記レコードレベル選択オブジェクトで選択されたレコードレベルで前記印刷ジョブのページの内容を前記領域に表示するよう制御する請求項１記載の情報処理装置。
【請求項３】
前記データ解析手段は、印刷ジョブを出力したＶＤＰアプリケーションの種類からレコードレベルを推定する請求項１又は２記載の情報処理装置。
【請求項４】
前記データ解析手段は、前記印刷ジョブを構成する要素の個数からレコードレベルを推定する請求項１又は２記載の情報処理装置。
【請求項５】
前記データ解析手段は、前記印刷ジョブを構成する各要素をルートノードとした木の類似度を算出し、比較して、木の類似度が最も高い要素をレコードレベルと推定する請求項１又は２記載の情報処理装置。
【請求項６】
前記伝達手段は、前記印刷ジョブを構成する要素と、前記レコードレベル選択取得手段で取得された前記要素の前記レコードレベルと、を対応付けたメタデータを前記印刷ジョブに記述することによって前記レコードレベルを前記印刷ジョブの後工程の装置に伝達する請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
前記伝達手段は、前記印刷ジョブを構成する要素と、前記レコードレベル選択取得手段で取得された前記要素の前記レコードレベルと、を対応付けたメタデータを前記印刷ジョブのジョブチケットに記述することによって前記レコードレベルを前記印刷ジョブの後工程の装置に伝達する請求項１乃至５何れか１項記載の情報処理装置。
【請求項８】
情報処理装置が実行する情報処理方法であって、
ＶＤＰアプリケーションから印刷ジョブを取得するデータ取得ステップと、
前記データ取得ステップで取得された印刷ジョブを解析し、可変データの繰り返しの単位であるレコードに対応する印刷ジョブを構成する要素のレコードレベルを推定するデータ解析ステップと、
前記データ解析ステップで推定されたレコードレベルを含む複数のレコードレベルからユーザからのレコードレベルの選択を受け付けるレコードレベル選択オブジェクトを含み、前記レコードレベル選択オブジェクトにおいて、前記データ解析ステップで推定されたレコードレベルが選択された状態のレコードレベル設定画面を初期画面として表示装置に表示するよう制御するレコードレベル表示制御ステップと、
前記レコードレベル設定画面の前記レコードレベル選択オブジェクトを介して選択されたレコードレベルを取得するレコードレベル選択取得ステップと、
前記レコードレベル選択取得ステップで取得された前記レコードレベルを前記印刷ジョブの後工程の装置に伝達する伝達ステップと、
を含む情報処理方法。
【請求項９】
コンピュータに、
ＶＤＰアプリケーションから印刷ジョブを取得するデータ取得ステップと、
前記データ取得ステップで取得された印刷ジョブを解析し、可変データの繰り返しの単位であるレコードに対応する印刷ジョブを構成する要素のレコードレベルを推定するデータ解析ステップと、
前記データ解析ステップで推定されたレコードレベルを含む複数のレコードレベルからユーザからのレコードレベルの選択を受け付けるレコードレベル選択オブジェクトを含み、前記レコードレベル選択オブジェクトにおいて、前記データ解析ステップで推定されたレコードレベルが選択された状態のレコードレベル設定画面を初期画面として表示装置に表示するよう制御するレコードレベル表示制御ステップと、
前記レコードレベル設定画面の前記レコードレベル選択オブジェクトを介して選択されたレコードレベルを取得するレコードレベル選択取得ステップと、
前記レコードレベル選択取得ステップで取得された前記レコードレベルを前記印刷ジョブの後工程の装置に伝達する伝達ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、商品の多品種化、インターネット利用の普及による消費者のカスタマイズサービス指向等の要因からＯｎｅ−ｔｏ−Ｏｎｅマーケティングの必要性が注目されている。これらの手法は、顧客満足度を高め、顧客の開拓や囲い込みを目指すという目的に対して非常に効果的なものである。
Ｏｎｅ−ｔｏ−Ｏｎｅマーケティングはデータベース（ＤＢ）・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析、顧客のニーズに合った提案を行うものである。その代表的な具体的手法としてバリアブルデータプリント（以下、ＶＤＰと呼ぶ）が挙げられる。
ＶＤＰは、文書を顧客ごとにカスタマイズできる可変領域を持ち、可変領域のデータをＤＢ等から供給しながら出力する、可変情報印刷である。ＶＤＰ文書の作成は、ＶＤＰ文書の編集機能を持つＶＤＰアプリケーションで行う。ＶＤＰアプリケーションで編集したＶＤＰ文書に対して印刷指示が与えられると、可変領域にルールに従ったコンテンツが差し込まれて印刷データとされ、その印刷データにジョブコントロール言語が付されて印刷ジョブが生成される。印刷ジョブは印刷装置に対して発行され、印刷装置で印刷出力される。
【０００３】
ＰＰＭＬ（Ｐｅｒｓｏｎａｌｉｚｅｄ  Ｐｒｉｎｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）は、可変領域のデータ（バリアブルデータ）と固定領域のデータ（リユーザブルオブジェクト）とを用いた印刷を効率的に行うためのＶＤＰ言語フォーマットの一つである。ＰＰＭＬは、ＶＤＰアプリケーションから印刷ジョブとして出力される。以下、ＰＰＭＬで記述されるＶＤＰの印刷ジョブをＰＰＭＬデータと呼ぶ。
ＰＰＭＬデータは、複数レコードを１つの印刷ジョブとして記述できる。ここで、レコードとは、ＶＤＰの印刷ジョブ生成時に参照するＤＢにおいて、印刷の１単位を定義する項目を指す。レコードは、例えば顧客でもよいし、営業所や地域でもよい。
一方、ＪＤＦ（Ｊｏｂ  Ｄｅｆｉｎｉｔｉｏｎ  Ｆｏｒｍａｔ）等のジョブチケットを印刷ジョブと対にして後工程に送信すると、レコードごとのステープルやパンチ等の後加工を指定することが可能である。
しかしＰＰＭＬのように、１レコードに対応する要素の記述方法について明確に定義されていない言語フォーマットを使った印刷ジョブでは、レコードと印刷データとの構成要素の対応付けができない。そのため、ジョブチケットを使ってレコード単位の処理を実行することはできない。
ＰＰＭＬのレコード区切りについては、複数のレコードで構成されたＶＤＰの印刷ジョブを解析し、解析結果を用いて各レコードと各レコードに対応する印刷ページとを対応付ける技術がある。特許文献１には、リユーザブルオブジェクトの参照周期（ＰＡＧＥ又はＤＯＣＵＭＥＮＴ単位）及びバリアブルデータの描画位置を解析してレコードの分割を行う技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−５３８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、リユーザブルオブジェクトの参照周期がＰＡＧＥ（又はＤＯＣＵＭＥＮＴ）で不定期である場合や、バリアブルデータの描画位置がレコードごとに異なる場合には適用できず、適用ケースが限られる。ＰＰＭＬ等の書式で記述された印刷ジョブでは、レコードに対応する要素がどれかの明確な規定がないためジョブチケットに記述されているレコード単位の処理を実行することができない。
【０００６】
本発明はこのような問題点に鑑みなされたもので、ＰＰＭＬ等の書式で記述された、どの要素がレコードレベルに対応するかの規定が明確にはない印刷ジョブにおいて、レコード単位の処理を可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
そこで、本発明の情報処理装置は、ＶＤＰアプリケーションから印刷ジョブを取得するデータ取得手段と、前記データ取得手段で取得された印刷ジョブを解析し、可変データの繰り返しの単位であるレコードに対応する印刷ジョブを構成する要素のレコードレベルを推定するデータ解析手段と、前記データ解析手段で推定されたレコードレベルを含む複数のレコードレベルからユーザからのレコードレベルの選択を受け付けるレコードレベル選択オブジェクトを含み、前記レコードレベル選択オブジェクトにおいて、前記データ解析手段で推定されたレコードレベルが選択された状態のレコードレベル設定画面を初期画面として表示装置に表示するよう制御するレコードレベル表示制御手段と、前記レコードレベル設定画面の前記レコードレベル選択オブジェクトを介して選択されたレコードレベルを取得するレコードレベル選択取得手段と、前記レコードレベル選択取得手段で取得された前記レコードレベルを前記印刷ジョブの後工程の装置に伝達する伝達手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、ＰＰＭＬ等の書式で記述された、どの要素がレコードレベルに対応するかの規定が明確にはない印刷ジョブにおいて、レコード単位の処理を可能にすることができる。
【図面の簡単な説明】
【０００９】
【図１】ＰＰＭＬデータの一例を示す図である。
【図２】ＶＤＰアプリケーションが使用するＤＢのイメージ図である。
【図３】ＶＤＰアプリケーションのイメージ図である。
【図４】バリアブル印刷システムの基本構成の一例を示すブロック図である。
【図５】制御装置の一例を示すブロック図である。
【図６】ホットフォルダのモジュール構成を説明する図である。
【図７】レコードレベル推定・表示・選択・伝達処理を説明するフローチャートである。
【図８】図７のＳ７０２の処理の詳細を説明するフローチャートである。
【図９Ａ】ＪＯＢ要素とＤＯＣＵＭＥＮＴ要素とが１個しかなく、ＰＡＧＥ要素が複数ある場合のＰＰＭＬデータからレコードレベル候補要素を抽出するイメージの図である。
【図９Ｂ】ＪＯＢが１個しかなく、ＤＯＣＵＭＥＮＴが複数個ある場合のＰＰＭＬデータからレコードレベル候補要素を抽出するイメージの図である。
【図９Ｃ】ＪＯＢが複数あり、その各ＪＯＢにはＤＯＣＵＭＥＮＴが１個しかない場合のＰＰＭＬデータからレコードレベル候補要素を抽出するイメージの図である。
【図１０】図８のＳ８０３の処理の詳細を説明するフローチャートである。
【図１１】ＰＰＭＬデータを構文解析した解析木（タグ木構造）として扱うイメージ図である。
【図１２】図１１の解析木を、ＪＯＢをルートノードとして分割した木のイメージ図である。
【図１３】図１１の解析木を、ＤＯＣＵＭＥＮＴをルートノードとして分割した木のイメージ図である。
【図１４】図１１の解析木を、ＰＡＧＥをルートノードとして分割した木のイメージ図である。
【図１５】図８のＳ８０５の処理の詳細を説明するフローチャートである。
【図１６】レコードレベル設定画面のイメージ図である。
【図１７Ａ】ＰＰＭＬデータの印刷イメージを、ＪＯＢ単位でレコードレベル設定画面に表示する場合の一例の図である。
【図１７Ｂ】図１７Ａと同じＰＰＭＬデータの印刷イメージを、ＤＯＣＵＭＥＮＴ単位でレコードレベル設定画面に表示する場合の一例の図である。
【図１８Ａ】ＰＰＭＬデータの印刷イメージを、ＤＯＣＵＭＥＮＴ単位でレコードレベル設定画面に表示する場合の一例の図である。
【図１８Ｂ】図１８Ａと同じＰＰＭＬデータの印刷イメージを、ＰＡＧＥ単位でレコードレベル設定画面に表示するときの一例の図である。
【図１９】ユーザからのレコードレベルの選択を説明するフローチャートである。
【図２０】メタデータを使ってレコードレベルを後工程に伝達するＰＰＭＬデータの記述のイメージ図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
【００１１】
（実施形態１）
＜ＰＰＭＬデータの説明＞
図１は、ＰＰＭＬデータの一例を示す図である。図１に示すように、ＰＰＭＬは、ＸＭＬ形式をベースとした階層構造となっており、複数の文書や文書を一体化した文書グループを格納することができる。階層構造は、ＰＰＭＬ要素を最上位の階層とし、ＰＰＭＬ要素の１つ下の階層に文書グループを定義するＪＯＢ要素（又はＤＯＣＵＭＥＮＴ＿ＳＥＴ。以下ＪＯＢのみ記載）を持つ。ＪＯＢ要素は、１つ下の階層に文書を定義するＤＯＣＵＭＥＮＴ要素を持つ。ＤＯＣＵＭＥＮＴ要素は、１つ下の階層に論理ページを定義するＰＡＧＥ要素を持つ。ＪＯＢ、ＤＯＣＵＭＥＮＴ、ＰＡＧＥ要素は、１つの印刷ジョブに各々複数個持つことができる。つまり、１つの印刷ジョブは、複数のＪＯＢを持つことが可能であり、１つのＪＯＢは複数のＤＯＣＵＭＥＮＴを持つことができ、１つのＤＯＣＵＭＥＮＴは複数のＰＡＧＥを持つことができる。
【００１２】
図２、図３を用いて、ＶＤＰアプリケーションの、ＤＢを参照したＶＤＰの印刷ジョブの生成について説明する。図２は、ＶＤＰアプリケーションが使用するＤＢのイメージ図である。図２は、顧客ＤＢの例であり、２０１は、１人分の顧客のデータである。この例では、レコードは顧客であるとする。図３は、ＶＤＰアプリケーションのイメージ図である。ＶＤＰアプリケーション３０は、ＶＤＰ文書３１を編集する機能を持つ。ＶＤＰアプリケーション３０は、ユーザの指示により、ＶＤＰ文書３１に、可変領域３０１、３０２と、固定領域３０３と、を配置する。可変領域には、ＤＢの項目を割り当てることができる。ここでは、可変領域３０１に顧客名を割り当て、可変領域３０２に住所を割り当てる。ＶＤＰアプリケーション３０は、ユーザからの印刷指示を受けると、顧客ＤＢを参照し、可変領域３０１に各レコードの顧客名データ、可変領域３０２に各レコードの住所データを使用して、ＶＤＰ文書を作成する。こうして、ＶＤＰアプリケーション３０は、顧客の人数分の、複数レコードの記述を１つの印刷ジョブとして出力する。
１レコード分の記述は、ＪＯＢ要素でも、ＤＯＣＵＭＥＮＴ要素でも、ＰＡＧＥ要素でも可能である。ある要素が１レコードに対応するとき、その要素の階層をレコードレベルと呼ぶ。例えば、１つのＤＯＣＵＭＥＮＴ要素の開始〜終了が１レコードに対応する場合、ＤＯＣＵＭＥＮＴ要素の階層がレコードレベルとなる。同様に、１つのＪＯＢ要素の開始〜終了が１レコードに対応する場合は、レコードレベルはＪＯＢ要素の階層となり、１つのＰＡＧＥの開始〜終了が１レコードに対応する場合は、レコードレベルはＰＡＧＥ要素の階層となる。
なお、前述したように、レコードとは、可変データ（バリアブルデータ）の繰り返しの単位である。
【００１３】
＜基本構成＞
図４は、バリアブル印刷システムの基本構成の一例を示すブロック図である。本実施形態に係るバリアブル印刷システムは、クライアントＰＣ（パーソナル・コンピュータ）４０１、プリントサーバ４０２、プリンタ４０３、後加工機４０４、ＤＢサーバ４０５を有する。プリンタ４０３、プリントサーバ４０２、及びクライアントＰＣ４０１は、ネットワーク（ＮＷ）を介して接続され、お互いに通信可能である。ＤＢサーバ４０５は、クライアントＰＣ４０１と通信経路４２１で接続されている。後加工機４０４は、プリンタ４０３と通信経路４２２で接続されている。
クライアントＰＣ４０１は、アプリケーションファイルの編集や印刷指示を行う機能を有する。また、クライアントＰＣ４０１は、プリントサーバ４０２内で管理されているプリンタや印刷ジョブの制御を行うためのアプリケーションを格納し、操作する機能を有する。
ＶＤＰアプリケーション４１１、ホットフォルダ４１４は、クライアントＰＣ４０１上で動作する。このホットフォルダは、プリント条件設定やその他のプリント依頼情報等を属性として含む仮想的なフォルダであり、クライアントＰＣ４０１が持つハードディスク等のメモリに複数個作成可能なものである。ＶＤＰアプリケーション４１１は、可変領域のデータとして指定されたデータに対する取得要求を、通信経路４２１を介してＤＢサーバ４０５に送信することにより、通信経路４２１を介してＤＢ４１２からＤＢデータを取得する。ＶＤＰアプリケーション４１１は、取得したＤＢデータを使用し、ＰＰＭＬ等のＶＤＰ文書フォーマットを使用してＶＤＰの印刷ジョブを作成する。以降、ＶＤＰの印刷ジョブはＰＰＭＬで出力されるものとして説明するが、ＰＰＭＬは一例であり、他の言語フォーマットで記述されていてもよい。ホットフォルダ４１４は、ＶＤＰアプリケーション４１１からの印刷ジョブの投入を監視し、ホットフォルダ４１４に定義されたプロセスを印刷ジョブに対して実行し、ネットワークを通じてプリントサーバに送信する。
【００１４】
プリントサーバ４０２は、入力された印刷ジョブや、ネットワークを介して接続されているプリンタ４０３を制御する。プリントサーバ４０２は、印刷ジョブの一時停止、設定変更、印刷再開、或いは印刷ジョブの複製、移動、削除等の制御を行うことができる。
プリントサーバ４０２は、ＰＰＭＬデータを入力として受け取り、ＲＩＰ４１３により、印刷データに含まれるデータを解析してビットマップ画像データを生成する。これを、ＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）処理という。このとき、クライアントＰＣ４０１が、ＰＰＭＬデータと一緒にジョブチケットをプリントサーバ４０２に送る。すると、プリントサーバ４０２がジョブチケットに基づいて、プリンタ４０３及び後加工機４０４を制御する。本実施形態における、ジョブチケットとは、例えばＪＤＦ等の、ジョブの作業指示を記載したデータを指し、ステープルやパンチ等の後加工に関する情報も含まれる。ジョブチケットは、ＶＤＰアプリケーション４１１からＰＰＭＬデータと一緒に出力される場合もあるし、ＭＩＳ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍ）等の外部システムから設定される場合もある。
プリンタ４０３は、印刷機能を有する。
後加工機４０４は、プリンタ４０３と通信経路４２２で接続されており、プリントサーバ４０２により制御可能になっている。後加工機４０４は、プリントサーバ４０２からの印刷ジョブ制御により、後加工を行う。
プリントサーバ４０２、プリンタ４０３、後加工機４０４は、印刷ジョブの後工程の装置の一例である。
【００１５】
図５は、制御装置の一例を示すブロック図である。本実施形態の制御装置は、クライアントＰＣ４０１上で動作する。
図５の制御装置５００は、表示装置部５０１、入力部５０２、制御部５０３、ＲＡＭ５０４、操作部５０５、印刷部５０６、ＲＯＭ５０７、ＨＤＤ５０８からなる。表示装置部５０１は、ＣＲＴや液晶モニタ等の表示装置である。入力部５０２は、キーボードやマウス等のポインティングデバイスに対応している。
制御部５０３はＣＰＵである。制御部５０３はＲＡＭ５０４に格納されている制御プログラムに従って本装置全体の制御を行う。ＲＯＭ５０７は、制御部５０３によって実行されるコンピュータプログラムを格納する。ＨＤＤ５０８（ハードディスクドライブ）は、ハードディスクとハードディスクへのデータの読み書きを行う駆動部で構成されている。ＨＤＤ５０８には、ＤＢや文書やイメージデータ等が格納される。ここで、ＤＢには、顧客データ等のバリアブルデータ作成に使用する１つ以上のＤＢが含まれる。
ＲＡＭ５０４は、不揮発性のメモリであり、ＲＯＭ５０７やＨＤＤ５０８からロードされた各種プログラムや、データファイルを格納する。ＲＡＭ５０４に格納されているプログラムは、ＲＡＭ５０４に格納するデータの内容を読み書きしたり、入力部５０２からの入力を受け取ったり、表示装置部５０１に表示を行ったりする。
操作部５０５は、入力部５０２からの入力処理を受け付け、制御部５０３に送信する。印刷部５０６は、ネットワーク等を通じてプリントサーバ４０２経由でプリンタ４０３に対して、データを送信する。
【００１６】
＜モジュール構成＞
図６は、ホットフォルダ４１４のモジュール構成を説明する図である。情報処理装置６００は、情報処理装置（コンピュータ）の好適な実施形態である制御装置５００上で動作する。各モジュールは、図５の制御部５０３によって実行処理を制御される。情報処理装置６００は、レコードレベル設定表示部６０、レコードレベル推定部６１、レコードレベル選択部６２を有する。
レコードレベル設定表示部６０は、表示手段６０１を有し、表示に関する情報を取得し、表示の指示を制御部５０３に送信し、表示装置部５０１の表示を制御する。
レコードレベル推定部６１は、ＰＰＭＬデータを取得し、解析する。レコードレベル推定部６１は、データ取得手段６１１、データ解析手段６１２を有する。データ取得手段６１１は、ＶＤＰアプリケーションからのＰＰＭＬデータの投入を監視し、ＰＰＭＬデータを取得する。データ解析手段６１２は、データ取得手段６１１で取得したＰＰＭＬデータを解析し、レコードレベルを推定する。
【００１７】
レコードレベル選択部６２は、ユーザの入力部５０２による操作部５０５への選択を受け付け、ユーザが選択したレコードレベルを取得する。以下、ユーザの入力部５０２からのレコードレベルの選択を操作部５０５が受け付ける一連の内部処理を、ユーザからのレコードレベルの選択と呼ぶ。レコードレベル選択部６２は、レコードレベル推定結果取得手段６２２、レコードレベル表示制御手段６２３、レコードレベル選択取得手段６２４、レコードレベル選択結果伝達手段６２５を有する。
レコードレベル推定結果取得手段６２２は、レコードレベル推定部６１からレコードレベルの推定結果を取得する。レコードレベル表示制御手段６２３は、レコードレベル推定結果取得手段６２２が取得したレコードレベルの推定結果を表示手段６０１に渡して表示装置部５０１の表示を制御し、レコードレベル設定画面を表示する。また、レコードレベル表示制御手段６２３は、後述するレコードレベル選択ラジオボタンを介してユーザによってレコードレベルが選択された場合、選択されたレコードレベルで印刷ジョブのページの内容を後述するページ表示領域に表示するよう制御する。レコードレベル設定画面については、後述する。レコードレベル選択取得手段６２４は、ユーザからのレコードレベルの選択を受け付け、選択されたレコードレベルを取得する。レコードレベル選択結果伝達手段６２５は、レコードレベル選択取得手段６２４で取得されたレコードレベル選択結果を、プリントサーバ４０２経由で後加工機４０４に伝達する。レコードレベル伝達方法については後述する。
【００１８】
＜全体フロー＞
図７は、本実施形態におけるレコードレベル推定・表示・選択・伝達処理を説明するフローチャートである。図７は、本実施形態における情報処理装置６００が、ＶＤＰアプリケーション４１１から印刷ジョブを受け取ってから、プリントサーバ４０２経由でプリンタ４０３にレコード単位の印刷制御操作の指示を出すまでの処理を示す。
まず、ステップＳ７０１にて、情報処理装置６００は、データ取得手段６１１により、ＶＤＰアプリケーション４１１から印刷ジョブとしてＰＰＭＬデータを取得する。次に、ステップＳ７０２にて、情報処理装置６００は、データ解析手段６１２により、取得したデータを、レコードレベル推定アルゴリズムを使って解析し、レコードレベルを推定する。レコードレベル推定アルゴリズムについては後述する。次に、ステップＳ７０３にて、レコードレベル選択部６２は、ユーザからのレコードレベルの選択を取得する。次に、ステップＳ７０４にて、レコードレベル選択結果伝達手段６２５は、前記取得したレコードレベルを後工程に伝達する。
【００１９】
＜レコードレベル推定アルゴリズム＞
図８は、図７のＳ７０２の処理の詳細を説明するフローチャートである。
ステップＳ８０１において、データ解析手段６１２は、ＰＰＭＬデータの出力アプリケーションの特定によるレコードレベル推定を行う。ＰＰＭＬでは、ルート要素であるＰＰＭＬ要素のＣｒｅａｔｏｒ属性により、ＰＰＭＬデータを出力したＶＤＰアプリケーション名やそのバージョン番号を記述することが可能である。ＰＰＭＬ要素のＣｒｅａｔｏｒ属性には、ＶＤＰアプリケーション名やそのバージョン番号が記述されており、ＶＤＰアプリケーションが特定の方法でレコード区切りを行うことが既知である場合、データ解析手段６１２は、レコードレベルを特定することができる。例えば、Ｃｒｅａｔｏｒ属性により特定されたＶＤＰアプリケーションが、「１レコードを常に１ＤＯＣＵＭＥＮＴに対応付けて出力」するということが既知である場合、データ解析手段６１２は、ＤＯＣＵＭＥＮＴ要素の階層をレコードレベルに決定する。データ解析手段６１２は、ステップＳ８０１で推定が成功した場合は、ステップＳ８０２にて、推定アルゴリズムを終了し、推定できなかった場合は、ステップＳ８０３に進む。
次に、ステップＳ８０３において、データ解析手段６１２は、レコードレベル候補要素の個数によるレコードレベル推定を行う。ここで、レコードレベル候補要素とは、文書又は文書グループを記述する要素であり、前述のＪＯＢ要素、ＤＯＣＵＭＥＮＴ要素、ＰＡＧＥ要素を指す。レコードレベル候補要素の個数によるレコードレベル推定については、後述する。データ解析手段６１２は、ステップＳ８０３で推定が成功した場合は、ステップＳ８０４にて、推定アルゴリズムを終了し、推定できなかった場合は、ステップＳ８０５にて、解析木を使ったレコードレベル推定を行う。解析木を使ったレコードレベル推定については、後述する。
【００２０】
＜レコードレベル候補要素の個数によるレコードレベル推定＞
図９は、ＰＰＭＬデータからレコードレベル候補要素を抽出するイメージの図である。図９Ａは、ＪＯＢ要素とＤＯＣＵＭＥＮＴ要素とが１個しかなく、ＰＡＧＥ要素が複数ある場合の図である。図９Ａの場合は、レコードに対応付けられるのは複数存在するＰＡＧＥ要素である可能性が高いため、データ解析手段６１２は、ＰＡＧＥ要素の階層をレコードレベルと推定する。図９Ｂは、ＪＯＢが１個しかなく、ＤＯＣＵＭＥＮＴが複数個ある場合の図である。この場合、ＪＯＢは１つしかないため、レコードレベルとは考えられない。このとき更に、各ＤＯＣＵＭＥＮＴのＰＡＧＥの個数が同じ場合、各ＤＯＣＵＭＥＮＴのページ構成が等しいことから、印刷の１単位が１ＤＯＣＵＭＥＮＴである可能性が高いと考えられる。したがって、データ解析手段６１２は、ＤＯＣＵＭＥＮＴ要素の階層をレコードレベルと推定する。図９Ｃは、ＪＯＢが複数あり、その各ＪＯＢにはＤＯＣＵＭＥＮＴが１個しかない場合の図である。このとき更に、各ＤＯＣＵＭＥＮＴのＰＡＧＥの個数が同じ場合は、各ＪＯＢ要素の構成が等しいことから、印刷の１単位を１ＪＯＢと対応付けることができる可能性が高いと考えられる。したがって、データ解析手段６１２は、ＪＯＢ要素の階層をレコードレベルと推定する。
【００２１】
図１０は、図８のＳ８０３の処理の詳細を説明するフローチャートである。
ステップＳ１００１において、データ解析手段６１２は、ＶＤＰアプリケーション４１１から受信したＰＰＭＬデータから、レコードレベル候補要素を取得する。次に、ステップＳ１００２において、データ解析手段６１２は、ＪＯＢ、ＤＯＣＵＭＥＮＴ、ＰＡＧＥ要素の何れかの要素の個数が０個か否かを判定し、０個であれば、ステップＳ１００７に進んでレコードレベルの設定不要とし、レコードレベル推定を終了する。ＪＯＢ、ＤＯＣＵＭＥＮＴ、ＰＡＧＥ要素の何れかの要素の個数が０個の場合というのは、例えば、複数の印刷ジョブで利用可能な、リユーザブルオブジェクトの宣言だけを行い、実際の印刷データは記述されていないような場合である。ステップＳ１００２において、データ解析手段６１２は、ＪＯＢ要素の個数が０個でなければ、ステップＳ１００３に進む。
ステップＳ１００３において、データ解析手段６１２は、ＪＯＢ要素の個数が１個か否かを判定し、１個であればステップＳ１００４に進む。ステップＳ１００４において、データ解析手段６１２は、ＪＯＢ要素が持つＤＯＣＵＭＥＮＴ要素の個数が１個より大きいか否かを判定する。データ解析手段６１２は、ＤＯＣＵＭＥＮＴ要素の個数が１個の場合は、ステップＳ１００５に進む。ステップＳ１００５において、データ解析手段６１２は、ＤＯＣＵＭＥＮＴ要素が持つＰＡＧＥ要素の個数が１個より大きい場合は、図９Ａのケースであるので、ステップＳ１００６に進み、ＰＡＧＥ要素をレコードレベルと推定する。ステップＳ１００５において、データ解析手段６１２は、ＤＯＣＵＭＥＮＴ要素が持つＰＡＧＥ要素の個数が１個である場合は、ＪＯＢ、ＤＯＣＵＭＥＮＴ、ＰＡＧＥ要素が全て１個となり、どの要素をレコードレベルとしても同じ結果になる。このように、どの要素をレコードレベルとしても同じ結果になる場合は、特定できない場合とは区別できるように、データ解析手段６１２は、予め定められたどの要素をレコードレベルとするかの設定に基づき、何れかの要素をレコードレベルとする。ここでは、「どの要素をレコードレベルとしても同じ結果になる場合は、ＪＯＢ要素をレコードレベルとする」と予め設定されているものする。したがって、データ解析手段６１２は、ステップＳ１０１０に進み、ＪＯＢ要素をレコードレベルと推定する。
【００２２】
ステップＳ１００３で判定した結果、ＪＯＢ要素の個数が１個より大きい場合、データ解析手段６１２は、ステップＳ１００８に進む。ステップＳ１００８において、データ解析手段６１２は、各ＪＯＢ要素が持つＤＯＣＵＭＥＮＴ要素が全て１個ずつか否かを判定する。ＤＯＣＵＭＥＮＴ要素の個数が１個より大きい場合は、レコードレベル推定候補要素の個数だけでは推定できないため、データ解析手段６１２は、ステップＳ１０１１に進み、推定失敗のフラグを立てる。ステップＳ１００８で、ＤＯＣＵＭＥＮＴ要素が１個である場合、データ解析手段６１２は、更にステップＳ１００９で各ＤＯＣＵＭＥＮＴ要素が持つＰＡＧＥ要素の個数が同じか否かを判定する。ＰＡＧＥ要素の個数が同じでない場合は、ＤＯＣＵＭＥＮＴ要素の階層がレコードレベルである可能性と、ＰＡＧＥ要素の階層がレコードレベルである可能性と、があり、どちらか特定することができない。そのため、ステップＳ１０１１において、データ解析手段６１２は、推定失敗のフラグを立てる。
各ＤＯＣＵＭＥＮＴ要素が持つＰＡＧＥ要素の個数が同じ場合、図９Ｃのケースであるので、データ解析手段６１２は、ステップＳ１０１０に進み、ＪＯＢ要素の階層をレコードレベルと推定する。ステップＳ１００４で、ＤＯＣＵＭＥＮＴ要素の個数が１個より大きい場合、データ解析手段６１２は、ステップＳ１０１２で各ＤＯＣＵＭＥＮＴ要素が持つＰＡＧＥ要素の個数が同じか否かを判定する。ＰＡＧＥ要素の個数が同じでなければ、ＪＯＢ要素の階層がレコードレベルである可能性とＰＡＧＥ要素の階層がレコードレベルである可能性とがあり、どちらか特定することができない。そのため、データ解析手段６１２は、ステップＳ１０１１で推定失敗のフラグを立てる。ＰＡＧＥ要素の個数が同じであれば、図９Ｂのケースなので、データ解析手段６１２は、ステップＳ１０１３に進み、ＤＯＣＵＭＥＮＴ要素の階層をレコードレベルと推定する。
【００２３】
＜解析木を使ったレコードレベル推定＞
図１１は、ＰＰＭＬデータを構文解析した解析木（タグ木構造）として扱うイメージ図である。図１１は、データ解析手段６１２が、印刷ジョブであるＰＰＭＬデータを解釈して要素を取得し、取得した要素をノードとすることにより得られる。図１１は、説明の簡単のために、ＰＰＭＬデータの要素のうち、ＪＯＢからＭＡＲＫまでの要素で解析木を記述し、ＰＰＭＬ要素と、ＭＡＲＫ要素と、より下の階層の要素を省略しているが、実際にはＭＡＲＫ要素の下にも要素は存在する。図１２、１３、１４は、図１１の解析木のレコードレベル候補要素であるＪＯＢ、ＤＯＣＵＭＥＮＴ、ＰＡＧＥ要素をルートノード（根ノード）として分割した部分木のイメージ図である。図１２の１２０１〜１２０２は、ルートノードをＪＯＢとした部分木である。図１３の１３０１、１３０２〜１３０４は、ルートノードをＤＯＣＵＭＥＮＴとした部分木である。図１４の１４０１〜１４１０はルートノードをＰＡＧＥとした部分木である。ａ〜ｉは、前述の部分木がもつ部分木である。前述したように、レコードとは一連の印刷単位であるため、各レコードのページ数や、各ページが持つ固定領域、可変領域等の構造が似ている。このため、レコードレベルである要素をルートノードとして分割した部分木同士も、構造が似ている。そこで、データ解析手段６１２は、レコードレベル候補要素ごとに部分木同士の類似度を求め、類似度の最も高い要素の階層がレコードレベルであると推定することができる。
木の類似度の求め方は、同じルートノードを持つ部分木同士がどれだけ類似しているかを判断することが可能であれば、どんな方法でもよい。本実施形態では、木の編集距離を用いてレコードレベルを推定する方法について説明する。木の編集距離を用いたＸＭＬ文書間の類似度の計算は従来技術である。データ解析手段６１２は、複数のＸＭＬ文書の間の類似度を測るため、ＸＭＬ文書を構成する木構造について、二つの木構造の各ノードに対して、挿入、削除、置換、といった編集操作を行って同じ木構造に変更するために要する編集操作の手数を数える。そして、データ解析手段６１２は、前記編集操作の手数に基づき木の編集距離を求める。この編集操作の手数を、以降コストと呼ぶ。データ解析手段６１２は、木の編集距離が小さいものは類似しているとして、類似した部分木を見つけ出す。
【００２４】
図１３を用いて、ルートノードがＤＯＣＵＭＥＮＴの部分木の編集距離を算出する例を説明する。木の編集距離は、ある木Ａに挿入、削除、置換の操作を施して、別の木Ｂに変換するために要する最小のコストｔ（回数）であり、これをｔ（Ａ、Ｂ）とする。ここで、ＪＯＢ、ＤＯＣＵＭＥＮＴ、ＰＡＧＥ要素をルートノードとした木の編集距離の平均値を、それぞれＳｊｏｂ、Ｓｄｏｃｕｍｅｎｔ、Ｓｐａｇｅとする。
編集距離の種類には、挿入、削除、置換のコストが全て１のものや、操作ごとにコストが違うもの等があるが、ここでは説明の簡単のため、操作のコストは全て１とする。まず、データ解析手段６１２は、図１３のＤＯＣＵＭＥＮＴ要素をルートノードとした部分木のうち、基準となる１つの部分木を基準木として定義する。
図１３の例では、データ解析手段６１２は、１３０２を基準木とする。そして、データ解析手段６１２は、基準木１３０２以外の木が基準木と一致するように、挿入、削除、置換の編集操作を行う。データ解析手段６１２は、この編集操作のコストの最小値から、基準木１３０２と１３０２以外の木との編集距離を算出し、その平均値を計算する。１３０３、１３０４は、基準木１３０２と構造が同じ木であるので、木の編集距離は、ｔ（１３０２、１３０３）＝ｔ（１３０２、１３０４）＝０となる。また、１３０１は、ＰＡＧＥをルートノードとする部分木ｅ、ｆの挿入が２回必要となるため、ｔ（１３０２、１３０１）＝２となる。したがって、ＤＯＣＵＭＥＮＴ要素をルートノードとした木の編集距離の平均値は、Ｓｄｏｃｕｍｅｎｔ＝（０＋０＋２）／３＝０．６６・・・となる。同様に、図１２の木の編集距離の平均値Ｓｊｏｂは、１２０１を１２０２に変換するのに、ＰＡＧＥをルートノードとする部分木ａ、ｂの挿入が２回、ＤＯＣＵＭＥＮＴ要素をルートノードとする部分木ｃ、ｄの挿入が２回必要である。したがって、ｔ（１２０１、１２０２）＝４となり、Ｓｊｏｂ＝（４）／１＝４となる。図１４は、基準木を１４０１とすると、１４０２を変換して１４０１にするコストは、ＭＡＲＫをルートノードとする部分木ｇ、ｈの削除が２回必要なので、ｔ（１４０２、１４０１）＝２である。１４０５、１４０８、１４１０についても１４０２と同じ編集操作が必要であるので、ｔ（１４０５、１４０１）＝ｔ（１４０８、１４０１）＝ｔ（１４１０、１４０１）＝２となる。１４０６を変換して１４０１にするコストは、ＭＡＲＫをルートノードとする部分木ｉの削除が１回必要なので、ｔ（１４０６、１４０１）＝１である。１４０３、１４０９についても１４０６と同じ編集操作が必要であるので、ｔ（１４０３、１４０１）＝ｔ（１４０９、１４０１）＝１となる。１４０４、１４０７、１４１０の部分木は基準木１４０１と同じ構造のため、コストは０となる。したがって、Ｓｐａｇｅ＝（２＋１＋０＋２＋１＋０＋２＋１＋０）／９＝９／９＝１となる。したがって、最も木の編集距離の平均値が小さいＤＯＣＵＭＥＮＴ要素をルートノードとした部分木同士の、木の類似度が高いと見なすことができる。そのため、データ解析手段６１２は、ＤＯＣＵＭＥＮＴ要素の階層をレコードレベルと推定する。
【００２５】
図１５は、図８のＳ８０５の処理の詳細を説明するフローチャートである。
ステップＳ１５０１において、データ取得手段６１１は、ＰＰＭＬデータを取得する。データ解析手段６１２は、前記ＰＰＭＬデータを解釈して解析木を作成する。そして、ステップＳ１５０２において、データ解析手段６１２は、レコードレベル候補要素をルートノードとして解析木を分割し、部分木を抽出する。次に、ステップＳ１５０３において、データ解析手段６１２は、前記部分木の、木の編集距離の平均値を計算し、各レコードレベル候補要素の木の類似度を比較する。木の編集距離の平均値Ｓｊｏｂが最も小さい場合、ステップＳ１５０４において、データ解析手段６１２は、ＪＯＢをルートノードとしたときの類似度が一番高いと判断する。この場合は、データ解析手段６１２は、ステップＳ１５０５に進み、ＪＯＢ要素の階層をレコードレベルと推定する。木の編集距離の平均値Ｓｄｏｃｕｍｅｎｔが最も小さい場合、データ解析手段６１２は、ＤＯＣＵＭＥＮＴをルートノードとしたときの類似度が一番高いと判断する。この場合は、データ解析手段６１２は、ステップＳ１５０６に進み、ＤＯＣＵＭＥＮＴ要素の階層をレコードレベルと推定する。木の編集距離の平均値Ｓｐａｇｅが最も小さい場合、データ解析手段６１２は、ＰＡＧＥをルートノードとしたときの類似度が一番高いと判断する。この場合は、データ解析手段６１２は、ステップＳ１５０７に進み、ＰＡＧＥ要素の階層をレコードレベルと推定する。
【００２６】
木の編集距離の平均値を比較した結果、２つ以上の要素で同じ値であるような場合を回避するためには、予めユーザが、レコードレベルにする要素の優先順位をＪＯＢ＞ＤＯＣＵＭＥＮＴ＞ＰＡＧＥのように設定しておく。優先順位は、ＰＡＧＥ＞ＤＯＣＵＭＥＮＴ＞ＪＯＢであっても何でもよい。これにより、木の編集距離の平均値が同じになった場合に、データ解析手段６１２が、優先順位の高い方の要素の階層をレコードレベルと推定することが可能である。
一般的に、ＰＰＭＬで複数レコードの記述を行う場合、上位階層のＰＰＭＬやＪＯＢ等のノードは共通パターンが多く、下位階層はレコードごとに共通パターンである必要はないことが多い。例えば、ＤＯＣＵＭＥＮＴやＰＡＧＥ等の要素は、顧客ごとに共通の数である場合が多いが、そのページに含まれる、ＭＡＲＫやＯＢＪＥＣＴ等のコンテンツを表現する要素は、顧客ごとに配置や個数を変えるため、異なっている。そのため、上位階層のノードに対する編集操作のコストに重みをつけることにより、文書の特徴を反映した木の類似度の算出を行うことも可能となる。
また、予めページが持つ可変領域や固定領域の配置や個数が印刷単位ごとに異なっているということが既知である場合、データ解析手段６１２は、ＰＰＭＬデータが持つ要素全てを使わず、ある要素より上位階層の要素のみの木の類似度の比較を行う。このことにより、推定を効率化することができる。
【００２７】
＜レコードレベル選択＞
図１６は、レコードレベル設定画面１６０のイメージ図である。レコードレベル設定画面１６０は、レコードレベル設定表示部６０が表示手段６０１により、表示装置部５０１に表示する。ページ表示領域１６０１は、レコードレベルの推定結果又はユーザからのレコードレベルの選択を反映させて、ページの内容を表示する領域である。レコードレベル選択オブジェクトの一例であるレコードレベル選択ラジオボタン１６０２は、ユーザからのレコードレベル候補要素の選択を受け付けるラジオボタンである。なお、ラジオボタンはレコードレベル選択オブジェクトの一例であって、レコードレベル選択オブジェクトとしては例えばプルダウンメニュー等であってもよい。レコードレベル設定画面１６０の初期画面においては、ラジオボタンにおいて、レコードレベル推定部６１で推定されたレコードレベルが選択された状態であるものとする。
ユーザから、ＪＯＢ、ＤＯＣＵＭＥＮＴ、ＰＡＧＥ要素の何れかのラジオボタンの選択を受け付けると、レコードレベル選択取得手段６２４は、前記選択を受け付けた要素をレコードレベルとして受け取る。レコードレベル表示制御手段６２３は、前記レコードレベルを表示手段６０１に伝達し、表示手段６０１は、レコードレベル設定画面１６０を前記取得したレコードレベルを反映する表示に変更する。確定ボタン１６０３は、現在、レコードレベル設定画面１６０で選択を受け付けている要素をレコードレベルに設定するためのボタンである。キャンセルボタン１６０４は、レコードレベルの設定を行わずに、レコードレベル設定表示部をクローズしてレコードレベルの設定のための処理を終了するためのボタンである。
【００２８】
図１６のページ表示領域１６０１は、ＪＯＢ要素の階層をレコードレベルとした場合の表示のイメージである。ＪＯＢ要素の階層をレコードレベルとする場合は、ＪＯＢ要素が持つＤＯＣＵＭＥＮＴ要素の階層構造が無視され、各ＤＯＣＵＭＥＮＴ要素が持つページが、ＪＯＢ要素の直下の階層に存在するものとして表示される。このようなＪＯＢ要素をレコードレベルとしたページ表示領域１６０１の表示を、ＪＯＢ単位の表示と呼ぶ。ＤＯＣＵＭＥＮＴ要素の階層、ＰＡＧＥ要素の階層をレコードレベルとして表示する場合も同様に、ＤＯＣＵＭＥＮＴ単位の表示、ＰＡＧＥ単位の表示と呼ぶ。ページ表示領域１６０１のページの表示方法としては、表示する予定のページを予めＲＩＰ処理し、得られたページのビットマップ画像データをサムネイル表示してもよいし、ＲＩＰ処理は行わずにページのレイアウトの出力イメージを表示するのでもよい。レコードレベル表示制御手段６２３は、レコードレベル推定結果取得手段６２２で取得したレコードレベルを反映させてレコードレベル設定画面１６０を表示するか、又はレコードレベル選択取得手段で取得したレコードレベルを反映させて表示する。レコードレベルをレコードレベル設定画面１６０のページ表示領域１６０１に反映させて表示することを、以下、レコードレベルによるページ表示と呼ぶ。
【００２９】
図１７Ａ、図１７Ｂ、図１８Ａ、図１８Ｂを使って、レコードレベルによる表示の切り替えを説明する。図１７Ａは、ＰＰＭＬデータの印刷イメージを、ＪＯＢ単位でレコードレベル設定画面１６０に表示する場合の一例の図である。図１７Ｂは、図１７Ａと同じＰＰＭＬデータの印刷イメージを、ＤＯＣＵＭＥＮＴ単位でレコードレベル設定画面１６０に表示する場合の一例の図である。レコードレベル表示制御手段６２３は、ユーザからレコードレベル選択ラジオボタン１６０２の選択を受け付けることにより、ラジオボタンの選択がＪＯＢの場合は図１７Ａ、ＤＯＣＵＭＥＮＴの場合は図１７Ｂに切り替える。現在のレコードレベル設定画面１６０が図１７Ａであり、ユーザがページ表示領域１６０１の表示をＪＯＢ単位からＤＯＣＵＭＥＮＴ単位に変更したいとする。この場合、レコードレベル選択取得手段６２４が、ユーザからレコードレベル選択ラジオボタン１６０２の選択を受け付ける。このことにより、レコードレベル表示制御手段６２３が、ページ表示領域１６０１の表示をＤＯＣＵＭＥＮＴ単位の表示（図１７Ｂ）に切り替える。
同様に、図１８Ａは、ＰＰＭＬデータの印刷イメージを、ＤＯＣＵＭＥＮＴ単位でレコードレベル設定画面１６０に表示する場合の一例の図である。図１８Ｂは、図１８Ａと同じＰＰＭＬデータの印刷イメージを、ＰＡＧＥ単位でレコードレベル設定画面１６０に表示するときの一例の図である。レコードレベル表示制御手段６２３は、レコードレベル選択ラジオボタン１６０２の選択を受け付けることにより、ラジオボタンの選択がＤＯＣＵＭＥＮＴの場合は図１８Ａ、ＰＡＧＥの場合は図１８Ｂの表示に切り替える。現在のレコードレベル設定画面１６０が図１８Ａであるとき、ユーザが、レコードレベル設定表示部のページ表示領域１６０１の表示をＤＯＣＵＭＥＮＴ単位からＰＡＧＥ単位に変更したいとする。この場合は、レコードレベル選択取得手段６２４が、ユーザからレコードレベル選択ラジオボタン１６０２の選択を受け付ける。このことにより、レコードレベル表示制御手段６２３が、ページ表示領域１６０１の表示をＰＡＧＥ単位の表示（図１８Ｂ）に切り替える。
図１７の例では、図１７Ｂのレコードレベルによる表示のとき、表紙がレコードレベルとして設定した要素の最初に現れることが確認できるので、図１７Ｂの方がレコードレベルである可能性が高いと考えられる。図１８の例では、全てのページが同じ構成のページであることから、１ページが１レコードに対応しているため、ＰＡＧＥをレコードに対応づけた図１８Ｂの方がレコードレベルである可能性が高いと考えられる。図１７、図１８で説明した表示の切り替えによって、ユーザから受け付けたレコードレベルの選択が適切か否かをユーザが判断することができる。
【００３０】
図１９は、ユーザからのレコードレベルの選択を説明するフローチャートである。
ステップＳ１９０１において、レコードレベル推定結果取得手段６２２は、レコードレベル推定部６１により推定されたレコードレベルを取得する。ステップＳ１９０２において、レコードレベル表示制御手段６２３は、前記推定された結果を反映して、レコードレベル設定画面１６０のページ表示領域１６０１にレコードレベルによるページ表示を行う。
ステップＳ１９０３において、レコードレベル選択取得手段６２４は、ユーザから確定ボタンの選択がない場合、ステップＳ１９０４に進み、レコードレベル選択ラジオボタン１６０２より、ユーザからのレコードレベルの選択を受け付ける。次に、ステップＳ１９０５において、レコードレベル表示制御手段６２３は、ステップＳ１９０４で選択を受け付けたレコードレベルによるページ表示を行う。レコードレベル選択部６２は、ユーザから確定ボタンの選択を受け付けるまでステップＳ１９０３〜Ｓ１９０５を繰り返す。ステップ１９０３で、ユーザから確定ボタン１６０３の選択を受け付けた場合、レコードレベル選択部６２は、ステップＳ１９０６に進み、現在選択中の要素をレコードレベルに設定してレコードレベルの選択を終了する。このフローの途中で、キャンセルボタン１６０４の選択を受け付けた場合、レコードレベル選択部６２は、レコードレベルを設定せずに、終了する。
【００３１】
＜レコードレベル伝達方法＞
レコードレベル伝達方法は、プリントサーバ４０２が後加工機４０４を制御することができれば、どのような方法でもよい。レコードレベルを伝達する方法の１つに、情報処理装置６００が、メタデータを使ってレコードレベルと要素とを対応付けてプリントサーバ４０２に伝達する方法がある。
図２０は、メタデータを使ってレコードレベルを後工程に伝達するＰＰＭＬデータの記述のイメージ図である。２００１は、レコードレベルと要素とを対応付けるメタデータの記述部分である。図２０では、レコードレベルをＤＯＣＵＭＥＮＴ要素と対応付ける記述が、メタデータを用いてなされている。メタデータを使って後工程にレコードレベルを伝達する場合、レコードレベル選択結果伝達手段６２５は、メタデータの中にあるＤＡＴＵＭ要素のＫｅｙ属性に、このメタデータがレコードレベルを指定するという記述を行う。そして、レコードレベル選択結果伝達手段６２５は、ＤＡＴＵＭ要素のコンテンツとしてレコードレベルとする要素名を記述する。レコードレベルがＪＯＢ、ＰＡＧＥの場合、ＤＡＴＵＭ要素の値の"ＤＯＣＵＭＥＮＴ"の部分が"ＪＯＢ"，"ＰＡＧＥ"となる。
メタデータにレコードレベルを明示的に記述したＰＰＭＬデータを後工程に伝達することにより、プリントサーバ４０２は、後加工機４０４を制御し、ジョブチケットに記載のレコード単位の印刷制御が可能となる。
【００３２】
なお、前述の方法によりレコードレベルを後工程に送るとき、本実施形態の情報処理装置は、ＰＰＭＬデータを入力として受け付け、メタデータを付与したＰＰＭＬデータを出力し、ジョブチケットと一緒にプリントサーバ４０２に送信する。プリントサーバ４０２はこのデータを受け付け、メタデータ付与後のＰＰＭＬデータを使用してＲＩＰ処理を行い、ジョブチケットにより後加工機４０４を制御して印刷する。
プリントサーバ４０２にレコードレベルを伝達する上記以外の方法としては、ＰＰＭＬにメタデータを付与するのではなく、ジョブチケットのレコードレベルに相当する部分にレコードレベルとする要素名を記述する方法がある。また、レコードレベルを、システムが理解可能な内部情報として格納する方法等がある。
本実施形態ではＶＤＰアプリケーションから出力された印刷ジョブの解析・表示・選択・伝達をホットフォルダで行っているが、ＲＩＰ処理の前であれば、どこで実施してもよく、ＶＤＰアプリケーション、ワークフローソフト、プリントサーバ等に適用可能である。
【００３３】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３４】
以上、上述した各実施形態によれば、ＰＰＭＬ等の書式で記述された印刷ジョブを構造的に解析することにより、レコードに対応する要素の階層を推定する機能を提供することができる。推定結果の確認と、推定ができない場合に対応するため、ユーザが明示的にレコードに対応する要素の階層を設定できる手段を提供することができる。取得したレコードに対応する要素の階層を後工程に伝達することにより、印刷の後工程でレコード単位の後加工を行う手段を提供することができる。これにより、ＶＤＰ言語フォーマットがレコード区切りを指定できない場合であっても、レコードに対応する要素の階層を指定できる。また、ＶＤＰ言語フォーマットについての知識がなくても、上記推定結果が正しいのかどうかをユーザが確認でき、正しくない場合は修正を指示できる。また、上記により決定されたレコードに対応する要素の階層を印刷の後工程に伝達し、レコードごとの後処理ができるようになる。
上述した各実施形態によれば、ＰＰＭＬ等の書式で記述された、どの要素がレコードレベルに対応するかの規定が明確にはない印刷ジョブにおいて、レコード単位の処理を可能にすることできる。
【００３５】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
0005538995.tif 000002
【図２】
0005538995.tif 000003
【図３】
0005538995.tif 000004
【図４】
0005538995.tif 000005
【図５】
0005538995.tif 000006
【図６】
0005538995.tif 000007
【図７】
0005538995.tif 000008
【図８】
0005538995.tif 000009
【図９Ａ】
0005538995.tif 000010
【図９Ｂ】
0005538995.tif 000011
【図９Ｃ】
0005538995.tif 000012
【図１０】
0005538995.tif 000013
【図１１】
0005538995.tif 000014
【図１２】
0005538995.tif 000015
【図１３】
0005538995.tif 000016
【図１４】
0005538995.tif 000017
【図１５】
0005538995.tif 000018
【図１６】
0005538995.tif 000019
【図１７Ａ】
0005538995.tif 000020
【図１７Ｂ】
0005538995.tif 000021
【図１８Ａ】
0005538995.tif 000022
【図１８Ｂ】
0005538995.tif 000023
【図１９】
0005538995.tif 000024
【図２０】
0005538995.tif 000025