(57)【特許請求の範囲】
【請求項１】
アプリケーションからの描画命令に基づいて中間データを出力する第１層及び前記中間データをプリンタ言語に変換／編集する第２層の２層構造を備えるプリンタドライバにおいて、
前記中間データにヘッダ情報を付加したことを特徴とするプリンタドライバ。
【請求項２】
前記ヘッダ情報に、データサイズ情報を付加したことを特徴とする請求項１記載のプリンタドライバ。
【請求項３】
前記ヘッダ情報に、ページの開始／終了情報を付加したことを特徴とする請求項１記載のプリンタドライバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数ページの印刷物を印刷するプリンタに用いて好適なプリンタドライバに関する。
【０００２】
【従来の技術】
従来より、２層構造を備えるプリンタドライバが知られている。２層構造においては、第１層（以下、前処理ドライバとする）で、アプリケーションから描画命令を中間データとして出力を行い、第２層（以下、後処理ドライバとする）で、中間データを読み込み、適切なプリンタ言語への変換、及び集約、回転等の編集を行うようにしている。
【０００３】
上記中間データには以下のデータが含まれる。
１．プリンタ制御コード部
２．描画コマンド部
プリンタ制御コード部は、各印刷条件を示すコード群であり、描画コマンド部は、アプリケーションから要求された描画コマンド群である。
【０００４】
【発明が解決しようとする課題】
前処理ドライバにおいて、中間データを出力する場合、出力用バッファの容量には限りがあるため、プリンタ制御コード部及び描画コマンド部のデータは必ずしも一度に転送されるわけではなく、分割されることがある。そのため、後処理ドライバでは、前処理ドライバから出力された中間データの内容を一旦全て読み込んで確認する必要があるため、パフォーマンスの低下を招くことになるという問題がある。
【０００５】
また、後処理モジュールではページ単位で処理を行うため、あらかじめページの切れ目を検知してページ毎にデータを分割する必要があり、やはり、データを全て読み込んで確認する必要があり、同様にパフォーマンスの低下を招くことになるという問題がある。
【０００６】
本発明は、上記問題を解決するために成されたものであり、後処理ドライバでの中間データの識別処理を高速に行うプリンタドライバを提供することを第１の目的とする。
【０００７】
また、本発明は、後処理ドライバでの中間データの読み込み処理を高速に行うプリンタドライバを提供することを第２の目的とする。
【０００８】
さらに、本発明は、後処理ドライバでのページの分割処理を高速に行うプリンタドライバを提供することを第３の目的とする。
【０００９】
【課題を解決するための手段】
上記の目的を達成するために、本発明によるプリンタドライバは、アプリケーションからの描画命令に基づいて中間データを出力する第１層及び中間データをプリンタ言語に変換／編集する第２層の２層構造を備えるプリンタドライバにおいて、中間データにヘッダ情報を付加したものである。
また、ヘッダ情報に、データサイズ情報、あるいはページの開始／終了情報を付加してよい。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態を図面と共に説明する。
本実施の形態は、前処理ドライバから中間データを転送する際に、データの種類／サイズを示すヘッダ情報を付加することで、即座にデータの判別、及びページの分割を行うことを特徴とする。
【００１１】
図１は、本発明の実施形態であるプリンタドライバを備えるプリンタシステムを概念的に示すブロック図である。
図１において、プリンタドライバ１０は、プリンタ本体２０に接続されており、前処理ドライバ１１と後処理ドライバ１２と一時ファイル格納領域であるＩＲＰＪＬデータ１３及びＩＣＤＣデータ１４とから構成される。
後処理ドライバ１２は、ファイル処理モジュール１５とＩＣＤＣ処理モジュール１６とから構成される。
アプリケーション３０は、プリンタドライバ１０に対して描画を命令する。
【００１２】
アプリケーション３０から印刷が実行されると、前処理ドライバ１１において、図２に示される形式の中間データ４０が出力される。この中間データ４０は、ヘッダ部４１とデータ部４２とからなる。
【００１３】
ヘッダ部４１のヘッダ情報は、以下の形式の固定長の情報である。
ヘッダ情報（計８バイト）＝Ｔａｇ（４バイト）＋Ｓｉｚｅ（４バイト）
ここで、Ｔａｇはデータの種別を示すコードがセットされる。Ｓｉｚｅは前処理ドライバ１１より転送されたデータのサイズ（バイト数）を示す値がセットされる。
【００１４】
Ｔａｇには、以下のいずれかの値がセットされる。
▲１▼IOBJJobIRPJL    ▲２▼IOBJPageIRPJL   ▲３▼IOBJICDC    ▲４▼IOBJStartPage
▲５▼IOBJEndPage
【００１５】
▲１▼IOBJJobIRPJLの場合、ヘッダに続くデータが印刷条件を示すデータであることを意味する(JobIRPJL)。
▲２▼IOBJPageIRPJL の場合、ヘッダに続くデータが次に転送されるページに関する情報（ページの幅、高さ、解像度等）であることを意味する(PageIRPJL) 。
▲３▼IOBJICDCの場合、ヘッダに続くデータが描画データ群であることを意味する(ICDC)。
▲４▼IOBJStartPage の場合、ページの先頭であることを意味し、ヘッダに続くデータはなし。従って、Ｓｉｚｅは０となる(StartPage) 。
▲５▼IOBJEndPage の場合、ページの終了であることを意味し、ヘッダに続くデータはなし。従って、Ｓｉｚｅは０となる(EndPage) 。
【００１６】
図３は、本発明の実施形態であるプリンタドライバの処理例を示すフローチャートである。後処理ドライバ１２は、まず、ヘッダ部４１をチェックする（Ｓ１〜Ｓ３）。そのためにファイル処理モジュール１５において、まず、ヘッダ部（中間データの先頭８バイト）４１を読み込み、Ｔａｇの種類とデータサイズを読み、JobIRPJL、PageIRPJL 、ICDC毎にＳｉｚｅで指定されたサイズ分のデータを一時ファイルであるＩＲＰＪＬデータ１３に書き込む。ここで、ＩＲＰＪＬデータ１３に保存されるデータは、図２に示されるデータ部４２のみである。
【００１７】
また、ＩＣＤＣについては、EndPage が来るまで追加書き込みを行う。EndPage が来た時、１ページ分のデータを読み込んだものとみなし、ＩＣＤＣ処理モジュール１６においてＩＣＤＣデータ１４からＩＣＤＣデータを読み込み、適切なプリンタ言語に変換された後、プリンタ本体２０に転送された後、ファイルが削除される（Ｓ１４〜Ｓ１９）。
【００１８】
ここで、中間データは次の順序で転送される。
（１）ＪｏｂＩＲＰＪＬ
（２）ＰａｇｅＩＲＰＪＬ
（３）ＳｔａｒｔＰａｇｅ
(４）ＩＣＤＣ
（５）ＩＣＤＣ
（６）ＥｎｄＰａｇｅ
（７）ＰａｇｅＩＲＰＪＬ
（８）ＳｔａｒｔＰａｇｅ
（９）ＩＣＤＣ
（１０）ＥｎｄＰａｇｅ  ・・・
【００１９】
まず、（１）ＪｏｂＩＲＰＪＬを読み込んだ時点でＲＣＦ．０００という名前の一時ファイルとして保存し、印刷条件を読み込み、読み込んだ印刷条件をジョブ情報としてメモリ領域（ａ−１）に保持する。またページカウント（ａ−２）を０とする（Ｓ４〜Ｓ７）。
【００２０】
次に、（２）ＰａｇｅＩＲＰＪＬを読み込んだ時点で、ページカウント（ａ−２）を１インクリメントし、データをＲＣＦ．００１という名前の一時ファイルとして保存し、一時ファイルより、ページ情報を読み込み、読み込んだページ情報を１ページ目のページ情報としてメモリ領域（ｂ−１）に保持する（Ｓ８〜Ｓ１１）。
【００２１】
次に、（３）ＳｔａｒｔＰａｇｅを読み込んだ時点で、ＲＤＦ．００１という名前のファイルを作成する（Ｓ１２、Ｓ１３）。
（４）ＩＣＤＣ及び（５）ＩＣＤＣのデータを上記ＲＤＦ．００１ファイルに書き出す（Ｓ２０、Ｓ２１）。
（６）ＥｎｄＰａｇｅを読み込んだ時点で、ＩＣＤＣ処理モジュール１６を呼び出し、ＲＤＦ．００１、及び上記（ａ−１）、（ｂ−１）の情報を元に印刷データを作成する（Ｓ１４〜Ｓ１７）。
【００２２】
以降、上記（Ｓ４〜Ｓ７）、（Ｓ８〜Ｓ１１）、（Ｓ１４〜Ｓ１９）、（Ｓ２０〜Ｓ２１）をページ数分繰り返し行う。
ここで、逆順印刷などページ順序を入れ替える必要のある印刷方法が指定された場合（Ｓ１６、Ｓ２２）、（Ｓ４〜Ｓ７）において（ａ−１）に保持され、（Ｓ２０〜Ｓ２１、Ｓ２８）がスキップされ、全ページ分保存された後で各ページ毎に実行される。また、逆順印刷でない場合は、（Ｓ２３〜Ｓ２７）が実行される。
【００２３】
【発明の効果】
以上説明したように、請求項１記載の発明によれば、中間データにヘッダ情報を付加することにより、後処理ドライバでの中間データの識別処理を高速に行うことができる。
【００２４】
また、請求項２記載の発明によれば、請求項１記載の発明において、ヘッダ情報にサイズ情報を含めることにより、後処理ドライバでの中間データの読み込み処理を高速に行うことができる。
【００２５】
さらに、請求項３記載の発明によれば、請求項１記載の発明において、ヘッダ情報にページの開始／終了情報を含めることにより、後処理ドライバでのページの分割処理を高速に行うことができる。
【図面の簡単な説明】
【図１】本発明の実施形態であるプリンタドライバを備えるプリンタシステムの構成を示すブロック図である。
【図２】中間データを示す構成図である。
【図３】本発明の実施形態であるプリンタドライバの処理例を示すフローチャートである。
【符号の説明】
１０  プリンタドライバ
１１  前処理ドライバ
１２  後処理ドライバ
１３  ＩＲＰＪＬデータ
１４  ＩＣＤＣデータ
１５  ファイル処理モジュール
１６  ＩＣＤＣ処理モジュール
２０  プリンタ本体
３０  アプリケーション
【図１】
0004028957.tif 000002
【図２】
0004028957.tif 000003
【図３】
0004028957.tif 000004