(57)【要約】【課題】  プリントプロセッサとプリンタドライバを用いて印刷データを生成する際にグラフィクスオブジェクトの消失を抑制する仕組みを提供することを目的の１つとする【解決手段】  プリントプロセッサは、印刷設定に、縮小を伴う印刷設定が設定されていることに少なくとも従って、縮小を伴わないレイアウト処理を実行させ、当該縮小を伴わないレイアウト処理に関する情報を前記プリンタドライバに通知する。プリンタドライバは、当該縮小を伴わないレイアウト処理に関する情報をプリントプロセッサから受信したことに従って、プリントプロセッサにより縮小を伴わないレイアウト処理が行われた描画データを、通知された情報に含まれるパラメータに基づき変倍し、当該変倍された描画データに基づき、印刷装置に送信する印刷データを生成する。【選択図】  図７
2020107242.tif 000002
【特許請求の範囲】
【請求項１】
プリントプロセッサとプリンタドライバを用いて印刷データを生成する情報処理装置であって、
前記プリントプロセッサは、
アプリケーションが出力した印刷に用いる描画データに対応する印刷設定に基づき、縮小を伴う印刷設定がなされていると判断されたことに少なくとも従って、縮小を伴わないレイアウト処理を実行させるレイアウト制御手段と
前記縮小を伴わないレイアウト処理に関する情報を前記プリンタドライバに通知する通知手段と、
を有し、
前記プリンタドライバは、
前記縮小を伴わないレイアウト処理に関する情報を受信したことに従って、前記プリントプロセッサにより前記縮小を伴わないレイアウト処理が行われた描画データを、前記通知された情報に含まれるパラメータに基づき変倍する変更手段と、
前記変更手段で変倍された描画データに基づき印刷装置に送信する印刷データを生成する生成手段と、
を有し、
前記変更手段は、前記縮小を伴わないレイアウト処理が行われた描画データに含まれるグラフィクスオブジェクトの幅が所定値以下に縮小されないよう前記描画データを変倍することを特徴とする情報処理装置。
【請求項２】
前記レイアウト制御手段は、前記縮小を伴う印刷設定として１枚のシートに複数の論理ページを割り付けるページ集約の設定がなされている場合、出力ページのサイズを前記割り付けページ数に基づき変更し、当該サイズが変更された出力ページに複数の論理ページに拡大縮小を行うことなく割り付けるレイアウト処理を実行させ、
前記通知手段は、前記ページ集約の設定がなされていることに従って、縮小率を示すパラメータを通知することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プリンタドライバの前記変更手段は、前記通知手段で受信した情報に含まれる縮小率を示すパラメータに基づき前記描画データを縮小することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記レイアウト制御手段は、拡大を伴う印刷設定がなされていると判断された場合においても、拡大を伴わないレイアウト処理を実行させ、
前記通知手段は、前記拡大を伴う印刷設定がなされていると判断されたことに従って、拡大率を示すパラメータを通知し、
前記プリンタドライバの前記変更手段は、前記拡大率を示すパラメータに基づき前記描画データを拡大することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記レイアウト制御手段は、拡大を伴う印刷設定がなされていると判断されたことに少なくとも従って、拡大処理と印刷設定に基づくレイアウト処理を更に実行させ、
前記拡大を伴う印刷設定がなされている場合は、前記通知手段による前記プリンタドライバにレイアウト処理に関するパラメータは通知されず、前記パラメータを受け取っていない場合は、前記プリンタドライバの変倍手段による変倍処理は実行されないことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記変更手段は、描画データに含まれる描画オブジェクトを縮小する際に、前記縮小を伴わないレイアウト処理が行われた描画オブジェクトに含まれるグラフィックスオブジェクトの幅が縮小処理によって所定値以下となると判断した場合に、当該グラフィックスオブジェクトの幅を所定値に置き換えることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
プリントプロセッサとプリンタドライバを用いて印刷データを生成する生成方法であって、
前記プリントプロセッサは、
アプリケーションが出力した印刷に用いる描画データに対応する印刷設定に基づき縮小を伴う印刷設定が設定されていると判断されたことに少なくとも従って、縮小を伴わないレイアウト処理を実行させるレイアウト制御工程と
前記縮小を伴わないレイアウト処理に関する情報を前記プリンタドライバに通知する通知工程と、
を有し、
前記プリンタドライバは、
前記縮小を伴わないレイアウト処理に関する情報を受信したことに従って、前記プリントプロセッサにより前記縮小を伴わないレイアウト処理が行われた描画データを、前記通知された情報に含まれるパラメータに基づき変倍する変更工程と、
前記変更工程で変倍された描画データに基づき印刷装置に送信する印刷データを生成する生成工程と、
を有し、
前記変更工程では、前記縮小を伴わないレイアウト処理が行われた描画データに含まれるグラフィクスオブジェクトの幅が所定値以下に縮小されないよう前記描画データを変倍することを特徴とする印刷データの生成方法。
【請求項８】
印刷データを生成する生成方法を情報処理装置のコンピュータに実行させるプログラムであって、
前記プログラムは、プリントプロセッサを構成するプログラムと、プリンタドライバを構成するプログラムを含み、
前記プリントプロセッサを構成するプログラムは、前記コンピュータを、
アプリケーションが出力した印刷に用いる描画データに対応する印刷設定に基づき、縮小を伴う印刷設定が設定されている判断されたことに少なくとも従って、縮小を伴わないレイアウト処理を実行させるレイアウト制御工程と
前記縮小を伴わないレイアウト処理に関する情報を前記プリンタドライバに通知する通知工程と、
して機能させ、
前記プリンタドライバを構成するプログラムは、前記コンピュータを、
前記縮小を伴わないレイアウト処理に関する情報を受信したことに従って、前記プリントプロセッサにより前記縮小を伴わないレイアウト処理が行われた描画データを、前記通知された情報に含まれるパラメータに基づき変倍する変更工程と、
前記変更工程で変倍された描画データに基づき印刷装置に送信する印刷データを生成する生成工程と、
して機能させ、
前記変更工程では、前記縮小を伴わないレイアウト処理が行われた描画データに含まれるグラフィクスオブジェクトの幅が所定値以下に縮小されないよう制御することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データを生成する情報処理装置に関するものである。
【背景技術】
【０００２】
印刷を実行するための印刷データをプリンタに提供する情報処理装置が知られている。例えば、プリンタドライバ及び当該プリンタドライバのプリプロセスモジュールであるプリントプロセッサを用いて文書データを印刷データ（ＰＤＬデータ）に変換することが知られている（特許文献１）。特許文献１の情報処理装置では、プリントプロセッサがユーザに設定された印刷設定及び文書データに基づいて描画指示を生成し、プリンタドライバが当該描画指示をプリンタで印刷可能な印刷データに変換する。例えば、印刷設定として２ｉｎ１印刷が設定されている場合、プリントプロセッサはＧＤＩと協働して、２つの論理ページを１ページにレイアウトし、１つの描画データに変換するレイアウト処理を実行する。また、プリントプロセッサは、ＧＤＩと協働して、描画データが用紙サイズにフィットするよう拡大・縮小した描画データを描画することもできる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１８２６９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述のプリントプロセッサとＧＤＩを用いて、論理ページの縮小を伴う描画データを生成するケースにおいて、縮小に伴ってグラフィクスオブジェクトの幅が所定サイズを下回ると、当該グラフィクスオブジェクトが描画されないといった問題がある。
【０００５】
具体的には、Ｎｉｎ１設定が行われ１ページに複数の論理ページを割り付ける場合、用紙サイズに合わせて描画データを縮小する場合、製本印刷が設定された場合などに、論理ページの縮小が発生しうる。プリントプロセッサとＧＤＩが協働して生成する描画データからグラフィクスオブジェクトが消失すると、後段のプリンタドライバでは、当該グラフィクスオブジェクトを含まないＰＤＬデータが生成される。その結果、ユーザの意図とは異なる印刷物が生成されてしまうといった問題がある。
【０００６】
本発明は、上述の問題点の少なくとも１つを鑑みなされたものである。本発明は、プリントプロセッサを用いて縮小を伴わないレイアウトを行いつつ、且つ、プリンタドライバ側でオブジェクトの幅を考慮した縮小処理を実行することにより、オブジェクトの消失を抑制する仕組みを提供することを目的の１つとする。また、本発明の別の側面としては、プリントプロセッサとプリンタドライバを用いて描画データを縮小した印刷データを生成する際に、グラフィックスオブジェクトの消失を抑制することを目的の１つとする。
【課題を解決するための手段】
【０００７】
上記の少なくとも１つの目的を達成するために本発明の情報処理装置は、プリントプロセッサとプリンタドライバを用いて印刷データを生成する情報処理装置であって、前記プリントプロセッサは、アプリケーションが出力した印刷に用いる描画データに対応する印刷設定に基づき、縮小を伴う印刷設定がなされていると判断したことに少なくとも従って、縮小を伴わないレイアウト処理を実行させるレイアウト制御手段と前記縮小を伴わないレイアウト処理に関する情報を前記プリンタドライバに通知する通知手段と、を有し、前記プリンタドライバは、前記縮小を伴わないレイアウト処理に関する情報を受信したことに従って、前記プリントプロセッサにより前記縮小を伴わないレイアウト処理が行われた描画データを、前記通知された情報に含まれるパラメータに基づき変倍する変更手段と、前記変更手段で変倍された描画データに基づき印刷装置に送信する印刷データを生成する生成手段と、を有し、前記変更手段は、前記縮小を伴わないレイアウト処理が行われた描画データに含まれるグラフィクスオブジェクトの幅が所定値以下に縮小されないよう前記描画データを変倍することを特徴とする。
【発明の効果】
【０００８】
本発明の１つの側面としては、プリントプロセッサを活用してレイアウト処理を行うケースにおいてもオブジェクトの消失を抑制できるようになる。また、本発明の別の側面としては、プリントプロセッサとプリンタドライバとを用いて描画データを縮小した印刷データを生成する際に、グラフィックスオブジェクトの消失を抑制できる。
【図面の簡単な説明】
【０００９】
【図１】印刷システムの概要を示す図である。
【図２】情報処理装置１０１のハードウェア構成の一例を示す図である。
【図３】情報処理装置１０１のソフトウェア構成の一例を示す図である。
【図４】操作部１１６に表示される印刷設定画面の一例を示す図である。
【図５】印刷処理のフローを説明するための模式図である。
【図６】グラフィクスオブジェクトの消失を説明するための模式図である。
【図７】プリントプロセッサによるレイアウト処理の一例を示すフローチャートである。
【図８】プリンタドライバによる印刷データ生成処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
＜第１の実施形態＞
まず図１を用いて、本発明に係る印刷システムの構成を説明する。本実施形態に係る印刷システムは、情報処理装置１０１及び印刷装置１０２を含む。
【００１２】
情報処理装置１０１は、印刷装置１０２とＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの通信インタフェースを介して通信可能に接続されている。
【００１３】
なお、本実施形態では、ＵＳＢケーブル１００を介して印刷装置と情報処理装置が接続されている形態を例示しているがこれに限定されない。ネットワークケーブルを介して通信可能に接続されていてもよいし、図示省略のアクセスポイントを介したＩＥＥＥ８０２．１１規格（以下、８０２．１１規格と呼ぶ）に基づく無線通信で通信可能に接続されていてもよい。更には、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（登録商標）などのアドホック通信で通信可能に接続されていてもよい。
【００１４】
情報処理装置１０１は、印刷装置１０２に送信する印刷データ（ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データ）を生成する機能を有する。情報処理装置１０１が生成した印刷データは印刷装置１０２に送信される。本実施形態では、情報処理装置の一例としてプリンタドライバがインストールされたＰＣ、タブレット端末などを想定しているがこれに限定されるものではない。
【００１５】
印刷装置１０２は、情報処理装置１０１などのホスト端末から印刷データを受信し、当該印刷データに基づき紙などのシートに画像を印刷する印刷機能を有する印刷装置である。なお、本実施形態では、印刷装置の一例として印刷機能を有する単機能のＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）である場合を例示しているがこれに限定されるものではない。印刷機能に加えて、スキャン、コピーなどの機能を有するＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）であってもよい。
【００１６】
＜情報処理装置＞
次に図２を用いて、情報処理装置１０１のハードウェア構成を説明する。制御部１１０に含まれるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１２又はストレージ１１４に記憶された制御プログラムを読み出して、情報処理装置１０１を制御する。
【００１７】
制御部１１０は、バスに接続されたＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１３、ストレージ１１４、操作部Ｉ／Ｆ１１５を含む。また、制御部１１０は、印刷装置などの周辺装置と通信するための通信Ｉ／Ｆ１２３を有している。
【００１８】
ＣＰＵ１１１は制御部１１０全体の動作を制御する中央演算装置（プロセッサ）である。ＲＡＭ１１３は揮発性メモリであり、ワークエリア、ＲＯＭ１１２及びストレージ１１４に格納された各種制御プログラムを展開するための一時記憶領域として用いられる。
【００１９】
ＲＯＭ１１２は不揮発性メモリであり、情報処理装置１０１のブートプログラムなどが格納されている。ストレージ１１４はＲＡＭ１１３と比較して大容量な不揮発性のフラッシュメモリである。ストレージ１１４には、情報処理装置１０１の制御用プログラムが格納されている。また、後述するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）３００やアプリケーション２００、プリンタドライバ５００、プリントプロセッサ４００もストレージ１１４に格納されている。
【００２０】
ＣＰＵ１１１は情報処理装置の起動時、ＲＯＭ１１２に格納されているブートプログラムを実行する。このブートプログラムは、ストレージ１１４に格納されているＯＳ３００のプログラムを読み出し、ＲＡＭ１１３上に展開するためのものである。ＣＰＵ１１１はブートプログラムを実行すると、続けてＲＡＭ１１３上に展開したＯＳ３００のプログラムを実行し、情報処理装置１０１の制御を行う。また、ＣＰＵ１１１は制御用プログラムによる動作に用いるデータもＲＡＭ１１３上に格納して読み書きを行う。
【００２１】
なお、情報処理装置１０１は、１つのＣＰＵ１１１が後述するフローチャートに示す各処理を実行するものとするが、他の態様であっても構わない。例えば、複数のＣＰＵやマイクロプロセッサ（ＭＰＵ）が協働して後述するフローチャートに示す各処理を実行するようにすることもできる。また、一部の処理は、各Ｉ／Ｆや各部と協働して実現されるものとする。
【００２２】
操作部Ｉ／Ｆ１１５は、操作部１１６と制御部１１０を接続する。操作部１１６は、各種画面を表示するディスプレイデバイスと、マウス、キーボードなど、ユーザ操作を受け付ける入力デバイスを備えている。なお、タブレット端末の場合は、タッチパネルディスプレイがディスプレイデバイスと入力デバイスの両方を兼ねるものとする。ディスプレイ及び入力デバイスを備える操作部１１６は、情報を表示する表示部やユーザの指示を受け付ける受付部として機能する。操作部１１６には、ＯＳ３００、アプリケーション２００、プリンタドライバ５００などが提供する各種画面が表示される。また、ユーザは操作部１１６に指などのオブジェクトを用いてタッチ操作を行うことで、情報処理装置１０１に所望の操作指示を入力することができる。また操作部１１６には、ハードウェアキーが備えられている。ユーザはハードウェアキーを押下して情報処理装置１０１に操作指示を入力することもできる。
【００２３】
通信Ｉ／Ｆ１２３は、印刷装置などの周辺デバイスと、情報処理装置を通信可能に接続するインタフェースである。図１で説明したように、印刷装置と通信するための通信Ｉ／Ｆ１２３はＵＳＢやＬＡＮなどの有線接続であっても良いし、無線接続であってもよい。
【００２４】
＜情報処理装置１０１のソフトウェア構成＞
次に図３を用いて、情報処理装置１０１のソフトウェア構成を説明する。図３は、ＣＰＵ１１１がＲＯＭ１１２やストレージ１１４に記憶されている制御プログラムを読み出すことで実現されるソフトウェアの機能ブロック図である。
【００２５】
ＯＳ３００は、情報処理装置１０１全体の動作を制御するための基本ソフトウェアである。ＯＳ３００は、例えば、Ｍｉｃｒｏｓｏｆｔ社が提供するＷｉｎｄｏｗｓ（登録商標）などで構成される。ＯＳは、アプリケーション２００等の応用アプリケーションからディスプレイやプリンタへのデータ出力をサポートするフレームワーク３０１を含んでいる。当該フレームワークには、ＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）やＳｐｏｏｌｅｒなどが含まれている。
【００２６】
アプリケーション２００は、情報処理装置１０１にインストールされたアプリケーションプログラムである。ここでは、説明のため文書を作成するワードプロセッサアプリケーションがインストールされているものとして説明する。ワードプロセッサアプリケーションは、ユーザの入力に基づき文書データを作成する機能を有する。更に、アプリケーション２００は、ＯＳ３００のフレームワーク３０１と協働して印刷用の描画データを生成する機能を有する。アプリケーションのメニューなどから印刷指示が行われたことをＯＳ３００が検知すると、図示省略のプリントダイアログが表示される。ユーザはプリントダイアログから出力先となるプリンタを選択したり、プリンタドライバの詳細印刷設定画面を呼び出して印刷設定を変更したりすることができる。
【００２７】
また、情報処理装置１０１には、印刷装置１０２に送信する印刷データを生成する際に用いられるプリントプロセッサ４００と、プリンタドライバ５００がインストールされている。プリンタドライバには、ＵＩ表示制御部５１０と、ＧＲ（グラフィックレンダリング）処理部５２０が含まれている。
【００２８】
プリントプロセッサ及びプリンタドライバ５００は図示省略のインストールパッケージを用いてユーザによりインストールされる。インストールパッケージに含まれるインストーラは、プリンタドライバ５００を情報処理装置にインストールするユーザ指示を検知すると、プリンタドライバ５００を情報処理装置にインストールする。更に、インストールが完了するとプリンタドライバ５００に紐付けるプリントプロセッサをプリントプロセッサ４００に差し替える。
【００２９】
ＵＩ表示制御部５１０は、印刷設定画面を提供する。図４は、ＵＩ表示制御部が操作部１１６上に表示する印刷設定画面の一例を示している。ユーザは、印刷設定画面を介して部数や印刷の向き、印刷物をステイプルで綴じる綴じ処理などの設定を行うことができる。
【００３０】
また、印刷設定画面に表示される表示アイテム４０１は、１枚のシートに、複数ページを集約するページ集約の設定を行うための表示アイテムである。本実施形態では、一例として１枚のシートの１面に２ページを縮小して割り付ける２ｉｎ１が設定されている場合を例示している。ユーザは表示アイテム４０１を介して１ｉｎ１、２ｉｎ１、４ｉｎ１、１６ｉｎ１などのページ集約設定を行うことができる。また、ユーザは、表示アイテム４０２を介して中綴じ製本や中折り製本の設定を行うこともできる。中綴じ製本印刷や中折り製本の場合も、１枚のシートに２ページ分の描画データが割り付けられる。
【００３１】
また、表示アイテム４０３は、出力用紙サイズを設定するための表示アイテムであり、表示アイテム４０４は、アプリケーションから入力されるデータのサイズを設定するための表示アイテムである。４０３と、４０４の組み合わせにより、１ページ分の描画データを縮小変倍して印刷しなければならないケースが発生しうる。例えば、４０４で、Ａ３サイズが設定され、４０３でＡ４サイズが設定された場合、Ａ３サイズのデータをＡ４サイズに縮小するため描画データに対して７０％の縮小を行う必要が生じる。これらの印刷設定画面を介して変更された後に、ＯＫボタンの押下を検知すると、ＵＩ表示制御部５１０は、プリンタドライバ５００やプリントプロセッサ４００、ＧＤＩが参照する印刷設定であるＤＥＶＭＯＤＥを更新する。ＤＥＢＭＯＤＥはアプリケーションがＯＳと協働して生成した描画データに対応する（対応付けるべき）印刷設定を表す。
【００３２】
続けて、印刷のフローについて図５を用いて説明する。この図を用いて、プリントプロセッサ４００を利用した印刷時の流れについて説明をする。
【００３３】
ＧＤＩ３１０、Ｓｐｏｏｌｅｒ３２０はＯＳ３００のフレームワーク３０１に含まれるコンポーネントである。ＧＤＩ３１０はアプリケーション層に対し印刷を含めた描画インタフェースを提供する。Ｓｐｏｏｌｅｒ３２０は後述するスプールファイル（ＥＭＦ）６００の格納制御や、プリンタドライバで生成された印刷データ（ＰＤＬデータ）の送信に関する処理を行う。ＥＭＦとはＥｎｈａｎｃｅｄ  Ｍｅｔａｆｉｌｅの略称でＯＳ３００がプリンタドライバへ送信する中間データ（抽象化した描画データ）として用いる画像ファイル形式である。
【００３４】
アプリケーション２００は必要に応じプリンタドライバ５００のＵＩ表示制御部５１０を呼び出し、図４に例示した印刷設定画面を表示し、ユーザ操作による印刷設定の変更を受け付ける。
【００３５】
その後アプリケーション２００は、コモンプリントダイアログ等から印刷開始のユーザ操作が行われたことを検知すると、ＧＤＩ３１０のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を呼び出す。当該呼び出しに成功すると、アプリケーション２００は、印刷設定及び描画データをＧＤＩ３１０に受け渡す。
【００３６】
ＧＤＩ３１０は、アプリケーション２００から渡された、印刷設定及び描画データをスプールファイル（ＥＭＦ）６００の形式で格納する。アプリケーション２００のプロセスによるＥＭＦファイルの生成が終了すると、アプリケーション２００のプロセスは、ＯＳ３００と協働してプリントプロセッサ４００に印刷要求を発行する。
【００３７】
一方、スプーラサービス上にロードされたプリントプロセッサ４００は、印刷要求を受け付けたことに従って、Ｓｐｏｏｌｅｒ３２０のＥＭＦファイルから印刷設定と描画データをページ単位で読み込む。読み込んだページ単位のデータは、ＧＤＩ３１０を介してプリンタドライバ５００に受け渡され、印刷データに変換される。以降、プリントプロセッサが読み込むページ単位のデータを論理ページと呼ぶ。
【００３８】
本実施形態のプリントプロセッサ４００は、ページデータをプリンタドライバ５００に出力する際、ＧＤＩ３１０と協働して、複数ページ分の論理ページを１ページに割り付けたり、ページサイズを拡大又は縮小したりするレイアウト処理を行うことができる。即ち、プリントプロセッサ４００は、ＧＤＩ３１０にレイアウト制御を行わせる機能を有する。また、論理ページデータを回転したりするレイアウト処理を行うことができる。これらの処理は、論理ページに対して座標変換を行うことで実現される。
【００３９】
ＧＲ処理部５２０は、上記のようにしてＧＤＩ３１０を経由して受け取った描画データ（描画指示）を、出力対象の印刷装置１０２で印刷が可能な形式の印刷データ（ＰＤＬデータ）に変換する。更に、ＧＲ処理部５２０は、ジョブ制御コマンドの付加などを行い、印刷データを含む印刷ジョブを生成してＳｐｏｏｌｅｒ３２０に格納する。Ｓｐｏｏｌｅｒ３２０に格納された印刷ジョブは、ポートモニタ経由で印刷装置１０２に送信される。
【００４０】
＜プリントプロセッサを用いた縮小処理の問題点＞
続いて、図６を用いて、プリントプロセッサを用いたレイアウト処理の問題について説明する。図６は、プリントプロセッサを用いて、ページ集約のレイアウト及び縮小を実現する場合の問題を説明するための模式図である。
【００４１】
ここでは、一例としてプリントプロセッサによる座標変換を用いて２ｉｎ１のページ集約を実現する場合を例示している。
【００４２】
論理ページ６０１は、１ページ目の論理ページを例示しており、論理ページ６０２は、２ページ目の論理ページを例示している。各論理ページ６０１及び６０２には、幅の小さい（例えば１．５ピクセル幅）のグラフィックスオブジェクト６０３が複数配置されている例を示している。
【００４３】
６１０はプリントプロセッサの座標変換指示に基づきＧＤＩ３１０が座標変換を行い、論理ページ６０１と論理ページ６０２を２ｉｎ１印刷で一つの物理ページに集約した場合の描画データを例示したものである。この集約レイアウトにより、１ページ分の論理ページは約７１％縮小されることになる。その結果として、幅の小さなオブジェクト６０３を構成するいくつかの幅が１ピクセルを下回ることになる。ここで、プリントプロセッサとＧＤＩ３１０が協働して行うプリンタデバイスコンテキスへの描画では、短辺が所定の幅以下（例えば、１ピクセルより小さい幅）のグラフィクスオブジェクトの描画を省略するよう構成されている。その結果として、描画データ６１０に示すように、グラフィクスオブジェクトの描画情報が失われてしまう。
【００４４】
このように、プリントプロセッサ４００とＧＤＩ３１０を用いて、論理ページの縮小を伴う描画データを生成するケースにおいて、縮小に伴ってグラフィクスオブジェクトの幅が所定サイズを下回ることがある。この場合、所定サイズ以下となったオブジェクトはＧＤＩによる描画処理によって、描画情報が消失してしまうといった問題がある。
【００４５】
プリントプロセッサとＧＤＩが協働して生成する描画データからグラフィクスオブジェクトが消失すると、後段のプリンタドライバでは、当該グラフィクスオブジェクトを含まないＰＤＬデータが生成される。その結果として、ユーザの意図とは異なる印刷物が生成されてしまうといった問題がある。
【００４６】
本実施形態では上述の問題を鑑み、プリントプロセッサで縮小を伴わないレイアウトを行いつつ、且つ、レイアウト済みの描画データに対してドライバでオブジェクトの幅を考慮した縮小処理を実行し、オブジェクトの消失を抑制するよう制御する。以下具体的な仕組みについて説明する。
【００４７】
図７は本発明に係るプリントプロセッサ４００の処理を説明するためのフローである。この図７を用いて、本発明のプリントプロセッサ４００の処理について説明を行う。
【００４８】
図７のフローチャートに示す各動作（ステップ）は、ＣＰＵ１１１がストレージ１１４に記憶されたプログラムをＲＡＭ１１３に読み出し、実行することにより実現される。なお、フローチャートで示す各処理は、プリントプロセッサ４００やＧＤＩ３１０が協働して実現するものとする。各処理を実現する主体となるプログラムを明確にするため、ソフトウェアコンポーネントやアプリケーションなどを主語として記載するものとする。図８のフローチャートは、アプリケーション２００から印刷指示が行われてＥＭＦスプールファイルが生成された後、アプリケーション２００のプロセスから、プリントプロセッサ４００に印刷要求を発行されたことに応じて開始される。
【００４９】
Ｓ７０１において、プリントプロセッサ４００は、ＯＳによりスプーラサービス上にロードされ、初期化処理（初期設定処理）が行われる。初期化処理が完了すると処理をＳ７０２に進める。
【００５０】
Ｓ７０２において、プリントプロセッサ４００は、ＧＤＩ３１０のＡＰＩを呼び出し、描画データの変換ジョブを開始する。続けてＳ７０３において、プリントプロセッサ４００は、ＧＤＩ３１０のＡＰＩを呼び出し、アプリケーション２００が指定した印刷設定を取得する。
【００５１】
Ｓ７０４において、プリントプロセッサ４００は、物理ページの開始が必要かどうかの判断を行う。具体的に説明する。例えば２ｉｎ１印刷の場合の２番目の論理ページでは、１番目の論理ページ処理時に物理ページは開始されており、新たな物理ページを開始する必要はない。一方、２ｉｎ１印刷の場合の１枚目の論理ページや、３枚目の論理ページの場合、物理ページの開始を宣言する必要がある。プリントプロセッサ４００は、Ｓ７０３で取得した印刷設定や処理済み（変換済み）の論理ページのページ番号（処理済みのページ数）を考慮し、物理ページの開始が必要かどうかの判断を行う。物理ページの開始が必要と判断した場合には、処理をＳ７０５に進める。
【００５２】
Ｓ７０５において、プリントプロセッサ４００は、物理ページの開始をＧＤＩ３１０のＡＰＩを介して、ＧＲ処理部５２０に通知する。
【００５３】
Ｓ７０６にて、プリントプロセッサ４００はＳ７０３で取得した印刷設定に基づき、縮小を伴うレイアウト設定に該当するかどうかを判断する。該当すると判断した場合、処理をＳ７０７に進め、該当しないと判断した場合、処理をＳ７０８に進める。
【００５４】
例えば、Ｎｉｎ１などのページ集約の設定がなされている場合、縮小を伴うレイアウト設定に該当する。また、中綴じ製本や中折り製本の設定がなされている場合も縮小を伴うレイアウト設定に該当する。更に、図４に例示した原稿サイズの設定４０３と、出力ページのサイズに関する設定４０４の組み合わせにより、１ページ分の描画データを縮小すべきケースも縮小を伴うレイアウト設定に該当する。更に、ページ集約と、設定４０３、設定４０４などの組み合わせにより論理ページを縮小して配置すべきケースも縮小を伴うレイアウト設定に該当する。
【００５５】
続けてＳ７０７において、プリントプロセッサ４００は、以後のレイアウト処理で各論理ページを縮小せずにレイアウト可能な大きさの物理ページサイズを設定する。例えば、Ａ４用紙に２ｉｎ１のページ集約を行う設定がなされている場合は、物理ページサイズを「Ａ４」サイズから「Ａ３」サイズに変更する。また、Ａ４用紙に４ｉｎ１のページ集約を行う設定がなされている場合は、物理ページを「Ａ４」サイズから「Ａ２」サイズに変更する。
【００５６】
Ｓ７０８において、プリントプロセッサ４００は、Ｓ７０３で取得した印刷設定に基づき、回転、移動、拡大縮小等のレイアウト変更を行う必要があるか判断する。レイアウト変更を行う必要があると判断した場合、処理をＳ７０９に進め、レイアウト変更を行う必要がないと判断した場合、処理をＳ７１２に進める。
【００５７】
Ｓ７０９において、プリントプロセッサ４００は、Ｓ７０３で取得した印刷設定に基づき、拡大・縮小成分を含まず、並行移動、回転成分を含む座標変換パラメータを導出する。更に、当該座標変換パラメータに基づき座標変換が行われた描画データを拡大・縮小するためのパラメータである拡大・縮小率（拡大率又は縮小率を示す変倍率）を導出する。
【００５８】
プリントプロセッサ４００は、拡大縮小やＮｉｎ１等のレイアウト設定、及び対象の論理ページのサイズや出力する物理ページのサイズ、用紙の給紙向き（ＳＥＦ、ＬＥＦ）等を考慮し、上記６つの座標変換パラメータや拡大縮小率を算出するものとする。
【００５９】
Ｓ７１０において、プリントプロセッサ４００は、Ｓ７０９で導出した拡大・縮小成分を含まず、並行移動、回転成分を含む座標変換パラメータに基づき、ＧＤＩ３１０に座標変換の指示を発行する。ＧＤＩは当該座標変換指示に基づき、１ページ分の論理ページに対して回転（Ｒｘ、Ｒｙ）や並行移動（Ｔｘ、Ｔｙ）の座標変換を行う。具体的には、プリントプロセッサ４００は、ＧＤＩのＡＰＩであるＳｅｔＷｏｒｌｄＴｒａｎｓｆｏｒｍ関数を呼び出す。ＧＤＩ３１０が提供するＳｅｔＷｏｒｌｄＴｒａｎｓｆｏｒｍ関数の引数には、座標（ｘ、ｙ）を座標（ｘ’、ｙ’）に変換する場合の座標変換パラメータが指定される。具体的には、プリントプロセッサ４００は、式（１）及び式（２）に示す６つの座標変換パラメータｅＭ１１、ｅＭ１２、ｅＭ２１、ｅＭ２２、ｅＤｘ、ｅＤｙを引数として設定する。
ｘ’  ＝  ｘ  ＊  ｅＭ１１  ＋  ｙ  ＊  ｅＭ２１  ＋  ｅＤｘ  ・・・（式１）
ｙ’  ＝  ｘ  ＊  ｅＭ２１  ＋  ｙ  ＊  ｅＭ２２  ＋  ｅＤｙ  ・・・（式２）
【００６０】
式（１）、（２）は描画オブジェクトに対して、並行移動を含む線形写像（拡大、縮小、移動、回転、スキューなど）を行う、いわゆるアフィン変換の式を示している。
【００６１】
次に、Ｓ７１１にて、プリントプロセッサ４００はＧＤＩ３１０のＡＰＩであるＥｘｔＥｓｃａｐｅ関数を呼び出し、ＧＲ処理部５２０に対してＳ７０９で導出した拡大・縮小率を通知する。
【００６２】
ここで、ＥｘｔＥｓｃａｐｅ関数について、簡単に説明する。ＥｘｔＥｓｃａｐｅ関数はアプリケーションなどからプリンタドライバに直接データを渡すことが可能とするＧＤＩ３１０のＡＰＩである。アプリケーションなどのＥｘｔＥｓｃａｐｅ関数を呼び出す側と、これを受け取るプリンタドライバのＧＲ処理部５２０側で、エスケープＩＤ値、入力データ、出力データ構造の取り決めを行っておく。アプリケーションなどのＥｘｔＥｓｃａｐｅ関数を呼び出す側は予め決められたエスケープＩＤ値とともに、入力データや、出力データを格納する領域を示す情報を引数に指定してＥｘｔＥｓｃａｐｅ関数を呼び出す。
【００６３】
予め決められたエスケープＩＤ値を指定したＥｘｔＥｓｃａｐｅ関数が呼び出されると、ＧＤＩ３１０を経由してプリンタドライバのＧＲ処理部５２０へ通知が行われる。プリンタドライバのＧＲ処理部５２０は、入力データの内容を読み取ることで、呼び出し元からデータを直接受け取ったり、出力データを格納することで、呼び出し元にデータを返したりする動作を行うことができる。
【００６４】
図７の説明に戻り、Ｓ７１１では、プリントプロセッサ４００はＧＲ処理部５２０と予め取り決めておいたエスケープＩＤ値と拡大・縮小率を引数として指定したＥｘｔＥｓｃａｐｅ関数を呼び出す。ＧＲ処理部５２０はこのＥｘｔＥｓｃａｐｅ関数を用いた通知を受け取ることで、どのような変倍処理が実施すべきかを知ることとなる。なお、本実施形態では、拡大・縮小率として、画像の変倍率を想定しているがこれに限定されるものではない。拡大縮小成分のみを含む座標変換パラメータ等であってもよい。拡大縮小の成分が抽出できるデータであればどのような形式であってもよい。
【００６５】
Ｓ７１１の処理により、拡大縮小率をプリンタドライバのＧＲ処理部５２０に通知することができる。
【００６６】
次に、ステップＳ７１２にて、プリントプロセッサ４００はＧＤＩ３１０に対して、該当する論理ページの描画を指示する。ＧＲ処理部５２０はこの描画指示をＧＤＩ３１０を介して受け取る。ここで、ＧＲ処理部５２０に渡される個々の描画命令は、先のＳ７０９の指示に基づきＧＤＩ３１０で座標変換が実行されたオブジェクトを含む描画命令（描画データ）である。ＧＲ処理部５２０はここで受け取った描画命令を印刷装置が処理可能な印刷データ（ＰＤＬデータ）に変換する処理を行うことになる。１ページ分の論理ページに対する描画指示が完了すると、処理をＳ７１３に進める。
【００６７】
Ｓ７１３にて、プリントプロセッサ４００は、物理ページの描画を終了する必要があるかどうかの判断を行う。例えば２ｉｎ１印刷の場合の２番目の論理ページや４番目の論理では、該当する物理ページを終了する必要があるため、物理ページを終了する必要があると判断する。プリントプロセッサ４００は、Ｓ７０３で取得した印刷設定や処理済み（変換済み）の論理ページのページ番号を考慮し、物理ページの終了が必要かどうかの判断を行う。物理ページの終了が必要と判断した場合は、処理をＳ７１４に進め、物理ページの終了が必要でない（即ち、同じ物理ページに更なる論理ページの描画を行う必要がある）と判断した場合には、処理をＳ７１５に進める。
【００６８】
Ｓ７１４において、プリントプロセッサ４００は、物理ページの描画終了をＧＤＩ３１０のＡＰＩを介して、ＧＲ処理部５２０に通知する。通知が完了すると、処理をＳ７１５に進める。
【００６９】
Ｓ７１５において、プリントプロセッサ４００は、ＥＭＦスプールファイル内のすべての論理ページに対する描画処理が完了したか否かを判断する。すべての論理ページに対する描画処理が完了した場合は、処理をＳ７１６に進め、すべての論理ページに対する描画処理が完了していない場合（未処理の論理ページががある場合）は、Ｓ７０３の処理に戻り後続の論理ページに対する処理を行う。
【００７０】
Ｓ７１６において、プリントプロセッサ４００は、ＧＤＩ３１０のＡＰＩを介して、ジョブの終了をＧＲ処理部５２０に通知する。以上の処理を終えた後、Ｓ７１７にて、プリントプロセッサ４００は終了処理を行うことで、一連の描画データ生成処理を終える。
【００７１】
続けて、プリンタドライバによる物理ページの変倍処理と、印刷データ（ＰＤＬデータ）の生成処理について図８を用いて説明する。
【００７２】
図８は本発明に係るＧＲ処理部５２０の処理の一例を説明するためのフローである。この図を用いて、本発明に係る処理について説明を行う。図８のフローチャートに示す各動作（ステップ）は、ＣＰＵ１１１がストレージ１１４に記憶されたプログラムをＲＡＭ１１３に読み出し、実行することにより実現される。なお、フローチャートで示す各処理は、ＧＲ処理部５２０やＧＤＩ３１０が協働して実現するものとする。各処理を実現する主体となるプログラムを明確にするため、ソフトウェアコンポーネントやアプリケーションなどを主語として記載するものとする。図８のフローチャートは、アプリケーション２００から印刷の指示が行われたことに応じて開始される。
【００７３】
Ｓ８０１において、ＧＲ処理部５２０はジョブの開始や印刷設定の受領等の適切な初期化処理を行う。
【００７４】
Ｓ８０２において、ＧＲ処理部５２０は、プリントプロセッサ４００から画像の拡大縮小率の通知を受信したかどうかを判断する。ＧＲ処理部５２０は、ＥｘｔＥｓｃａｐｅ関数に基づき所定のエスケープＩＤ値が指定されたデータを受信すると拡大縮小率の通知を受け取ったと判断し、処理をＳ８０３に進める。ＥｘｔＥｓｃａｐｅ関数に基づき所定のエスケープＩＤ値が指定されたデータを受信していない場合は、拡大縮小率の通知を受け取っていないと判断し、処理をＳ８０４に進める。
【００７５】
Ｓ８０３において、ＧＲ処理部５２０は、所定のエスケープＩＤ値と共に受信した拡大縮小率をＲＡＭ１１３に一時的に記憶する。
【００７６】
Ｓ８０４において、ＧＲ処理部５２０は、ＧＤＩ経由で物理ページ１ページ分に相当する一連の描画データを受信する。具体的には、物理ページの開始指示を受け付けてから、物理ページの終了指示を受け付けるまでの間、ＧＤＩ経由の描画データを受信し一時的に記憶する。
【００７７】
続けてＳ８０５において、ＧＲ処理部５２０は、拡大縮小率がＲＡＭ１１３に記憶されているかどうかを判断する。拡大縮小率がＲＡＭ１１３に記憶されている場合は処理をＳ８０６に進め、拡大縮小率がＲＡＭ１１３に記憶されていない場合は処理をＳ８０８に進める。
【００７８】
Ｓ８０６において、ＧＲ処理部５２０は、Ｓ８０３で一時的に記憶した拡大・縮小率に基づき描画データの拡大又は縮小処理を行う。拡大・縮小率が画像を縮小することを示すパラメータであれば、画像に対して縮小処理を行う。一方、拡大・縮小率が画像を拡大することを示すパラメータであれば、画像に対して拡大処理を行う。
【００７９】
ＧＲ処理部５２０は、物理ページ内の個別の描画命令を解析し、個々のオブジェクトに対して縮小処理を実行する。ＧＲ処理部５２０は、グラフィックスオブジェクトに対する縮小処理を行うと、当該オブジェクトの短辺が所定の幅以下（例えば、１ピクセル以下）となるケースにおいて、当該オブジェクトの幅を所定値（例えば、１ピクセル）に置き換える補正制御を行う。従って、グラフィックスオブジェクトが縮小処理によって所定値以下のピクセルとなることを抑制できる。従って、描画処理でグラフィックスオブジェクトが消失してしまうことを抑制することができる。
【００８０】
Ｓ８０７において、ＧＲ処理部５２０は、拡大・縮小処理に伴う物理ページサイズの再設定を行う。例えば、Ａ４用紙に２ｉｎ１のページ集約を行う設定の場合、プリントプロセッサのＳ７０７の処理により物理ページサイズが「Ａ３」に変更されている。ここでは、縮小率に基づき物理ページサイズも縮小し「Ａ４」に再設定する。なお、プリンタドライバで拡大処理を行うケースについては、プリントプロセッサで物理ページサイズを変更していないためサイズ変更処理は不要となる。必要に応じてサイズ変更処理を行った後に、ＧＲ処理部５２０は、一時的に記憶した拡大縮小率をＲＡＭ１１３から削除し、処理をＳ８０８に進める。
【００８１】
Ｓ８０８において、ＧＲ処理部５２０は、受信した描画データ、又は、受信後、拡大又は縮小の変倍処理を行った描画データを印刷装置が解釈可能なＰＤＬに変換する。例えば、ＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｍｍａｎｄ  Ｌａｎｇｕａｇｅ）、ＲＰＣＳ（Ｒｅｆｉｎｅｄ  Ｐｒｉｎｔｉｎｇ  Ｃｏｍｍａｎｄ  Ｓｔｒｅａｍ）、ＵＦＲ（Ｕｌｔｒａ  Ｆａｓｔ  Ｒｅｎｄｅｒｉｎｇ）等のＰＤＬに変換する。また、ＰＳ（Ｐｏｓｔ  Ｓｃｒｉｐｔ）ＡＲＴ（Ａｄｖａｎｃｅｄ  Ｒｅｎｄｅｒｉｎｇ  Ｔｏｏｌｓ）、ＳＰＤＬ２（Ｓｈａｒｐ  Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ２）等に変換を行うこともできる。変換が完了すると処理をＳ８０９に進める。
【００８２】
Ｓ８０９において、ＧＲ処理部５２０は、全ページの変換が完了したか否かを判断する。ＧＤＩを経由してジョブ終了の通知を受け取った場合は、全ページの変換が完了したと判断し一連の処理を終了する。一方、ＧＤＩを経由してジョブ終了の通知を受け取っていない場合は、Ｓ８０２に戻り更なる描画データの受信を待つ。
【００８３】
一連の変換処理が完了すると、ＧＲ処理部５２０は、ジョブ制御コマンドの付加などを行い、印刷データを含む印刷ジョブを生成する。生成した印刷ジョブはＳｐｏｏｌｅｒ３２０に格納される。Ｓｐｏｏｌｅｒ３２０に格納された印刷ジョブは、ポートモニタ経由で印刷装置１０２に送信される。
【００８４】
以上説明したように、図７で説明したプリントプロセッサでは、縮小を伴わないレイアウトを行う。更に、図８で説明したプリンタドライバでは、オブジェクトの幅を考慮した縮小処理を実行することにより、グラフィクスオブジェクトの消失を抑制することができる。
【００８５】
＜変形例＞
上述の実施形態では、拡大・縮小の両方をプリンタドライバ側で実施する場合を例示した。しかしながら、これに限定されるものではない。例えば、拡大についてはプリントプロセッサで行い、縮小についてのみプリンタドライバのＧＲ処理部に行わせるようにしてもよい。
【００８６】
なお、上述の実施形態及び変形例では演算コストや処理の簡略化のため、回転、移動などのレイアウト処理を、プリントプロセッサで行う場合を例示した。しかしながら、これに限定されるものではない。例えば、縮小を伴う印刷を行うケースにおいて、プリントプロセッサでレイアウト処理を行わず、ＧＤＩ３１０を経由してＧＲ処理部にページデータをパススルーしてもよい。この場合、後段のＧＲ処理部５２０が、ＧＤＩ経由で複数のページデータを取得し、回転、移動、縮小などのページ単位のレイアウト処理についても実行するよう構成すればよい。この変形例において、縮小を伴わない印刷を行うケースにおいては、プリントプロセッサによりレイアウト処理を行うものとする。
【００８７】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８８】
１０１  情報処理装置
１０２  印刷装置
１１１  ＣＰＵ
１１４  ストレージ
【図１】
2020107242.tif 000003
【図２】
2020107242.tif 000004
【図３】
2020107242.tif 000005
【図４】
2020107242.tif 000006
【図５】
2020107242.tif 000007
【図６】
2020107242.tif 000008
【図７】
2020107242.tif 000009
【図８】
2020107242.tif 000010