(57)【要約】【課題】プリンタドライバによる印刷ジョブの発行タイミングをより速くすること。【解決手段】本発明にかかる情報処理装置は、出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックするフック部と、フックされた出力命令を解析する解析部と、解析された出力命令をプリンタドライバに向けて再発行する発行部と、を備える。発行部は、解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令の再発行後、かつ、次のページに関する第２の出力命令の再発行前に、対象データの出力の区切りを示す第３の出力命令をプリンタドライバに向けて発行する。【選択図】図１
2020086699.tif 000002
【特許請求の範囲】
【請求項１】
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックするフック部と、
前記フックされた出力命令を解析する解析部と、
前記解析された出力命令を前記プリンタドライバに向けて再発行する発行部と、
を備え、
前記発行部は、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令の再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する
情報処理装置。
【請求項２】
前記第３の出力命令は、前記プリンタドライバに対して、発行済みの出力命令の集合を出力単位とした出力ジョブの生成を開始させる命令である、
請求項１に記載の情報処理装置。
【請求項３】
前記第３の出力命令は、前記プリンタドライバに対して、前記第１の出力命令が属するページを出力単位とした出力ジョブの生成を開始させる命令である、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記発行部は、
前記第３の出力命令として前記対象データの終了を示す終了命令を発行し、
当該終了命令の発行後、かつ、前記第２の出力命令の再発行前に、前記対象データの開始を示す開始命令を発行する
請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記解析部は、
前記解析により、前記フックされた出力命令から特定のページに特有である第１の印刷設定を抽出し、
前記発行部は、
前記第１の出力命令が前記特定のページのページ区切りを示す場合に、当該特定のページに属し、かつ、前記第３の出力命令以前の出力命令に当該第１の印刷設定を追加する
請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記解析部は、
前記解析において、前記第１の出力命令が属する第１のページと、前記第２の出力命令が属し、かつ、当該第１のページの次に出力される第２のページとの間で、前記第１の印刷設定が共通するか否かの判定をさらに行い、
前記発行部は、
前記判定により前記第１の印刷設定が共通する場合、前記第２のページに属する出力命令への当該第１の印刷設定の追加を抑止する
請求項５に記載の情報処理装置。
【請求項７】
前記第３の出力命令は、
前記プリンタドライバにおいて前記第１の印刷設定をクリアさせる第１のクリア命令を含むものであり、
前記発行部は、
前記判定により前記第１の印刷設定が共通する場合、前記第１のページに属する前記第３の出力命令から前記第１のクリア命令を除外して当該第３の出力命令を発行する
請求項６に記載の情報処理装置。
【請求項８】
前記解析部は、
前記解析により、前記フックされた出力命令から前記対象データの全体に対する第２の印刷設定を抽出し、
前記第３の出力命令は、
前記プリンタドライバにおいて前記第２の印刷設定をクリアさせる第２のクリア命令を含むものであり、
前記発行部は、
前記第３の出力命令から前記第２のクリア命令を除外して当該第３の出力命令を発行する
請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
コンピュータが、
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックし、
前記フックされた出力命令を解析し、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令を前記プリンタドライバに向けて再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する
印刷制御方法。
【請求項１０】
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックする処理と、
前記フックされた出力命令を解析する処理と、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令を前記プリンタドライバに向けて再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する処理と、
をコンピュータに実行させる印刷制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、印刷制御方法及び印刷制御プログラムに関し、特に、印刷制御を行うための情報処理装置、印刷制御方法及び印刷制御プログラムに関する。
【背景技術】
【０００２】
特許文献１には、情報処理装置からの印刷ジョブをネットワークに接続されたプリンタに転送して印刷処理を行うプリント制御装置に関する技術が開示されている。特許文献１にかかるプリント制御装置は、情報処理装置から受信した印刷ジョブを最小単位に分割して、最小単位プリントジョブを生成し、プリンタへ出力する。
【０００３】
特許文献２には、プリンタを制御するプリンタコントローラに関する技術が開示されている。特許文献２にかかるプリンタコントローラは、印刷データをプリントジョブとして受信し、印刷データをイメージデータに変換して印刷用紙に印刷出力する。
【０００４】
特許文献３には、プリンタコントローラに関する技術が開示されている。特許文献３にかかるプリンタコントローラのデータ制御部は、クライアントから受信したＰＤＬ（Ｐａｇｅ Ｄｅｓｃｒｉｐｔｉｏｎ Ｌａｎｇｕａｇｅ）を、イメージデータ（プリント出力形式）に展開し、ページメモリに保持する。そして、プリンタコントローラの出力ＩＦは、ページメモリに保持されたイメージデータをプリンタに転送する。
【０００５】
ここで、上述した特許文献１等において印刷ジョブ等の発行元である情報処理装置又はクライアント等には、プリンタドライバがインストールされている。そして、印刷処理の要求元であるアプリケーションから発行された出力命令に対して、プリンタドライバが印刷ジョブに変換して出力しているといえる。
【０００６】
また、近年、米国Ｍｉｃｒｏｓｏｆｔ（登録商標）社は、Ｗｉｎｄｏｗｓ（登録商標）８に搭載するプリンタドライバアーキテクチャとして、これまでのＶ３プリンタドライバに代えて、新しくＶ４プリンタドライバを採用することとした。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−３１０７７０号公報
【特許文献２】特開２００２−０９１７４８号公報
【特許文献３】特開２０００−２２９４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、Ｖ４プリンタドライバのアーキテクチャは、Ｖ３プリンタドライバのアーキテクチャと大きく異なり、いくつかの機能差分がある。機能差分の一つとして、出力制御が挙げられる。まず、ユーザのアプリケーションは、ドキュメント等の印刷を行う際に、通常、個別の描画命令や出力制御命令を含む一連の出力命令を発行する。Ｖ３プリンタドライバは、発行された出力命令を受信すると順次、プリンタに出力するために必要な解析処理及びコマンド化処理を行って、プリントスプーラへ印刷ジョブとして出力する。一方、Ｖ４プリンタドライバでは、印刷対象のドキュメントに対する全ての出力命令を受信し終えた後に、初期化処理を開始し、続いて全ての出力命令をまとめて解析処理及びコマンド化処理を行い、プリントスプーラへ印刷ジョブとして出力する。そのため、Ｖ４プリンタドライバを用いた場合、印刷対象のドキュメントの印刷ページ数が多い場合であっても、全ページ分の出力命令を受信し終えるまでプリンタによる出力が開始されないことになる。つまり、プリンタドライバによる印刷ジョブの発行が遅くなる場合があるという課題がある。特に、今後、Ｖ４プリンタドライバが普及するにつれて、この課題はより顕著になり得る。
【０００９】
尚、上述した特許文献１から３にかかる技術は、プリンタドライバが発行した印刷ジョブに対する処理の改善であるため、上記課題を解決するものではない。
【００１０】
本開示は、このような問題点を解決するためになされたものであり、プリンタドライバによる印刷ジョブの発行タイミングをより速くするための情報処理装置、印刷制御方法及び印刷制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本開示の第１の態様にかかる情報処理装置は、
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックするフック部と、
前記フックされた出力命令を解析する解析部と、
前記解析された出力命令を前記プリンタドライバに向けて再発行する発行部と、
を備え、
前記発行部は、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令の再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する。
【００１２】
本開示の第２の態様にかかる印刷制御方法は、
コンピュータが、
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックし、
前記フックされた出力命令を解析し、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令を前記プリンタドライバに向けて再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する。
【００１３】
本開示の第３の態様にかかる印刷制御プログラムは、
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックする処理と、
前記フックされた出力命令を解析する処理と、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令を前記プリンタドライバに向けて再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する処理と、
をコンピュータに実行させる。
【発明の効果】
【００１４】
本開示により、プリンタドライバによる印刷ジョブの発行タイミングをより速くするための情報処理装置、印刷制御方法及び印刷制御プログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態１にかかる情報処理装置の構成を示すブロック図である。
【図２】本実施の形態１にかかる印刷制御方法の流れを示すフローチャートである。
【図３】本実施の形態２にかかる情報処理装置の構成を示すブロック図である。
【図４】本実施の形態２にかかる印刷制御部の構成を示すブロック図である。
【図５】Ｖ４プリンタドライバを用いた印刷処理の概念を説明するための図である。
【図６】本実施の形態２にかかる印刷制御方法の流れを示すフローチャートである。
【図７】本実施の形態２にかかる情報処理装置とＶ４プリンタドライバを用いた印刷処理の概念を説明するための図である。
【発明を実施するための形態】
【００１６】
以下では、本開示の実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１７】
＜実施の形態１＞
図１は、本実施の形態１にかかる情報処理装置１の構成を示すブロック図である。情報処理装置１は、プリンタ（不図示）と接続されたコンピュータである。情報処理装置１は、任意のアプリケーションプログラム（不図示）が実行され、ユーザ等の印刷指示に応じてアプリケーションが出力命令を発行する。また、情報処理装置１は、プリンタドライバ（不図示）がインストールされており、プリンタドライバが出力命令から印刷ジョブを生成して、プリンタへ出力する。
【００１８】
情報処理装置１は、フック部１１と、解析部１２と、発行部１３とを備える。フック部１１は、出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックする。ここで、対象データは、上述したアプリケーション上で処理されるデータであり、例えば、ドキュメント、画像等である。また、出力要求とは、ユーザ等が対象データをプリンタ等へ出力させるためにアプリケーションに対して行った要求である。そのため、アプリケーションは、受け付けた出力要求に応じて出力命令を発行する。また、出力命令は、描画命令や出力制御命令を含む。描画命令は、例えば、ドキュメントの内容を構成する文字や線をプリンタに描画させるためのコマンドである。また、出力制御命令は、例えば、ドキュメントの開始もしくは終了、又は、ページの開始もしくは終了を示す命令等である。尚、ページの終了を示す出力制御命令は、ページ区切りを示す命令ともいえる。
【００１９】
そして、フックとは、アプリケーションが発行した出力命令をＯＳ（Operating System）（不図示）等を介して取得することを指す。そのため、フック部１１によりフックされた出力命令は、プリンタドライバには到達しない。言い換えると、フック部１１は、プリンタドライバに対して発行された出力命令を横取りする。
【００２０】
解析部１２は、フックされた出力命令を解析する。ここで、解析には、例えば、出力命令の種別を判定すること、出力命令から印刷設定を抽出すること、印刷設定の範囲を判定すること等が含まれる。また、印刷設定の範囲の判定には、印刷設定の範囲がドキュメント全体であるか否か、ページに特有であるか否か、隣接ページで共通するか否か等が含まれる。
【００２１】
発行部１３は、解析された出力命令をプリンタドライバに向けて再発行する。ここで、「再発行」とは、出力命令がすでにアプリケーションにより発行されたものであることから、再度発行されることを意味する。よって、発行部１３自体は、「解析された出力命令」をプリンタドライバに向けて初めて発行することになる。そして、発行部１３は、解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令の再発行後、かつ、次のページに関する第２の出力命令の再発行前に、対象データの出力の区切りを示す第３の出力命令をプリンタドライバに向けて発行する。ここで、第２の出力命令は、第１の出力命令より後にアプリケーションにより発行された命令である。特に、第２の出力命令は、対象データがプリンタにより複数の印刷用紙にまたがって印刷される場合に、第１の出力命令が対象とするページの次のページを対象とする出力命令である。そして、第３の出力命令は、アプリケーションにより発行されたものではなく、また、フック部１１によりフックされたものでもない。すなわち、発行部１３は、フックされた第１の出力命令と第２の出力命令を再発行する間に、第３の出力命令を挿入して、発行する。
【００２２】
図２は、本実施の形態１にかかる印刷制御方法の流れを示すフローチャートである。前提として、情報処理装置１上で実行されるアプリケーションは、ユーザ等からの出力要求に応じて、対象データをプリンタへ出力するために、プリンタドライバ向けの出力命令を順次、発行するものとする。このとき、フック部１１は、発行された出力命令のうち第１の出力命令をフックする（Ｓ１１）。
【００２３】
次に、解析部１２は、フックされた第１の出力命令を解析する（Ｓ１２）。そして、解析部１２は、解析された第１の出力命令がページ区切りを示すか否かを判定する（Ｓ１３）。解析された第１の出力命令がページ区切りを示す場合、発行部１３は、第１の出力命令の再発行後、かつ、第２の出力命令の再発行前に、第３の出力命令を発行する（Ｓ１４）。すなわち、発行部１３は、第１のページについての第１の出力命令を再発行し、第１のページと第２のページのページ区切りを示す第３の出力命令を挿入して発行し、その後、第２のページについての第２の出力命令を再発行する。尚、ステップＳ１３において解析された第１の出力命令がページ区切りを示さないと判定された場合、発行部１３は、第１の出力命令を再発行し、続いて、第２の出力命令を再発行する。
【００２４】
ここで、第１、第２及び第３の出力命令は再度、フックされない。そのため、プリンタドライバは、発行部１３により発行された順序、すなわち、第１の出力命令、第３の出力命令、及び第２の出力命令の順序で受信する。そして、プリンタドライバは、第３の出力命令がページ区切りを示すことから、第３の出力命令を受信した段階で、第１の出力命令が対象とする第１のページを出力対象の１ドキュメントとして印刷ジョブを生成し、プリンタ（又はプリンタスプーラ）へ出力する。これにより、プリンタは、当該印刷ジョブに応じて第１のページを印刷できる。つまり、プリンタドライバは、第２のページを出力対象とする第２の出力命令の受信を待たずに、それまでに受信した第１の出力命令が対象とする第１のページに対する印刷ジョブの生成を開始できる。よって、本実施形態によりプリンタドライバによる印刷ジョブの発行タイミングをより速くすることができる。そのため、全ての出力命令の受信を待たずに、プリンタは速やかに印刷を開始させることができる。
【００２５】
尚、情報処理装置１は、図示しない構成としてプロセッサ、メモリ及び記憶装置等を備えるものである。また、当該記憶装置には、本実施の形態にかかる印刷制御方法の処理が実装されたコンピュータプログラムが記憶されている。そして、当該プロセッサは、記憶装置からコンピュータプログラムをメモリへ読み込み、当該コンピュータプログラムを実行する。これにより、情報処理装置１のプロセッサは、上述したフック部１１、解析部１２及び発行部１３の機能を実現する。
【００２６】
＜実施の形態２＞
本実施の形態２は、上述した実施の形態１の具体的な一実施例である。ここで、前記第３の出力命令は、前記プリンタドライバに対して、発行済みの出力命令の集合を出力単位とした出力ジョブの生成を開始させる命令であることが望ましい。または、前記第３の出力命令は、前記プリンタドライバに対して、前記第１の出力命令が属するページを出力単位とした出力ジョブの生成を開始させる命令であってもよい。これらにより、プリンタドライバは、第２の出力命令を受信する前により確実に出力ジョブの生成を開始することができる。
【００２７】
また、前記発行部は、前記第３の出力命令として前記対象データの終了を示す終了命令を発行し、当該終了命令の発行後、かつ、前記第２の出力命令の再発行前に、前記対象データの開始を示す開始命令を発行するようにしてもよい。このように、疑似的にドキュメントの終了位置とドキュメントの開始位置を示す命令を出力することで、プリンタドライバは、各ページを異なるドキュメントとして認識でき、プリンタドライバを適切に制御できる。
【００２８】
また、前記解析部は、前記解析により、前記フックされた出力命令から特定のページに特有である第１の印刷設定を抽出する。そして、前記発行部は、前記第１の出力命令が前記特定のページのページ区切りを示す場合に、当該特定のページに属し、かつ、前記第３の出力命令以前の出力命令に当該第１の印刷設定を追加することが望ましい。これにより、分割された印刷ジョブ間で印刷設定の整合を取ることができる
【００２９】
さらに、前記解析部は、前記解析において、前記第１の出力命令が属する第１のページと、前記第２の出力命令が属し、かつ、当該第１のページの次に出力される第２のページとの間で、前記第１の印刷設定が共通するか否かの判定をさらに行うとよい。そして、前記発行部は、前記判定により前記第１の印刷設定が共通する場合、前記第２のページに属する出力命令への当該第１の印刷設定の追加を抑止することが望ましい。このように、連続するページ間で印刷設定が重複する場合、２回目以降の印刷設定を除外することで、出力命令のデータサイズを抑制でき、スループットを向上できる。
【００３０】
さらに、前記第３の出力命令は、前記プリンタドライバにおいて前記第１の印刷設定をクリアさせる第１のクリア命令を含むものであるとよい。この場合、前記発行部は、前記判定により前記第１の印刷設定が共通する場合、前記第１のページに属する前記第３の出力命令から前記第１のクリア命令を除外して当該第３の出力命令を発行するとよい。これにより、連続するページ間で印刷設定が重複する場合、プリンタドライバ又はプリンタにおいて一時的に保持されている受信済みの印刷設定を再利用して後続の印刷ジョブを生成できるため、印刷ジョブの生成効率を向上できる。
【００３１】
また、前記解析部は、前記解析により、前記フックされた出力命令から前記対象データの全体に対する第２の印刷設定を抽出する。その場合、前記第３の出力命令は、前記プリンタドライバにおいて前記第２の印刷設定をクリアさせる第２のクリア命令を含むものである。この場合、前記発行部は、前記第３の出力命令から前記第２のクリア命令を除外して当該第３の出力命令を発行するとよい。これにより、プリンタドライバにおいて、第３の出力命令によりページ単位に印刷ジョブを生成したとしても、印刷ジョブ間で印刷設定を共有でき、印刷ジョブの生成効率を向上できる。
【００３２】
また、前記発行部は、前記第２の出力命令が前記対象データの終了を示す終了命令である場合、当該第２の出力命令の再発行を抑止するとよい。これにより、プリンタドライバは、不要な終了命令の受信がなくなり、不要な処理を抑制できる。
【００３３】
図３は、本実施の形態２にかかる情報処理装置１００の構成を示すブロック図である。情報処理装置１００は、上述した情報処理装置１の一例であり、プリンタ２００と接続されたコンピュータ装置である。情報処理装置１００は、制御装置１１０と、記憶装置１２０とを備える。記憶装置１２０は、揮発性又は不揮発性の記憶装置である。記憶装置１２０は、プログラム１２１及びフック済み出力命令１２２等を記憶する。プログラム１２１は、本実施の形態２にかかる印刷制御方法の処理が実装されたコンピュータプログラムである。フック済み出力命令１２２は、後述するように、アプリケーション部１１１により発行された出力命令が印刷制御部１１２によりフックされた命令である。尚、記憶装置１２０は、例えば、ハードディスク、フラッシュメモリ等の不揮発性記憶装置又はＲＯＭ（Read Only Memory）等が挙げられるがこれらに限定されない。
【００３４】
制御装置１１０は、プロセッサ等の制御回路である。制御装置１１０は、記憶装置１２０からプログラム１２１をメモリ（不図示）に読み出して実行する。これにより、制御装置１１０は、印刷制御部１１２として機能する。また、制御装置１１０は、所定のアプリケーションプログラム（不図示）を実行することによりアプリケーション部１１１を実現する。また、制御装置１１０は、ＯＳ（不図示）を実行することによりＯＳ部１１３を実現する。
【００３５】
アプリケーション部１１１は、例えば、ＧＤＩ（Graphics Device Interface）アプリケーションである。尚、アプリケーション部１１１は、公知のソフトウェアであってもよい。よって、アプリケーション部１１１は、ユーザの操作に応じてドキュメント等を作成し、ユーザからの当該ドキュメントの印刷要求（出力要求）に応じて、複数のＧＤＩ関数を呼び出して出力命令をＯＳ部１１３に向けて発行する。
【００３６】
ＯＳ部１１３は、公知のＯＳであってもよい。ＯＳ部１１３は、プリンタドライバ１１３１と、プリントスプーラ１１３２とを備える。プリンタドライバ１１３１は、アプリケーション部１１１から発行された出力命令を受信し、印刷ジョブを生成し、印刷ジョブをプリントスプーラ１１３２へ出力するデバイスドライバである。プリンタドライバ１１３１は、例えば、Ｖ４プリンタドライバである。
【００３７】
プリントスプーラ１１３２は、プリンタドライバ１１３１から出力された印刷ジョブをＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）で管理するメッセージキューである。そして、プリントスプーラ１１３２は、印刷ジョブを登録順にプリンタ２００へ出力する。
【００３８】
図４は、本実施の形態２にかかる印刷制御部１１２の構成を示すブロック図である。印刷制御部１１２は、フック部１１２１、解析部１１２２及び発行部１１２３を備える。フック部１１２１は、上述したフック部１１の一例であり、アプリケーション部１１１を監視し、アプリケーション部１１１が発行した出力命令をフックする。解析部１１２２は、上述した解析部１２の一例であり、フック部１１２１によりフックされた出力命令を解析する。発行部１１２３は、上述した発行部１３の一例であり、解析部１１２２により解析結果に応じて出力命令の再発行や新規命令の追加発行を行う。
【００３９】
ここで、本実施形態が解決する課題を説明するために、本実施形態を用いない場合の印刷処理について説明する。図５は、Ｖ４プリンタドライバを用いた印刷処理の概念を説明するための図である。ここで、ＧＤＩアプリ１１１ａはアプリケーション部１１１の一例であり、Ｖ４プリンタドライバ１１３１ａはプリンタドライバ１１３１の一例である。
【００４０】
まず、ＧＤＩアプリ１１１ａは、出力命令としてＳｔａｒｔＤｏｃを発行する（Ｓ９００）。そして、Ｖ４プリンタドライバ１１３１ａは、ＳｔａｒｔＤｏｃを受信する。続いて、ＧＤＩアプリ１１１ａは、１ページ目に関する一連の出力命令を発行する（Ｓ９０１）。そして、Ｖ４プリンタドライバ１１３１ａは、１ページ目に関する出力命令を順次、受信する。但し、Ｖ４プリンタドライバ１１３１ａは、この時点では、ＥｎｄＤｏｃを受信していないため、印刷ジョブの生成を開始しない。
【００４１】
その後、ＧＤＩアプリ１１１ａは、２ページ目からＮページ目に関する一連の出力命令を順次、発行する（Ｓ９０２、Ｓ９０３）。そして、Ｖ４プリンタドライバ１１３１ａは、２ページ目からＮページ目に関する出力命令を順次、受信する。そして、ＧＤＩアプリ１１１ａは、出力対象のドキュメントの終了を示すＥｎｄＤｏｃを発行する（Ｓ９０４）。そして、Ｖ４プリンタドライバ１１３１ａは、ＥｎｄＤｏｃを受信する。Ｖ４プリンタドライバ１１３１ａは、ＥｎｄＤｏｃの受信に応じて、印刷ジョブの生成を開始するために初期化処理を行う（Ｓ９１１）。そして、Ｖ４プリンタドライバ１１３１ａは、受信済みの１ページ目の出力命令群を対象にＸＰＳ（XML（Extensible Markup Language） Paper Specification）解析を行い（Ｓ９１２）、コマンド化を行う（Ｓ９１３）。つまり、Ｖ４プリンタドライバ１１３１ａは、印刷対象のドキュメントの全ページ分の出力命令を全て受信した後に、１ページ目の印刷ジョブの生成を開始する。続いて、Ｖ４プリンタドライバ１１３１ａは、受信済みの２ページ目以降の出力命令群を対象に、ページごとにＸＰＳ解析及びコマンド化を繰り返して（Ｓ９１４）、ＸＰＳファイルを生成する。そして、Ｖ４プリンタドライバ１１３１ａは、生成した全ページ分のＸＰＳファイルをプリントスプーラ１１３２へ格納する（Ｓ９１５）。その後、プリンタ２００は、プリントスプーラ１１３２から出力されるＸＰＳファイルに応じて印刷を行い、出力用紙２１０として出力する。
【００４２】
図５に示すように、Ｖ４プリンタドライバ１１３１ａは、ＥｎｄＤｏｃを受信するまで印刷ジョブの生成を開始できない。つまり、Ｖ４プリンタドライバ１１３１ａは、印刷対象のドキュメントの全てのページに対する出力命令を受信し終えた後に、１ページ目から順番に印刷ジョブの生成を開始する。よって、ＧＤＩアプリ１１１ａがＳｔａｒｔＤｏｃを発行してからＶ４プリンタドライバ１１３１ａが印刷ジョブの生成を開始するまで時間ｔ１を要する。そして、プリンタ２００が１ページ目の出力用紙２１０の印刷を開始するまでに時間ｔ２を要する。
【００４３】
そこで、本実施形態では、アプリケーション部１１１とプリンタドライバ１１３１の間に印刷制御部１１２を介在させて、印刷制御部１１２がページ単位にＥｎｄＤｏｃを挿入して発行するものである。これにより、プリンタドライバ１１３１に対して疑似的にドキュメント単位の出力命令の発行が完了したものと認識させて、プリンタドライバ１１３１における１ページ目の印刷ジョブの生成開始を速くすることができる。
【００４４】
図６は、本実施の形態２にかかる印刷制御方法の流れを示すフローチャートである。まず前提として、印刷制御部１１２には、ユーザにより予め監視対象のアプリケーション部１１１が設定済みであるものとする。
【００４５】
そこで、フック部１１２１は、アプリケーション部１１１が発行する出力命令を監視する（Ｓ１０１）。そして、フック部１１２１は、アプリケーション部１１１が発行した出力命令をフックする（Ｓ１０２）。尚、ここでは、最初の出力命令であることから、印刷対象の開始命令（ＳｔａｒＤｏｃ等）が出力命令としてフックされたものとする。そして、解析部１１２２は、フックした出力命令を解析して、印刷対象の開始命令であると判定して、初期化処理を行う（Ｓ１０３）。
【００４６】
続いて、フック部１１２１は、後続の出力命令を順次、フックする（Ｓ１０４）。そして、解析部１１２２は、フックされた出力命令を解析し、フック済み出力命令１２２として記憶装置１２０に蓄積する（Ｓ１０５）。このとき、解析部１１２２は、出力命令から印刷設定を抽出し、当該印刷設定がドキュメント全体か、ページに特有かなどを判定する。また、解析部１１２２は、抽出した印刷設定を記憶装置１２０に保存してもよい。
【００４７】
そして、解析部１１２２は、解析により出力命令が１ページの終了（ページ区切り）を示すか否かを判定する（Ｓ１０６）。このとき、出力命令が１ページの終了を示さなければ、ステップＳ１０４へ戻り、以降、繰り返す。一方、出力命令が１ページの終了を示す場合、例えば、出力命令がＥｎｄＰａｇｅの場合、発行部１１２３は、記憶装置１２０に蓄積されたフック済み出力命令１２２群についてプリンタドライバ１１３１に向けて発行する（Ｓ１０７）。すなわち、発行部１１２３は、記憶装置１２０から蓄積順にフック済み出力命令１２２を読み出して発行する。このとき、発行部１１２３は、上記で抽出した印刷設定を適宜、出力命令に追加してもよい。例えば、印刷設定がページに特有のもの（用紙情報、例えば用紙サイズや用紙方向等）である場合、発行部１１２３は、ＳｔａｒｔＰａｇｅに当該印刷設定を追加する。尚、上述した通り、発行部１１２３としては出力命令を新規に発行するものであるが、フック済み出力命令１２２は、アプリケーション部１１１において発行済みであるため、ステップＳ１０７の発行をフック済み出力命令１２２の「再発行」と表現してもよい。尚、発行部１１２３は、記憶装置１２０に蓄積されたフック済み出力命令１２２を発行後に削除するものとする。
【００４８】
続いて、発行部１１２３は、印刷対象の終了命令を発行する（Ｓ１０８）。例えば、ステップＳ１０７の最後に発行された出力命令がＥｎｄＰａｇｅの場合、発行部１１２３は、新規にＥｎｄＤｏｃを終了命令として追加して発行する。
【００４９】
その後、フック部１１２１は、次の出力命令をフックする（Ｓ１０９）。そして、解析部１１２２は、ステップＳ１０５と同様に、フックした出力命令を解析し、フック済み出力命令１２２として記憶装置１２０に蓄積する（Ｓ１１０）。尚、ステップＳ１０９でフックされる出力命令は、次ページの開始命令であるＳｔａｒｔＰａｇｅか、次ページがなければドキュメントの終了を示すＥｎｄＤｏｃとなる。
【００５０】
そして、解析部１１２２は、解析により出力命令が印刷対象の終了（対象データの出力の区切り）を示すか否かを判定する（Ｓ１１１）。このとき、出力命令が印刷対象の終了を示さなければ、発行部１１２３は、印刷対象の開始命令（ＳｔａｒｔＤｏｃ）を発行する（Ｓ１１２）。つまり、ステップＳ１０９でフックされた出力命令（ＳｔａｒｔＰａｇｅ）は蓄積されており、ＳｔａｒｔＰａｇｅが再発行される前に、発行部１１２３は、ＳｔａｒｔＤｏｃを挿入して発行する。このとき、発行部１１２３は、上記で抽出した印刷設定を適宜、出力命令に追加してもよい。例えば、印刷設定がドキュメント全体を対象としたものである場合、発行部１１２３は、ＳｔａｒｔＤｏｃに当該印刷設定を追加する。以後、ステップＳ１０４へ戻り、以降、繰り返す。そのため、ステップＳ１０６において２ページ目のＥｎｄＰａｇｅが検出された場合に、前回のステップＳ１０９でフック済みの２ページ目のＳｔａｒｔＰａｇｅから順番に、２ページ目の出力命令が順次、ステップＳ１０７において再発行される。その後、ステップＳ１０８において２ページ目のＥｎｄＤｏｃが新規に挿入されて発行される。そして、ステップＳ１０９においてＥｎｄＤｏｃがフックされた場合にはステップＳ１１１で印刷対象の終了であると判定され、印刷制御部１１２は終了処理を行う（Ｓ１１３）。つまり、最後のステップＳ１０９においてフックされたＥｎｄＤｏｃは、再発行されない。
【００５１】
図７は、本実施の形態２にかかる情報処理装置とＶ４プリンタドライバを用いた印刷処理の概念を説明するための図である。まず、ＧＤＩアプリ１１１ａは、出力命令としてＳｔａｒｔＤｏｃを発行する（Ｓ２００）。このとき、印刷制御部１１２は、ＳｔａｒｔＤｏｃをフックし、初期化処理を行う（Ｓ２１０）。また、印刷制御部１１２がフックするため、この段階ではＶ４プリンタドライバ１１３１ａはＳｔａｒｔＤｏｃを受信しない。
【００５２】
続いて、ＧＤＩアプリ１１１ａは、１ページ目に関する一連の出力命令を発行する（Ｓ２０１）。そして、印刷制御部１１２は、１ページ目に関する一連の出力命令をフックし、１ページ目のＥｎｄＰａｇｅをフックした後に、１ページ目に関する一連の出力命令をＶ４プリンタドライバ１１３１ａに発行する（Ｓ２１１）。その際、１ページ目のＥｎｄＰａｇｅを発行した後に、印刷制御部１１２は、ＥｎｄＤｏｃを挿入して発行する。
【００５３】
これに応じて、Ｖ４プリンタドライバ１１３１ａは、１ページ目に関する一連の出力命令を受信し、初期化を開始する（Ｓ２２１）。続いて、Ｖ４プリンタドライバ１１３１ａは、１ページ目に関する一連の出力命令を対象にＸＰＳ解析（Ｓ２２２）及びコマンド化（Ｓ２２３）を行い、印刷ジョブとして１ページ目のＸＰＳファイル１３１をプリントスプーラ１１３２に出力する。その後、プリンタ２００は、プリントスプーラ１１３２から出力されるＸＰＳファイル１３１（Ｓ２４１）に応じて印刷を行い、出力用紙２１１として出力する。
【００５４】
ステップＳ２０１の後、ＧＤＩアプリ１１１ａは、２ページ目に関する一連の出力命令を発行する（Ｓ２０２）。そして、印刷制御部１１２は、２ページ目のＳｔａｒｔＰａｇｅをフックした後、当該ＳｔａｒｔＰａｇｅを再発行する前に、ＳｔａｒｔＤｏｃを挿入して発行する。そして、印刷制御部１１２は、２ページ目に関する一連の出力命令をフックし、２ページ目のＥｎｄＰａｇｅをフックした後に、２ページ目に関する一連の出力命令（ＳｔａｒｔＰａｇｅからＥｎｄＰａｇｅ）をＶ４プリンタドライバ１１３１ａに発行する（Ｓ２１２）。その際、２ページ目のＥｎｄＰａｇｅを発行した後に、印刷制御部１１２は、ＥｎｄＤｏｃを挿入して発行する。
【００５５】
これに応じて、Ｖ４プリンタドライバ１１３１ａは、２ページ目に関する一連の出力命令を受信し、初期化を開始する（Ｓ２２４）。続いて、Ｖ４プリンタドライバ１１３１ａは、２ページ目に関する一連の出力命令を対象にＸＰＳ解析（Ｓ２２５）及びコマンド化（Ｓ２２６）を行い、印刷ジョブとして２ページ目のＸＰＳファイル１３２をプリントスプーラ１１３２に出力する。その後、プリンタ２００は、プリントスプーラ１１３２から出力されるＸＰＳファイル１３２（Ｓ２４２）に応じて印刷を行い、出力用紙２１２として出力する。
【００５６】
以降、同様に、ＧＤＩアプリ１１１ａは、Ｎページ目に関する一連の出力命令を発行し（Ｓ２０３）、印刷制御部１１２は、Ｎページ目のＳｔａｒｔＰａｇｅをフックした後、当該ＳｔａｒｔＰａｇｅを再発行する前に、ＳｔａｒｔＤｏｃを挿入して発行する。そして、印刷制御部１１２は、Ｎページ目に関する一連の出力命令をフックし、Ｎページ目のＥｎｄＰａｇｅをフックした後に、Ｎページ目に関する一連の出力命令（ＳｔａｒｔＰａｇｅからＥｎｄＰａｇｅ）をＶ４プリンタドライバ１１３１ａに発行する（Ｓ２１３）。その際、Ｎページ目のＥｎｄＰａｇｅを発行した後に、印刷制御部１１２は、ＥｎｄＤｏｃを挿入して発行する。
【００５７】
これに応じて、Ｖ４プリンタドライバ１１３１ａは、Ｎページ目に関する一連の出力命令を受信し、初期化を開始する（Ｓ２２７）。続いて、Ｖ４プリンタドライバ１１３１ａは、Ｎページ目に関する一連の出力命令を対象にＸＰＳ解析（Ｓ２２８）及びコマンド化（Ｓ２２９）を行い、印刷ジョブとしてＮページ目のＸＰＳファイル１３３をプリントスプーラ１１３２に出力する。その後、プリンタ２００は、プリントスプーラ１１３２から出力されるＸＰＳファイル１３３（Ｓ２４３）に応じて印刷を行い、出力用紙２１３として出力する。
【００５８】
ステップＳ２０３の後、ＧＤＩアプリ１１１ａは、印刷対象の終了を示すＥｎｄＤｏｃを出力命令として発行する（Ｓ２０４）。そして、印刷制御部１１２は、ＥｎｄＤｏｃをフックした後、終了処理を行う（Ｓ２１４）。尚、このとき、印刷制御部１１２は、フックしたＥｎｄＤｏｃの再発行を行わない。
【００５９】
図７に示すように、ＧＤＩアプリ１１１ａがＳｔａｒｔＤｏｃを発行してからＶ４プリンタドライバ１１３１ａが１ページ目の印刷ジョブの生成を開始するまで時間ｔ３を要する。そして、時間ｔ３は、図５に示した時間ｔ１より短いことを示す。よって、本実施形態により、プリンタドライバによる印刷ジョブの発行タイミングをより速くすることができる。また、プリンタ２００が１ページ目の出力用紙２１１の印刷を開始するまでに時間ｔ４を要する。そして、時間ｔ４は、図５に示した時間ｔ２より短いことを示す。よって、１ページ目をより速く印刷することができる。
【００６０】
＜その他の実施の形態＞
上述した各実施形態は、Ｗｉｎｄｏｗｓ  ＯＳのプリントスプーラ及びＶ４プリンタドライバを利用する印刷システムに対し、適用可能である。また、上述した各実施形態は、Ｖ４プリンタドライバと同様の印刷処理、つまり全ての出力命令を受け付けたあとで、プリントスプーラに印刷実行を要求するようなアプリケーションに対しても適用可能である。また、上述した各実施形態は、Ｖ４プリンタドライバのＸＰＳファイル出力だけでなく、ファイル最終まで印刷が開始不可となるようなＰＤＦ（Portable Document Format）を出力する場合も適用可能であり、同様の効果を奏する。
【００６１】
尚、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではない。本開示は、任意の処理を、ＣＰＵにコンピュータプログラムを実行させることにより実現することも可能である。
【００６２】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６３】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施の形態を適宜組み合わせて実施されてもよい。
【００６４】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記Ａ１）
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックするフック部と、
前記フックされた出力命令を解析する解析部と、
前記解析された出力命令を前記プリンタドライバに向けて再発行する発行部と、
を備え、
前記発行部は、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令の再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する
情報処理装置。
（付記Ａ２）
前記第３の出力命令は、前記プリンタドライバに対して、発行済みの出力命令の集合を出力単位とした出力ジョブの生成を開始させる命令である、
付記Ａ１に記載の情報処理装置。
（付記Ａ３）
前記第３の出力命令は、前記プリンタドライバに対して、前記第１の出力命令が属するページを出力単位とした出力ジョブの生成を開始させる命令である、
付記Ａ１又はＡ２に記載の情報処理装置。
（付記Ａ４）
前記発行部は、
前記第３の出力命令として前記対象データの終了を示す終了命令を発行し、
当該終了命令の発行後、かつ、前記第２の出力命令の再発行前に、前記対象データの開始を示す開始命令を発行する
付記Ａ１乃至Ａ３のいずれか１項に記載の情報処理装置。
（付記Ａ５）
前記解析部は、
前記解析により、前記フックされた出力命令から特定のページに特有である第１の印刷設定を抽出し、
前記発行部は、
前記第１の出力命令が前記特定のページのページ区切りを示す場合に、当該特定のページに属し、かつ、前記第３の出力命令以前の出力命令に当該第１の印刷設定を追加する
付記Ａ１乃至Ａ４のいずれか１項に記載の情報処理装置。
（付記Ａ６）
前記解析部は、
前記解析において、前記第１の出力命令が属する第１のページと、前記第２の出力命令が属し、かつ、当該第１のページの次に出力される第２のページとの間で、前記第１の印刷設定が共通するか否かの判定をさらに行い、
前記発行部は、
前記判定により前記第１の印刷設定が共通する場合、前記第２のページに属する出力命令への当該第１の印刷設定の追加を抑止する
付記Ａ５に記載の情報処理装置。
（付記Ａ７）
前記第３の出力命令は、
前記プリンタドライバにおいて前記第１の印刷設定をクリアさせる第１のクリア命令を含むものであり、
前記発行部は、
前記判定により前記第１の印刷設定が共通する場合、前記第１のページに属する前記第３の出力命令から前記第１のクリア命令を除外して当該第３の出力命令を発行する
付記Ａ６に記載の情報処理装置。
（付記Ａ８）
前記解析部は、
前記解析により、前記フックされた出力命令から前記対象データの全体に対する第２の印刷設定を抽出し、
前記第３の出力命令は、
前記プリンタドライバにおいて前記第２の印刷設定をクリアさせる第２のクリア命令を含むものであり、
前記発行部は、
前記第３の出力命令から前記第２のクリア命令を除外して当該第３の出力命令を発行する
付記Ａ１乃至Ａ７のいずれか１項に記載の情報処理装置。
（付記Ａ９）
前記発行部は、
前記第２の出力命令が前記対象データの終了を示す終了命令である場合、当該第２の出力命令の再発行を抑止する
付記Ａ１乃至Ａ８のいずれか１項に記載の情報処理装置。
（付記Ｂ１）
コンピュータが、
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックし、
前記フックされた出力命令を解析し、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令を前記プリンタドライバに向けて再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する
印刷制御方法。
（付記Ｃ１）
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックする処理と、
前記フックされた出力命令を解析する処理と、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令を前記プリンタドライバに向けて再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する処理と、
をコンピュータに実行させる印刷制御プログラム。
【符号の説明】
【００６５】
１  情報処理装置
１１  フック部
１２  解析部
１３  発行部
１００  情報処理装置
１１０  制御装置
１１１  アプリケーション部
１１２  印刷制御部
１１２１  フック部
１１２２  解析部
１１２３  発行部
１１３  ＯＳ部
１１３１  プリンタドライバ
１１３２  プリントスプーラ
１２０  記憶装置
１２１  プログラム
１２２  フック済み出力命令
２００  プリンタ
２１０  出力用紙
２１１  出力用紙
２１２  出力用紙
２１３  出力用紙
１１１ａ  ＧＤＩアプリ
１１３１ａ  Ｖ４プリンタドライバ
１３１  ＸＰＳファイル
１３２  ＸＰＳファイル
１３３  ＸＰＳファイル
ｔ１  時間
ｔ２  時間
ｔ３  時間
ｔ４  時間
【図１】
2020086699.tif 000003
【図２】
2020086699.tif 000004
【図３】
2020086699.tif 000005
【図４】
2020086699.tif 000006
【図５】
2020086699.tif 000007
【図６】
2020086699.tif 000008
【図７】
2020086699.tif 000009
【手続補正書】
【提出日】令和1年11月15日(2019.11.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックするフック部と、
前記フックされた出力命令を解析する解析部と、
前記解析された出力命令を前記プリンタドライバに向けて再発行する発行部と、
を備え、
前記発行部は、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令の再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行し、
前記解析部は、
前記解析により、前記フックされた出力命令から特定のページに特有である第１の印刷設定を抽出し、
前記発行部は、
前記第１の出力命令が前記特定のページのページ区切りを示す場合に、当該特定のページに属し、かつ、前記第３の出力命令以前の出力命令に当該第１の印刷設定を追加し、
前記解析部は、
前記解析において、前記第１の出力命令が属する第１のページと、前記第２の出力命令が属し、かつ、当該第１のページの次に出力される第２のページとの間で、前記第１の印刷設定が共通するか否かの判定をさらに行い、
前記発行部は、
前記判定により前記第１の印刷設定が共通する場合、前記第２のページに属する出力命令への当該第１の印刷設定の追加を抑止する
情報処理装置。
【請求項２】
前記第３の出力命令は、前記プリンタドライバに対して、発行済みの出力命令の集合を出力単位とした出力ジョブの生成を開始させる命令である、
請求項１に記載の情報処理装置。
【請求項３】
前記第３の出力命令は、前記プリンタドライバに対して、前記第１の出力命令が属するページを出力単位とした出力ジョブの生成を開始させる命令である、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記発行部は、
前記第３の出力命令として前記対象データの終了を示す終了命令を発行し、
当該終了命令の発行後、かつ、前記第２の出力命令の再発行前に、前記対象データの開始を示す開始命令を発行する
請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第３の出力命令は、
前記プリンタドライバにおいて前記第１の印刷設定をクリアさせる第１のクリア命令を含むものであり、
前記発行部は、
前記判定により前記第１の印刷設定が共通する場合、前記第１のページに属する前記第３の出力命令から前記第１のクリア命令を除外して当該第３の出力命令を発行する
請求項１に記載の情報処理装置。
【請求項６】
前記発行部は、
前記第２の出力命令が前記対象データの終了を示す終了命令である場合、当該第２の出力命令の再発行を抑止する
請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
コンピュータが、
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックし、
前記フックされた出力命令を解析し、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令を前記プリンタドライバに向けて再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行し、
前記解析により、前記フックされた出力命令から特定のページに特有である第１の印刷設定を抽出し、
前記第１の出力命令が前記特定のページのページ区切りを示す場合に、当該特定のページに属し、かつ、前記第３の出力命令以前の出力命令に当該第１の印刷設定を追加し、
前記解析において、前記第１の出力命令が属する第１のページと、前記第２の出力命令が属し、かつ、当該第１のページの次に出力される第２のページとの間で、前記第１の印刷設定が共通するか否かの判定をさらに行い、
前記判定により前記第１の印刷設定が共通する場合、前記第２のページに属する出力命令への当該第１の印刷設定の追加を抑止する
印刷制御方法。
【請求項８】
出力要求の対象データを出力するためにプリンタドライバに向けて発行された一連の出力命令をフックするフック処理と、
前記フックされた出力命令を解析する解析処理と、
前記解析された第１の出力命令がページ区切りを示す場合、当該第１の出力命令を前記プリンタドライバに向けて再発行後、かつ、次のページに関する第２の出力命令の再発行前に、前記対象データの出力の区切りを示す第３の出力命令を前記プリンタドライバに向けて発行する発行処理と、
をコンピュータに実行させ、
前記解析処理は、
前記解析により、前記フックされた出力命令から特定のページに特有である第１の印刷設定を抽出し、
前記発行処理は、
前記第１の出力命令が前記特定のページのページ区切りを示す場合に、当該特定のページに属し、かつ、前記第３の出力命令以前の出力命令に当該第１の印刷設定を追加し、
前記解析処理は、
前記解析において、前記第１の出力命令が属する第１のページと、前記第２の出力命令が属し、かつ、当該第１のページの次に出力される第２のページとの間で、前記第１の印刷設定が共通するか否かの判定をさらに行い、
前記発行処理は、
前記判定により前記第１の印刷設定が共通する場合、前記第２のページに属する出力命令への当該第１の印刷設定の追加を抑止する
印刷制御プログラム。