(57)【要約】【課題】ＯＳ標準の汎用印刷プログラムが組み込まれた情報処理装置において、その汎用印刷プログラムによる印刷であっても、プリンタの能力を発揮させることが可能な技術を提供すること。【解決手段】ＰＣ１に組み込まれた補助プログラム４２は、ＯＳ２１にあらかじめ組み込まれた汎用印刷プログラム４１に対して印刷指示があった場合に、印刷パラメータあるいは汎用印刷プログラム４１が生成した印刷データに基づいて、印刷データを送信するためのポートを汎用印刷プログラム４１が用いる第１ポートから第２ポートに切り替える切替条件を満たしているか否かを判断し、切替条件を満たしていると判断した場合には、第２ポートに切り替えて印刷データをプリンタ２に送信するための処理を実行する。【選択図】図３
2020126367.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、
前記コンピュータに、
前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムに対して、画像の印刷を前記プリンタに行わせる印刷指示があった場合に、前記印刷指示によって示される印刷パラメータあるいは前記印刷指示に応じて前記汎用印刷プログラムが生成する印刷データに基づいて、前記印刷データを送信するためのポートを前記汎用印刷プログラムが用いるポートである第１ポートから前記第１ポートとは異なるポートに切り替える切替条件を満たしているか否かを判断する判断処理と、
前記第１ポートとは異なる第２ポートに切り替えて前記印刷データを前記プリンタに送信するための処理である切替処理と、
を含むポート処理を実行させ、
前記ポート処理では、
前記判断処理にて前記切替条件を満たしていると判断した場合には前記切替処理を実行し、前記判断処理にて前記切替条件を満たしていないと判断した場合には前記切替処理を実行しない、
ことを特徴とするサポートプログラム。
【請求項２】
請求項１に記載するサポートプログラムにおいて、
前記ポート処理では、
前記判断処理にて前記切替条件を満たしていると判断した場合、前記切替処理として、前記サポートプログラムによって、前記第２ポートから前記印刷データを前記プリンタに送信し、前記判断処理にて前記切替条件を満たしていないと判断された場合、前記汎用印刷プログラムによって、前記印刷データを前記プリンタに送信させる、
ことを特徴とするサポートプログラム。
【請求項３】
請求項１に記載するサポートプログラムにおいて、
前記ポート処理には、
前記サポートプログラムによって、前記第１ポートから前記印刷データを前記プリンタに送信する送信処理が含まれ、
前記ポート処理では、
前記判断処理にて前記切替条件を満たしていると判断した場合、前記切替処理として、前記サポートプログラムによって、前記第２ポートから前記印刷データを前記プリンタに送信し、前記判断処理にて前記切替条件を満たしていないと判断された場合、前記送信処理を実行する、
ことを特徴とするサポートプログラム。
【請求項４】
請求項２または請求項３に記載するサポートプログラムにおいて、
前記コンピュータに、
前記サポートプログラムによる印刷データの送信中にエラーを検知した場合に、前記情報処理装置の表示デバイスにエラーを示す情報を表示させるエラー処理を実行させる、
ことを特徴とするサポートプログラム。
【請求項５】
請求項１に記載するサポートプログラムにおいて、
前記オペレーティングシステムは、プリンタおよびポートに関連付けられたプリントキューを有しており、
前記切替処理では、
前記プリンタおよび前記第２ポートに対応するプリントキューに、前記汎用印刷プログラムを介さずに、前記印刷指示に基づく印刷ジョブを登録し、前記オペレーティングシステムは、前記プリントキューに登録された印刷ジョブを、前記プリントキューに対応するポートから前記プリントキューに対応するプリンタに送信する、
ことを特徴とするサポートプログラム。
【請求項６】
請求項１から請求項５のいずれか１つに記載するサポートプログラムにおいて、
前記コンピュータに、
前記印刷データを前記汎用印刷プログラムから送信させない前記切替処理を実行させる場合に、前記印刷指示に基づく印刷ジョブを終了させる第１終了通知を前記汎用印刷プログラムに入力する第１通知処理を実行させ、前記汎用印刷プログラムは、前記第１終了通知を受け付けた場合に、前記印刷指示に基づく印刷ジョブを終了する、
ことを特徴とするサポートプログラム。
【請求項７】
請求項６に記載するサポートプログラムにおいて、
前記コンピュータに、
前記印刷指示に基づく印刷ジョブをキャンセルするキャンセル条件を満たした場合に、第２終了通知を入力する前記汎用印刷プログラムに第２通知処理を実行させ、前記汎用印刷プログラムは、前記第２終了通知を受け付けた場合に、前記印刷指示に基づく前記印刷ジョブをキャンセルし、前記第２終了通知は、前記第１終了通知とは異なる通知である、
ことを特徴とするサポートプログラム。
【請求項８】
請求項１に記載するサポートプログラムにおいて、
前記ポート処理では、
前記判断処理にて前記切替条件を満たしていないと判断した場合に、前記切替処理として、前記印刷データを送信するためのポートを前記第１ポートから前記第１ポートとは異なるポートに切り替える切替要求を前記汎用印刷プログラムに入力し、前記汎用印刷プログラムは、前記切替要求を受け付けた場合に、前記印刷データを、前記第２ポートを用いて前記プリンタに送信する、
ことを特徴とするサポートプログラム。
【請求項９】
請求項１から請求項８のいずれか１つに記載するサポートプログラムにおいて、
前記判断処理では、
前記印刷指示によって示される前記印刷パラメータに特定のパラメータが設定されていることを、前記切替条件とする、
ことを特徴とするサポートプログラム。
【請求項１０】
請求項９に記載するサポートプログラムにおいて、
前記印刷パラメータには、カラー印刷かモノクロ印刷かの設定が含まれ、
前記特定のパラメータは、カラー印刷である、
ことを特徴とするサポートプログラム。
【請求項１１】
請求項９に記載するサポートプログラムにおいて、
前記印刷パラメータには、解像度が含まれ、
前記特定のパラメータは、所定値よりも大きい解像度である、
ことを特徴とするサポートプログラム。
【請求項１２】
請求項１から請求項８のいずれか１つに記載するサポートプログラムにおいて、
前記印刷データには、画像を示すデータが含まれ、
前記判断処理では、
前記画像を示すデータの形式が特定の形式であることを、前記切替条件とする、
ことを特徴とするサポートプログラム。
【請求項１３】
請求項１から請求項８のいずれか１つに記載するサポートプログラムにおいて、
前記印刷データには、画像を示すデータが含まれ、
前記判断処理では、
前記画像を示すデータに特定の特徴が含まれることを、前記切替条件とする、
ことを特徴とするサポートプログラム。
【請求項１４】
請求項１３に記載するサポートプログラムにおいて、
前記画像を示すデータは、複数の描画コマンドの組み合わせで構成されており、
前記特定の特徴は、特定の描画コマンドが含まれることである、
ことを特徴とするサポートプログラム。
【請求項１５】
コンピュータとメモリとを備える情報処理装置であって、
前記情報処理装置には、前記情報処理装置と接続するプリンタに対応するサポートプログラムが組み込まれ、
前記情報処理装置のオペレーティングシステムは、あらかじめ組み込まれたプログラムである汎用印刷プログラムを有しており、
前記コンピュータは、
前記汎用印刷プログラムに対して、画像の印刷を前記プリンタに行わせる印刷指示があった場合に、前記サポートプログラムによって、前記印刷指示によって示される印刷パラメータあるいは前記印刷指示に応じて前記汎用印刷プログラムが生成する印刷データに基づいて、前記印刷データを送信するためのポートを前記汎用印刷プログラムが用いるポートである第１ポートから前記第１ポートとは異なるポートに切り替える切替条件を満たしているか否かを判断する判断処理と、
前記第１ポートとは異なる第２ポートに切り替えて前記印刷データを前記プリンタに送信するための処理である切替処理と、
を含むポート処理を実行し、
前記ポート処理では、
前記判断処理にて前記切替条件を満たしていると判断した場合には前記切替処理を実行し、前記判断処理にて前記切替条件を満たしていないと判断した場合には前記切替処理を実行しない、
ことを特徴とする情報処理装置。
【請求項１６】
情報処理装置にプリンタが接続され、
前記情報処理装置には、前記プリンタに対応するサポートプログラムが組み込まれ、
前記情報処理装置のオペレーティングシステムは、あらかじめ組み込まれたプログラムである汎用印刷プログラムを有しており、
前記情報処理装置で生成された印刷データに基づく印刷を、前記プリンタに実行させる印刷方法において、
前記汎用印刷プログラムに対して、画像の印刷を前記プリンタに行わせる印刷指示があった場合に、前記サポートプログラムによって、前記印刷指示によって示される印刷パラメータあるいは前記印刷指示に応じて前記汎用印刷プログラムが生成する印刷データに基づいて、前記印刷データを送信するためのポートを前記汎用印刷プログラムが用いるポートである第１ポートから前記第１ポートとは異なるポートに切り替える切替条件を満たしているか否かを判断する判断ステップと、
前記第１ポートとは異なる第２ポートに切り替えて前記印刷データを前記プリンタに送信するための処理である切替ステップと、
を含むポートステップを含み、
前記ポートステップでは、
前記判断ステップにて前記切替条件を満たしていると判断した場合には前記切替ステップに移行し、前記判断ステップにて前記切替条件を満たしていないと判断した場合には前記切替ステップに移行しない、
ことを特徴とする印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される技術分野は、プリンタの制御をサポートするサポートプログラム、情報処理装置、および印刷方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ等の情報処理装置からプリンタを制御する技術として、情報処理装置にプリンタドライバをインストールし、プリンタドライバによって印刷データを生成し、その印刷データをプリンタに送信する構成が広く知られている（例えば、特許文献１）。プリンタドライバは、プリンタのメーカから提供され、そのプリンタが有する各種の機能に対応しており、そのプリンタを十分に利用することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１３４７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、前述したプリンタドライバを利用せず、オペレーティングシステム（ＯＳ）に標準に組み込まれている汎用印刷プログラムによってプリンタを制御する技術が実用化されている。この技術では、ＯＳがプリンタとＯＳ標準の汎用印刷プログラムとの関連付けを行い、以後、そのプリンタに対する印刷指示を受け付けた場合に、プリンタドライバを用いずに、ＯＳ標準の汎用印刷プログラムによる印刷が可能になる。
【０００５】
しかしながら、ＯＳ標準の汎用印刷プログラムによる印刷では、あらかじめ決められた汎用印刷プログラムがサポートするポートを用いて印刷データを送信し、プリンタにおいてあらかじめ決められたアルゴリズムに従って印刷を行うことになるが、必ずしもプリンタに最適な処理を行っているとは言えない。そのため、プリンタが本来有する能力を発揮させる上で改善の余地がある。
【０００６】
本明細書は、ＯＳ標準の汎用印刷プログラムが組み込まれた情報処理装置において、その汎用印刷プログラムによる印刷であっても、プリンタの能力を発揮させることが可能な技術を開示する。
【課題を解決するための手段】
【０００７】
上述した課題の解決を目的としてなされたサポートプログラムは、情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、前記コンピュータに、前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムに対して、画像の印刷を前記プリンタに行わせる印刷指示があった場合に、前記印刷指示によって示される印刷パラメータあるいは前記印刷指示に応じて前記汎用印刷プログラムが生成する印刷データに基づいて、前記印刷データを送信するためのポートを前記汎用印刷プログラムが用いるポートである第１ポートから前記第１ポートとは異なるポートに切り替える切替条件を満たしているか否かを判断する判断処理と、前記第１ポートとは異なる第２ポートに切り替えて前記印刷データを前記プリンタに送信するための処理である切替処理と、を含むポート処理を実行させ、前記ポート処理では、前記判断処理にて前記切替条件を満たしていると判断した場合には前記切替処理を実行し、前記判断処理にて前記切替条件を満たしていないと判断した場合には前記切替処理を実行しない、ことを特徴としている。
【０００８】
上述したサポートプログラムによれば、印刷パラメータや印刷データに基づいてポートを切り替える切替条件が設けられ、その切替条件に応じて印刷データが送信されるポートが切り替えられる。そのため、プリンタにとって好適なアルゴリズムでの印刷が期待できる。
【０００９】
上記装置の機能を実現するための制御方法、コンピュータプログラム、および当該コンピュータプログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【００１０】
本明細書に開示される技術によれば、ＯＳ標準の汎用印刷プログラムが組み込まれた情報処理装置において、その汎用印刷プログラムによる印刷であっても、プリンタの能力を発揮させることが可能な技術が実現される。
【図面の簡単な説明】
【００１１】
【図１】印刷システムの電気的構成を示すブロック図である。
【図２】印刷システムによる印刷動作の順序の例を示すシーケンス図である。
【図３】第１の形態における代替送信の概要を示す説明図である。
【図４】切替条件の例を示す図である。
【図５】補助プログラムの処理の手順を示すフローチャートである。
【図６】第２の形態における代替送信の手順を示すシーケンス図である。
【図７】第３の形態における代替送信の手順を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
以下、実施の形態のプログラムを利用する印刷システムについて、添付図面を参照しつつ詳細に説明する。本形態は、パーソナルコンピュータ（以下、「ＰＣ」とする）とプリンタとを含む印刷システムを具体化した実施の形態を開示するものである。
【００１３】
第１の形態のプログラムが実行される印刷システムの構成の例を、図１に示す。図１に示すシステムには、ＰＣ１と、プリンタ２と、プリンタ３と、が含まれる。ＰＣ１は、情報処理装置の一例である。プリンタ２およびプリンタ３は、印刷機能を有する装置であり、ローカル通信またはネットワーク通信を介して、ＰＣ１と通信可能である。
【００１４】
ＰＣ１は、例えば、図１に示すように、コントローラ１０と、ユーザインタフェース（以下、「ＵＩ」とする）２０と、通信インタフェース（以下、「通信ＩＦ」とする）３０と、を備えている。ＵＩ２０及び通信ＩＦ３０は、コントローラ１０に電気的に接続されている。
【００１５】
ＵＩ２０は、各種の表示を行い、ユーザの指示入力を受け付けるハードウェアを含む。ＵＩ２０は、表示機能と入力受付機能との両方の機能を有するタッチパネルであっても良いし、表示機能を有するディスプレイと入力受付機能を有するキーボードやマウス等との組合せであっても良い。
【００１６】
通信ＩＦ３０は、プリンタ２やプリンタ３との通信を行うためのハードウェアや、インターネットへのアクセスを行うためのハードウェアを含む。通信ＩＦ３０は、通信方式の異なる複数のインタフェースを含んでいても良い。通信方式としては、例えば、ネットワーク通信、ＵＳＢ通信がある。また、有線通信であっても無線通信であってもよい。
【００１７】
コントローラ１０は、ＣＰＵ１１と、メモリ１２と、を含む。ＣＰＵ１１は、コンピュータの一例である。メモリ１２は、ＲＯＭと、ＲＡＭと、不揮発性メモリと、を含み、各種のアプリケーションプログラム（以下、「アプリ」とする）などのプログラムや各種のデータなどを記憶する。なお、本明細書では、メモリの詳細を区別しない。ＣＰＵ１１は、メモリ１２から読み出したプログラムに従って、また、ユーザの指示に基づいて、各種の処理を実行する。なお、図１中のコントローラ１０は、ＰＣ１の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にＰＣ１に存在する単一のハードウェアを表すとは限らない。
【００１８】
メモリ１２の一例は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００１９】
メモリ１２には、例えば、図１に示すように、汎用印刷プログラム４１を含むオペレーティングシステム（以下、「ＯＳ」とする）２１と、補助プログラム４２と、編集アプリ４３と、が記憶されている。補助プログラム４２は、サポートプログラムの一例である。補助プログラム４２は、例えば、マイクロソフト社が公開した仕様に基づいてプリンタベンダによって作成された、ハードウェアサポートアプリ（略称、ＨＳＡ）である。ＯＳ２１は、例えば、マイクロソフトウィンドウズ（登録商標）、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）である。なお、メモリ１２には、図示したもの以外にも、接続されているプリンタの情報を含む各種のデータや、ブラウザ等の各種のプログラムが記憶されている。
【００２０】
汎用印刷プログラム４１は、ＰＣ１からプリンタ２等の各種のプリンタで印刷を実行させるためのアプリであり、ＯＳ２１にあらかじめ組み込まれているＯＳ標準の印刷プログラムである。本形態の汎用印刷プログラム４１は、印刷対象の画像データに基づいて、プリンタが対応可能な印刷データを生成するプログラムである。
【００２１】
汎用印刷プログラム４１は、各プリンタのベンダによって提供される複数種類のモデルのプリンタに適用可能な汎用のアプリであり、各モデルに共通する動作を各プリンタに行わせるプログラムである。あるいは、汎用印刷プログラム４１は、ＯＳ２１にあらかじめ組み込むために、各プリンタのベンダによってＯＳ２１のベンダに提供されるプログラム、例えば、ＯＳ２１にあらかじめ組み込むために提供されるプリンタドライバの一種であっても良い。
【００２２】
補助プログラム４２は、汎用印刷プログラム４１の起動に付随してＯＳ２１からの指示に基づいて処理を実行するプログラムであり、対象のハードウェアの制御をサポートするアプリである。補助プログラム４２は、例えば、汎用印刷プログラム４１から起動される。補助プログラム４２は、プリンタ２等のベンダによってプリンタのタイプごとに用意されるプログラムである。例えば、インクジェットプリンタ用の補助プログラム４２やレーザプリンタ用の補助プログラム４２が用意される。プリンタのタイプごとに限らず、プリンタのモデルごとやプリンタのモデルのシリーズごとに用意される補助プログラム４２が有っても良い。
【００２３】
プリンタのベンダは、ＯＳ２１のベンダが指定する手順に従って、補助プログラム４２をＯＳ２１のベンダが提供するプラットフォームに登録する。ＯＳ２１は、ＰＣ１に新たにプリンタ２が接続され、そのプリンタ２に対応する補助プログラム４２がプラットフォームに登録されている場合には、当該補助プログラム４２を補助プログラム４２が格納されているサーバからダウンロードしてＰＣ１に組み込む。
【００２４】
そして、ＯＳ２１は、組み込んだ補助プログラム４２の識別情報を新たに接続されたプリンタのプリンタ情報に対応付けて、メモリ１２に記憶させる。複数のモデルのプリンタが接続されているＰＣ１では、各モデルのタイプに対応するそれぞれの補助プログラムが組み込まれ、各プリンタと各補助プログラムとを対応付ける情報がメモリ１２に記憶される。つまり、メモリ１２には、ＰＣ１に接続されている各プリンタのプリンタ情報として、当該プリンタのモデル情報やアクセス情報とともに、対応する補助プログラム４２の情報が記憶される。
【００２５】
編集アプリ４３は、例えば、画像データや文書データの作成や編集を行うためのアプリである。編集アプリ４３は、例えば、マイクロソフト  ワード（登録商標）、パワーポイント（登録商標）である。また、プリンタ２やプリンタ３のベンダから提供されるアプリであってもよい。編集アプリ４３は、プリンタ２に所定の動作を行わせる指示を含むユーザ操作を受け付ける。具体的には、編集アプリ４３は、ＵＩ２０を介して、例えば、プリンタ２に印刷を実行させる印刷指示を受け付ける。
【００２６】
なお、実施の形態における処理およびフローチャートの各処理ステップは、基本的に、補助プログラム４２などのプログラムに記述された命令に従ったＣＰＵ１１の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、ＣＰＵ１１の処理を表している。ＣＰＵ１１による処理は、ＯＳ２１のＡＰＩを用いたハードウェア制御も含む。本明細書では、ＯＳ２１の詳細な記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムＢがハードウェアＣを制御する」という趣旨の記載は、「プログラムＢがＯＳ２１のＡＰＩを用いてハードウェアＣを制御する」ことを指してもよい。また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、省略した文言で記載することがある。例えば、「ＣＰＵ１１が行う」のようにプログラムを省略して記載することがある。また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、「プログラムＡが行う」のようにＣＰＵを省略した文言で記載することがある。
【００２７】
なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ１１が要求することなくデータを受信するという処理も、「ＣＰＵ１１がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【００２８】
また、ＣＰＵ１１による、情報Ａは事柄Ｂであることを示しているか否かを判断する処理を、「情報Ａから、事柄Ｂであるか否かを判断する」のように概念的に記載することがある。ＣＰＵ１１による、情報Ａが事柄Ｂであることを示しているか、事柄Ｃであることを示しているか、を判断する処理を、「情報Ａから、事柄Ｂであるか事柄Ｃであるかを判断する」のように概念的に記載することがある。
【００２９】
次に、第１の形態の補助プログラム４２の構成、および補助プログラム４２の動作を含む印刷手順の一例について、図２のシーケンス図を参照して説明する。補助プログラム４２は、編集アプリ４３等を介して、補助プログラム４２に対応するプリンタが指定された状態で汎用印刷プログラム４１を使用して印刷する印刷指示を受け付けた場合に、汎用印刷プログラム４１から実行指示されるプログラムである。以下では、ＰＣ１がＵＩ２０を介して、例えば、編集アプリ４３にて、印刷対象の画像データが指定された状態で、汎用印刷プログラム４１を介してのプリンタ２での印刷実行の指示を受け付けた場合であって、プリンタ２のモデルのタイプに対応する補助プログラム４２がＰＣ１に組み込まれている場合について説明する。
【００３０】
まず、編集アプリ４３は、ＵＩ２０を介して、印刷対象の画像の指定と、印刷実行の指示入力を受け付ける（矢印Ａ）。編集アプリ４３が表示した画像は、印刷対象の画像の例である。編集アプリ４３は、例えば、編集アプリ４３にて編集された文書や、編集アプリ４３にて読み込んだ写真などを画像として表示する。そして、印刷指示を受け付けた編集アプリ４３は、受け付けた印刷指示の内容を示す印刷実行通知をＯＳ２１に渡す。なお、図２では、ＯＳ２１の動作を省略して示している。
【００３１】
ＯＳ２１は、汎用印刷プログラム４１を使用する印刷実行通知を受け付けた場合、汎用印刷プログラム４１を実行させ、汎用印刷プログラム４１に印刷実行通知を渡す（矢印Ｂ）。汎用印刷プログラム４１は、印刷実行通知にて、印刷指示に含まれる各種の情報、例えば、印刷させるプリンタを示す情報、アプリにて設定された印刷パラメータを示す情報、印刷対象となる画像データを示す情報、印刷を指示したユーザを識別する情報を、取得できる。なお、後述するように、これらの情報は、補助プログラム４２でも使用される。
【００３２】
汎用印刷プログラム４１は、印刷実行通知を受け付けると、プリンタ用のデータである印刷データを生成する（矢印Ｃ）。汎用印刷プログラム４１は、印刷データを生成するにあたって、種々の処理を実行する。
【００３３】
具体的に、汎用印刷プログラム４１は、印刷実行通知に含まれる画像データの形式を中間画像データの形式に変換することで中間画像データを生成し、中間画像データを含む印刷ジョブを生成する。編集アプリ４３に含まれる画像データは種々のタイプのものであり、汎用印刷プログラム４１は、受け取った画像データを、印刷データの生成に適した中間画像データに変換する。なお、印刷実行通知に含まれる画像データが印刷データの生成に適したデータであれば、中間画像データの生成を省略し、そのまま中間画像データとしても良い。中間画像データは、例えば、ＸＰＳデータである。
【００３４】
さらに、汎用印刷プログラム４１は、印刷実行通知に含まれる情報に基づいて、印刷を実行させる装置として指定されているプリンタを特定する。汎用印刷プログラム４１は、例えば、プリンタ２が指定されている場合、メモリ１２に記憶されているプリンタ情報に含まれるプリンタのモデル情報に基づいて、プリンタ２のモデルを特定する。そして、印刷指示にて指定されたプリンタであるプリンタ２に対応する補助プログラム４２がメモリ１２に記憶されていることから、汎用印刷プログラム４１による印刷データの生成を開始する前に、汎用印刷プログラム４１は、補助プログラム４２の処理の実行命令を出力し、補助プログラム４２を動作させることが可能である。この場合、補助プログラム４２への実行命令が汎用印刷プログラム４１から出力される。
【００３５】
補助プログラム４２は複数の処理が実行可能である。例えば、中間画像データを生成した後、印刷データの生成開始前に、印刷パラメータを編集する処理や、中間画像データの画像を編集する処理を行ってもよい。例えば、印刷パラメータを編集する場合、補助プログラム４２は、例えば、印刷パラメータを読み出し、読み出した印刷パラメータに関する設定画面をＵＩ２０に表示させ、編集アプリ４３にて設定された印刷パラメータの変更や、編集アプリ４３では受け付けていない印刷パラメータの設定を受け付ける。さらに、補助プログラム４２は、設定画面にて受け付けた内容で，印刷ジョブの印刷パラメータを編集する。補助プログラム４２は、印刷ジョブの印刷パラメータに上書きすることで編集しても良いし、汎用印刷プログラム４１に印刷パラメータを提供することで、汎用印刷プログラム４１を介して印刷パラメータを編集しても良い。また、中間画像データの画像を編集する場合、例えば、印刷パラメータの設定に応じた加工を中間画像データの画像に施す。画像の加工としては、例えば画像の集約や分割、画像の拡大や縮小、ウォータマーク等の画像の合成が該当する。補助プログラム４２は、各処理を終了する際、終了通知を汎用印刷プログラム４１に通知する。汎用印刷プログラム４１はその終了通知を受け付けると、編集内容を反映する。
【００３６】
本形態では、汎用印刷プログラム４１は、中間画像データを生成した後、必要に応じて補助プログラム４２を動作させ、その後、その中間画像データに基づいて印刷データを生成する。汎用印刷プログラム４１によって生成される印刷データは、各種のプリンタにて印刷に使用できる形式の印刷データである。印刷データは、例えば、ＰＷＧＲａｓｔｅｒデータやＰＤＦデータである。
【００３７】
印刷データの生成の終了後、汎用印刷プログラム４１は、補助プログラム４２の印刷データ編集処理に対する実行命令を出力する（矢印Ｄ）。印刷データ編集処理の実行命令には、印刷パラメータと印刷データとが付される。
【００３８】
汎用印刷プログラム４１からの実行命令を受け付けた補助プログラム４２は、印刷データ編集処理を開始する（矢印Ｅ）。印刷データ編集処理は、汎用印刷プログラム４１による印刷データの生成が完了した後に実行される処理である。補助プログラム４２は、印刷データ編集処理の実行命令にて、印刷パラメータやプリンタの情報に加え、生成が終了している印刷データも汎用印刷プログラム４１から取得できる。
【００３９】
補助プログラム４２は、印刷データ編集処理として、例えば、印刷データの編集を行う。補助プログラム４２は、例えば、プリンタ２に特有な機能を実行させるためのコマンドを印刷データに付加する。プリンタ２に特有な機能としては、例えば、トナーセーブ設定、フィニッシャの設定、がある。プリンタ２が自身でウォータマークやヘッダ／フッタ等を画像に付加できる機能を有している場合、印刷データ編集処理では、これらの機能を実行させるコマンドを印刷データに付加しても良い。
【００４０】
その後、補助プログラム４２は、代替送信を行うか否かの判定としてポート判定を行う（矢印Ｆ）。第１の形態の印刷システムでは、汎用印刷プログラム４１に対して、画像の印刷をプリンタ２に行わせる印刷指示を入力した場合に、汎用印刷プログラム４１からプリンタ２に印刷データを送信するのではなく、補助プログラム４２から直接プリンタ２に印刷データを送信することができる。このように、汎用印刷プログラム４１に代わって補助プログラム４２によって行う印刷データの送信を「代替送信」とする。なお、補助プログラム４２による送信であっても、汎用印刷プログラム４１による送信であっても、実際にはＯＳ２１による通信制御を介して行われるが、ＯＳ２１の通信制御は省略して説明する。
【００４１】
第１の形態の印刷システムでは、図３に示すように、プリンタ２に印刷データを送信する経路として、第１ポートから印刷データを送信する第１経路Ｘ１と、第２ポートから印刷データを送信する第２経路Ｘ２と、の少なくとも２つの経路をサポートしており、補助プログラム４２がポートを選択することによって、印刷データを送信する経路が決定される。すなわち、補助プログラム４２が第２ポートを選択することで、代替送信を行うことが決定される。
【００４２】
補助プログラム４２によって選択されるポートは、第１ポートを、汎用印刷プログラム４１がプリンタとの通信に用いるポートとし、例えばＩＰＰ（Internet Printing Protocol）で通信するように設定されたポートとする。一方、第２ポートを、汎用印刷プログラム４１が用いないポートであって、印刷に汎用的に用いられているポートとし、例えばＴＣＰやＵＤＰにおけるポート９１００を用いたＲＡＷ印刷に用いるように設定されたポートとする。なお、本形態で示したポートは、一例であって、他のポートを利用してもよい。例えば、第２ポートとして、他のネットワークのポートや、ネットワークのポート以外のポート、例えばＵＳＢのポートや、無線通信のポートを利用してもよい。
【００４３】
プリンタ２は、第１ポートから送信される印刷データを受信した場合、第１画像形成プログラム２０１によって、その受信した印刷データに基づく画像処理を行う。また、プリンタ２は、第２ポートから送信される印刷データを受信した場合、第２画像形成プログラム２０２によって、その受信した印刷データに基づく画像処理を行う。第１画像形成プログラム２０１および第２画像形成プログラム２０２は、それぞれ対応するポートから送信される印刷データに基づく画像処理を行うプログラムであり、それぞれの印刷データに適したアルゴリズムに従った処理を行う。第１画像形成プログラム２０１も第２画像形成プログラム２０２も、画像処理を行うハードウェアであるＡＳＩＣ２１０を用いることができる。但し、ＡＳＩＣ２１０は、第２画像形成プログラム２０２が印刷データを入力する方がより高速に処理できる。
【００４４】
なお、本形態では、ＡＳＩＣ２１０が、第２画像形成プログラム２０２から印刷データを受け付ける方が高速処理できることから、第２ポートを適宜選択しているが、例えば、第２画像形成プログラム２０２のみがＡＳＩＣ２１０を利用でき、第１画像形成プログラム２０１がＡＳＩＣ２１０を利用できない場合や、第１画像形成プログラム２０１および第２画像形成プログラム２０２それぞれに専用のＡＳＩＣがあり、第２画像形成プログラム２０２用のＡＳＩＣの方が第１画像形成プログラム２０１のＡＳＩＣのよりも高速処理が可能な場合であっても、第２ポートを適宜選択するとよい。また、プリンタ２の通信プログラムあるいは通信ハードウェアが、第２ポートから送信される印刷データをより高速に処理できる場合にも、第２ポートを適宜選択するとよい。
【００４５】
補助プログラム４２は、図２の矢印Ｆに示したポート判定として、汎用印刷プログラム４１から受け取った印刷パラメータあるいは印刷データに基づいて、所定の切替条件を満たしているか否かを判定する。切替条件の例を図４に示す。例えば、本形態では、図４（Ａ）に示すように、印刷パラメータにカラー印刷が設定されていることを、切替条件に適用できる。この条件では、印刷パラメータとしてカラー印刷が設定されている場合、第２ポートとし、モノクロ印刷が設定されている場合、第１ポートとする。カラー印刷の場合は、モノクロ印刷と比較して処理に時間がかかる傾向にあり、第２画像形成プログラム２０２がＡＳＩＣ２１０を利用して高速処理することで、処理の迅速化が期待できる。
【００４６】
また、図４（Ｂ）に示すように、印刷パラメータに高解像度が設定されていることを、切替条件に適用できる。この条件では、印刷パラメータとして高解像度が設定されている場合、第２ポートとし、設定されていない場合、第１ポートとする。高解像度とは、解像度を示す値が所定値よりも大きいことを意味する。高解像度の印刷の場合は、低解像度の印刷と比較して処理に時間がかかる傾向にあり、第２画像形成プログラム２０２がＡＳＩＣ２１０を利用して高速処理することで、処理の迅速化が期待できる。
【００４７】
また、図４（Ｃ）に示すように、両面印刷の場合にも第２画像形成プログラム２０２がＡＳＩＣ２１０を利用して高速処理することで、処理の迅速化が期待できることがある。そのため、印刷パラメータとして両面印刷が設定されている場合、第２ポートとし、片面印刷が設定されている場合、第１ポートとしてもよい。
【００４８】
また、印刷データが複数の描画コマンドの組み合わせで構成されているデータであれば、補助プログラム４２が印刷データを解析し、解析の結果に基づいて判定してもよい。例えば、図４（Ｄ）に示すように、印刷データに特定の描画コマンドが含まれることを、切替条件に適用できる。この条件では、汎用印刷プログラム４１から受け取った印刷データに特定の描画コマンドが含まれる場合、第２ポートとし、特定の描画コマンドが含まれていない場合、第１ポートとする。描画コマンドによってはプリンタ独自のアルゴリズムを適用することで、処理の迅速化が期待できるためである。
【００４９】
また、図４（Ｅ）に示すように、印刷データのデータ形式によって判定してもよい。例えば、ＰＷＧＲａｓｔｅｒデータであれば、第２画像形成プログラム２０２によってＡＳＩＣ２１０を利用した高速処理が可能であり、ＸＰＳデータであれば、第２画像形成プログラム２０２によってＡＳＩＣ２１０を利用した高速処理が可能でない場合、印刷データがＰＷＧＲａｓｔｅｒデータであれば、第２ポートで送信することに決定してもよい。この場合、印刷データのデータ形式がＰＷＧＲａｓｔｅｒデータであることが切替条件になる。なお、補助プログラム４２がＸＰＳデータをＰＷＧＲａｓｔｅｒデータに変換できる機能を有している場合は、ＸＰＳデータであっても第２ポートで送信することに決定してもよい。
【００５０】
図４に示した切替条件を少なくとも１つ適用することでポートを切り替えるか否かを判定できる。なお、複数の切替条件を組み合わせてもよく、その場合は条件ごとに優先度を設けることで、ポートを切り替えるか否かを判定できる。
【００５１】
その後、補助プログラム４２は、第１ポートから印刷データを送信すると判定した場合、代替送信を行わないため、処理後の印刷データを印刷ジョブに反映し、印刷データ編集処理の終了を示す終了通知を汎用印刷プログラム４１に返して処理を終了する（矢印Ｇ１）。補助プログラム４２は、処理後の印刷データを汎用印刷プログラム４１に提供することで、汎用印刷プログラム４１を介して、処理後の印刷データを印刷ジョブに反映しても良い。
【００５２】
汎用印刷プログラム４１は、補助プログラム４２から終了通知を受け取ったことに応じて、プリンタ２に対して印刷命令を送信する（矢印Ｈ１）。これにより、印刷命令を受信したプリンタ２は、印刷命令に付された印刷データに従って、第１画像形成プログラム２０１によって画像処理を行い、受信した印刷データに示される画像の形成、すなわち印刷を行う（矢印Ｏ１）。なお、プリンタ２は、コマンドが付加された印刷データを受信した場合、印刷の実行に際して、コマンドによって示される動作を行う。また、汎用印刷プログラム４１は、終了通知に応じた完了処理を行う（矢印Ｐ１）。
【００５３】
一方、補助プログラム４２は、第２ポートから印刷データを送信すると判定した場合、代替送信として、汎用印刷プログラム４１を用いずに、第２ポートから印刷命令をプリンタ２に送信する（矢印Ｈ２）。印刷命令を受信したプリンタ２は、印刷命令に付された印刷データに従って、第２画像形成プログラム２０２によって画像処理を行い、受信した印刷データに示される画像の印刷を行う（矢印Ｏ２）。
【００５４】
また、補助プログラム４２から直接印刷データがプリンタ２に送信されるため、矢印Ｇ１で示した終了通知とは異なる通知として、補助プログラム４２から汎用印刷プログラム４１に対して完了通知が入力される（矢印Ｇ２）。完了通知が入力された汎用印刷プログラム４１は、その完了通知に応じた完了処理を行う（矢印Ｐ２）。完了処理では、例えば編集アプリ４３から入力された印刷実行通知に基づく印刷ジョブを終了させる。このとき、汎用印刷プログラム４１は、終了させる印刷ジョブが正常に終了したことを示す情報をその印刷ジョブの履歴としてメモリ１２に残す。また、第２ポートによって代替送信を行ったことを示す情報を履歴として残してもよい。
【００５５】
なお、補助プログラム４２は、印刷ジョブをキャンセルするキャンセル通知を、汎用印刷プログラム４１に対して入力することもできる。例えば、印刷パラメータの編集を受け付ける設定画面から印刷ジョブのキャンセルを受け付けることができ、補助プログラム４２からキャンセル通知を汎用印刷プログラム４１に入力することができる。また、中間画像データの編集に失敗した場合にも、補助プログラム４２からキャンセル通知を汎用印刷プログラム４１に入力することができる。キャンセル通知が入力された汎用印刷プログラム４１は、完了通知のときと同様に、印刷ジョブを終了させる。ただし、キャンセル通知が入力された場合は、完了通知の場合と異なり、キャンセルされたことを示す情報をその印刷ジョブの履歴としてメモリ１２に残す。つまり、代替送信によって印刷データの送信が行われた場合、補助プログラム４２から汎用印刷プログラム４１に対して、印刷ジョブを終了させる通知として、キャンセル通知とは異なる完了通知が入力される。完了通知は、第１終了通知の一例であり、キャンセル通知は、第２終了通知の一例である。
【００５６】
なお、第２ポートから印刷データを送信する際、補助プログラム４２は、第２画像形成プログラム２０２用のコマンドを印刷データに付加してもよいし、第２画像形成プログラム２０２用に印刷データを最適化してもよい。これらの印刷データの編集は、ポート判定の前に行ってもよいし、後に行ってもよい。
【００５７】
次に、前述した代替送信を行う場合の、補助プログラム４２の印刷データ編集処理の手順について、図５のフローチャートを参照しつつ説明する。印刷データ編集処理は、印刷指示に基づいて汎用印刷プログラム４１から印刷データ編集処理の実行命令を受け付けたことを契機に、ＰＣ１のＣＰＵ１１にて実行される。なお、印刷データ編集処理は、ポート処理の一例である。
【００５８】
印刷データ編集処理では、ＣＰＵ１１は、実行命令に対応する印刷パラメータおよび印刷データを取得する（Ｓ０１）。その後、ＣＰＵ１１は、取得した印刷データの編集を行う（Ｓ０２）。例えばＳ０２では、プリンタ２に特有な機能を実行させるためのコマンドを印刷データに付加する。プリンタ２に特有な機能としては、例えば、両面印刷設定、トナーセーブ設定、フィニッシャの設定、がある。プリンタ２が自身でウォータマークやヘッダ／フッタ等を画像に付加できる機能や、集約や拡縮等の画像サイズを変更する機能を有している場合、Ｓ０２では、これらの機能を実行させるコマンドを印刷データに付加しても良い。なお、印刷パラメータによっては、Ｓ０２の処理を行わなくてもよい。Ｓ０２は、図２の矢印Ｅに相当する。
【００５９】
また、ＣＰＵ１１は、汎用印刷プログラム４１から受け取った印刷パラメータあるいは印刷データに基づいて、ポートの判定を行う（Ｓ０３）。Ｓ０２の処理とＳ０３の処理とは逆順であっても同時であってもよい。Ｓ０３は、図２の矢印Ｆに相当する。ポートの判定には、前述した切替条件が用いられる。
【００６０】
補助プログラム４２は、図４に示したような、切替条件と送信に用いるポートとを関連付けたテーブル５１を有しており、Ｓ０３の処理ではそのテーブル５１を読み出す。特定のパラメータは、切替条件に対応するパラメータである。例えば切替条件をカラー印刷とする場合、特定のパラメータは、カラー印刷かモノクロ印刷かを指定するパラメータである。そして、印刷パラメータのうち特定のパラメータに対応する値を抽出し、読み出したテーブル５１を参照して、ポートを判定する。例えば、切替条件として図４（Ａ）を用いる場合、カラー印刷であれば第２ポートとし、モノクロ印刷であれば第１ポートとする。どの切替条件を用いるかは補助プログラム４２にあらかじめ決められていてもよいし、ユーザに選択させてもよい。
【００６１】
ＣＰＵ１１は、Ｓ０３での判定の結果、第２ポートによって代替送信を行うか否かを判断する（Ｓ０４）。Ｓ０３およびＳ０４は、判断処理の一例である。第１ポートによって代替送信を行うと判断した場合（Ｓ０４：ＮＯ）、ＣＰＵ１１は、終了通知を汎用印刷プログラム４１に入力し（Ｓ２２）、本処理を終了する。
【００６２】
一方、第２ポートによって代替送信を行うと判断した場合（Ｓ０４：ＹＥＳ）、ＣＰＵ１１は、汎用印刷プログラム４１に処理を戻す前に、補助プログラム４２の処理として、第２ポートから印刷データをプリンタ２に送信する（Ｓ１１）。また、ＣＰＵ１１は、完了通知を汎用印刷プログラム４１に入力する（Ｓ１２）。Ｓ１１の処理とＳ１２の処理とは逆順であっても同時であってもよい。Ｓ１１は、切替処理の一例である。完了通知は、第１終了通知の一例であり、Ｓ１２は、第１通知処理の一例である。
【００６３】
Ｓ１２の後、ＣＰＵ１１は、印刷データの送信が終了したか否かを判断する（Ｓ３１）。印刷データの送信が終了していない場合（Ｓ３１：ＮＯ）、ＣＰＵ１１は、印刷データの送信中のエラーを検知したか否かを判断する（Ｓ３２）。エラーを検知していない場合（Ｓ３２：ＮＯ）、Ｓ３１に処理を戻し、印刷データの送信終了と送信中のエラーとのいずれかが検知されるまで処理を繰り返す。
【００６４】
印刷データの送信中にエラーを検知した場合（Ｓ３２：ＹＥＳ）、ＣＰＵ１１は、エラーを示すメッセージをＵＩ２０に表示させる（Ｓ３３）。補助プログラム４２によって、エラーメッセージを表示することで、ユーザがエラーを認識できる。Ｓ３３は、エラー処理の一例である。Ｓ３３の後、あるいは印刷データの送信が完了した場合（Ｓ３１：ＹＥＳ）、本処理を終了する。
【００６５】
なお、ＯＳ２１は、プリンタとポートとに関連付けられたプリントキューを有している。例えば、本形態では、１台のプリンタ２に対して、プリンタ２と第１ポートとに関連付けられたプリントキューと、プリンタ２と第２ポートとに関連付けられたプリントキューと、の２つのプリントキューを有している。ＯＳ２１は、各プリントキューに登録された印刷ジョブを順次にプリンタに送信する機能を有している。
【００６６】
そのため、補助プログラム４２は、第２ポートから印刷データを送信すると判定した場合、印刷命令を直接送信する代わりに、印刷データを第１ポートから送信する新たな印刷ジョブを作成し、その新たな印刷ジョブを、汎用印刷プログラム４１を介さずに、プリンタ２と第２ポートとに関連付けられたプリントキューに登録してもよい。この場合、プリントキューに登録された印刷ジョブは、ＯＳ２１によって第２ポートからプリンタ２に送信される。プリントキューに直接登録する場合、補助プログラム４２から直接印刷データを送信する機会が減り、補助プログラム４２の負荷が少なくて済む。
【００６７】
続いて、第２の形態について説明する。第２の形態では、第１ポートからの印刷データの送信も、補助プログラム４２によって行う。この点、第１ポートからの印刷データの送信は汎用印刷プログラム４１によって行う第１の形態と異なる。
【００６８】
第２の形態において代替送信を行う場合の手順について、図６を参照して説明する。なお、図６中、図２と同じ処理については同じ符号を付している。また、補助プログラム４２がポート判定を行う（矢印Ｆ）までの処理は、第１の形態と同じであり、説明を省略する。また、第２ポートから印刷データを送信する場合も、第１の形態と同じであり、説明を省略する。
【００６９】
補助プログラム４２は、第１ポートから印刷データを送信すると判定した場合、汎用印刷プログラム４１を用いずに、第１ポートから印刷データをプリンタ２に送信する（矢印Ｈ３）。印刷データを受信したプリンタ２は、第１画像形成プログラム２０１によって画像処理を行い、受信した印刷データによって示される画像の印刷を行う（矢印Ｏ１）。
【００７０】
また、補助プログラム４２から直接印刷データがプリンタ２に送信されるため、補助プログラム４２から汎用印刷プログラム４１に対して完了通知が入力される（矢印Ｇ３）。完了通知が入力された汎用印刷プログラム４１は、その完了通知に応じた完了処理を行う（矢印Ｐ３）。
【００７１】
すなわち、第２の形態では、第１ポートから印刷データを送信する場合も、補助プログラム４２による代替送信が行われる。そのため、第１の形態と比較して、汎用印刷プログラム４１によって印刷データの送信を行う機会が少なく、汎用印刷プログラム４１の負荷が少なくて済む。
【００７２】
次に、第３の形態について説明する。第２の形態では、補助プログラム４２から汎用印刷プログラム４１に応答する終了通知に、ポート判定の判定結果を付与し、第２ポートから印刷データを送信する場合、汎用印刷プログラム４１によってポートを第２ポートに切り替える。この点、ポートの切り替えを補助プログラム４２によって行う第１ないし第２の形態と異なる。
【００７３】
第３の形態において代替送信を行う場合の手順について、図７を参照して説明する。なお、図７中、図２あるいは図６と同じ処理については同じ符号を付している。また、補助プログラム４２がポート判定を行う（矢印Ｆ）までの処理は、実施の形態と同じであり、説明を省略する。
【００７４】
ポート判定の後、補助プログラム４２は、終了通知を汎用印刷プログラム４１に対して出力する（矢印Ｇ４）。この終了通知には、ポート判定の判定結果が付される。汎用印刷プログラム４１は、第１ポートを示す判定結果が終了通知に付されていた場合、第１ポートからプリンタ２に対して印刷命令を送信する（矢印Ｈ１）。その印刷命令を受信したプリンタ２は、受信した印刷データに示される画像の印刷を行う（矢印Ｏ１）。また、汎用印刷プログラム４１は、完了処理を行う（矢印Ｐ１）。すなわち、第１ポートから印刷データを送信すると判定した場合、代替送信を行わない場合と同じ処理が行われる。
【００７５】
一方、汎用印刷プログラム４１は、第２ポートを示す判定結果が終了通知に付されていた場合、印刷データの送信に用いるポートを第２ポートに切り替え（矢印Ｑ）、第２ポートからプリンタ２に対して印刷命令を送信する（矢印Ｈ４）。具体的には、汎用印刷プログラム４１は、第２ポートに対応するプリントキューに印刷ジョブを登録する。第２ポートを示す判定結果が付された終了通知は、切替要求の一例である。印刷ジョブを受信したプリンタ２は、受信した印刷データに示される画像の印刷を行う（矢印Ｏ２）。また、印刷データを送信した汎用印刷プログラム４１は、終了通知に応じた完了処理を行う（矢印Ｐ４）。
【００７６】
すなわち、第３の形態では、補助プログラム４２は、ポート判定の判定結果を汎用印刷プログラム４１に入力し、汎用印刷プログラム４１が、判定結果に応じてポートを切り替えて印刷データを送信する。そのため、第１ないし第２の形態と比較して、補助プログラム４２から直接印刷データを送信することがなく、補助プログラム４２の負荷が少なくて済む。
【００７７】
以上、詳細に説明したように、本実施の形態の補助プログラム４２によれば、印刷パラメータや印刷データに基づいてポート判定が行われ、その判定結果に応じて印刷データの送信に用いるポートが切り替えられる。そのため、プリンタ２にとって好適なアルゴリズムでの印刷が期待できる。
【００７８】
さらに、本形態の補助プログラム４２によれば、汎用印刷プログラム４１から印刷データを送信しない場合、印刷ジョブを終了させるための完了通知を汎用印刷プログラム４１に入力している。そのため、汎用印刷プログラム４１によって送信待ちとなっている状態が解除され、プリンタ２への印刷データの二重送信を回避できる。
【００７９】
なお、本明細書に開示される実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、ＰＣ１に接続されるプリンタは、プリンタ単能機に限らず、複合機、複写機、ＦＡＸ装置、等印刷機能を有する装置であればよい。また、ＰＣ１に接続されるプリンタは、図示の例に限らず、１台でも良いし、３台以上でもよい。
【００８０】
また、実施の形態で、汎用印刷プログラム４１の処理として説明した各処理の一部は、ＯＳ２１の処理であっても良い。また、汎用印刷プログラム４１が用いる第１ポートは、ＯＳ２１や他のプログラムで用いてもよい。
【００８１】
また、印刷パラメータ決定処理を実行するモジュールは、補助プログラム４２に限らず、汎用印刷プログラム４１を用いた印刷を行う際に、ＯＳ２１または汎用印刷プログラム４１から指示を受け付けるプログラムであればよい。例えば、マイクロソフト社が仕様公開した印刷ワークフローアプリ（Print workflow）でも良い。
【００８２】
また、実施の形態では、汎用印刷プログラム４１から補助プログラム４２の実行命令が出力されることで、補助プログラム４２が実行されるとしているが、補助プログラム４２の実行条件はこれに限らない。例えば、ＯＳ２１から直接実行されても良く、または、常駐される補助プログラム４２であっても良い。常駐される場合には、補助プログラム４２は、実行命令を受けて前述した動作を行うとすれば良い。
【００８３】
また、実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【００８４】
また、実施の形態に開示されている処理は、単一のＣＰＵ、複数のＣＰＵ、ＡＳＩＣなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【００８５】
１  ＰＣ
２  プリンタ
１１  ＣＰＵ
１２  メモリ
２０  ＵＩ
２１  ＯＳ
４１  汎用印刷プログラム
４２  補助プログラム
【図１】
2020126367.tif 000003
【図２】
2020126367.tif 000004
【図３】
2020126367.tif 000005
【図４】
2020126367.tif 000006
【図５】
2020126367.tif 000007
【図６】
2020126367.tif 000008
【図７】
2020126367.tif 000009