JP2020095535A - 情報処理装置、その制御方法、及びプログラム - Google Patents
情報処理装置、その制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2020095535A JP2020095535A JP2018233752A JP2018233752A JP2020095535A JP 2020095535 A JP2020095535 A JP 2020095535A JP 2018233752 A JP2018233752 A JP 2018233752A JP 2018233752 A JP2018233752 A JP 2018233752A JP 2020095535 A JP2020095535 A JP 2020095535A
- Authority
- JP
- Japan
- Prior art keywords
- printer
- information
- print job
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】本発明は、複数のベンダで共通のプリンタドライバを用いて印刷を行う場合であっても、個々の印刷装置の能力や印刷オプション設定に応じて画像の向きを好適に変更し印刷を実行する仕組みを提供する。【解決手段】情報処理装置は、それぞれ異なるベンダによって製造されたプリンタ間で共通して使用されるプリンタドライバと、プリンタドライバで生成された印刷ジョブを受信する。また、本情報処理装置は、受信した印刷ジョブの対象となる選択プリンタの能力情報を取得し、取得した能力情報と、受信した印刷ジョブの印刷設定とから、画像を回転する必要があるか否かを判定する。さらに、本情報処理装置は、判定結果に基づき、受信した前記印刷ジョブのうち、必要に応じて画像の回転及び印刷設定の更新を行い、受信した印刷ジョブ又は更新した印刷ジョブを選択プリンタへ送信する。【選択図】 図6
Description
本発明は、情報処理装置、その制御方法、及びプログラムに関する。
プリンタドライバを利用し、印刷装置に対して印刷データを送信する情報処理装置が一般に知られている。情報処理装置には、基本ソフトウェアであるオペレーティングシステム(OS)がインストールされており、プリンタドライバはそのOSの規定するプリントアーキテクチャに従って構成され、OSから呼び出されて動作する。印刷装置を提供するベンダは、OSの仕様に適合するプリンタドライバを提供する。OSとプリンタドライバは、協働して出力先の印刷装置を用いて印刷を行う機能を実現する。
ところで、OSとしてMicrosoft(登録商標)のWindows(登録商標)8.1以降において、V4プリンタドライバと呼ばれるアーキテクチャが登場している。V4プリンタドライバは、セキュリティ性が重視されているため、プリンタドライバそのものの拡張性が低くなっているが、印刷装置を提供するベンダは、プリンタドライバの機能を補助するための専用のアプリケーションを提供することができる。このアプリケーションはUWP Device Apps(Universal Windows Platform Device Apps)と呼ばれる。UWP Device Appsは、ストアアプリケーション(UWP)から印刷を行う際のユーザエクスペリエンスを高めることができる。また、V4プリンタドライバには、ベンダ独自の印刷設定を行うための印刷設定アプリケーションであるPrinterExtensionを紐付けることができる。
特許文献1では、機能が異なる複数種類の印刷装置を制御するためのプリンタドライバとしてユニバーサルプリンタドライバと称されるプリンタドライバが提案されている。当該プリンタドライバでは、機種やモデル毎に個々の印刷装置に好適な操作画面を表示することができる。
更に、プリンタドライバを使用せずに、印刷装置に対して印刷データを送信できるようにすることが考えられている。例えば、Ubuntu(登録商標)17.04では、OSのデフォルト機能として、IPP Everywhere(登録商標)に対応する印刷装置に対して印刷データを送信する仕組みが搭載されている。IPP Everywhereは、様々な印刷装置を使用した印刷を可能とする一連の規格であり、業界団体などで規格の策定や普及活動が行われている。
また、特許文献2には、印刷制御において、画像のデータの方向と、印刷における記録ヘッドの方向を合わせるように画像を回転させる画像処理を行い、記録ヘッドに合った制御コマンドに変換して印刷を行う方法が提案されている。
しかしながら、上記従来技術には以下に記載する課題がある。例えば、上記従来技術のようなユニバーサルプリンタドライバは、ベンダ毎に提供されることが一般的である。従って、同じベンダが販売している機能が異なる複数種類の印刷装置については、1つのユニバーサルプリンタドライバで対応することができる。しかし、異なるベンダの印刷装置を1つのユニバーサルプリンタドライバで対応することは困難である。これは、ベンダ毎に各々異なる通信方式、PDL(ページ記述言語)やJDL(ジョブ記述言語)で印刷データのやりとりを行っているため、統一することが難しいといった事情に起因する。また、印刷設定項目に関してもベンダ毎に設定項目が異なっていたり、同じような設定項目であっても解釈が違っていたりなどの事情があり、1つのユニバーサルプリンタドライバで対応することが困難であった。
そのため、共通のプリンタドライバやプリントクライアントでは、ベンダ毎に、設定項目が異なっており、設定項目に違いがあることがある。よって、各ベンダの用意する印刷装置では、画像の方向や、ステープル、針なし綴じなどの印刷オプション設定が必ずしもそれぞれの印刷装置が対応可能な画像方向や印刷オプション設定で渡されるとは限らない。その結果、共通のプリンタドライバやプリントクライアントでは、印刷できない、或いは、印刷オプション設定に対応できないといった問題する可能性がある。
本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、複数のベンダで共通のプリンタドライバを用いて印刷を行う場合であっても、個々の印刷装置の能力や印刷オプション設定に応じて画像の向きを好適に変更し印刷を実行する仕組みを提供することを目的とする。
本発明は、例えば、情報処理装置であって、それぞれ異なるベンダによって製造されたプリンタ間で共通して使用されるプリンタドライバと、前記プリンタドライバで生成された印刷ジョブを受信する受信手段と、前記受信手段によって受信した印刷ジョブの対象となる選択プリンタの能力情報を取得する取得手段と、前記取得手段によって取得した能力情報と、前記受信手段によって受信した印刷ジョブの印刷設定とから、画像を回転する必要があるか否かを判定する判定手段と、前記判定手段の判定結果に基づき、前記受信手段によって受信した前記印刷ジョブのうち、必要に応じて画像の回転及び印刷設定の更新を行う更新手段と、前記受信手段によって受信した印刷ジョブ又は前記更新手段によって更新した印刷ジョブを前記選択プリンタへ送信する送信手段とを備えることを特徴とする。
本発明によれば、複数のベンダで共通のプリンタドライバを用いて印刷を行う場合であっても、個々の印刷装置の能力や印刷オプション設定に応じて画像の向きを好適に変更し印刷を実行することができる。
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。
<第1の実施形態>
<印刷システム>
まず、図1を参照して、本実施形態に係る印刷システムの構成例を説明する。本実施形態に係る印刷システムは、クライアントコンピュータ100、プリンタ200a〜200cを含む。各装置は、ネットワーク300を介して相互に通信可能に接続されている。なお、デバイス間の通信の形態は無線ネットワークを介した通信であってもよいし、有線ネットワークを介した通信であってもよい。また、無線ネットワークを介した通信の場合、IEEE802.11に準拠するアクセスポイントを介した無線通信であってもよいし、Wi−Fi Direct(登録商標)などの直接無線通信であってもよい。また、本実施形態では、印刷システムの一例として上記の構成を説明するが、これに限定されるものではない。即ち、1つ以上の通信装置と印刷とがネットワークを介して通信可能に接続されていればよい。
<印刷システム>
まず、図1を参照して、本実施形態に係る印刷システムの構成例を説明する。本実施形態に係る印刷システムは、クライアントコンピュータ100、プリンタ200a〜200cを含む。各装置は、ネットワーク300を介して相互に通信可能に接続されている。なお、デバイス間の通信の形態は無線ネットワークを介した通信であってもよいし、有線ネットワークを介した通信であってもよい。また、無線ネットワークを介した通信の場合、IEEE802.11に準拠するアクセスポイントを介した無線通信であってもよいし、Wi−Fi Direct(登録商標)などの直接無線通信であってもよい。また、本実施形態では、印刷システムの一例として上記の構成を説明するが、これに限定されるものではない。即ち、1つ以上の通信装置と印刷とがネットワークを介して通信可能に接続されていればよい。
本実施形態では印刷ジョブを受信してシートに画像を印刷する印刷装置の一例として単機能のプリンタ200a〜200cを説明するが、これに限定されるものではない。印刷機能とスキャン機能を有するMFP(Multi Function Peripheral)などの装置であってもよい。
また、本実施形態では、説明のためプリンタ200a〜200cは異なるベンダにより製造されているものとする。プリンタ200a〜200cは、IPP(Internet Printing Protocol)に則する印刷ジョブをクライアントコンピュータ100などから受信し、当該印刷ジョブに基づいてシートに画像を印刷することができる。また、プリンタ200a〜200cはIPPとは異なる形式の印刷ジョブを受信し、解釈する機能も有している。例えば、プリンタ200aは、PDL(Page Description Language)データの1つのPDL−Aを含む印刷ジョブを解釈することができる。また、プリンタ200bは、PDL−B形式に則するPDLデータを含む印刷ジョブを解釈することができる。プリンタ200cは、インクジェットプリンタであり、インクジェットプリンタ用のPDL、PDL−Cに則する印刷ジョブを解釈することができる。このように、プリンタの製造元のベンダが異なると、当然ながらサポートするPDLの種類が異なってくる。また、同じプリンタであっても、使用するPDLの種別によっては、サポートする機能に多少の差異がある。各プリンタは上述のPDL形式、又は上述のPDL形式に基づき派生したPDL形式のうち、少なくとも1つの方式をサポートしているものとする。なお、以下では、プリンタ200a〜200cのいずれにも該当する構成や制御について説明する際には、単にプリンタ200と称する。
続けて、情報処理装置の一例であるクライアントコンピュータ100について説明する。本実施形態では、クライアントコンピュータ100がPC(Personal Computer)である場合を例示しているがこれに限定されるものではない。タブレット端末や、ヘッドマウントディスプレイとコンピュータが組み込まれたウェアラブルコンピュータなどの端末であってもよい。クライアントコンピュータ100は、ネットワーク300上のプリンタ200a〜200cと互いに通信することができる。また、クライアントコンピュータ100は、印刷対象のデータに基づき印刷ジョブを生成し、各プリンタへ送信することができる。
<情報処理装置のハードウェア構成>
次に、図2を参照して、本実施形態に係る情報処理装置であるクライアントコンピュータ100のハードウェア構成について説明する。
次に、図2を参照して、本実施形態に係る情報処理装置であるクライアントコンピュータ100のハードウェア構成について説明する。
CPU(Central Processing Unit)101は、制御部120全体の動作を統括的に制御するプロセッサである。制御部120は、メモリであるROM(Read Only Memory)1021、RAM(Random Access Memory)1022、ストレージ105によって構成され、各部はシステムバス107により接続されている。また、制御部120は、入出力デバイスを接続するための入力インタフェース(I/F)103及び出力I/F104や、ネットワークを介して外部装置と通信するための通信I/F106も備えている。
RAM1022は揮発性メモリであり、ワークエリア、ROM1021及びストレージ105に格納された各種制御プログラムを展開するための一時記憶領域として用いられる。ROM1021は不揮発性メモリであり、コンピュータのブートプログラムなどが格納されている。ストレージ105はRAM1022と比較して大容量な不揮発性のフラッシュメモリやHDD(Hard Disk Drive)である。ストレージ105には、コンピュータ100全体を制御するためのOS(Operating System)1053や、OS1053上で動作する各種アプリケーション1051のプログラムが格納されている。また、IPP等の所定の印刷プロトコルに則する印刷ジョブを生成する共通プリンタドライバ1054や、共通プリンタドライバ1054と連携するデバイスアプリ1052a〜1052bのプログラムが格納されている(詳細は後述する)。なお、共通プリンタドライバは、プリントクライアントであってもよい。
アプリケーション1051や、デバイスアプリ1052a〜1052bなどの各種アプリケーションは、CD−ROMやUSBメモリ又はネットワーク300を経由してクライアントコンピュータ100にインストールすることができる。CPU101はRAM1022上に展開したOSのプログラムや各アプリケーションのプログラムを実行し、コンピュータ100の制御を行う。このように、CPU101、ROM1021、RAM1022、及びストレージ105等のハードウェアは、いわゆるコンピュータを構成している。なお、クライアントコンピュータ100は、1つのCPU101が後述するフローチャートに示す各処理を実行するものとするが、他の態様であっても構わない。例えば、複数のプロセッサが協働して後述するフローチャートに示す各処理を実行するようにすることもできる。
入力I/F103は、キーボード108や、ポインティングデバイス109と制御部120を接続する。キーボード108やポインティングデバイス109は、ユーザの指示を受け付ける受付部として機能する。ポインティングデバイスは、タッチパネルや、マウスなどの入力デバイスを含む。受付部は画面上に表示されるキーなどの表示アイテムの選択を検知することができる。出力I/F104は、情報を表示するモニタ110と、制御部120を接続する。モニタ110は、情報を表示する表示部として機能する。なお、クライアントコンピュータ100がタブレット端末などの場合、受付部と表示部を兼ねるタッチパネルディスプレイを介してユーザに対する情報の表示や、操作の受け付けを行うものとする。この場合、ユーザは指などのオブジェクトを用いてタッチ操作を行うことで、クライアントコンピュータ100に所望の操作指示を入力することができる。通信I/F106は、ネットワーク300上の印刷装置などの外部装置や、クラウド上のサーバなどと通信を行うためのインタフェースである。
<情報処理装置のソフトウェア構成>
次に、図3を参照して、本実施形態における情報処理装置であるクライアントコンピュータ100のソフトウェア構成について説明する。OS1053は、コンピュータ100全体の制御を行うシステムソフトウェアである。ここでは一例としてWindows(登録商標)10以降のOSがインストールされているものする。
次に、図3を参照して、本実施形態における情報処理装置であるクライアントコンピュータ100のソフトウェア構成について説明する。OS1053は、コンピュータ100全体の制御を行うシステムソフトウェアである。ここでは一例としてWindows(登録商標)10以降のOSがインストールされているものする。
OS1053は、プリンタドライバを使用して印刷を行うための印刷アーキテクチャ10531を提供する。印刷アーキテクチャ10531は、XPS形式のデータをスプールデータとして使用し、当該スプールデータをプリンタドライバによって印刷データ(PDL)に変換する、いわゆるV4印刷アーキテクチャである。
ところで、コンピュータにインストール可能なプリンタドライバとしてユニバーサルプリンタドライバと称されるドライバがある。また、Ubuntu(登録商標)17.04などのOSでは、OSのデフォルト機能として、IPP Everyware(登録商標)に対応する印刷装置に対して印刷データを送信する仕組みが搭載されている。IPP Everywareは、様々な印刷装置を使用した印刷を可能とする一連の規格であり、業界団体などで規格の策定や普及活動が行われている。
前述したユニバーサルプリンタドライバは、ベンダ毎に提供されることが一般的である。従って、同じベンダが販売している機能が異なる複数種類の印刷装置については、従来から1つのユニバーサルプリンタドライバで対応することができる。しかしながら、複数の異なるベンダの印刷装置を1つのユニバーサルプリンタドライバで対応することは困難である。これは、ベンダ毎に各々異なる通信方式、PDLやJDL(ジョブ記述言語)で印刷ジョブのやりとりを行っているため、統一することが難しいといった事情に起因する。また、印刷設定項目に関してもベンダ毎に設定項目が異なっていたり、同じような設定項目であっても解釈が違っていたりなどの事情があり、複数の異なるベンダの印刷装置を1つのユニバーサルプリンタドライバで対応することは困難である。
ここで、Windowsなどの環境においても、ベンダが提供するV3形式やV4形成のプリンタドライバを個別にインストールせずに印刷を実行できる仕組みを提供することができれば、ユーザにとっての利便性を高めることができると想定される。これに鑑み、本実施形態では、所定の印刷プロトコルの仕組みを使用した共通プリンタドライバをWindows環境で実現する。以降、所定の印刷プロトコルが、一般的に用いられているIPPである場合を例として説明する。
ここで、IPPに準拠する共通のプリンタドライバを単純に実装した場合を考える。この場合、IPPに準拠する印刷属性と、IPPに則するPDLを含む印刷ジョブを生成し、プリンタに送信することとなる。ここで、共通のプリンタドライバが生成した画像(ラスター画像やPDLファイルなど)をそのまま画像の向きに手を加えずにプリンタに送ってしまうことを想定する。その場合、画像の向きがデータを受け取るプリンタの印刷の向きと異なっていると、例えば、A4縦置きしかサポートしないプリンタにA4横置きのデータを送っても印刷が行えないといった問題がある。また、共通のプリンタドライバが縦置きのA4サイズの画像を送ってきた場合に、プリンタに横置きのA4サイズの用紙しか給紙段に存在しない場合を考える。この場合、自動的にプリンタ内で画像を回転させることの可能な機種でないとエラーが出て、用紙を交換する必要が出てくるという問題がある。また、プリンタ内で画像を回転させることが可能な機種であっても、ソフトウェアで回転させるようなプリンタの場合には、時間が掛かり、印刷速度が遅くなるといった問題がある。
そこで、本実施形態では、IPPに則する共通プリンタドライバから、ベンダ毎の特定の機能を利用するための拡張アプリケーションを呼び出せるようにし、ベンダ毎の拡張機能を提供できるようにする。そして、その中で、画像の回転が必要かどうかを判断して、必要な場合には、画像を回転させると共に、画像の向きに合わせて設定コマンドも変更して、プリンタに送れるようにする。以下、具体的な仕組みについて説明する。
図3の説明に戻り、クライアントコンピュータ100には、プリンタドライバとして、複数のベンダのプリンタをサポートする共通プリンタドライバ1054がインストールされている。当該共通プリンタドライバ1054は、OS1053の標準機能として組み込まれたクラスドライバであってもよいし、別途ユーザがコンピュータ100に対してインストールしたユニバーサルプリンタドライバであってもよい。
印刷アーキテクチャ10531は、GDItoXPS変換モジュール307、共通プリンタドライバ1054、OS標準印刷UI部305、プリントマネージャ318、及びデバイス通信部319を含んで構成される。なお、本実施形態に係るクライアントコンピュータ100には、共通プリンタドライバとは異なるプリンタドライバ(例えば、ベンダが提供する機種専用のプリンタドライバなど)をインストールすることも可能である。共通プリンタドライバ1054には、標準印刷設定部308、OS標準印刷機能定義ファイル群309、標準印刷処理部(XPStoPDL)312、及び拡張アプリ設定記憶部320が含まれる。
図3に示すように、アプリケーション1051には、デスクトップアプリ301、UWPアプリ302、及び標準設定データ(DEVMODE303及びPrintTicket304)が含まれる。また、デバイスアプリ1052には、印刷時起動アプリ部10521、拡張印刷設定部10522、デバイスアプリ通信部10524、及び印刷ジョブ生成部10525が含まれる。印刷ジョブ生成部10525には、画像回転判断部10526及び画像回転部10527が含まれる。各部の詳細については印刷処理の手順に従って以下で説明する。
<共通プリンタドライバ1054を用いる印刷処理>
まず、共通プリンタドライバ(プリントクライアント)1054を用いる印刷処理について説明する。デスクトップアプリ301は、「Win32/64アプリケーション」や「.NETアプリケーション」などである。UWPアプリ302は、OS1053上で動作するUWP(Universal Windows Platform)アプリケーションである。UWPアプリケーションは、Windowsストアを通して配布されるアプリケーションであり、デスクトップアプリ301や、印刷アーキテクチャ10531とは異なる実行環境で動作する。UWPアプリは個別のサンドボックス内(仮想環境上)で動作し、システム領域へのアクセスや、利用可能なAPIに制限が行われている。即ち、UWPアプリケーションは、デスクトップアプリや、デバイスドライバと比較して、装置内のリソースへのアクセス権限が低い。そのため、デスクトップアプリケーションやドライバプログラムなどに比べて、システムへの影響を与える可能性が低いといった特徴がある。これらのデスクトップアプリ301や、UWPアプリ302は、印刷アーキテクチャ10531と協働してコンテンツ(例えば、文書や、画像など)の印刷を行うことができる。
まず、共通プリンタドライバ(プリントクライアント)1054を用いる印刷処理について説明する。デスクトップアプリ301は、「Win32/64アプリケーション」や「.NETアプリケーション」などである。UWPアプリ302は、OS1053上で動作するUWP(Universal Windows Platform)アプリケーションである。UWPアプリケーションは、Windowsストアを通して配布されるアプリケーションであり、デスクトップアプリ301や、印刷アーキテクチャ10531とは異なる実行環境で動作する。UWPアプリは個別のサンドボックス内(仮想環境上)で動作し、システム領域へのアクセスや、利用可能なAPIに制限が行われている。即ち、UWPアプリケーションは、デスクトップアプリや、デバイスドライバと比較して、装置内のリソースへのアクセス権限が低い。そのため、デスクトップアプリケーションやドライバプログラムなどに比べて、システムへの影響を与える可能性が低いといった特徴がある。これらのデスクトップアプリ301や、UWPアプリ302は、印刷アーキテクチャ10531と協働してコンテンツ(例えば、文書や、画像など)の印刷を行うことができる。
デスクトップアプリ301は、プリンタの印刷イメージの生成を行うグラフィックスコンポーネントであるGDI(Graphics Device Interface)を利用して印刷を行う。GDIを利用して印刷する場合、デスクトップアプリ301は、OS1053のモジュールであるGDItoXPS変換モジュール307に対してGDI描画データを送信する。GDItoXPS変換モジュール307は、GDI描画データをXPSスプールファイルに変換する。変換したXPSスプールファイルは、XPSスプール領域306に一時的に格納される。
一方、UWPアプリ302から印刷する場合は、UWPアプリ自身がXPSファイルを生成する方法と、OS1053がUWPアプリからの描画命令に応じてXPSファイルを生成する方法の2通りがある。いずれかの方法で、生成されたXPSファイルは、XPSスプール領域306に転送され、一時的に格納される。
ユーザはキーボード108やタッチパネル/マウスなどに代表されるポインティングデバイス109などといった入力装置を使用して、出力装置のモニタ110に映し出されたデスクトップアプリ301又はUWPアプリ302から印刷処理を実行する。ここでは、UWPアプリ302から印刷を行う場合を例に説明する。
図8は、UWPアプリ302から印刷を行う場合に表示される画面の一例であり、OS1053により提供される、モダンプリントダイアログと呼ばれる設定画面(ユーザインタフェース)の一例を示す。UWPアプリ302を介して印刷指示が行われると、CPU101は、図8に示すプリントダイアログをモニタ110上に表示する。ユーザは領域801を選択して印刷に用いるプリンタを選択したり、領域804の各項目を選択して印刷設定を変更したりすることができる。また、ユーザは、印刷キー803を使用して、印刷指示を行うことができる。ここでは、共通プリンタドライバ1054に対応するプリンタがユーザにより選択されている場合を例に説明する。その他の設定キー802は、詳細な印刷設定を行う場合に使用するキーである。当該キーが選択されたことを検知すると、OSは、OS標準印刷UI部305を起動し、不図示のIPPに則する印刷設定画面(ユーザインタフェース)を表示する。
印刷設定を変更するユーザ操作を検知すると、OS1053は、共通プリンタドライバ1054の標準印刷設定部308を呼び出す。標準印刷設定部308は、OS標準印刷機能定義ファイル群309の中から選択されたプリンタに対応する定義ファイルを参照する。また、標準印刷設定部308は、参照した定義ファイルに基づき、現在の印刷設定を示す標準設定データ(303や304)及び選択されたプリンタの印刷能力を示すPrintCapabilitiesを作成する。標準印刷機能定義ファイルは、IPPプリンタの探索時などにプリンタから取得される属性情報に基づき生成されたプリンタの能力を示す定義ファイルである。従って、OS標準印刷機能定義ファイル群309には、プリンタ毎に異なる別ファイルが記憶される。
ここで、定義ファイルの生成について説明する。選択中のプリンタに対応する定義ファイルがストレージ105に記憶されていない場合、共通プリンタドライバ1054は、プリンタに能力情報の問い合わせを行う。共通プリンタドライバ1054は、プリントマネージャ318、デバイス通信部319を介して、プリンタへ能力を問い合わせる。プリントマネージャ318は、後述する印刷ジョブの制御機能に加え、IPPに対応するプリンタの探索や、プリンタ能力の取得を行うことができる。具体的には、プリンタ能力の取得は、RFC2911で既定されたプリンタ属性要求操作(Get−Printer−Attributes Operations)によって行われる。まず、プリントマネージャ318は、Get−Printer−Attributes Requestをプリンタ200に対して送信する。当該リクエストの応答として、プリンタ200の属性情報が得られる。プリンタ属性要求操作により得られるプリンタの能力情報は、例えば、「両面」や「カラー印刷」が可能かどうかなどの、標準的な印刷設定の能力情報などである。ここで、プリンタ属性要求操作により取得できる能力(属性)はIPPで既定されている属性に関するサポート情報である。従って、ベンダ固有の機能情報(針なし綴じ機能や、ボックス印刷機能など)は、IPPのプリンタ属性要求操作では取得することができない。取得された属性情報は、標準印刷設定部308に転送される。標準印刷設定部308は、IPPを用いて取得した属性情報に基づいて、定義ファイルを生成しストレージ105に記憶される。
印刷設定の説明に戻る。デスクトップアプリ301では現在の印刷設定を示す標準設定データとしてバイナリのDEVMODE303が用いられる。また、UWPアプリ302ではマークアップ言語であるXMLで記載されたPrintTicket304が用いられる。このDEVMODE303又はPrintTicket304は、IPPに則した印刷ジョブに反映すべき印刷設定を保持する標準設定データである。
図4は、PrintCapabilities及び、PrintTicketを示す。いずれも印刷アーキテクチャで既定された規則に則ったXML形式のファイルであり、ファイル400は、PrintCapabilitiesの一例を示す。ファイル400には、使用可能な印刷設定項目と、当該印刷設定項目に対して設定可能な設定値の組み合わせが列挙されている。アプリケーションや、OSが提供する印刷設定のためのユーザインタフェースは、当該ファイル400に基づき印刷設定画面を構成することができる。なお、ここでは紙面の都合上一部の設定を例示しているが、これに限定されるものではない。その他IPPに準拠する属性情報に基づく印刷設定項目や後処理の設定項目を含んでもよい。
一方、ファイル401は、PrintTicket304の一例であり、現在の印刷設定が列挙される。アプリケーション1051やOS1053が提供する印刷設定のためのユーザインタフェースは、PrintTicket304を書き換えることで印刷設定を変更することができる。
また、OS標準印刷UI部305は、選択されたプリンタに対応するPrintCapabilitiesに記述された情報に基づき、印刷設定のための画面(ユーザインタフェース)を提供する。
ユーザによる印刷指示が行われたことを検知すると、OS又はアプリケーションはXPSスプールファイルを生成する。生成されたXPSスプールファイルは、標準印刷処理部312に渡される。標準印刷処理部312は、受け取ったXPSスプールファイルをレンダリングしてIPPに則するPDLデータに変換する。IPPに則するPDLデータは、例えば、PDF(Portable Document Format)又はPWG−Raster形式のデータである。なお、アプリケーションがPDFファイルを生成可能である場合、表示印刷処理部312によるレンダリングを行わず、アプリケーションが生成したPDFファイルをそのままPDLデータとして採用してもよい。また、出力先プリンタに対応する拡張アプリケーションがインストールされている場合、XPSスプールファイルをレンダリングすることなくそのままPDLデータとして採用してもよい。さらに、標準印刷処理部312は、スプールファイルに含まれるPrintTicket304に指定された設定内容に基づき、IPPに則する印刷属性情報を生成する。
PDLデータと、IPPに則する印刷属性情報は、印刷処理のスケジュール管理を行うプリントマネージャ318で管理される。プリントマネージャ318は、PDLデータと、IPPに則する印刷属性情報に基づきIPPに則する印刷ジョブを生成し、キュー(待ち行列)に生成した印刷ジョブを登録する。プリンタ200が印刷できる状態になると、キューに登録した順にデバイス通信部319を介して、IPPに則する印刷ジョブを所定のプリンタ200a〜200cに送信する。このようにして、アプリケーションからの印刷データをIPPに則するPDLデータに変換することが共通プリンタドライバ1054の主な役目である。
上記の処理では、IPPの仕様として規定済みの能力しか対応できず、プリンタ200a〜200cが提供する様々な機能に対応することができない。そこで、本実施形態では、拡張アプリケーションであるデバイスアプリ1052が、別の通信方式を利用して、詳細な能力情報をプリンタから取得することで、標準印刷設定以外の拡張印刷設定を扱うことを可能とする。
デバイスアプリ1052a〜1052bは、共通プリンタドライバ1054とは別のアプリケーションであり、UWPのプラットフォーム上で動作するアプリケーションである。このアプリケーションは、IPPをベースとした共通プリンタドライバによる印刷をベースにしつつ、必要に応じてプリンタ200の備える機能をより柔軟に利用可能にするためのアプリケーションである。このアプリケーションはサンドボックス化されたUWPの実行環境で動作することになる。従って、当該アプリケーションがハングアップやエラーを起こしたとしても、システム全体に与える影響を小さくすることができる。
ここでは、プリンタ200aに対応するデバイスアプリケーションとしてデバイスアプリ1052aがインストールされている場合を例示する。また、ここでは、プリンタ200bに対応するデバイスアプリケーションとしてデバイスアプリ1052bがインストールされている場合を例示する。一方、プリンタ200cに対するデバイスアプリケーションはインストールされていない。
従って、ユーザが共通プリンタドライバの出力先としてプリンタ200c選択した場合、拡張印刷設定の処理はスキップされ、IPPに準拠する印刷が行われる。また、拡張アプリケーションによる拡張印刷設定を必要としないユーザも一定数存在する。これを鑑み、共通プリンタドライバ1054は、プリンタ毎に、拡張印刷設定を起動するか否かの設定を拡張アプリ設定記憶部320に記憶する。当該設定はユーザ操作により設定変更することができるものとする。
標準印刷処理部312は、拡張アプリケーションのインストール状況や、拡張アプリ設定記憶部320に記憶された設定に基づき、デバイスアプリを起動するか否かを判断する。デバイスアプリ1052は、印刷時起動アプリ部10521、拡張印刷設定部10522、印刷ジョブ生成部10525、及びデバイスアプリ通信部10524を含んで構成される。印刷時起動アプリ部10521は、印刷時に呼び出されるモジュールであり、拡張印刷設定部10522やデバイスアプリ通信部10524、印刷ジョブ生成部10525を管理する。デバイスアプリ1052は、プリンタに紐づいている。デバイスアプリ1052は、印刷直後にプレビューを表示する機能や、印刷設定変更を促すユーザインタフェースを表示する機能などを提供することができる。本実施形態では、標準印刷処理部312においてPDL変換が行われた後にデバイスアプリが提供する画面が呼び出されることを想定しているがこれに限定されるものではない。拡張印刷設定部10522は、IPPに則する印刷設定と比較してより詳細な印刷設定を行うことができる拡張ユーザインタフェースを表示する機能を有する。デバイスアプリ通信部10524は、デバイスアプリ1052の各モジュールがプリンタ200と通信するための機能を有する。デバイスアプリ通信部10524は、特定の通信方式や特定の制御方式を用いてプリンタ200の情報を取得する。特定の通信方式は例えば、WSD(Web Services for Devices)プロトコルや、SNMP(Simple Network Management Protocol)である。また、ベンダ独自のプロトコルを用いた通信方式であってもよい。また、デバイスアプリ通信部10524は、ジョブ制御言語や、プリンタ制御言語で定義された制御コマンドを用いて、プリンタの情報を取得することもできる。例えば、デバイスアプリ通信部10524は、PJL(Printer Job Language)、PostScript、CPCA(Common Peripheral Controlling Architecture)で定義されたコマンドを用いて、プリンタに情報を要求してもよい。また、デバイスアプリ通信部10524は、その他の、NPAP(Network Printing Alliance Protocol)を用いてプリンタから情報を取得することもできる。
印刷ジョブ生成部10525は、PDL変換処理や拡張された印刷設定を印刷ジョブに反映する機能を有する。例えば、デバイスアプリ1052a、1052bの印刷ジョブ生成部10525は、IPPに則する印刷ジョブに含まれるPDLデータをPDL−A、PDL−B形式に変換する機能を有する。この際、画像回転判断部10526において、IPPに則する印刷ジョブが印刷するプリンタの画像の向きに一致しないと判断した場合を考える。この場合は、画像回転部10527において、印刷ジョブに含まれるPDLデータをPDL−A形式のデータに変換する際に画像が回転して印字されるようにPDL−A形式のデータを生成する。或いは、ビットマップ画像など画像そのものを画像が回転して印字されるように回転させる処理を行う。なお、デバイスアプリ1052で変換するPDLの形式や画像の形式は一例であり、これに限定されるものではない。その他の画像形式などさらには、PDLと画像の組み合わせに変換してもよい。
ここで、印刷を実行する際のデータ処理の概要について図5を用いて説明する。図5は、ユーザが印刷を行う場合のデータの流れを説明する概略図である。
まず、アプリケーション1051は、標準印刷設定部308を利用してPrintTicket形式やDEVMODE形式で設定された標準設定データを取得する。標準印刷設定部308は、OS標準印刷機能定義ファイル群309から選択プリンタに対応する定義ファイルを取得し、当該定義ファイルに基づき現在の印刷設定を示す標準設定データを生成する。標準設定データは、アプリケーション1051や、OSによって表示される印刷設定を変更するための画面(ユーザインタフェース)を介して適宜変更される。アプリケーションは、印刷開始指示を受け付けると、標準印刷設定部308で取得した標準設定とXPSスプールファイルを標準印刷処理部312へ渡す。
標準印刷処理部312は、受信したXPSスプールファイルをIPPに則するPDLに変換する。また、現在の印刷設定を示す標準設定データに基づき、IPPに則する印刷属性を生成する。続いて、共通プリンタドライバ1054は、変換したPDLと、IPPの属性情報に基づき印刷ジョブを生成しデバイスアプリ1052へ渡す。
続いて、デバイスアプリ1052は、プリンタ200から画像回転の判断に必要な情報を取得する。そして、デバイスアプリ1052は、画像回転判断部10526によって、標準印刷処理部312で生成された印刷ジョブから得られる情報と、プリンタ200から取得した能力情報に基づき、PDL又は画像の回転の必要性を判断する。そして回転が必要な場合には、画像回転部10527によって画像を回転して、回転した画像に合った印刷設定でプリンタに印刷ジョブを送信する。
<クライアントコンピュータ100の制御>
次に、具体的な制御について図6及び図7のフローチャートを用いて説明する。まず、クライアントコンピュータ100の動作について説明する。図6は、クライアントコンピュータ100の制御を示すフローチャートを示す。図6のフローチャートに示す各動作(ステップ)は、例えばCPU101がROM1021又はストレージ105に記憶された各制御モジュールを実現するためのプログラムをRAM1022に読み出し、実行することにより実現される。なお、フローチャートで示す各処理は、アプリケーション1051、OS1053、デバイスアプリ1052のモジュールやソフトウェアコンポーネントが協働して実現するものとする。またデータ送信、情報の入出力などの一部の処理は、各I/Fと協働して実現される。各処理を実現する主体となるプログラムを明確にするため、ソフトウェアコンポーネントやアプリケーションなどを主語として記載するものとする。図6のフローチャートは、使用するプリンタとして、共通プリンタドライバ1054に対応するプリンタが指定され、ユーザから印刷のための指示を受け付けたことに応じて実行される各処理を示している。
次に、具体的な制御について図6及び図7のフローチャートを用いて説明する。まず、クライアントコンピュータ100の動作について説明する。図6は、クライアントコンピュータ100の制御を示すフローチャートを示す。図6のフローチャートに示す各動作(ステップ)は、例えばCPU101がROM1021又はストレージ105に記憶された各制御モジュールを実現するためのプログラムをRAM1022に読み出し、実行することにより実現される。なお、フローチャートで示す各処理は、アプリケーション1051、OS1053、デバイスアプリ1052のモジュールやソフトウェアコンポーネントが協働して実現するものとする。またデータ送信、情報の入出力などの一部の処理は、各I/Fと協働して実現される。各処理を実現する主体となるプログラムを明確にするため、ソフトウェアコンポーネントやアプリケーションなどを主語として記載するものとする。図6のフローチャートは、使用するプリンタとして、共通プリンタドライバ1054に対応するプリンタが指定され、ユーザから印刷のための指示を受け付けたことに応じて実行される各処理を示している。
まずS601で、アプリケーション1051は、ユーザによって共通のプリントダイアログの印刷キー803が押下されたことを検知する。続いて、S602で、アプリケーション1051は、描画データを生成し、OS1053に描画データを渡す。
次に、S603で、OS1053は、XPSスプールファイを生成する。なお、デスクトップアプリ301からの印刷の場合、OS1053は、GDItoXPS変換モジュール307を用いてXPSスプールファイルを生成する。続いて、S604で、印刷アーキテクチャ10531と、共通プリンタドライバ1054が協働して、印刷ジョブを生成する。標準印刷処理部312は、XPSスプールファイルをIPPに則するPDLに変換する。また、ジョブに設定すべき印刷設定を示す標準設定に基づいて、IPPに則する印刷属性を生成する。また、プリントマネージャ318は、PDLとIPPに則する印刷属性とに基づき、印刷ジョブを生成する。
続いて、S605で、OS1053は、デバイスアプリを使用するか否かを判断する。具体的には、まず、OS1053は、出力先として選択されているプリンタ(以降、選択プリンタと称する。)に対応するデバイスアプリが存在するかどうかを判断する。選択プリンタに対応するデバイスアプリが存在しない場合、処理をS618へ進める。一方、選択プリンタに対応するデバイスアプリが存在する場合、OS1053は、更に拡張アプリ設定記憶部320を参照し、選択プリンタに対するデバイスアプリを起動するか否かを判断する。具体的には、選択プリンタのIDなどに基づき、拡張アプリ設定記憶部320に記憶されたプリンタ毎の設定を参照する。IDに基づき参照した設定がデバイスアプリを起動しない設定を示している場合、処理をS618に進める。一方、IDに基づき参照した設定がデバイスアプリを起動する設定を示している場合、処理をS606に進める。S618で、OS1053は、IPPに則する印刷ジョブを選択プリンタに送信する。送信が完了すると一連の処理を終了する。
一方、S606で、OS1053は、選択プリンタに対応するデバイスアプリ1052を起動して、IPPに則する印刷ジョブをデバイスアプリ1052へ渡す。また、このとき、選択プリンタを一意に識別するための情報や選択プリンタと通信するための情報(例えば、IPアドレスなど)も渡されるものとする。
次に、S607で、デバイスアプリ1052の印刷時起動アプリ部10521は、OS1053に渡された印刷ジョブ及び選択プリンタに関する情報を受信する。続いて、S608で、デバイスアプリ1052の印刷時起動アプリ部10521は、印刷ジョブを解析する。さらに、S609で、デバイスアプリ1052の印刷時起動アプリ部10521は、選択プリンタの能力情報が記憶されているかどうか(拡張能力を取得済みであるか)を判断する。選択プリンタの能力情報が記憶されている場合は、処理をS612に進め、選択プリンタの能力情報が記憶されていない場合は、処理をS610に進める。
S610で、デバイスアプリ通信部10524は、選択プリンタ200に対して能力情報を問い合わせる。デバイスアプリ1052のデバイスアプリ通信部10524は、選択プリンタ200に対して前述した特定の通信方式や特定の制御コマンドを用いて能力情報を要求する。続いて、S611で、デバイスアプリ通信部10524は、S610で送信した要求の応答としてデバイス能力情報を受信し、処理をS612に進める。また当該受信した能力情報と、選択プリンタの識別子を関連付けた情報をデバイスアプリ1052からアクセスできる共有の記憶領域に記憶する。この処理により、次回以降はデバイス能力情報の取得処理を最小限に抑え、省略することができるようになる。ここで記憶されるデバイス能力情報は、IPPのプリンタ属性要求操作(Get−Printer−Attributes Operations)で取得できる属性情報(能力情報)よりも詳細な設定項目を含んでいるものとする。
次に、S612で、デバイスアプリ1052は、OS1053に渡された印刷ジョブの解析結果(印刷設定)とデバイスアプリ1052で得られたデバイス能力情報から、印刷ジョブの生成に画像回転が必要かどうかを確認する。画像回転が必要でない場合、S613に進み、画像回転しないように必要なコマンドの変換を行う。そして、S614で、デバイスアプリ1052の印刷ジョブ生成部10525は、拡張印刷設定に基づき、選択プリンタが受信可能なコマンドに変換した印刷ジョブを生成し、S617に進む。また、画像回転が必要な場合、S615で、印刷ジョブ生成部10525は、画像回転に伴い必要なコマンドの変換を行う。そして、S616で、印刷ジョブ生成部10525は、必要な方向に画像を回転した対象のデバイスが受信可能なコマンドに変換した印刷ジョブを生成し、S617に進む。
例えば、図13は、共通プリンタドライバ1054で生成された画像1301と、デバイスアプリ1052がプリンタに送る際に作成しなければならない画像1302の関係を模式的に示す。この例では、標準印刷処理部312から渡された印刷属性に、1303に示すように、用紙のサイズがA4で、印刷の向きが縦に設定されていたとする。この場合、上記S608で、印刷時起動アプリ部10521は、印刷ジョブを解析して、OS1053から渡された印刷ジョブの結果に従って、用紙サイズがA4で、印刷の向きが縦の設定情報を取得することができる。
一方、1304に示すように、給紙段に用紙がセットされている場合を想定する。この場合、上記S610で、デバイスアプリ通信部10524は、選択プリンタに能力情報を要求して、給紙段1にA4サイズの用紙で横向き、給紙段2にA3サイズの用紙で縦向きという情報と、画像回転機構を持ち合わせていないという情報とを取得する。印刷するためには、プリンタが画像回転機構を持ち合わせていないことから、給紙段1に合うように画像の変換が必要になる。即ち、上記S616で、印刷ジョブ生成部10525が、1305に示すように、A4サイズの用紙で、印刷の向きが横に合うように、時計回りに90度回転させた画像を作成することになる。また、画像を回転させると共に、上記S615で、印刷ジョブ生成部10525は、印刷の向きの設定を横に変更して、プリンタに印刷ジョブを送信する。なお、印刷ジョブ生成部10525は、画像の回転処理を行うに際し、標準印刷処理部312によって生成された印刷ジョブのPDLを、を出力先プリンタがサポートする他のPDLに変換するようにしてもよい。例えば、PCL(登録商標、Printer Command Language)、ESC/P(Epson Standard Code for Printer)、SPDL2(Sharp Printer Description Language2)等のPDLに変換することができる。また、例えば、RPCS(Refined Printing Command Stream)、PS(Post Script)、ART(Advanced Rendering Tools)などのPDLに変換することもできる。更に、ジョブ全体をPJL(Printer Job Language)、NPAP(Network Printing Alliance Protocol)など、プリンタがサポートするジョブ制御言語に則した印刷ジョブに変換してもよい。
本実施形態では、回転機構の有り無しについて、プリンタに問い合わせ、当該プリンタの持つ設定情報として取得する場合を例示したがこれに限定されるものではない。例えば、機種名称や機種の種類によって、回転機構を持っているか否かを判断することもできる。また、プリンタが持つ画像回転機構が、ソフトウェアでプリンタのCPUを用いて回転するのか、専用のハードウェアで回転するのかを情報として取得し、デバイスアプリで画像の回転を行った方が速い場合に画像の回転を行うよう判断することも可能である。
その後、上記S617で、デバイスアプリ1052は、選択プリンタが受信可能なコマンドに変換された印刷ジョブを選択プリンタに送信する。送信が完了すると一連の処理を終了する。
<プリンタ200の制御>
次に、図7を参照して、本実施形態に係る印刷装置であるプリンタ200の制御について説明する。図7のフローチャートに示す各動作(ステップ)は、印刷装置のプロセッサがメモリに記憶された各制御モジュールを実現するためのプログラムを実行することにより実現される。また、本フローチャートは、例えばプリンタ200が起動したことに応じて実行されるものとする。
次に、図7を参照して、本実施形態に係る印刷装置であるプリンタ200の制御について説明する。図7のフローチャートに示す各動作(ステップ)は、印刷装置のプロセッサがメモリに記憶された各制御モジュールを実現するためのプログラムを実行することにより実現される。また、本フローチャートは、例えばプリンタ200が起動したことに応じて実行されるものとする。
S701で、プリンタ200のプロセッサは、外部装置から能力情報の取得要求を受け付けたか否かを判断する。外部装置から能力情報の取得要求を受け付けた場合は、処理をS702に進め、外部装置から能力情報の取得要求を受け付けていない場合は、処理をS704に進める。S702で、プリンタ200のプロセッサは、要求に対する応答として、デバイスの能力を示す情報を返信し、S703に進む。ここでは、取得要求がIPPのGet−Printer−Attributesリクエストであれば、IPPで使用できる能力を示す属性情報を返信する。一方、図6の上記S610で説明したデバイスアプリからの取得要求であれば、IPPで使用できる能力を示す属性情報と比較して、詳細な能力を示すデバイス能力情報(例えば、1304に示す情報)を返信する。
続いて、S704で、プリンタ200のプロセッサは、外部装置から印刷ジョブを受信したか否かを判断する。外部装置から印刷ジョブを受信した場合は、処理をS705に進め、外部装置から印刷ジョブを受信していない場合は、処理をS703に進める。
S703で、プリンタ200のプロセッサは、シャットダウンの指示を受け付けたか否かを判断する。シャットダウンの指示を受け付けた場合は、一連の処理を終了する。一方、シャットダウンの指示を受け付けていない場合は、S701の処理に戻り、外部装置から送信される要求や印刷ジョブを待ち受ける。
以上説明したように、本実施形態に係る情報処理装置は、それぞれ異なるベンダによって製造されたプリンタ間で共通して使用されるプリンタドライバと、プリンタドライバで生成された印刷ジョブを受信する。また、本情報処理装置は、受信した印刷ジョブの対象となる選択プリンタの能力情報を取得し、取得した能力情報と、受信した印刷ジョブの印刷設定とから、画像を回転する必要があるか否かを判定する。さらに、本情報処理装置は、判定結果に基づき、受信した前記印刷ジョブのうち、必要に応じて画像の回転及び印刷設定の更新を行い、受信した印刷ジョブ又は更新した印刷ジョブを選択プリンタへ送信する。このように、本実施形態では、所定の印刷プロトコルに則する印刷ジョブを生成するプリンタドライバを用いて印刷を行う場合であっても、画像の向きを印刷装置に合わせて適切に印刷することが可能となる。即ち、本実施形態によれば、複数のベンダで共通のプリンタドライバを用いて印刷を行う場合であっても、個々の印刷装置の能力や印刷オプション設定に応じて画像の向きを好適に変更し印刷を実行することができる。
<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、共通プリンタドライバ1054で生成された画像を、選択プリンタで回転できない場合に、選択プリンタからの給紙情報などの情報を取得して、取得した情報に従って好適に画像回転を行う形態について説明した。一方、本実施形態では、共通プリンタドライバ1054から生成された画像とコマンドから、選択プリンタで印字する際の排紙オプションと画像の定義を判断して、画像を好適に回転させる形態について説明する。なお、本実施形態におけるハードウェア構成やソフトウェア構成は、上記第1の実施形態と同様であるが、上記S612における判断の材料として、機器のオプション設定を利用して判断することが主に異なる点である。従って、上記第1の実施形態と同様の構成や制御についての詳細な説明は省略する。
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、共通プリンタドライバ1054で生成された画像を、選択プリンタで回転できない場合に、選択プリンタからの給紙情報などの情報を取得して、取得した情報に従って好適に画像回転を行う形態について説明した。一方、本実施形態では、共通プリンタドライバ1054から生成された画像とコマンドから、選択プリンタで印字する際の排紙オプションと画像の定義を判断して、画像を好適に回転させる形態について説明する。なお、本実施形態におけるハードウェア構成やソフトウェア構成は、上記第1の実施形態と同様であるが、上記S612における判断の材料として、機器のオプション設定を利用して判断することが主に異なる点である。従って、上記第1の実施形態と同様の構成や制御についての詳細な説明は省略する。
図9は、本実施形態に係るモダンプリントダイアログの設定画面を示す。図9の設定画面は、図8の設定画面とは印刷設定の内容が異なる。本実施形態では、画像がランドスケープのデータの右上にステープルを打つ場合を想定する。この場合、ユーザは、901のように用紙のサイズをA4に、印刷の向きを横に、ステープル(綴じ処理)について右上(1か所)を指定する。すると、902に示すようなプレビュー画像に、903に示すようなステープルが打たれたプレビュー画像が表示されることになる。
<綴じ処理>
図17は、プリンタ200に内蔵されている印刷された用紙を処理するシート処理部を上方から見た断面図である。図17を参照して、綴じ部1714a又は1714bの綴じ処理を実行する位置を説明する。
図17は、プリンタ200に内蔵されている印刷された用紙を処理するシート処理部を上方から見た断面図である。図17を参照して、綴じ部1714a又は1714bの綴じ処理を実行する位置を説明する。
1703は複数枚数のシートを示す。プリンタ200は、受信した印刷ジョブに含まれる綴じ処理に関する設定に従って、複数のシートを綴じることができる。針を使用してシートを綴じる綴じ部1714aは不図示のモータにより、図中の矢印1710に示す方向にスライドできるように構成されている。プリンタ200は、綴じ部1714aを搬送方向と直交する方向に移動してシート束の搬送方向に対する後端部のコーナーを綴じたり、後端の2箇所を綴じたりする。綴じ部1714aは、シート束を綴じる綴じ部材としてシート束にステープル針(不図示)を打ち込むことで綴じ処理を行う。
一方、針不使用綴じ部1714bは、針等の綴じ部材を用いずに歯形でシート束を挟み、圧力を加えることにより、シート間の繊維を絡めてシート束を綴じる。なお、本実施形態では上述の方式を例示しているがこれに限定されず、シート束に舌状片と、切り込み穴を形成し、舌状片を切り込み穴へ挿入することでシート束を綴じる方式などであってもよい。針不使用綴じ部1714bはプリンタ200の正面から見て、奥側の位置に固定されている。従って、針不使用綴じ部1714bによりシート束を綴じる場合は、以下に示すような処理を行う。プリンタ200のプロセッサは、整合板1721を針不使用綴じ部1714bが配置される「奥」方向にスライドする。また、プリンタ200は、印刷されたシート束を中間トレイの奥側に排出するように制御する。綴じ部1714bは、整合板1721により整合されたシート束の後端部の奥側1箇所を綴じる。綴じ処理が行われたシート束は、排出ローラによって排出トレイ1707に排出される。
<クライアントコンピュータ100の制御>
図6及び図14を参照して、本実施形態に係るクライアントコンピュータの制御について説明する。図14は、共通プリンタドライバ1054で生成されたステープルの位置1402と画像1401と、デバイスアプリ1052がプリンタに送る際に作成しなければならないステープルの位置1405と画像1404の関係を模式的に示す。
図6及び図14を参照して、本実施形態に係るクライアントコンピュータの制御について説明する。図14は、共通プリンタドライバ1054で生成されたステープルの位置1402と画像1401と、デバイスアプリ1052がプリンタに送る際に作成しなければならないステープルの位置1405と画像1404の関係を模式的に示す。
共通プリンタドライバ1054で生成された画像が1401であり、プレビュー画像で画像がランドスケープのデータの画像は、図示するように、印刷の向きが横の状態でデバイスアプリ1052に渡される。この場合、上記S608で、印刷時起動アプリ部10521は、印刷ジョブを解析して、OS1053に渡された印刷ジョブの結果に従って、用紙サイズがA4で、印刷の向きが横で、ステープルの位置が右上(1か所)の設定情報を取得することができる。
一方、図17のシート処理部を備えるプリンタにおいて、1407に示すように、A3の用紙が印刷できない、A4のプリンタであって、ステープルが、搬送方向に対して右下と、左下にのみ実行可能なプリンタを想定する。この場合、上記S610で、デバイスアプリ通信部10524は、選択プリンタに能力情報を要求して、印刷可能な用紙の最大サイズがA4で、印刷の向きが縦で、画像回転機構がなしで、ステープルの可能な位置が右下と、左下という情報を取得する。このようなプリンタにおいて印刷して、ステープルを正確に打つには、当該プリンタが画像回転機構を持ち合わせていないことから、画像の変換、及び、ステープル指定位置の変換が必要になる。
従って、上記S616で、印刷ジョブ生成部10525は、1404に示すように、A4の用紙サイズで、印刷の向きが縦に合うように、時計回りに90度回転させた画像を作成する。さらに、上記S615で、印刷ジョブ生成部10525は、印刷の向きは縦で、ステープルの位置が右下(1か所)に設定を変更して、プリンタに印刷ジョブを送信する。このように、選択プリンタで印字する際の排紙オプションと画像の定義を判断して、例えば1404に示すように画像を回転させ、ステープルの位置を用紙に対して右下に指定することにより、画像の向きを印刷装置に合わせて適切に印刷することが可能となる。
以上説明したように、本実施形態に係る情報処理装置は、上記第1の実施形態に判定条件に代えて又は加えて、印刷可能な用紙の最大サイズ及び向きと、綴じ処理の位置とに基づいて、画像の回転や印刷設定の更新が必要か否かを判断する。このように、本実施形態では、所定の印刷プロトコルに則する印刷ジョブを生成するプリンタドライバを用いて印刷を行う場合であっても、排紙オプションと画像の向きを適切に印刷することが可能となる。より具体的には、本実施形態によれば、用紙に対してステープルの位置が指定され、画像の向きがランドスケープの場合は、印刷の向きが横の画像が作成されることを前提としている。しかし、共通プリンタドライバ1054から受信する画像が予め分かっていれば、その情報を使って画像を回転させることによって、正確にステープルを打てることができるのは言うまでもない。
<第3の実施形態>
以下では、本発明の第3の実施形態について説明する。上記第1及び第2の実施形態では、共通プリンタドライバ1054でPDLを生成した後に、デバイスアプリ1052を用いて画像回転を行う場合を例示した。一方、本実施形態では、印刷指示を行う前にも、ベンダ独自の印刷設定画面による印刷設定を行えるようにする仕組みを提供し、できるだけ回転を必要としないように設定画面をユーザに提示することで、回転を極力抑える形態について説明する。なお、本実施形態は、上記第1及び第2の実施形態の少なくとも1つと組み合わせて適用されてもよい。また、本実施形態におけるハードウェア構成やソフトウェア構成は上記第1の実施形態と同様であるため省略する。
以下では、本発明の第3の実施形態について説明する。上記第1及び第2の実施形態では、共通プリンタドライバ1054でPDLを生成した後に、デバイスアプリ1052を用いて画像回転を行う場合を例示した。一方、本実施形態では、印刷指示を行う前にも、ベンダ独自の印刷設定画面による印刷設定を行えるようにする仕組みを提供し、できるだけ回転を必要としないように設定画面をユーザに提示することで、回転を極力抑える形態について説明する。なお、本実施形態は、上記第1及び第2の実施形態の少なくとも1つと組み合わせて適用されてもよい。また、本実施形態におけるハードウェア構成やソフトウェア構成は上記第1の実施形態と同様であるため省略する。
<データ処理手順>
まず、図10を参照して、本実施形態における、印刷を実行する際のデータ処理の手順について説明する。アプリケーション1051は、上記第1の実施形態と同様に、標準印刷設定部308を利用して標準設定データを取得する。
まず、図10を参照して、本実施形態における、印刷を実行する際のデータ処理の手順について説明する。アプリケーション1051は、上記第1の実施形態と同様に、標準印刷設定部308を利用して標準設定データを取得する。
アプリケーション1051から呼び出された、図8に示すプリントダイアログなどから詳細印刷を行うための「その他の設定」キー802が押下された場合に、OS1053の印刷アーキテクチャ10531は、対応するデバイスアプリ1052を起動させる。OS1053により起動されたデバイスアプリ1052は、選択プリンタから取得した能力情報に基づき拡張設定を生成する。また、デバイスアプリ1052は、標準印刷設定部308から渡された標準設定データ(PrintTicket)と、プリンタ200から取得した能力情報から得た拡張設定を利用する。
そして、デバイスアプリ1052は、図8と同等の印刷設定とベンダー独自の印刷設定とを行える画面(ユーザインタフェース)である図11に示す画面1100を表示する。画面1100において、1101は、標準印刷設定の一例を示しており、図8の804と同等の設定ができる。さらに、画面1100では、1102に表示されている拡張印刷設定の「ボックス印刷」や、「針なし綴じ」など各ベンダ独自の仕様で動作する印刷設定を行うことができる。図11に示すように、選択プリンタにおいて設定不可能な項目、例えば「ボックス印刷」については、グレーアウト表示など、選択できないように表示されることが望ましい。なお、針なし綴じとは、針を使用せずに印刷物を綴じる針なし綴じ機能を示す。ユーザは、拡張印刷設定1102を介して、IPPでは策定されていない仕様に基づく印刷設定を行うことができる。ここでは、拡張された印刷設定の「針なし綴じ」1105を例に説明する。OKキー1103は、印刷設定を反映して印刷を開始するためのキーである。なお、当該印刷設定を行える画面には、印刷条件に基づき出力される出力物の体裁を示すイラスト等を表示することもできる。当該イラストは、ユーザが印刷設定を変更する度に適宜生成され、どのような出力になるかをユーザに通知することができる。
ユーザによって印刷設定が変更され、OKキー1103が選択されたことを検知すると、デバイスアプリ1052は、デバイスアプリ1052が所有する共有データ領域に拡張設定の情報を格納し、標準印刷設定部308には標準設定を渡す。標準印刷設定部308は、プリンタ200で提供可能な拡張設定の情報を知らないため、拡張設定の情報を渡しても未知の設定と判断してしまい正しく制御できない。そのため、デバイスアプリ1052は拡張設定を共有データ領域に一時的に保持しておく。印刷時に別プロセスで起動されるデバイスアプリ1052が共有データ領域に保持された拡張設定を読み込むことにより、OS1053に対して拡張設定を制御させることなく、拡張印刷設定機能を提供することができる。
<クライアントコンピュータ100の制御>
図15及び図16を参照して、本実施形態に係るクライアントコンピュータ100の具体的な制御について説明する。図15及び図16のフローチャートに示す各動作(ステップ)は、CPU101がROM1021又はストレージ105に記憶された各制御モジュールを実現するためのプログラムをRAM1022に読み出し、実行することにより実現される。なお、図15のフローチャートは、アプリケーション1051が提供するユーザインタフェースを介して印刷の意思表示を示すユーザ操作がなされたことに応じて実行される。
図15及び図16を参照して、本実施形態に係るクライアントコンピュータ100の具体的な制御について説明する。図15及び図16のフローチャートに示す各動作(ステップ)は、CPU101がROM1021又はストレージ105に記憶された各制御モジュールを実現するためのプログラムをRAM1022に読み出し、実行することにより実現される。なお、図15のフローチャートは、アプリケーション1051が提供するユーザインタフェースを介して印刷の意思表示を示すユーザ操作がなされたことに応じて実行される。
S1501で、アプリケーション1051は、印刷の意思表示を示すキーの選択を受け付ける。続いて、S1502で、アプリケーション1051は、図8で例示したような共通プリントダイアログをモニタ110に表示する。S1503で、アプリケーション1051は、詳細印刷のためのキーの選択を受け付ける。詳細印刷のためのキーは、例えば、「その他の印刷」キー802である。当該キーの押下を受け付けると、アプリケーション1051は、OS1053にプリンタドライバ及びプリンタを特定する情報と、詳細印刷画面の要求を送信する。
次に、S1504で、OS1053は、受信したプリンタドライバ及び選択されたプリンタを特定する情報に基づき、事前の印刷設定にデバイスアプリを使用するか否かを判断する。選択されたプリンタに対応するデバイスアプリがない場合は、S1505に処理を進める。一方、選択されたプリンタに対応するデバイスアプリがある場合は、更に、デバイスアプリを起動するか否かを拡張アプリ設定記憶部320に基づき判断する。当該判断は、上記S605と同様の判断であるため説明は省略する。最終的に、デバイスアプリを起動すると判断すると、処理をS1508に進め、起動しないと判断すると処理をS1505に進める。
S1505で、OS1053は、PrintCapablitiesとPrintTicketに基づき、OSの標準印刷設定画面をモニタ110に表示する。当該設定画面では、IPPで取得できる属性に基づく印刷設定を行うことができる。なお、デスクトップアプリから詳細な印刷設定の指示がなされた場合、DEVMODEとPrintTikectを相互変換するAPIを使用して、PrintTikectに変換して、現在の印刷設定を解釈するものとする。続いて、S1506で、OS1053は、ユーザ操作に基づく印刷設定の変更指示を受け付ける。さらに、S1507で、OS1053は、標準設定データ(DEVMODE又はPrintTikect)を更新する。更新が完了すると、処理をS1517に進める。
一方、S1508で、OS1053は、選択プリンタに対応するデバイスアプリを起動し、デバイスアプリに印刷ジョブに設定すべき印刷設定データ(標準設定データ)を渡し、S1509に進む。なお、標準設定データがDEVMODEで記載されている場合、PrintTicketへ変換したデータを渡す。
S1509で、起動されたデバイスアプリは、PrintTicketで記載された印刷設定情報を受信する。S1510乃至S1512では、上記第1の実施形態のS609乃至S611と同様の選択プリンタの能力情報の取得処理が行われる。よって詳細な説明は省略する。
S1519で、デバイスアプリは、表示制御手段として機能し、デバイス能力と画像の回転情報から設定可能なメニューを構築する。続いて、S1513で、デバイスアプリは、受信した印刷設定情報と、設定可能なメニューから拡張印刷設定画面を表示する。その後、S1514で、デバイスアプリは、ユーザ操作に基づく印刷設定の変更指示を受け付ける。S1515で、デバイスアプリは、印刷設定情報であるPrintTicketを更新する。続けて、S1516で、デバイスアプリは、S1515で更新した拡張設定を含むPrintTikectをデバイスアプリからアクセスできる共有領域に一時保存する。S1516の処理が完了すると、S1517に進む。なお、デバイスアプリは、OS1053に返す印刷属性情報には、拡張設定を敢えて除いた標準設定データを返却する。
S1517で、アプリケーション1051は、OS標準機能又はデバイスアプリ1052によって更新された標準設定データに基づき、共通プリントダイアログを再表示する。続いて、S1518で、アプリケーション1051は、共通プリントダイアログの印刷ボタンの選択操作を受け付ける。選択操作を受け付けると、印刷設定に関する一連の処理を終了する。その後、図16に示す印刷処理が行われる。
図16は、上記第1の実施形態で説明した図6のフローチャートに代えて実行されるフローチャートである。図6との差分は、S609乃至S612の処理に代えて、S1601の処理が実行される点である。従って、S601乃至S608は上記第1の実施形態と同様の処理であるため省略する。なお、S606で起動するデバイスアプリのプロセスと、S1508で起動するデバイスアプリのプロセスは別プロセスとなる。従って、デバイスアプリがアクセスできる共通の保存領域を介して拡張設定を含むPrintTicketをやり取りする。
S1601で、デバイスアプリ1052は、受信したIPPに則する印刷ジョブの属性と、デバイスアプリ1052がアクセスできる保存領域内に記憶された拡張設定を含むPrintTicketに基づき、印刷ジョブの生成に画像回転が必要か否かを確認する。そのため、図6におけるS609乃至S611の処理に対応するものはない。確認結果に応じて処理をS613又はS615に進める。以降の処理は第1の実施形態と同様であるため説明を省略する。
図12は、拡張設定において、設定可能な「針なし綴じ」の位置と画像と、それに対応して、実際にプリンタ送る際に作成しなければならない「針なし綴じ」の位置と画像の関係を模式的に示す。図17の例において、更に、1207に示すように、A3の用紙が印刷できない、A4のプリンタで、針なし綴じが、搬送方向に対して右下にしか綴じられないプリンタを想定する。針なし綴じの可能な位置と画像回転を組み合わせると、元の拡張設定で可能なパターンは、図12に示す4パターンのみとなる。即ち、画像がランドスケープ1201で針なし綴じが右上1202、画像がランドスケープ1208で針なし綴じが左下1209、画像がポートレート1215で針なし綴じが右下1202、画像がポートレート1222で針なし綴じが左上1223の4パターンである。これらの場合、それぞれについて、針なし綴じの位置は、右下(1か所)1205、1212、1219、1226を指定し、画像は、それぞれ以下のようになる。
1201は、1204に示すように右に90度回転される。1208は、1211に示すように左に90度回転される。1215は、1218に示すように画像回転は行われない。1222は、1225に示すように180度回転される。このように画像を生成することによって、4パターンの針なし綴じができることになる。これらの場合は、S1511で、選択プリンタにデバイス能力情報を要求して、1404のように画像を回転させ、ステープルの位置を用紙に対して右下に指定する。それによって、選択プリンタで印字する際の排紙オプションと画像の定義を判断して、画像を回転させることで画像の向きを印刷装置に合わせて適切に印刷することが可能となる。
以上説明したように、本実施形態に係る情報処理装置は、印刷ジョブを受信する前に、プリンタドライバから選択プリンタを対象とした印刷設定情報を受信し、印刷設定情報の受信に応じて、選択プリンタから能力情報を取得する。また、本情報処理装置は、受信した印刷設定情報と、取得した能力情報とに基づいて、設定可能な拡張印刷設定画面を表示部に表示し、受け付けたユーザ入力に従って印刷設定情報を更新する。さらに、本情報処理装置は、拡張印刷設定画面を介して設定された印刷設定を含む印刷ジョブがプリンタドライバから受信されると、更新された印刷設定情報と、受信した印刷ジョブの印刷設定とから、画像を回転する必要があるか否かを判定する。これにより、本実施形態では、複数のベンダで共通のプリンタドライバを用いて印刷を行う場合であっても、個々の印刷装置の能力や印刷オプション設定に応じて画像の向きを好適に変更し印刷を実行することができる。なお、本実施形態では、印刷ジョブが生成される前に事前に選択プリンタから能力情報を取得して、設定可能な設定項目を制限しているため、例えば、印刷前の画像の回転等を減らすことができる。また、事前に画像回転情報を保存することにより、印刷指示においての処理負荷を低減することができる。
<変形例>
本発明は上記実施形態に限らず様々な変形が可能である。例えば、上記第3の実施形態では、S1519及びS1513において、針なし綴じの可能な位置と画像回転によって、実際にユーザが設定可能なメニューを構築し表示している。しかし、画像回転を行う処理が印刷上できない場合には、メニューの構築時に、画像回転が伴わないものだけ(図12の例では、印刷の向きが縦、針なし綴じの選択肢が左上(1か所)のみ)を表示することも可能である。この場合は、S612、S615、S616の処理が必要なく、S613、S614の処理のみを行うことになる。
本発明は上記実施形態に限らず様々な変形が可能である。例えば、上記第3の実施形態では、S1519及びS1513において、針なし綴じの可能な位置と画像回転によって、実際にユーザが設定可能なメニューを構築し表示している。しかし、画像回転を行う処理が印刷上できない場合には、メニューの構築時に、画像回転が伴わないものだけ(図12の例では、印刷の向きが縦、針なし綴じの選択肢が左上(1か所)のみ)を表示することも可能である。この場合は、S612、S615、S616の処理が必要なく、S613、S614の処理のみを行うことになる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100:クライアントコンピュータ、200:印刷装置、101:CPU、1054:共通プリンタドライバ、1053:OS
Claims (12)
- 情報処理装置であって、
それぞれ異なるベンダによって製造されたプリンタ間で共通して使用されるプリンタドライバと、
前記プリンタドライバで生成された印刷ジョブを受信する受信手段と、
前記受信手段によって受信した印刷ジョブの対象となる選択プリンタの能力情報を取得する取得手段と、
前記取得手段によって取得した能力情報と、前記受信手段によって受信した印刷ジョブの印刷設定とから、画像を回転する必要があるか否かを判定する判定手段と、
前記判定手段の判定結果に基づき、前記受信手段によって受信した前記印刷ジョブのうち、必要に応じて画像の回転及び印刷設定の更新を行う更新手段と、
前記受信手段によって受信した印刷ジョブ又は前記更新手段によって更新した印刷ジョブを前記選択プリンタへ送信する送信手段と
を備えることを特徴とする情報処理装置。 - 前記更新手段は、前記取得手段によって取得された能力情報に、前記選択プリンタが画像回転機構を有していないとの情報が含まれ、かつ、前記印刷設定において前記選択プリンタで印刷を行う場合に画像の回転が必要であると前記判定手段が判定すると、前記印刷ジョブの画像の回転を行うことを特徴とする請求項1に記載の情報処理装置。
- 前記判定手段は、前記能力情報に含まれる前記選択プリンタの給紙段にセットされている用紙のサイズ及び向きの情報と、前記印刷設定に含まれる用紙のサイズ及び向きの情報とに従って、前記選択プリンタで印刷を行う場合に画像の回転が必要であるか否かを判定することを特徴とする請求項2に記載の情報処理装置。
- 前記判定手段は、前記能力情報に含まれる前記選択プリンタで印刷可能な用紙の最大サイズ及び向き、並びに綴じ処理を実行可能な位置の情報と、前記印刷設定に含まれる用紙のサイズ及び向き、並びに綴じ処理の位置の情報とに従って、前記選択プリンタで印刷を行う場合に画像の回転が必要であるかと、綴じ処理の位置を変更する必要があるかとを判定することを特徴とする請求項2に記載の情報処理装置。
- 前記取得手段は、前記選択プリンタから取得した能力情報を記憶手段に記憶し、該記憶手段に能力情報が既に記憶されている選択プリンタについては、該選択プリンタから能力情報を取得することなく、前記記憶手段から取得することを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
- 前記受信手段によって印刷ジョブを受信する前に、前記プリンタドライバから前記選択プリンタを対象とした印刷設定情報を受信する第2の受信手段と、
前記受信手段による前記印刷設定情報の受信に応じて、前記選択プリンタから能力情報を取得する第2の取得手段と、
前記第2の受信手段によって受信した前記印刷設定情報と、前記第2の取得手段によって取得した前記能力情報とに基づいて、設定可能な拡張印刷設定画面を表示部に表示する表示制御手段と、
前記拡張印刷設定画面を介して受け付けたユーザ入力に従って印刷設定情報を更新する第2の更新手段とをさらに備え、
前記判定手段は、
前記受信手段によって、前記拡張印刷設定画面を介して設定された印刷設定を含む印刷ジョブが前記プリンタドライバから受信されると、前記第2の更新手段によって更新された印刷設定情報と、受信した該印刷ジョブの前記印刷設定とから、画像を回転する必要があるか否かを判定することを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。 - 前記プリンタドライバは、該プリンタドライバの印刷設定画面を介して詳細な印刷設定が指示されると、前記印刷設定情報を通知することを特徴とする請求項6に記載の情報処理装置。
- 前記拡張印刷設定画面において、設定できない項目については選択できないように表示されることを特徴とする請求項6又は7に記載の情報処理装置。
- 前記プリンタドライバは、前記情報処理装置のオペレーティングシステムに実装され、
各手段は、前記プリンタドライバの拡張アプリケーションとして実装されることを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。 - 前記拡張アプリケーションは、異なるベンダごとに実装され、それぞれ対応するプリンタの印刷プロトコルに対応することを特徴とする請求項9に記載の情報処理装置。
- それぞれ異なるベンダによって製造されたプリンタ間で共通して使用されるプリンタドライバを有する情報処理装置の制御方法であって、
前記プリンタドライバで生成された印刷ジョブを受信する受信工程と、
前記受信工程で受信した印刷ジョブの対象となる選択プリンタの能力情報を取得する取得工程と、
前記取得工程で取得した能力情報と、前記受信工程で受信した印刷ジョブの印刷設定とから、画像を回転する必要があるか否かを判定する判定工程と、
前記判定工程の判定結果に基づき、前記受信工程で受信した前記印刷ジョブのうち、必要に応じて画像の回転及び印刷設定の更新を行う更新工程と、
前記受信工程で受信した印刷ジョブ又は前記更新工程で更新した印刷ジョブを前記選択プリンタへ送信する送信工程と
を有することを特徴とする情報処理装置の制御方法。 - それぞれ異なるベンダによって製造されたプリンタ間で共通して使用されるプリンタドライバを有する情報処理装置を制御するプログラムであって、
前記プログラムは、前記情報処理装置のコンピュータに、
前記プリンタドライバで生成された印刷ジョブを受信する受信工程と、
前記受信工程で受信した印刷ジョブの対象となる選択プリンタの能力情報を取得する取得工程と、
前記取得工程で取得した能力情報と、前記受信工程で受信した印刷ジョブの印刷設定とから、画像を回転する必要があるか否かを判定する判定工程と、
前記判定工程の判定結果に基づき、前記受信工程で受信した前記印刷ジョブのうち、必要に応じて画像の回転及び印刷設定の更新を行う更新工程と、
前記受信工程で受信した印刷ジョブ又は前記更新工程で更新した印刷ジョブを前記選択プリンタへ送信する送信工程と
を実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018233752A JP2020095535A (ja) | 2018-12-13 | 2018-12-13 | 情報処理装置、その制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018233752A JP2020095535A (ja) | 2018-12-13 | 2018-12-13 | 情報処理装置、その制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020095535A true JP2020095535A (ja) | 2020-06-18 |
Family
ID=71085275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018233752A Pending JP2020095535A (ja) | 2018-12-13 | 2018-12-13 | 情報処理装置、その制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020095535A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021056642A (ja) * | 2019-09-27 | 2021-04-08 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
US20220179604A1 (en) * | 2020-12-03 | 2022-06-09 | Canon Kabushiki Kaisha | Information processing apparatus and method for controlling information processing apparatus |
WO2023145531A1 (ja) * | 2022-01-25 | 2023-08-03 | ブラザー工業株式会社 | サポートプログラム |
-
2018
- 2018-12-13 JP JP2018233752A patent/JP2020095535A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021056642A (ja) * | 2019-09-27 | 2021-04-08 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
JP7354731B2 (ja) | 2019-09-27 | 2023-10-03 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
US20220179604A1 (en) * | 2020-12-03 | 2022-06-09 | Canon Kabushiki Kaisha | Information processing apparatus and method for controlling information processing apparatus |
WO2023145531A1 (ja) * | 2022-01-25 | 2023-08-03 | ブラザー工業株式会社 | サポートプログラム |
US11875074B2 (en) | 2022-01-25 | 2024-01-16 | Brother Kogyo Kabushiki Kaisha | Computer-readable storage medium and method for displaying information about whether print settings are configurable |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7480375B2 (ja) | 情報処理装置、制御方法及びプログラム | |
EP2388685B1 (en) | Information processing apparatus and control method thereof, and storage medium | |
JP2020095535A (ja) | 情報処理装置、その制御方法、及びプログラム | |
EP2538317B1 (en) | Print control software program, information processing apparatus, and printing apparatus | |
US20240069818A1 (en) | Information processing apparatus, method for controlling information processing apparatus, and storage medium | |
JP7487277B2 (ja) | プログラム、情報処理装置、及び情報処理装置の制御方法 | |
US20230315361A1 (en) | Information processing apparatus, print setting application, and print system | |
CN113282252A (zh) | 信息处理装置、其控制方法及能够与其通信的服务器系统 | |
US20230333792A1 (en) | Information processing apparatus, control method of information processing apparatus, and storage medium | |
US20230333786A1 (en) | Information processing apparatus, control method therefor, and non-transitory computer-readable storage medium | |
JP2024055488A (ja) | 情報処理装置、印刷設定アプリケーション、情報処理装置の制御方法およびプログラム | |
JP7410622B2 (ja) | 情報処理装置、情報処理装置の制御方法ならびにプログラム、および当該情報処理装置と通信することのできるサーバシステム | |
JP2023158308A (ja) | 情報処理装置、情報処理装置の制御方法ならびにプログラム | |
JP2023158309A (ja) | 情報処理装置、情報処理装置の制御方法ならびにプログラム | |
JP2021009598A (ja) | 印刷装置、印刷装置の制御方法、情報処理装置、情報処理装置の制御方法及びプログラム | |
JP7328405B2 (ja) | 情報処理装置、情報処理装置の制御方法及び印刷設定アプリケーション | |
JP2024061440A (ja) | 情報処理装置、方法およびプログラム | |
US20240231722A9 (en) | Information processing apparatus, method, and non-transitory computer-readable storage medium storing program | |
JP2022109051A (ja) | サーバシステムおよびサーバシステムの制御方法 | |
JP2022067915A (ja) | サーバシステムおよびサーバシステムの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210103 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210113 |