(57)【要約】【課題】  ソフトウェアが要求する対象データに対する処理を実行する情報処理装置、情報処理方法およびプログラムを提供すること。【解決手段】  本情報処理装置１００は、処理条件の設定を受け付ける設定手段１３２と、ソフトウェア１１０からの対象データ１０２に対する処理の依頼に応答して、ソフトウェア１１０の演算単位の下位で動作する下位演算単位１１２毎に、処理条件データおよび内容データを生成する生成手段１３６と、ソフトウェア１１０内で起動された１以上の下位演算単位１１２を監視する監視手段１４２と、監視手段１４２によりトリガ条件の成立が検知されたことに応答して、処理条件の設定に従い、下位演算単位毎の処理条件データ１５４および内容データ１５６を統合する統合手段１３８とを含む。【選択図】  図１
2014132398.tif 000002
【特許請求の範囲】
【請求項１】
対象データに対する処理を実行する情報処理装置であって、
処理条件の設定を受け付ける設定手段と、
ソフトウェアからの対象データに対する処理の依頼に応答して、前記ソフトウェアの演算単位の下位で動作する下位演算単位毎に、処理条件データおよび内容データを生成する生成手段と、
前記ソフトウェア内で起動された１以上の前記下位演算単位を監視する監視手段と、
前記監視手段によりトリガ条件の成立が検知されたことに応答して、前記処理条件の設定に従い、前記下位演算単位毎の前記処理条件データおよび前記内容データを統合する統合手段と
を含む、情報処理装置。
【請求項２】
前記統合手段は、前記対象データ全体に対する処理条件の適用が指定される場合に、前記対象データ全体に対し適用する処理条件を第１の処理条件データとし、少なくとも次の下位演算単位の内容データに対応する処理条件データを無効として、複数の内容データを単一のジョブとして統合する、請求項１に記載の情報処理装置。
【請求項３】
前記トリガ条件は、同一の演算単位から起動された下位演算単位により生成され、かつ、開始以降、所定以上の間を置かずに生成された、一群の下位演算単位毎の処理条件データおよび内容データすべての生成処理が完了したことを条件とする、請求項１または２に記載の情報処理装置。
【請求項４】
前記監視手段は、同一の演算単位から起動された下位演算単位各々による処理の時間を計測する手段と、起動された下位演算単位すべての処理が終了してからの時間を計測する手段と、前記終了してからの時間が、計測された処理時間のうちの最長のものを超えた場合に、前記トリガ条件が成立したものと判定する、請求項１または２に記載の情報処理装置。
【請求項５】
前記生成手段は、前記ソフトウェアとは別の処理単位で実行され、前記監視手段は、前記ソフトウェアの終了を検知する手段と、前記ソフトウェアの終了が検知された後、所定時間経過したことを検知する手段と、前記所定時間が経過したことに応答して、前記トリガ条件が成立したものと判定する、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記処理条件の設定は、ドライバに対する初期値、対象データ全体に対する既定値、ソフトウェアの種類に応じた種別値、および対象データを構成する各部分に対して予め設定された各設定値またはこれらの少なくとも１つと、前記初期値、前記既定値、前記種別値および前記各設定値のいずれを適用するかのタイプ指定値を含む、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記タイプ指定値は、対象データを構成する各部分に対して紐付けられる、部分毎に前記初期値、前記既定値、前記種別値および前記各設定値のいずれを適用するかを指定する値を含む、請求項６に記載の情報処理装置。
【請求項８】
前記情報処理装置は、統合された前記処理条件データおよび前記内容データから、出力先の画像形成装置が処理可能な印刷データを生成する印刷データ生成手段をさらに含み、前記ソフトウェアの処理単位は、応用ソフトウェアのプロセスであり、前記下位演算単位は、印刷処理スレッドであり、前記設定手段、前記生成手段、前記監視手段、前記統合手段および前記印刷データ生成手段は、プリンタドライバとして提供される、請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
コンピュータが、処理条件の設定を受け付けるステップと、
コンピュータが、ソフトウェアからの対象データに対する処理の依頼に応答して、前記ソフトウェアの演算単位の下位で動作する下位演算単位毎に、処理条件データおよび内容データを生成するステップと、
コンピュータが、前記ソフトウェア内で起動された１以上の前記下位演算単位を監視する監視手段を起動するステップと、
コンピュータが、前記監視手段によりトリガ条件の成立が検知されたことを検知するステップと、
コンピュータが、前記成立に応答して、前記処理条件の設定に従い、前記下位演算単位毎の前記処理条件データおよび前記内容データを統合するステップと
を実行する、情報処理方法。
【請求項１０】
対象データに対する処理を実行するためのデバイス・ドライバのプログラムであって、コンピュータを、
処理条件の設定を受け付ける設定手段、
ソフトウェアからの対象データに対する処理の依頼に応答して、前記ソフトウェアの演算単位の下位で動作する下位演算単位毎に、処理条件データおよび内容データを生成する生成手段、
前記ソフトウェア内で起動された１以上の前記下位演算単位を監視する監視手段、および
前記監視手段によりトリガ条件の成立が検知されたことに応答して、前記処理条件の設定に従い、前記下位演算単位毎の前記処理条件データおよび前記内容データを統合する統合手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関し、より詳細には、ソフトウェアが要求する対象データに対する処理を実行する情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
通常、応用ソフトウェアから印刷を行う場合、応用ソフトウェアは、ひとつの文書データに対してひとつの印刷ジョブとなるように印刷処理を行う。しかしながら、応用ソフトウェアの中には、文書データ全体を印刷する場合に、所定単位ごとの複数の印刷ジョブに分割して処理を行うものが知られている。このような応用ソフトウェアによれば、文書データを構成する所定単位ごとにプリンタドライバの設定値を保持させることができ、所定単位ごとに印刷設定を変更および切り替えることが可能となる。
【０００３】
一方、プリンタドライバ自体にも、文書全体の印刷設定を行う機能の他、一部ページを文書全体の印刷設定とは異なる設定で印刷するために、印刷設定の例外を指定できるものが知られている。プリンタドライバの例外設定としては、用紙サイズなどの用紙属性をページ毎に変更したり、片面印刷と両面印刷とを組み合わせたり、複数の論理ページを１物理ページに配置したり、モノクロ印刷とカラー印刷とを組み合わせたりする設定が挙げられる。また、例外設定としては、その他、バナー・ページやスリップ・シートや区切り紙などを挿入したり、特定のシートを印刷済みの別のシートに置換したりする設定を挙げることができる。
【０００４】
上記プリンタドライバの例外設定に関し、所定単位毎に印刷ジョブを複数に分割する応用ソフトウェアから印刷する場合において、従来技術では、文書データ全体に対して例外設定を行うことが容易かつ柔軟ではないという問題があった。これは、文書データ全体にかかる処理が所定単位毎の複数のジョブに分割され得ることに起因する。複数のジョブに分割されるため、文書全体に対しての例外設定を行うことが困難となる。また、ユーザは、応用ソフトウェアの印刷処理の進め方を必ずしも把握しておらず、例外設定を行った場合でも、所望の仕上がりを得ることが難しい。さらに、文書データ全体に対し例外設定をしたり、文書データの所定単位毎に設定したりしたいという要望もある。
【０００５】
このような背景から、応用ソフトウェアの印刷処理に関わりなく、本来ひとつの文書データをひとつの印刷ジョブで印刷することができ、例外設定を文書データ全体に対して設定することが容易かつ柔軟にできるプリンタドライバの開発が望まれていた。
【０００６】
これまで、印刷ジョブの処理方法として、種々の技術が知られている。例えば、印刷ページ数の少ない印刷ジョブをまとめる技術として、特開２０１１−４８４８９号公報（特許文献１）が知られている。特許文献１は、中間言語ファイルを解析して印刷ページ数情報を抽出し、得られたページ数に基づいてジョブ制御情報を生成せずに印刷制御装置に直前ジョブのジョブ制御情報を使用するジョブ制御情報読込モードを指定する構成を開示する。特許文献１の従来技術では、当該ジョブにおいて印刷ページ数情報により印刷ページ数が少なく、且つジョブ制御情報が同じと判断した場合にジョブ制御情報についてはジョブ生成せずジョブ描画情報のみジョブ生成される。このような処理によって、少量ページの連続印刷時における印刷処理効率の向上を図っている。
【０００７】
また、特開２０１１−５９９９５号公報（特許文献２）は、複数の印刷ジョブを用いた作業の利便性を向上させることを目的とした技術を開示する。特許文献２に開示される従来技術では、複数の印刷ジョブにそれぞれ含まれる各印刷データから１つの印刷ジョブに統合するか否かを判断する判断情報が収集され、その判断情報の内容が一致する複数の印刷ジョブに含まれる各印刷データが１つの印刷ジョブに統合される。そして、その統合後の印刷ジョブに基づいて新たな内容の印刷ジョブが再構成され、又は統合後や再構成後の印刷ジョブの出力先が変更される。
【０００８】
しかしながら、上記特許文献１および特許文献２の従来技術のいずれも、応用ソフトウェアの印刷処理に関わりなく、本来ひとつの文書データをひとつの印刷ジョブで印刷することを可能とするものではなかった。さらに、いずれも、例外設定を文書データ全体に対して設定することが容易かつ柔軟にできないという要望に対して応えることができるものではなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、ソフトウェアでの処理方式にかかわらず、本来ひとつの対象データとして処理することが可能であり、対象データ全体に対する設定を容易かつ柔軟に設定することが可能な情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上記課題を解決するために、下記特徴を有する情報処理装置を提供する。本情報処理装置は、対象データに対する処理を実行する情報処理装置であり、
処理条件の設定を受け付ける設定手段と、
ソフトウェアからの対象データに対する処理の依頼に応答して、該ソフトウェアの演算単位の下位で動作する下位演算単位毎に、処理条件データおよび内容データを生成する生成手段と、
上記ソフトウェア内で起動された１以上の下位演算単位を監視する監視手段と、
上記監視手段によりトリガ条件の成立が検知されたことに応答して、処理条件の設定に従い、下位演算単位毎の上記処理条件データおよび上記内容データを統合する統合手段とを含む。
【発明の効果】
【００１１】
上記構成によれば、ソフトウェアでの処理方式にかかわらず、本来ひとつの対象データとして処理することが可能となり、対象データ全体に対する設定を容易かつ柔軟に設定することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態による情報処理装置および画像形成装置の機能ブロック図。
【図２】本実施形態による印刷条件のデータ構造を示す図。
【図３】印刷条件タイプ「応用ソフトウェア」の印刷条件のデータ構造を示す図。
【図４】本実施形態における応用ソフトウェアから画像形成装置に対して行われる印刷処理のデータフロー図。
【図５】スプール文書リスト（Ａ）および描画データ（Ｂ）のデータ構造を示す図。
【図６】印刷条件データのデータ構造を示す図。
【図７】スレッド監視部が管理するスレッド管理情報のデータ構造を示す図。
【図８】スレッド監視部によるトリガ条件の成立の判定方法を説明する図。
【図９】本実施形態においてプリンタドライバが実行する統合処理および印刷データ生成処理を示すフローチャート（１／２）。
【図１０】本実施形態においてプリンタドライバが実行する統合処理および印刷データ生成処理を示すフローチャート（２／２）。
【図１１】マージ文書リストのデータ構造を示す図。
【図１２】本実施形態による情報処理装置のハードウェア構成図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について説明するが、本発明は、以下に説明する実施形態に限定されるものではない。なお、以下に説明する実施形態では、対象データに対する処理を実行する情報処理装置の一例として、文書データ１０２を画像形成装置１８０から印刷出力するための処理を行うプリンタドライバ１３０を動作させる、情報処理装置１００を用いて説明する。
【００１４】
図１は、本実施形態による情報処理装置１００および画像形成装置１８０の機能ブロックを示す。図１に示す情報処理装置１００は、ネットワーク１７０を介して、プリンタや複合機などの画像形成装置１８０に接続される。ここで、ネットワーク１７０は、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、インターネット、ＰＡＮ（Personal Area Network）といった、コンピュータおよび機器間の通信を可能とする種々のネットワークが含まれ得る。
【００１５】
図１に示す情報処理装置１００上には、応用ソフトウェア１１０と、基本ソフトウェア１２０と、プリンタドライバ１３０とが稼働している。基本ソフトウェア１２０は、いわゆるオペレーティング・システム（ＯＳ）であり、応用ソフトウェア１１０およびプリンタドライバ１３０などの各種ソフトウェアを動作させる基盤環境を提供する。基本ソフトウェア１２０としては、典型的には、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、ＭａｃＯＳ（登録商標）、ｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）などを挙げることができる。なお、説明する実施形態は、特定の例として、基本ソフトウェア１２０がＷｉｎｄｏｗｓ（登録商標）系のＯＳであるとして説明する。
【００１６】
応用ソフトウェア１１０は、典型的には、ワードプロセッサ、スプレッドシート、プレゼンテーション、ドキュメント・ビューア、フォトレタッチ系またはドロー系のグラフィック・ツール、プリント・ツールなど、文書データを印刷可能とする種々のアプリケーションとして構成される。応用ソフトウェア１１０は、基本ソフトウェア１２０上で動作し、当該応用ソフトウェア１１０が生成した文書データ、あるいは他のソフトウェアで生成された文書データを読み出し、この文書データの印刷を行う。ここで、文書データ１０２は、上記応用ソフトウェア１１０上で取り扱い可能な、単一または複数のページのドキュメント、画像などの如何なる形式のファイルを含むことができる。
【００１７】
プリンタドライバ１３０は、画像形成装置１８０に対応させて情報処理装置１００上にインストールされた印刷デバイス・ドライバである。プリンタドライバ１３０は、例えば、プリンタドライバ・インストーラなどにより情報処理装置１００に提供される。プリンタドライバ１３０は、応用ソフトウェア１１０からの印刷指令に応答して、画像形成装置１８０に対する印刷処理を開始させる。
【００１８】
応用ソフトウェア１１０から、文書データ１０２を画像形成装置１８０で印刷する際は、以下のような流れとなる。まず、応用ソフトウェア１１０は、文書データ１０２を読み込んで、基本ソフトウェア１２０のグラフィック・サブシステム（以下、サブシステムと略称する。）１２２を介してプリンタドライバ１３０に印刷指令を行う。サブシステム１２２は、Ｗｉｎｄｏｗｓ（登録商標）の特定の実施形態では、ＧＤＩ（Graphic Device Interface）である。応用ソフトウェア１１０からサブシステム１２２へ印刷開始の指令が行われると、サブシステム１２２からプリンタドライバ１３０が呼び出される。プリンタドライバ１３０は、呼び出されると、文書データ１０２に基づく印刷データへの生成処理を開始する。
【００１９】
応用ソフトウェア１１０は、文書の開始および終了、各ページの開始および終了、各ページに用紙サイズ、片面または両面印刷の指定などの属性値、文字、図形、イメージなどの各ページの描画内容の指示をサブシステム１２２に対して行う。プリンタドライバ１３０は、応用ソフトウェア１１０からの指示内容をサブシステム１２２から受け取り、伝達される文書データの描画内容（文字、図形およびイメージなどを含む。）を、ユーザが指定した印刷条件に従って、画像形成装置１８０で処理可能な形式の印刷データ１４６に変換する。
【００２０】
印刷データ１４６は、典型的には、画像形成装置１８０が対応しているＰＤＬ（Page Description Language）やプリンタ制御言語で記述される。その後、印刷データ１４６は、基本ソフトウェア１２０のサブシステム１２２を経由して、ネットワーク１７０を介して画像形成装置１８０に送信される。画像形成装置１８０は、受信した印刷データを、印刷エンジンが処理できる画像データに展開し、給紙部より給紙された転写部材に画像を転写し、排紙部に用紙を排出する。
【００２１】
上記応用ソフトウェア１１０から開始される印刷処理に関し、通常、応用ソフトウェアは、ひとつの文書データに対してひとつの印刷ジョブとなるように印刷処理を行う。しかしながら、説明する実施形態における応用ソフトウェア１１０は、文書データ全体を印刷する場合において、所定単位ごとの複数の印刷ジョブに分割して処理を行うことができる。このとき、応用ソフトウェア１１０のプロセス内で、所定単位毎に印刷処理スレッドが起動され、所定単位毎に印刷ジョブが処理される。このような場合において、従来技術では、複数の印刷ジョブに分割されることに起因して、文書データ全体として取り扱うことができず、文書データ全体に対する簡易かつ柔軟な印刷設定を実現できなかった。
【００２２】
そこで本実施形態によるプリンタドライバ１３０は、印刷処理スレッド単位で生成される印刷ジョブを統合し、本来ひとつの文書データを、単一の印刷ジョブとして取り扱えるように構成されている。以下、図１、さらに図２〜図１１を参照しながら、スレッド単位で生成される同一文書データの印刷ジョブを統合して実行する印刷処理について、より詳細に説明する。
【００２３】
図１に示す本実施形態によるプリンタドライバ１３０は、より詳細には、印刷条件設定部１３２と、画面表示部１３４と、スプール部１３６と、印刷データ統合部１３８と、印刷データ生成部１４０とを含み構成される。また、プリンタドライバ１３０を構成する要素としては、図１には、スレッド監視部１４２が示されている。
【００２４】
印刷条件設定部１３２は、応用ソフトウェア１１０およびサブシステム１２２からの要求に応じて、画面表示部１３４を介して各種設定画面のユーザ・インタフェースを表示させ、ユーザから印刷条件１４４の設定を受け付ける設定手段である。画面表示部１３４は、情報処理装置１００が備えるディスプレイなどの表示装置上に、プリンタドライバ１３０に関する各種画面およびウィンドウを表示させる手段である。
【００２５】
印刷条件１４４は、画像形成装置１８０およびプリンタドライバ１３０が有する機能に関する各設定項目の設定値を含む。印刷条件１４４は、典型的には、用紙サイズ、片面または両面印刷、カラーまたはモノクロ、給排紙先、印刷解像度、バナー・ページやスリップ・シートや区切り紙の挿入、特定のシートを印刷済みの別シートに置換する例外設定などの各設定値を含むことができる。
【００２６】
さらに、印刷条件１４４は、上記各設定項目の設定値から構成され、事前設定される複数の設定プロファイルを含むことができる。設定プロファイルは、印刷条件タイプで識別される。上記設定プロファイルとしては、プリンタドライバに対する初期設定値（印刷条件タイプ＝ドライバ初期設定）、文書データ全体に対する既定の設定値（印刷条件タイプ＝ジョブ全体）、応用ソフトウェア別の種類に応じた設定値（印刷条件タイプ＝応用ソフトウェア）などを挙げることができる。印刷条件１４４は、さらに、上記いずれの設定プロファイルを適用するかを示す適用印刷条件タイプの指定を含む。各設定プロファイルの各設定項目および適用印刷条件タイプの指定は、画面表示部１３４が表示する設定画面を介して設定され、これらの設定値が保存される。
【００２７】
上記印刷条件タイプは、上述した特定の設定プロファイルを示すものの他、文書データ１０２を構成する各所定単位の部分に対して予め設定された各設定値を適用することを指定するタイプ（印刷条件タイプ＝一般）を含んでいてもよい。文書データ１０２の所定単位毎の印刷条件は、応用ソフトウェア１１０が文書データ１０２を印刷する際に、文書データ１０２の描画内容とともにサブシステム１２２を経由してプリンタドライバ１３０に渡される。上記印刷条件タイプは、さらに、文書データを構成する各部分に対して個別に上記いずれの印刷条件タイプを適用するか選択するタイプを含んでもよい。上記文書データの各部分に対する個別の指定も、画面表示部１３４を介してユーザ・インタフェースを表示させ、ユーザから適時設定を受け付けることができる。
【００２８】
説明する実施形態では、印刷条件タイプとしては、図２（Ａ）〜（Ｃ）および図３に示すように、「一般」、「ドライバ初期設定」、「ジョブ全体」および「応用ソフトウェア」の４タイプと、「個別指定」のタイプが用いられる。「個別指定」タイプは、文書データを構成する各部分に対して個別に「一般」、「ドライバ初期設定」、「ジョブ全体」および「応用ソフトウェア」の４タイプのうちのいずれかを指定するものである。また、説明する実施形態では、図２（Ｄ）に示すように、いずれの印刷条件タイプを適用するかを指定する設定値が、上記ユーザ・インタフェースを介して事前に行われるものとする。また、「個別指定」が選択された場合は、各部分に適用する印刷条件タイプが適時設定されるものとする。
【００２９】
印刷条件タイプが「ドライバ初期設定」である場合は、図２（Ｂ）に示すような印刷条件データの設定値にしたがって、文書データ全体に適用されて、印刷データ１４６が生成される。印刷条件タイプが「ジョブ全体」である場合は、図２（Ｃ）に示すような印刷条件データの設定値にしたがって、文書データ全体に適用されて、印刷データ１４６が生成される。さらに、印刷条件タイプが「応用ソフトウェア」である場合は、図３に示す印刷条件データの応用ソフトウェア一覧の中から、現在起動されている応用ソフトウェアに一致する設定値にしたがって、印刷データ１４６が生成される。
【００３０】
これに対して、印刷条件タイプが「一般」である場合は、応用ソフトウェア１１０の文書データ１０２に事前設定された、図２（Ａ）に示すような印刷条件の各部分毎の設定値にしたがって、所定単位毎に適用され、印刷データ１４６が生成される。印刷条件タイプが「個別指定」である場合は、画面表示部１３４に表示する設定画面により、分割されるジョブ毎に、「ドライバ初期設定」、「ジョブ全体」、「応用ソフトウェア」および「一般」のいずれかの印刷条件が指定される。指定された印刷条件は、詳細を後述するスプール文書リスト１５８と組み合わせて管理され、スプール文書リスト１５８のレコード毎に印刷条件データを識別する識別子を割り振ることによって、印刷条件を切り替え可能としている。
【００３１】
ここで、再び図１を参照する。また、図４は、本実施形態における応用ソフトウェア１１０から画像形成装置１８０に対して行われる印刷処理のデータフローを説明する図であり、ここで併せて参照する。スプール部１３６は、応用ソフトウェア１１０からの文書データ１０２の印刷要求に応答して、印刷指示内容を受け取り、該ソフトウェアの同一プロセスから起動されるスレッド毎に印刷条件データ１５４および描画データ１５６を生成する生成手段である。
【００３２】
特定の実施形態であるＷｉｎｄｏｗｓ（登録商標）環境では、応用ソフトウェア１１０からの印刷指示内容は、ＤＤＩ（Device Driver Interface）コールにより、サブシステム１２２を介してプリンタドライバ１３０に渡される。上述したように、応用ソフトウェア１１０からの印刷指示内容は、印刷制御情報と、ユーザにより設定された文書データを印刷する際の印刷条件と、文書データ１０２の各ページで描画されているページ描画内容とを含み構成される。印刷制御情報は、上述した文書の開始または終了、各ページの開始または終了などの情報を含む。
【００３３】
スプール部１３６は、印刷制御情報にしたがって、印刷ジョブを開始したり、終了させたり、ページとページの境界を判断する。スプール部１３６は、印刷条件データ１５４と、ページ描画内容を表すＤＤＩコールをそれぞれの命令と引数値に分解した描画データ１５６とを保存し、印刷条件データ１５４と描画データ１５６とを対応付けるスプール文書リスト１５８を生成する。
【００３４】
さらに、スプール部１３６は、図４に示すように、最初の印刷処理スレッド１１２が起動されるタイミングで、スレッド監視部１４２を起動および生成する。スレッド監視部１４２は、応用ソフトウェア１１０の同一プロセス内で起動される印刷処理スレッド１１２−１〜１１２−ｎを監視する監視手段である。２回目以降の印刷スレッドが起動されるタイミングでは、スプール部１３６は、起動済みのスレッド監視部１４２に対して、印刷処理スレッド１１２を識別するスレッド識別子の情報を渡す。スレッド監視部１４２は、プロセスの異なる応用ソフトウェア毎にひとつずつ起動されることになる。
【００３５】
図５は、スプール部１３６で管理されるスプール文書リスト１５８（Ａ）と、該リストから参照される描画データ１５６（Ｂ）のデータ構造を示す図である。図６は、上記スプール文書リスト１５８から参照される印刷条件データ１５４のデータ構造を示す図である。スプール文書リスト１５８では、図５（Ａ）に示すように、応用ソフトウェア１１０から起動される印刷処理スレッド１１２を識別するスレッド識別子毎に、印刷条件データと描画データとが識別子により対応付けられている。図５（Ａ）に示すスプール文書リスト１５８では、文書データの各部分に設定された印刷条件データの識別子が、各描画データの識別子に対応付けられている。
【００３６】
描画データ１５６は、文書データ１０２の各ページで描画されている文字、図形、イメージなどのＤＤＩコールを、命令と引数値それぞれを記録した集合である。描画データ１５６は、図５（Ｂ）に示すように、描画データを識別する描画データ識別子（ＩＤ１〜ＩＤｎ）で管理される。
【００３７】
印刷条件データ１５４は、印刷条件設定部１３２で指定される文書データ全体に対する印刷条件、または応用ソフトウェア１１０で指定されるページ毎の印刷条件である。その集合は、図６に示されるように、印刷条件データを識別する印刷条件データ識別子（ｄｒｖ，ａｐｘ，ｊｏｂ，ｃｄ１〜ｃｄｍ）で管理されている。ここで「ａｐｘ」のｘは特定のソフトウェアを識別する。
【００３８】
識別子「ｄｒｖ」で示す印刷条件は、印刷条件タイプ「ドライバ初期設定」の設定プロファイルの設定値を保持する。識別子「ａｐｘ」で示す印刷条件は、印刷条件タイプ「応用ソフトウェア」における、図３で示した一覧のうちの対応する応用ソフトウェアの設定プロファイルの設定値を保持する。識別子「ｊｏｂ」で示す印刷条件は、印刷条件タイプ「ジョブ全体」の設定プロファイルの設定値を保持する。識別子「ｃｄ１」〜「ｃｄｍ」で示す印刷条件は、それぞれ、文書データの部分に設定された印刷条件データの設定値を保持する。
【００３９】
スプール部１３６が、印刷要求に応答して、図４に示すように、印刷処理スレッド１１２毎に所定単位の印刷データを生成する。これにより、図５および図６に示すような、印刷条件データ１５４の集合、描画データ１５６の集合およびスプール文書リスト１５８が、記憶装置１５０上に準備される。
【００４０】
ここで、再び図１を参照する。図１に示すスレッド監視部１４２は、スプール部１３６により最初の印刷処理スレッド１１２−１が起動されるタイミングで起動される。スレッド監視部１４２は、、応用ソフトウェア１１０内で起動された１以上の印刷処理スレッド１１２−１〜１１２−ｎの監視に基づいて、統合すべき印刷データの準備が完了したことを検知するためのトリガ条件の成立を待ち受ける。スレッド監視部１４２は、トリガ条件が成立したと判断すると、印刷データ統合部１３８に対して印刷ジョブを統合して出力させる指示を発行する。
【００４１】
スレッド監視部１４２は、上記トリガ条件の成立を判断するため、各印刷処理スレッド１１２の振る舞いを監視しており、印刷処理スレッド１１２毎に応用ソフトウェア１１０から指示される処理の処理時間を計測し、各処理時間の計測値を保持する。図７は、スレッド監視部１４２が管理するスレッド管理情報１６２のデータ構造を示す図である。図７に示すように、スレッド管理情報１６２では、同一プロセスから起動された印刷処理スレッド１１２毎の処理時間が記録される。
【００４２】
スレッド監視部１４２は、さらに、起動済みの印刷処理スレッド１１２すべての処理が終了してから、新たにスレッドが起動されるまでの時間を計測している。スレッド監視部１４２は、すべての処理が終了してから、同一プロセスから起動されたスレッドの処理時間の計測値のうちの最長のもの（図７においてグレーで表示されている）を超えて経過した場合に、トリガ条件が成立したものと判定する。
【００４３】
図８は、スレッド監視部１４２によるトリガ条件の成立の判定方法を説明する図である。図８の例示では、スレッド＃１〜＃６が、同一プロセスから起動されたスレッドとしてそれぞれ指示された処理を実行している。それぞれの処理に要する処理時間は一定ではなく、処理量に応じて長短がある。図８に示すスレッド＃６の処理は、文書データ１０２に基づく印刷処理における最後の処理単位のスレッドに対応する。このスレッド＃６の処理が終了してから、スレッド＃４のものに対応した最大処理時間以上経過したタイミングで、トリガ条件が成立したものと判断され、出力指示が行われる。そして、同一プロセスから起動されたスレッド＃１〜＃６による印刷データは、統合対象として特定される。
【００４４】
このように、上述した実施形態において、同一のプロセスから起動された印刷処理スレッド１１２によって生成され、かつ、開始以降、所定以上の間を置かずに生成された、一群のスレッド毎の印刷条件データおよび描画データが統合の対象とされる。そして、これらすべての生成処理が完了したことがトリガ条件となる。これにより、本来ひとつの文書データは、統合された単一の印刷ジョブとして取り扱われることになる。
【００４５】
また構成によれば、スレッドの監視に基づき、本来ひとつの文書データにかかるデータが特定されるため、複数の印刷ジョブをひとつの印刷ジョブにまとめる条件について、ユーザに何らかの問い合わせをしたりする必要がない。さらに、ひとつのジョブにまとめる条件をあらかじめ設定値として保持したりする必要もない。
【００４６】
なお、説明する実施形態では、スレッド監視部１４２は、一群の対象が特定された段階でトリガ条件が成立したものと判断し、直ちに統合処理を呼び出すものとして説明する。しかしながら、統合処理を呼び出すタイミングは、これに限定されるものではない。他の実施形態では、スレッド監視部１４２は、印刷ジョブが完了した後も存続し、応用ソフトウェア１１０の終了を検知し、その終了が検知された後、さらに所定時間経過したことを検知して、トリガ条件が成立したものと判定する構成としてよい。
【００４７】
上記他の実施形態の構成によれば、応用ソフトウェア１１０での文書データ１０２の印刷処理が終了し、コンピュータのリソースが解放された後に、プリンタドライバ１３０の印刷処理が開始されることになる。このため、本プリンタドライバ１３０のみを使用するだけで、夜間の無人時における、蓄積された印刷ジョブの連続印刷を実現することができる。
【００４８】
ここで、再び図１を参照する。図１に示す印刷データ統合部１３８は、上記スレッド監視部１４２によりトリガ条件の成立が検知されたことに応答して、統合処理を開始する。印刷データ統合部１３８は、印刷条件の設定に従い、スレッド毎の印刷条件データおよび描画データを、それぞれ取捨選択しながら統合ジョブとして統合する。統合処理では、スプール部１３６が管理するスプール文書リスト１５８、印刷条件データ１５４、および印刷条件設定部１３２が管理する印刷ジョブに適用する印刷条件の適用印刷条件タイプが参照されて、マージ文書リスト１６０が生成される。
【００４９】
印刷データ生成部１４０は、印刷データ統合部１３８から受け取ったマージ文書リスト１６０にしたがって、スレッド毎の印刷条件データおよび描画データを統合し、出力先の画像形成装置１８０で処理可能な統合された印刷データ１４６を生成する。
【００５０】
なお、印刷データの統合処理および統合された印刷データの生成処理の詳細については、以下、図９〜図１１を参照しながら詳細を説明する。図９および図１０は、本実施形態においてプリンタドライバ１３０が実行する統合処理および印刷データ生成処理を示すフローチャートである。なお、図９および図１０は、図中のポイントＡを介して連結されていることに留意されたい。
【００５１】
図９に示す処理は、スレッド監視部１４２から出力指示が行われたことに応答して、ステップＳ１００から開始される。ステップＳ１０１では、印刷データ統合部１３８は、スプール文書リスト１５８から、スレッド識別子と、描画データ識別子とを読み出し、マージ文書リスト１６０にそれぞれ書き込む。この段階では、マージ文書リスト１６０における印刷条件データ識別子の欄は空白のままとされている。ステップＳ１０２では、印刷条件設定部１３２で設定された、図２（Ｄ）に示した適用印刷条件タイプの指定に応じて処理を分岐させる。
【００５２】
ステップＳ１０２で、適用印刷条件タイプが「ドライバ初期設定」であった場合（ドライバ初期設定）には、ステップＳ１０３へ処理が分岐される。ステップＳ１０３では、印刷データ統合部１３８は、印刷条件設定部１３２が管理する図６に示した識別子「ｄｒｖ」を、マージ文書リスト１６０の１番目のスレッドの印刷条件データ識別子として書き込む。ステップＳ１０４では、印刷データ統合部１３８は、マージ文書リスト１６０の２番目以降のスレッドの印刷条件データ識別子を無効とし、ポイントＡを介して、ステップＳ１１３へ処理を進める。
【００５３】
ステップＳ１０２で、適用印刷条件タイプが「ジョブ全体」であった場合（ジョブ全体）には、ステップＳ１０５へ処理が分岐される。ステップＳ１０５では、印刷データ統合部１３８は、図６に示した識別子「ｊｏｂ」を、マージ文書リスト１６０の１番目のスレッドの印刷条件データ識別子として書き込み、ステップＳ１０４へ進める。ステップＳ１０４では、印刷データ統合部１３８は、マージ文書リスト１６０の２番目以降のスレッドの印刷条件データ識別子を無効とする。
【００５４】
ステップＳ１０２で、適用印刷条件タイプが「応用ソフトウェア」であった場合（応用ソフトウェア）には、ステップＳ１０６へ処理が分岐される。ステップＳ１０６では、印刷データ統合部１３８は、実行中の応用ソフトウェアに対応した識別子「ａｐｘ」（ここで、ｘは特定のソフトウェアを識別する）を抽出し、マージ文書リスト１６０の１番目のスレッドの印刷条件データ識別子として書き込む。ステップＳ１０４では、印刷データ統合部１３８は、同様に、マージ文書リスト１６０の２番目以降のスレッドの印刷条件データの識別子を無効とする。
【００５５】
図１１は、マージ文書リスト１６０のデータ構造を示す図である。図１１は、適用印刷条件タイプ「応用ソフトウェア」の場合を例示するものである。図１１では、図３に示すソフトウェア別一覧における起動中の応用ソフトウェアに対応する設定プロファイルの印刷条件データ識別子「ａｐ３」が、１番目のものについてのみ記載されている。２番目以降のスレッドに関しては、印刷条件データは無効とされている。
【００５６】
上記適用印刷条件タイプが、「ドライバ初期設定」、「ジョブ全体」および「応用ソフトウェア」である場合は、文書データ全体に対する印刷設定の適用が指示される場合に該当する。この場合には、文書データ全体に対し適用する印刷条件（ｄｒｖ、ｊｏｂまたはａｐｘ）を第１番目のスレッドの印刷条件データとし、次回以降のスレッドに対応する印刷条件データについては無効とされる。これにより、複数のスレッドにまたがる複数のジョブが、本来の単一の文書データにかかる単一の統合されたジョブとして処理されるようになる。
【００５７】
一方、ステップＳ１０２で、適用印刷条件タイプが「一般」であった場合（一般）は、ステップＳ１０７へ処理が分岐される。ステップＳ１０７〜ステップＳ１０９のループでは、スプール文書リスト１５８に登録されたスレッド毎に、ステップＳ１０８の処理が実行される。ステップＳ１０８では、印刷データ統合部１３８は、スプール文書リスト１５８中の各スレッドに対応付けられた既定の印刷条件データ識別子（ｃｄ１〜ｃｄｍ）各々を、マージ文書リスト１６０の各スレッドの印刷条件データの識別子各々として書き込む。すべてのスレッドに対する処理が完了すると、ポイントＡを介して、ステップＳ１１３へ処理が進められる。
【００５８】
ステップＳ１０２で、適用印刷条件タイプが「個別指定」であった場合（個別指定）は、ステップＳ１１０へ処理が分岐される。ステップＳ１１０〜ステップＳ１１２のループでも、スプール文書リスト１５８のスレッド毎に、ステップＳ１１１の処理が実行される。ステップＳ１１１では、印刷データ統合部１３８は、スプール文書リスト１５８中の各スレッドに事前に対応付けられた印刷条件タイプの印刷条件データ識別子（ｄｖｒ，ｊｏｂ，ａｐｘ，ｃｄ１〜ｃｄｍ）を、マージ文書リスト１６０の各スレッドの印刷条件データ識別子として書き込む。このスレッド毎に適用する印刷条件タイプの個別指定は、適時、ユーザ・インタフェースを介して行われる。すべてのスレッドに対する処理が完了すると、ポイントＡを介して、ステップＳ１１３へ処理が進められる。
【００５９】
図１０を参照すると、ステップＳ１１３〜ステップＳ１２０のループでは、マージ文書リスト１６０内のリスト要素（スレッド）毎に、登録順に、ステップＳ１１４〜ステップＳ１１９の処理により印刷データへの変換処理が実行される。ステップＳ１１４では、印刷データ生成部１４０は、マージ文書リスト１６０における処理対象の当該リスト要素のスレッド識別子に対応する印刷条件データ識別子を参照する。
【００６０】
ステップＳ１１５では、参照した印刷条件データ識別子が有効であるか無効であるかを判定する。ステップＳ１１５で、有効であると判定された場合（ＹＥＳ）は、ステップＳ１１６へ処理が進められて、印刷データ生成部１４０は、識別子で識別される印刷条件データを参照する。ステップＳ１１７では、印刷データ生成部１４０は、印刷条件データの各設定項目の値を参照して、ＪＤＦ（Job Definition Format）などのチケットあるいはプリンタ制御コマンドに変換し、ステップＳ１１８へ処理を進める。
【００６１】
一方、ステップＳ１１５で、マージ文書リスト１６０の処理対象のリスト要素の印刷条件データ識別子が無効であった場合（ＮＯ）は、印刷条件データに関する変換処理は行わず、直接ステップＳ１１８へ処理が進められる。ステップＳ１１８では、印刷データ生成部１４０は、マージ文書リスト１６０の処理対象のリスト要素の描画データ識別子を参照し、描画データのリストを得る。ステップＳ１１９では、印刷データ生成部１４０は、描画データ識別子で描画データを参照して、ＤＤＩコールの各命令と引数値にしたがって、ＰＤＬなどで記述された印刷データに変換する。
【００６２】
ステップＳ１１４〜ステップＳ１１９の処理をリスト要素数分だけ繰り返し、ステップＳ１１３〜Ｓ１２０のループを抜けると、ステップＳ１２１へ処理が進められる。このようにして生成された印刷データ１４６は、グラフィック・サブシステム１２２を経由して画像形成装置１８０により印刷される。
【００６３】
ステップＳ１２１では、印刷データ生成部１４０は、印刷データ１４６への変換処理がすべて終了したことに応答して、スプール部１３６および印刷データ統合部１３８に対し、変換処理の終了を通知する。ステップＳ１２２では、印刷データ生成部１４０は、必要に応じて、スプール文書リスト１５８、印刷条件データ１５４、描画データ１５６およびマージ文書リスト１６０を記憶装置１５０から削除する。ステップＳ１２３では、スプール部１３６は、印刷データ生成部１４０から印刷データの変換処理の終了通知を受け取り、スレッド監視部１４２に対し終了を指令する。ステップＳ１２４では、終了の指令を受けて、スレッド監視部１４２は、スレッド管理情報１６２を記憶装置１５０から削除し、ステップＳ１２５で本処理を終了させる。
【００６４】
以下、図１２を参照しながら、上述までの実施形態における情報処理装置１００のハードウェア構成について説明する。図１２は、本実施形態による情報処理装置１００のハードウェア構成図である。本実施形態による情報処理装置１００は、デスクトップ型のパーソナル・コンピュータ、ワークステーションなどの汎用コンピュータなどとして構成されている。図１２に示す情報処理装置１００は、シングルコアまたはマルチコアのＣＰＵ（Central Processing Unit）１２と、ＣＰＵ１２とメモリとの接続を担うノースブリッジ１４と、サウスブリッジ１６とを含む。サウスブリッジ１６は、ノースブリッジ１４と専用バスまたはＰＣＩバスを介して接続され、ＰＣＩバスやＵＳＢなどのＩ／Ｏとの接続を担う。
【００６５】
ノースブリッジ１４には、ＣＰＵ１２の作業領域を提供するＲＡＭ（Random Access Memory）１８と、映像信号を出力するグラフィックボード２０とが接続される。グラフィックボード２０には、アナログＲＧＢ、ＨＤＭＩ（High-Definition Multimedia Interface）、ＤＶＩ（Digital Visual Interface）、ＤｉｓｐｌａｙＰｏｒｔ（登録商標）などの映像出力インタフェースを介してディスプレイ５０に接続される。
【００６６】
サウスブリッジ１６には、ＰＣＩ（Peripheral Component Interconnect）２２、ＬＡＮポート２４、ＩＥＥＥ１３９４ポート２６、ＵＳＢ（Universal Serial Bus）ポート２８、補助記憶装置３０、オーディオ入出力３２、シリアルポート３４が接続される。補助記憶装置３０は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などである。補助記憶装置３０は、コンピュータ装置を制御するための基本ソフトウェア１２０、応用ソフトウェア１１０およびプリンタドライバ１３０のプログラムや各種システム情報や各種設定情報を格納する。記憶装置３０は、図１における記録装置１５０を構成する。ＬＡＮポート２４は、情報処理装置１００を有線および無線でネットワークに接続させるインタフェース機器である。
【００６７】
ＵＳＢポート２８には、キーボード５２およびマウス５４などの入力装置が接続されてもよく、当該情報処理装置１００の操作者からの各種指示の入力を受け付けるためのユーザ・インタフェースを提供することができる。本実施形態による情報処理装置１００は、補助記憶装置３０からプログラムを読み出し、ＲＡＭ１８が提供する作業空間に展開することにより、ＣＰＵ１２の制御の下、上述した各機能部および各処理を実現する。
【００６８】
以上説明したように、上記実施形態によれば、ソフトウェアでの処理方式にかかわらず、本来ひとつの対象データとして処理することが可能であり、対象データ全体に対する設定を容易かつ柔軟に設定することが可能な情報処理装置、情報処理方法およびプログラムを提供することができる。
【００６９】
本実施形態によるプリンタドライバ１３０は、印刷処理スレッド単位で生成される印刷ジョブを統合し、単一の印刷ジョブとして取り扱う構成を採用する。このため、応用ソフトウェアが、印刷処理スレッド単位で印刷ジョブを分割して生成しても、文書データ全体に対して例外設定などの印刷設定を簡便に行うことができる。また、必要に応じて、文書データ全体ではなく所定単位毎に印刷設定を適用することもでき、柔軟な印刷設定が可能となる。
【００７０】
なお、上述までの実施形態において、プロセスは、スレッドに対する上位の演算単位であり、上記スレッドは、プロセスに対する下位の演算単位である。プロセスは、１以上のスレッドから構成され、典型的には、ＣＰＵおよびメモリ空間が割り当てられ、割り当てられた資源内で独立して動作する。一方、スレッドは、上位の処理単位であるプロセスを構成しており、典型的には、メモリ空間上で実行される。上記プリンタドライバ１３０は、スプーラ・サービスなどのプロセス上で動作する。
【００７１】
上述した印刷条件設定部１３２、画面表示部１３４、スプール部１３６、印刷データ統合部１３８、印刷データ生成部１４０およびスレッド監視部１４２を実現するためのプログラムは、プリンタドライバのインストーラ・パッケージなどよって提供することができる。
【００７２】
また、上述した実施形態では、情報処理装置１００と画像形成装置１８０とがネットワーク１７０を介して直接接続され、情報処理装置１００側のプリンタドライバ１３０で統合処理が行われるものとして説明してきた。しかしながら、情報処理装置１００と画像形成装置１８０との間にプリンタサーバが介在する態様も可能である。このような場合は、情報処理装置１００上のプリンタドライバ１３０で統合処理が行われる実施形態の他、プリンタサーバ上のプリンタドライバで統合処理が行われる形態としてもよい。
【００７３】
また、上記機能部は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ブルーレイディスク、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
【００７４】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７５】
１００…情報処理装置、１０２…文書データ、１１０…応用ソフトウェア、１１２…印刷処理スレッド、１２０…基本ソフトウェア、１２２…グラフィック・サブシステム、１３０…プリンタドライバ、１３２…印刷条件設定部、１３４…画面表示部、１３６…スプール部、１３８…印刷データ統合部、１４０…印刷データ生成部、１４２…スレッド監視部、１４４…印刷条件、１４６…印刷データ、１５０…記憶装置、１５４…印刷条件データ、１５６…描画データ、１５８…スプール文書リスト、１６０…マージ文書リスト、１６２…スレッド管理情報、１７０…ネットワーク、１８０…画像形成装置、１２…ＣＰＵ、１４…ノースブリッジ、１６…サウスブリッジ、１８…ＲＡＭ、２０…グラフィックボード、２２…ＰＣＩ、２４…ＬＡＮポート、２６…ＩＥＥＥ１３９４ポート、２８…ＵＳＢポート、３０…補助記憶装置、３２…オーディオ入出力、３４…シリアルポート、５２…キーボード、５４…マウス
【先行技術文献】
【特許文献】
【００７６】
【特許文献１】特開２０１１−４８４８９号公報
【特許文献２】特開２０１１−５９９９５号公報
【図１】
2014132398.tif 000003
【図２】
2014132398.tif 000004
【図３】
2014132398.tif 000005
【図４】
2014132398.tif 000006
【図５】
2014132398.tif 000007
【図６】
2014132398.tif 000008
【図７】
2014132398.tif 000009
【図８】
2014132398.tif 000010
【図９】
2014132398.tif 000011
【図１０】
2014132398.tif 000012
【図１１】
2014132398.tif 000013
【図１２】
2014132398.tif 000014