(57)【要約】【課題】  あらゆるドキュメントを直接入力を受けて処理するプリンタドライバを提供する。【解決手段】  プリンタに複数のPDLのインタープリタを用意しておき、プリンタドライバは、対象とするドキュメントのデータ形式が用意されたインタープリタに存在する場合には、そのインタープリタを実行して表示や印刷データを作成し、対象とするインタープリタが存在しない場合には、最適なPDLに変換してインタープリタを実行する。【選択図】  図１
2005173801.tif 000002
【特許請求の範囲】
【請求項１】
複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける入力ステップと、前記入力ステップによって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断ステップと、前記判断ステップによってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開ステップと、前記判断ステップによってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換ステップと、前記変換ステップによって変換されたデータを展開する第２の展開ステップを有することを特徴とするドキュメント印刷方法。
【請求項２】
複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける入力手段と、前記入力手段によって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断手段と、前記判断手段によってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開手段と、前記判断手段によってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換手段と、前記変換手段によって変換されたデータを展開する第２の展開手段を有することを特徴とするドキュメント印刷システム。
【請求項３】
複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける入力手順と、前記入力手順によって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断手順と、前記判断手順によってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開手順と、前記判断手順によってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換手順と、前記変換手順によって変換されたデータを展開する第２の展開手順を有することを特徴とする記憶媒体。
【請求項４】
複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける第１の入力ステップと、バリアブルデータの入力を受け付ける第２の入力ステップと、前記入力ステップによって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断ステップと、前記判断ステップによってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開ステップと、前記判断ステップによってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換ステップと、前記変換ステップによって変換されたデータを展開する第２の展開ステップとを有し、前記ドキュメントとバリアブルデータそれぞれについて前記第１の展開ステップあるいは第２の展開ステップによって展開されたデータを合成する合成ステップを有することを特徴とするドキュメント印刷システム。
【請求項５】
複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける第１の入力手段と、バリアブルデータの入力を受け付ける第２の入力手段と、前記入力手段によって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断手段と、前記判断手段によってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開手段と、前記判断手段によってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換手段と、前記変換手段によって変換されたデータを展開する第２の展開手段とを有し、前記ドキュメントとバリアブルデータそれぞれについて前記第１の展開手段あるいは第２の展開手段によって展開されたデータを合成する合成手段を有することを特徴とするドキュメント印刷システム。
【請求項６】
複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける第１の入力手順と、バリアブルデータの入力を受け付ける第２の入力手順と、前記入力手順によって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断手順と、前記判断手順によってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開手順と、前記判断手順によってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換手順と、前記変換手順によって変換されたデータを展開する第２の展開手順とを有し、前記ドキュメントとバリアブルデータそれぞれについて前記第１の展開手順あるいは第２の展開手順によって展開されたデータを合成する合成手順を有することを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表現形式の異なる複数のPDLのドキュメントが混在したデータを入力として、高速に表示、印刷するマルチPDL処理の技術に関する。
【背景技術】
【０００２】
従来、HTMLやXHTML、SVGといったドキュメントを扱う場合には、ドライバを通してPDLやイメージに変換して印刷を行ない、ドキュメントを直接入力として受けて表示、印刷するということは行っていなかった。
【０００３】
またバリアブルプリント等の処理において、背景用データ形式と前面の入れ替え用バリアブルデータ形式のデータ形式は同一の場合のみ処理可能であった。
【特許文献１】特開２００３−０１５９９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら上記の場合、複数のドキュメントをまとめたデータが存在する場合、それぞれのドキュメントのデータ形式が異なる場合には、それぞれのアプリを経由してドライバで印刷しなければならないという問題点があった。
【０００５】
またバリアブルプリントの場合、背景用データと前面の入れ替えようデータのデータ形式を統一する必要があり、内容的に軽いデータの場合にも一旦データ形式に変換する必要があり、パフォーマンスが得られないという問題点があった。
【０００６】
そこで本発明では、上記問題点を解決するために、複数のPDLのインタープリタを用意し、対象とするドキュメントのデータ形式が用意されたインタープリタに存在する場合には、そのインタープリタを実行して表示や印刷データを作成し、対象とするインタープリタが存在しない場合には、最適なPDLに変換してインタープリタを実行することにより、あらゆるドキュメントを直接入力を受けて処理することが可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の請求項1の方法は、複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける入力ステップと、前記入力ステップによって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断ステップと、前記判断ステップによってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開ステップと、前記判断ステップによってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換ステップと、前記変換ステップによって変換されたデータを展開する第２の展開ステップを有することを特徴とする。
【０００８】
請求項２記載のシステムは、複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける入力手段と、前記入力手段によって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断手段と、前記判断手段によってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開手段と、前記判断手段によってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換手段と、前記変換手段によって変換されたデータを展開する第２の展開手段を有することを特徴とする。
【０００９】
請求項３記載の記憶媒体は複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける入力手順と、前記入力手順によって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断手順と、前記判断手順によってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開手順と、前記判断手順によってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換手順と、前記変換手順によって変換されたデータを展開する第２の展開手順を有することを特徴とする。
【００１０】
請求項４記載の方法は、複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける第１の入力ステップと、バリアブルデータの入力を受け付ける第２の入力ステップと、前記入力ステップによって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断ステップと、前記判断ステップによってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開ステップと、前記判断ステップによってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換ステップと、前記変換ステップによって変換されたデータを展開する第２の展開ステップとを有し、前記ドキュメントとバリアブルデータそれぞれについて前記第１の展開ステップあるいは第２の展開ステップによって展開されたデータを合成する合成ステップを有することを特徴とする。
【００１１】
請求項５記載のシステムは、複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける第１の入力手段と、バリアブルデータの入力を受け付ける第２の入力手段と、前記入力手段によって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断手段と、前記判断手段によってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開手段と、前記判断手段によってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換手段と、前記変換手段によって変換されたデータを展開する第２の展開手段とを有し、前記ドキュメントとバリアブルデータそれぞれについて前記第１の展開手段あるいは第２の展開手段によって展開されたデータを合成する合成手段を有することを特徴とするドキュメント印刷システム。
【００１２】
請求項６記載の記憶媒体は、複数のインタープリタが動作する環境において、あるフォーマットのドキュメントの入力を受け付ける第１の入力手順と、バリアブルデータの入力を受け付ける第２の入力手順と、前記入力手順によって入力されたデータタイプを解釈するインタープリタが存在するかどうかを判断する判断手順と、前記判断手順によってインタープリタが存在すると判断された場合には、そのインタープリタによってデータを展開する第１の展開手順と、前記判断手順によってインタープリタが存在しない場合には、解釈可能なデータ形式に変換する変換手順と、前記変換手順によって変換されたデータを展開する第２の展開手順とを有し、前記ドキュメントとバリアブルデータそれぞれについて前記第１の展開手順あるいは第２の展開手順によって展開されたデータを合成する合成手順を有することを特徴とする。
【発明の効果】
【００１３】
以上説明したように本発明によれば、入力データに対して最適なインタープリタを選択して出力することが可能になり、どのようなデータも高速に出力することが可能となる。
【００１４】
また以上説明したように本発明の他の実施例によればバリアブルプリントについて、そのときのデータの種類に応じて高速に出力することが可能となる。
【発明を実施するための最良の形態】
【００１５】
（第１実施例）
以下、本発明の実施の形態例を図面を参照しながら説明する。
【００１６】
図１は、本発明の実施の形態例に係る文書印刷システムのシステム構成図であり、本システムは、複数台のパーソナルコンピュータ（以下、クライアントパソコンという）X、Yと、1台のファイルサーバFSと、1台のWebサーバWSと、1台のプリントサーバPSと、少なくとも1台のプリンタAが、ネットワークNにより接続された構成となっている。そして、携帯情報端末のようなモバイル端末Mがプリンタに直接IrDA、RS-232Cやセントロニクスなどを通してネットワークに接続することなくプリンタにつながっている。なお、クライアントパソコンX、Yの代わりに、ワードプロセッサ、ワークステーション、携帯情報端末等の情報処理装置を接続することも可能である。また、クライアントパソコンX、YおよびファイルサーバFSは、複数種のフォントにかかるフォントデータ群やWebのデータや画像データ等が格納されている。
【００１７】
本システムでは、モバイル端末MあるいはクライアントパソコンXまたはYからプリンタに対して印刷したいWebのURLやPDFデータ等のドキュメント存在場所、及び印刷部数等の印刷要求を出し、プリンタからWebサーバにファイル要求を出し、Webサーバは必要な文書データやフォントデータ等をファイルサーバより集めて、プリントサーバに転送し、プリントサーバはその転送されたデータを展開しプリンタの送ることによって印刷する。
【００１８】
図２は、上記クライアントパソコンX、Y及びファイルサーバFS及びWebサーバWS及びプリントサーバPSの概略構成を示すブロック図である。図２において、101はCPU、すなわち中央処理装置であり、装置全体の制御及び演算処理等を行う。102はROMすなわち読み出し専用メモリであり、システム起動プログラム、基本Ｉ／Ｏプログラム、及び文字コードをビットパターンに変換するための文字パターンデータ（フォントデータ）等を記憶している。103はＲＡＭすなわちランダムアクセスメモリであり、ＣＰＵ101の演算に使用するデータや演算結果、表示のために文字コードから変換された文字パターンデータ列や図形データ、イメージデータ等を一時記憶する。
【００１９】
104はＫＢＣ、すなわちキーボード制御部であり、105はＫＢ、すなわちキーボードよりキー入力データ（文字コードや制御コード）を受け取り、ＣＰＵ101へ伝達する。106はＣＲＴＣ、すなわちディスプレイ制御部であり、ＲＡＭ103に格納された文字パターンデータ列を読み出し、ＣＲＴ107に転送する。107はＣＲＴ、すなわちディスプレイ装置であり、ＣＲＴＣ106より文字パターンデータ列、図形データ、イメージデータを受け取り、表示画面に表示する。
【００２０】
108はＤＫＣ、すなわちディスク制御部であり、外部記憶装置109に対するアクセス制御を行う。109はＦＤ、すなわちフロッピー（登録商標）ディスク装置、あるいはHD、すなわちハードディスク装置、あるいはCD−ROM等の外部記憶装置である。HDには、文字パターンデータ（フォントデータ）やフォントデータを読み出してビットマップデータに変換する文字展開処理プログラム、図形データを処理する図形展開処理プログラム、イメージデータを処理するイメージデータ処理プログラム等を記憶している。
【００２１】
本発明にかかる図5や図７の処理等を行うアプリケーションプログラム、及び関連データは、フロッピー（登録商標）ディスク装置、あるいはCD−ROM等の外部記憶装置から供給される。
【００２２】
１１０はNTC、すなわちネットワーク制御部であり、ＮＴ、すなわちネットワーク装置１１１の動作を制御する。１１２はシステムバスであり、上述の構成要素間のデータ転送を行う。
【００２３】
図３は本発明にかかる図５や図７の処理を行う際のＲＡＭ１０３のメモリマップを示した図である。基本Ｉ／Ｏプログラムは、ＲＯＭ１０２内のシステム起動プログラムによりＲＡＭ１０３に読み込まれる。また、外部記憶装置１０９としてのフロッピー（登録商標）ディスク装置、あるいはＣＤ−ＲＯＭからアプリケーションプログラム、及び関連データを一旦、ハードディスク装置へインストールした状態で電源がＯＮされたときに、ハードディスク装置からＲＡＭ１０３にロードすることにより、実行することが可能となる。なお、ハードディスク装置へインストールせずに、直接フロッピー（登録商標）ディスク装置、或いはＣＤ−ＲＯＭからＲＡＭ１０３にロードして実行することも可能である。なお、ファイルサーバFSでは、後述のプリンタ情報テーブルが関連データの領域に形成されている。
【００２４】
図４は、プリンタＡの概略を示すブロック図である。なお、プリンタＡは、レーザビームプリンタ、バブルジェット（登録商標）プリンタ、或いは熱転写プリンタ等のいずれのタイプでもよい。
【００２５】
プリンタＡは、図４に示したように、ＣＰＵ２１１，ＲＯＭ２１２，ＲＡＭ２１３，システムバス２１４、プリンタコントローラ（ＰＲＴＣ）２１５、プリンタエンジン（ＰＲＴ）２１６、ディスクコントローラ（DKC）２１７、ハードディスク装置（HD）２１８、ネットワークコントローラ（ＮＴＣ）２１９、及びネットワーク装置（ＮＴ）２２０を有している。なお、DKC２１７およびHD２１８はプリンタの種類によっては存在しない場合もある。
【００２６】
ＣＰＵ２１１は、装置全体を制御する中央処理装置であり、ＲＡＭ２１３をワークエリア等として利用しながら、ＲＯＭ２１２に格納されたプログラムに従がって、印刷に必要な各種の処理を実行する。システムバス２１４は、上記各構成要素間でデータ、制御信号を授受するための通路となっている。なお、ＲＯＭ２１２には、文字パターンデータ（フォントデータ）等が格納されている。そしてRAM２１３またはHD２１８には、WebサーバWSへ要求した文書データやイメージデータあるいはフォントデータ等がWebサーバWSからダウンロードされ、格納される場合と、プリントサーバPSからイメージに展開された出力データがダウンロードされる場合がある。
【００２７】
ＣＰＵ２１１は、WebサーバWSあるいはプリントサーバPSから供給された文書データ、イメージデータあるいはフォントデータを、ＲＯＭ２１２内にあるプログラムに従がって文字パターンデータや画像データ（ビットマップデータ）を生成して、プリンタコントローラ２１５内の印刷バッファに展開する。プリンタコントローラ２１５は、ビットマップデータに基づいて生成した印刷コントロール信号をプリンタエンジン２１６に出力する。
【００２８】
ネットワークコントローラ２１９は、ネットワークＮを介してクライアントパソコンＸ，ＹやファイルサーバFSやプリントサーバPSとの間でデータ送受信を行う際のネットワーク装置（ＮＴ）２２０の動作を制御している。
【００２９】
次に図５のフローチャートを用いて本発明の詳細を説明する。
【００３０】
ステップ５−１においては、入力データを受け付ける。このときのデータはPDF、PS、PCL、LIPS、SVG、HTML、XHTML等が挙げられる。これらのデータは印刷すべきドキュメントのデータおよび出力時に２in１や４in１といったNupの指定、あるいは両面印刷等の印刷指示命令も含んでいる。
【００３１】
そしてこれらのドキュメントデータおよび印刷指示命令を受け取った後、ステップ５−２において受け付けたドキュメントデータの種類を解析する。ことの期の解析方法としては、ステップ５−１において入力する際にあらかじめドキュメントの種類を印刷指示命令の中に書き込んでおいておき、それをチェックしてドキュメントの内容がどのような記述形式で書いてあるかを判断することが可能であるし、印刷指示命令の中にドキュメントの種類が書き込んでない場合でも、対象となるドキュメントのヘッダ部分を検索し、ヘッダの内容によって対象ドキュメントの種類を判定することも可能である。
【００３２】
そして対象となるドキュメントの種類がわかった後に、ステップ５−３において、それぞれの種類によってドキュメントの展開が可能なインタープリンタを選択する。PDF、PSあるいはSVGのようにインタープリタが存在する場合には、問題なくそのインタープリタを使って処理を行う。対象ドキュメントがPDFの場合にはステップ５−４へ進み、対象ドキュメントがPSの場合にはステップ５−５へ進み、対象データがSVGの場合にはステップ５−８へ進む。また、対象データがPDF、PS、SVG以外の場合にはここで直接処理はできないのだが、ドキュメントフォーマット変換モジュールを使ってSVG形式に変更することによってインタープリタに通すことが可能になるので、PDF、PS、SVG以外のドキュメントフォーマットが入力された場合には、ステップ５−８へ進む。ここではSVGへ変換する場合について述べているが、特にPDFやPSに変換することも可能であることは言うまでもない。
【００３３】
ステップ５−４においては、入力ドキュメントがPDFであった場合であり、PDFのデータの解釈、およびページデータの抽出、フォントの展開、イメージの展開、図形の処理、色の対応等、PDFデータを解釈して展開処理を行う。
【００３４】
そしてステップ５−５において、ステップ５−４で解釈した内容をRIPモジュールへ渡すためにRIPモジュールが解釈できる形式のデータに変換する。このときのデータ形式としては、塗りつぶしのスタート／ストップ情報、塗りつぶしの色情報、イメージの縦横のサイズとのその配置情報、フォントデータおよびその配置情報および色情報等である。これらの内容をデータ化した集合をディスプレイリストとして生成する。
【００３５】
ステップ５−６においては、入力ドキュメントがPSであった場合であり、PDFの場合と同様、PSのデータの解釈、およびページデータの抽出、フォントの展開、イメージの展開、図形の処理、色の対応等、PSデータを解釈して展開処理を行う。
【００３６】
そしてステップ５−７において、ステップ５−６で解釈した内容をRIPモジュールへ渡すためにRIPモジュールが解釈できる形式のデータに変換する。このときのデータ形式としては、塗りつぶしのスタート／ストップ情報、塗りつぶしの色情報、イメージの縦横のサイズとのその配置情報、フォントデータおよびその配置情報および色情報等である。これらの内容をデータ化した集合をディスプレイリストとして生成する。
【００３７】
ステップ５−８からステップ５−１１の処理においては、入力データとしてPDFやPS以外のドキュメントが渡された場合であり、たとえばSVG、XHTML、HTMLといったXML系のドキュメントであってもよいし、あるいはWordやExcel等の一般アプリのドキュメントであってもよい。ステップ５−８においては、まず入力ドキュメントがSVGデータであるかどうかをチェックする。SVGデータの場合は特にデータを変換する必要がないのでステップ５−１０へ進みSVGデータの解釈を行う。入力ドキュメントがSVGデータ以外の場合はステップ５−９へ進み、入力ドキュメントのフォーマットをSVGデータに一旦変換する作業を行う。
【００３８】
ステップ５−９においては、入力データがSVGデータ以外だった場合であり、ここでの処理は、入力されたSVG以外のデータをSVGに変換する作業を行う。たとえばXHTMLやHTMLといったタグベースのドキュメントフォーマットが明らかにわかっている場合のデータについては、SVGとの機能比較を行い、同一の機能についてはXHTMLやHTMLのタグからSVGのタグへの変換をおこない、同一でない機能については、SVGの機能に合うように変換する。XHTMLやHTMLからSVGへ変換する詳細については、本出願人の出願の特開2001−344232で述べているのでここでの詳細の説明は省略する。また一般アプリケーションのデータが入力された場合には、アプリケーションからドライバが呼ばれ、ドライバの内部でGDIからSVGへ変換し、ドライバの出力としてSVGを出力することにより可能となる。
【００３９】
そしてステップ５−１０においては、入力として受け取ったSVGデータ、あるいはステップ５−９でSVGに変換されたデータを解釈し、ページデータの抽出、フォントの展開、イメージの展開、図形の処理、色の対応等、SVGデータを解釈して展開処理を行う。
【００４０】
そしてステップ５−１１において、ステップ５−１０で解釈した内容をRIPモジュールへ渡すためにRIPモジュールが解釈できる形式のデータに変換する。このときのデータ形式としては、塗りつぶしのスタート／ストップ情報、塗りつぶしの色情報、イメージの縦横のサイズとのその配置情報、フォントデータおよびその配置情報および色情報等である。これらの内容をデータ化した集合をディスプレイリストとして生成する。
【００４１】
ステップ５−１２においては、プリンタへデータを出力する際にディスプレイリストで出力するのかイメージに変換して出力するのかを選択する。出力装置にディスプレイリストを解釈できるモジュールが入っている場合にはディスプレイリストで出力する方がプリンタへ転送するデータ量が小さくてよいので、この場合にはディスプレイリストで出力するためにステップ５−１３へ進む。また出力装置にディスプレイリストを解釈できるモジュールが入っていない場合には、イメージに変換して出力する必要があるのでステップ５−１４へ進む。
【００４２】
ステップ５−１３においては、出力装置がディスプレイリストを解釈できる場合であり、ステップ５−５、ステップ５−７、あるいはステップ５−１１で生成したディスプレイリストをプリンタへ転送する。
【００４３】
ステップ５−１４においては、出力装置がディスプレイリストを解釈できない場合であり、ステップ５−５、ステップ５−７、あるいはステップ５−１１で生成したディスプレイリストを解釈してイメージデータを生成する。ここでの生成の詳細は本発明の本質ではないのでここでの説明は省略する。
【００４４】
そしてステップ５−１５においては、ステップ５−１４で生成したイメージデータをプリンタへ転送する。
【００４５】
（第２実施例）
次に図６および図７のフローチャートを用いて本発明の第２実施例の詳細を説明する。
【００４６】
図６においては、本発明の第２実施例におけるモジュールのブロック図をあらわしたものであり、６０１は入力ドキュメントであり、PDF、PS、SVG等のドキュメントを指す。６０２は、入力ドキュメントの出力形態を制御するJobTicket（出力指示書）であり、その内容としては、用紙のサイズ、片面や両面の指定、面付けの指示、フィニッシャーの指定等が含まれる。６０３はバリアブルデータであり、顧客の住所録やその他その顧客に対しての挨拶の文面や画像情報等、その顧客固有の情報が含まれている。６０４はドキュメントパーサであり、６０１，６０２，６０３から受け取ったデータをそれぞれの種類やRIP処理をするにあたってどのようなことを行わなければならないか等を解析し、その解析結果とドキュメント内容を６０５のジョブマネージャに渡す。ジョブマネージャでは解析結果に基づき６０６のPDFインタープリタ、６０７のPSインタープリタ、６０８のSVGインタープリタのうちどれを使って処理するか等をマネージメントする。６０９はディスプレイリストジェネレータであり、６０６,６０７,６０８の各種インタープリタからインタープリとした結果に基づきRIPエンジンに渡すディスプレイリストを生成する。このときプリンタにここで生成するディスプレイリストを解釈できるRIPが存在していればプリンタへディスプレイリストを出力することも可能であり、本モジュールの６１０のRIPエンジンに渡すことも可能である。
【００４７】
次に図７のフローチャートを用いて本発明の他の実施例の詳細を説明する。
【００４８】
ステップ７−１においては、入力データを受け付ける。このときのデータはPDF、PS、PCL、LIPS、SVG、HTML、XHTML等が挙げられる。これらのデータは印刷すべきドキュメントのデータおよび出力時に２in１や４in１といったNupの指定、あるいは両面印刷等の印刷指示命令も含んでいる。また図６の６０３で示したバリアブルデータも入力の対象となる。バリアブルデータの処理とは、図８に示すように個人単位でその個人の住所や氏名、あるいはその個人へのメッセージや図がデータベースに格納されていて、PSやPDFで表現されたページデータを同一の背景として持たせ、データベースに格納された内容を個人単位で切り替え、個別の情報を１枚ずつ出力することが可能となる処理である。もっとも簡単な例では、はがきのあて先や氏名を入れ替え、裏面のデータは共通といったようなものがある。また少し高度になると、裏面のデータも個人レベルの趣味に合わせて文面や図を入れ替えることも可能である。当然ながらはがきのみではなく、通常の用紙への出力も対象でダイレクトメール等にも利用される。そこでバリアブルデータが存在する場合には、これから背景用データを処理するのかバリアブル用のデータを処理するのかのフラグをセットしておき、ステップ７−５、ステップ７−７あるいはステップ７−１１で中間データであるディスプレイリストを格納する際に、そのフラグをともに保存することによって背景用データなのかバリアブル出力用のデータなのかの区別を行う。
【００４９】
そしてこれらのドキュメントデータおよび印刷指示命令あるいはバリアブルデータを受け取った後、ステップ７−２において受け付けたドキュメントデータの種類を解析する。ことの期の解析方法としては、ステップ７−１において入力する際にあらかじめドキュメントの種類を印刷指示命令の中に書き込んでおいておき、それをチェックしてドキュメントの内容がどのような記述形式で書いてあるかを判断することが可能であるし、印刷指示命令の中にドキュメントの種類が書き込んでない場合でも、対象となるドキュメントのヘッダ部分を検索し、ヘッダの内容によって対象ドキュメントの種類を判定することも可能である。
【００５０】
そして対象となるドキュメントの種類がわかった後に、ステップ７−３において、それぞれの種類によってドキュメントの展開が可能なインタープリンタを選択する。PDF、PSあるいはSVGのようにインタープリタが存在する場合には、問題なくそのインタープリタを使って処理を行う。対象ドキュメントがPDFの場合にはステップ７−４へ進み、対象ドキュメントがPSの場合にはステップ７−５へ進み、対象データがSVGの場合にはステップ７−８へ進む。また、対象データがPDF、PS、SVG以外の場合にはここで直接処理はできないのだが、ドキュメントフォーマット変換モジュールを使ってSVG形式に変更することによってインタープリタに通すことが可能になるので、PDF、PS、SVG以外のドキュメントフォーマットが入力された場合には、ステップ７−８へ進む。ここではSVGへ変換する場合について述べているが、特にPDFやPSに変換することも可能であることは言うまでもない。
ステップ７−４においては、入力ドキュメントがPDFであった場合であり、PDFのデータの解釈、およびページデータの抽出、フォントの展開、イメージの展開、図形の処理、色の対応等、PDFデータを解釈して展開処理を行う。
【００５１】
そしてステップ７−５において、ステップ７−４で解釈した内容をRIPモジュールへ渡すためにRIPモジュールが解釈できる形式のデータに変換する。このときのデータ形式としては、塗りつぶしのスタート／ストップ情報、塗りつぶしの色情報、イメージの縦横のサイズとのその配置情報、フォントデータおよびその配置情報および色情報等である。これらの内容をデータ化した集合をディスプレイリストとして生成する。そして中間データであるディスプレイリストを格納する際に、ステップ１でセットされたフラグをともに保存することによって背景用データなのかバリアブル出力用のデータなのかの区別を行う。
【００５２】
ステップ７−６においては、入力ドキュメントがPSであった場合であり、PDFの場合と同様、PSのデータの解釈、およびページデータの抽出、フォントの展開、イメージの展開、図形の処理、色の対応等、PSデータを解釈して展開処理を行う。
【００５３】
そしてステップ７−７において、ステップ７−６で解釈した内容をRIPモジュールへ渡すためにRIPモジュールが解釈できる形式のデータに変換する。このときのデータ形式としては、塗りつぶしのスタート／ストップ情報、塗りつぶしの色情報、イメージの縦横のサイズとのその配置情報、フォントデータおよびその配置情報および色情報等である。これらの内容をデータ化した集合をディスプレイリストとして生成する。そして中間データであるディスプレイリストを格納する際に、ステップ１でセットされたフラグをともに保存することによって背景用データなのかバリアブル出力用のデータなのかの区別を行う。
【００５４】
ステップ７−８からステップ７−１１の処理においては、入力データとしてPDFやPS以外のドキュメントが渡された場合であり、たとえばSVG、XHTML、HTMLといったXML系のドキュメントであってもよいし、あるいはWordやExcel等の一般アプリのドキュメントであってもよい。また、バリアブルデータもデータベースでXMLで表現されているので、このバリアブルデータも変換の対象となる。ステップ７−８においては、まず入力ドキュメントがSVGデータであるかどうかをチェックする。SVGデータの場合は特にデータを変換する必要がないのでステップ７−１0へ進みSVGデータの解釈を行う。入力ドキュメントがSVGデータ以外の場合はステップ７−９へ進み、入力ドキュメントのフォーマットをSVGデータに一旦変換する作業を行う。
【００５５】
ステップ７−９においては、入力データがSVGデータ以外だった場合であり、ここでの処理は、入力されたSVG以外のデータをSVGに変換する作業を行う。たとえばXHTMLやHTMLといったタグベースのドキュメントフォーマットが明らかにわかっている場合のデータについては、SVGとの機能比較を行い、同一の機能についてはXHTMLやHTMLのタグからSVGのタグへの変換をおこない、同一でない機能については、SVGの機能に合うように変換する。XHTMLやHTMLからSVGへ変換する詳細については、本出願人の出願の特開2001−344232で述べているのでここでの詳細の説明は省略する。また一般アプリケーションのデータが入力された場合には、アプリケーションからドライバが呼ばれ、ドライバの内部でGDIからSVGへ変換し、ドライバの出力としてSVGを出力することにより可能となる。バリアブルデータの場合には、XMLで表現されているのでその内容をバリアブルの出力データエリアのサイズに応じてフォント、図形、イメージのサイズを調整しSVGデータを生成させる。
【００５６】
そしてステップ７−１０においては、入力として受け取ったSVGデータ、あるいはステップ７−９でSVGに変換されたデータを解釈し、ページデータの抽出、フォントの展開、イメージの展開、図形の処理、色の対応等、SVGデータを解釈して展開処理を行う。
【００５７】
そしてステップ７−１１において、ステップ７−１０で解釈した内容をRIPモジュールへ渡すためにRIPモジュールが解釈できる形式のデータに変換する。このときのデータ形式としては、塗りつぶしのスタート／ストップ情報、塗りつぶしの色情報、イメージの縦横のサイズとのその配置情報、フォントデータおよびその配置情報および色情報等である。これらの内容をデータ化した集合をディスプレイリストとして生成する。そして中間データであるディスプレイリストを格納する際に、ステップ１でセットされたフラグをともに保存することによって背景用データなのかバリアブル出力用のデータなのかの区別を行う。
【００５８】
ステップ７−１２においてはバリアブルデータが存在するかどうかのチェックをする。バリアブルデータが存在する場合には、その処理がバリアブルデータを作成すべきなのか、あるいはできたディスプレイデータを背景用データと合成する処理をすべきなのかの判断を行う。バリアブルデータを作成すべき場合にはステップ７−１に戻り、図６の６０３から受け付けたバリアブルデータを入力として処理する。このとき図８の例では処理すべきバリアブルデータが3つあり、処理すべきバリアブルデータが最初のデータであれば1番目のデータを対称バリアブルデータとして渡す。またバリアブルデータを合成すべき処理の場合にはステップ７−１３へ進む。そしてバリアブルデータが存在しない場合にはステップ７−１４へ進む。
【００５９】
そしてステップ７−１３においては、ステップ７−５、ステップ７−７あるいはステップ７−１１で生成された背景用のディスプレイリストとバリアブルデータ用のディスプレイリストの合成を行う。ここでは背景用データの上にバリアブルデータが重ね書きされるように出力する。背景用データとバリアブルデータはフラグで管理されていて、背景用データは変更すべきバリアブルデータの数分だけ保存されたデータから呼びだされて利用されることになる。
ステップ７−１４においては、プリンタへデータを出力する際にディスプレイリストで出力するのかイメージに変換して出力するのかを選択する。出力装置にディスプレイリストを解釈できるモジュールが入っている場合にはディスプレイリストで出力する方がプリンタへ転送するデータ量が小さくてよいので、この場合にはディスプレイリストで出力するためにステップ７−１５へ進む。また出力装置にディスプレイリストを解釈できるモジュールが入っていない場合には、イメージに変換して出力する必要があるのでステップ７−１６へ進む。
【００６０】
ステップ７−１５においては、出力装置がディスプレイリストを解釈できる場合であり、ステップ７−５、ステップ７−７、あるいはステップ７−１１で生成したディスプレイリストをプリンタへ転送する。
【００６１】
ステップ７−１６においては、出力装置がディスプレイリストを解釈できない場合であり、ステップ７−５、ステップ７−７、あるいはステップ７−１１で生成したディスプレイリストを解釈してイメージデータを生成する。ここでの生成の詳細は本発明の本質ではないのでここでの説明は省略する。
【００６２】
そしてステップ７−１７においては、ステップ７−１６で生成したイメージデータをプリンタへ転送する。
【００６３】
ステップ７−１８においては、まだ処理すべきバリアブルデータが存在するかどうかをチェックし、まだ存在すべきバリアブルデータ存在する場合にはステップ７−１２を経由してステップ７−１へ戻ってバリアブルデータの作成を行う。図８の例では、対象とするバリアブルデータが3つ存在し、3つとも処理が終わった場合には処理を終了し、まだ3つ終わっていなければステップ７−１２へもどして1つずつ処理を行うことになる。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態例にかかる文書印刷システムのシステム構成図である。
【図２】パソコン、サーバの概略構成を示す図である。
【図３】本発明にかかる処理を実行する際のパソコン、サーバ内のRAM上のメモリマップを示す図である。
【図４】プリンタの概略構成図である。
【図５】本発明のメインの流れを示すフローチャート。
【図６】本発明の詳細なブロック構成を示す図である。
【図７】本発明の他の実施例の流れを示すフローチャート。
【図８】バリアブルデータの動作を表す図。
【図１】
2005173801.tif 000003
【図２】
2005173801.tif 000004
【図３】
2005173801.tif 000005
【図４】
2005173801.tif 000006
【図５】
2005173801.tif 000007
【図６】
2005173801.tif 000008
【図７】
2005173801.tif 000009
【図８】
2005173801.tif 000010