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