<プリンタシステムの構成>
図1は、本実施形態に係るプリンタシステム1のブロック図である。図1に示すプリンタシステム1は、PC(情報処理装置の一例)10、プリンタ50を備える。PC10は、CPU(コンピュータの一例)12、メモリ14、LCD(ディスプレイの一例)16、入力I/F(ユーザインタフェースの一例)18、ネットワークI/F(通信インタフェースの一例)20を主に備えている。これらの構成要素は、バス22を介して互いに通信可能とされている。
PC10及びプリンタ50は、ネットワークI/F20及びネットワーク52を通じて通信可能となっている。通信の方式としては、例えば、有線LAN、USB、Wi-Fi(登録商標)やBluetooth(登録商標)を採用できる。なお、プリンタ50は、ラベルプリンタであり、PC10との間で各種の情報や指示信号を送受信し、PC10による制御に基づいて、所望のテキストや画像等を印字したラベルを作成する。プリンタ50は、例えば、ラミネートフィルム等の長尺状のテープにテキスト等を印刷してラベルを作成する。
CPU12は、メモリ14内のアプリケーション(アプリケーションの一例)24、プリンタドライバ(プログラムの一例)26、OS28に従って処理を実行する。アプリケーション24は、例えば、文章コンテンツを作成するワープロソフト、表計算コンテンツを作成する表計算ソフト、プレゼンテーションコンテンツを作成するプレゼンテーションソフトなどの、コンテンツを作成するプログラムである。アプリケーション24が作成したコンテンツは、アプリケーションがOS28に印刷を指示することにより、PC10に接続されたプリンタで印刷される。アプリケーション24がOS28にコンテンツの印刷を指示するとき、アプリケーション24はOS28に、コンテンツを示すコンテンツデータを、OS28が解釈できる形式で出力する。アプリケーション24がOS28に出力するコンテンツデータを、本実施例では、画像データの一種として記載する。プリンタドライバ26は、プリンタ50のデバイスドライバである。なお、プリンタドライバ26は、フィルタ(プログラムの一例)26Aとゴーストスクリプト(変換プログラムの一例)26Bとを有している。ゴーストスクリプト26Bは、画像データのデータ形式を、PS形式からビットマップ形式に変換するものであり、フィルタ26Aは、ゴーストスクリプト26Bへのデータ形式の変換指令,印刷用画像データの作成等を行うものである。また、OS28は、アプリケーション24、プリンタドライバ26に利用される基本的な機能を提供するプログラムである。OS28は、例えば、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、Android(登録商標)、iOS(登録商標)等のオペレーティングシステムである。なお、以下の説明では、プリンタドライバ26等を実行するCPU12のことを、単にプログラム名でも記載する場合がある。例えば、「プリンタドライバ26が」という記載は、「プリンタドライバ26を実行するCPU12が」ということを意味する場合がある。
また、メモリ14は、データ記憶領域30を備える。データ記憶領域30は、プリンタドライバ26等の実行に必要なデータなどを記憶する領域である。なお、メモリ14は、RAM、ROM、フラッシュメモリ、HDD、CPU12が備えるバッファなどが組み合わされて構成されている。
メモリ14は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
LCD16は、PC10の各種機能を表示する。入力I/F18は、キーボード,マウス等を含み、ユーザ操作を入力するためのインタフェースである。
なお、本明細書では、基本的に、プログラムに記述された命令に従ったCPU12の処理を示す。すなわち、以下の説明における「判断」「抽出」「選択」「算出」「決定」「特定」「取得」「受付」「制御」「設定」等の処理は、CPU12の処理を表している。CPU12による処理は、OS28を介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU12が要求することなくデータを受信するという処理も、「CPU12がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。
<プリンタシステム1による印刷処理>
プリンタ50は、上述したように、ラベルプリンタであり、印刷用紙サイズとして、例えば、105mm×74mm,90mm×152mm等のラベルサイズの印刷用紙に画像を印刷することができる。このようなラベルサイズは、A4,A5サイズ等より小さいため、プリンタ50では、A4,A5サイズ等の画像から抜き出された画像が、ラベルサイズの印刷用紙に印刷される。このため、プリンタシステム1では、PC10において、画像を抜き出すための基準となる座標(以下、「基準座標」と記載する)が設定され、その基準座標を原点として、ラベルサイズの画像がA4,A5サイズ等の画像から抜き出される。
具体的には、例えば、アプリケーション24において、ランドスケープの画像の画像データ(第2画像データの一例)がPDF形式で作成されると、その画像データが、アプリケーション24からOS28に出力される。なお、画像データには、当該画像データに基づく画像がランドスケープであることを示す情報と、当該画像データに基づく画像のサイズを示す情報(以下、「画像サイズ情報」と記載する)とが含まれている。ちなみに、本説明では、画像データに、A5サイズを示す画像サイズ情報が含まれている。
また、ランドスケープの画像とは、画像の幅方向(第1の方向の一例)のサイズが、幅方向と直行する方向(以下、「奥行方向」と記載する)(第2の方向の一例)のサイズより長い画像、つまり、横長の画像である。なお、幅方向は、画像と正対するユーザからの視点における左右方向であり、奥行方向は、画像と正対するユーザからの視点における前後方向である。また、アプリケーション24では、印刷用紙サイズの設定が行われており、設定された印刷用紙サイズを示す情報(以下、「用紙サイズ情報」と記載する)も、画像データとともに、OS28に出力される。
そして、OS28は、アプリケーション24から画像データと用紙サイズ情報とを受け付けると、画像データと用紙サイズ情報とをプリンタドライバ26に出力する。ただし、プリンタ50は、PDF形式の画像データに対応しておらず、PS形式の画像データに対応している。そして、OS28には、プリンタ50がPDF形式の画像データに対応しておらず、PS形式の画像データに対応していることを示す情報が、例えばプリンタドライバ26のインストール時などに、予め入力されている。このため、OS28は、アプリケーション24から画像データを受け付けると、その画像データの形式を、PDF形式からPS形式に変換し、PS形式に変換した画像データをプリンタドライバ26に出力する。なお、OS28がプリンタドライバ26に出力する画像データを、印刷対象画像データ(第1画像データの一例)と記載する。
OS28は、アプリケーション24からランドスケープの画像の画像データを受け付けていても、用紙サイズ情報が示す用紙サイズがポートレートの画像を印刷するためのサイズを示している場合には、受け付けた画像データを、ポートレートの画像を示す画像データとなるように回転処理し、回転処理後の画像データを、プリンタドライバ26に出力する。ここで、ポートレートの画像とは、画像の幅方向のサイズが奥行方向のサイズより短い画像、つまり、縦長の画像である。
また、OS28は、アプリケーション24からランドスケープの画像の画像データを受け付けており、印刷用紙サイズが横長のサイズである場合に、アプリケーション24から受け付けた画像データを回転処理することなく、ランドスケープの画像の画像データをプリンタドライバ26に出力する。
なお、プリンタドライバ26に出力される印刷対象画像データには、当該画像データに基づく画像がランドスケープであるかポートレートであるかを示す情報(以下、「画像方向情報」と記載する)と、画像サイズ情報とが含まれている。このため、この印刷対象画像データには、ランドスケープの画像であることを示す画像方向情報と、印刷対象画像データに基づく画像のサイズがA5サイズであることを示す画像サイズ情報が含まれている。
例えば、OS28が、図3に示すランドスケープの画像70の画像データを受け付けており、用紙サイズ情報が90mm×152mm(図3中の点線で囲まれる範囲)を示している場合に、用紙サイズは縦長のサイズであるため、OS28は、アプリケーション24から受け付けた画像データに基づくランドスケープの画像をポートレートの画像となるように回転させて、回転させた画像の画像データ(以下、「回転画像データ」と記載する)を作成し、その作成した画像データを、印刷対象画像データとして、プリンタドライバ26に出力する。このため、プリンタドライバ26は、図4に示すポートレートの画像80の画像データをOS28から受け付ける。ちなみに、図4に示す画像72A、72Bそれぞれは、お薬手帳に貼付するための画像である。なお、この画像データには、ポートレートの画像であることを示す画像方向情報と、印刷対象画像データに基づく画像のサイズがA5サイズであることを示す画像サイズ情報が含まれている。
また、この画像データに基づく画像において、ユーザの意図する90mm×152mmのサイズのラベルへの印刷画像は、図3において点線で囲まれる範囲内の画像(以下、「部分画像」と記載する)72である。しかしながら、図4に示すように、プリンタドライバ26が受け付けたポートレートの画像80から、用紙サイズ情報が示す用紙サイズ、つまり、90mm×152mmの大きさの画像82が抜き出されると、その画像82は、部分画像72と異なる。このため、90mm×152mmのラベルに部分画像72、つまり、ユーザの意図する画像を適切に印刷することができない。
そこで、プリンタドライバ26は、上述したように、OS28から受け付けた画像データに基づく画像から、用紙サイズ情報が示すラベルサイズの画像を抜き出して、その抜き出した画像を印刷する処理(以下、「抜出印刷処理」と記載する)を実行する。
なお、プリンタドライバ26のフィルタ26Aは、図5に示す設定画面100をLCD16に表示させるよう構成されている。その設定画面100には、回転角度入力欄102と、印刷パス入力欄104と、原点入力欄106とが表示される。回転角度入力欄102は、後に詳しく説明するが、OS28から受け付けた印刷対象画像データに基づく画像を回転させる角度を入力するためのものである。また、印刷パス入力欄104は、1ページ分の画像から抜き出す画像の数を入力するためのものである。例えば、図2に示す画像60から4つの部分画像62を抜き出したい場合、ユーザは、入力I/F18を介して、印刷パス入力欄104に「4」を入力すればよい。図3に示す画像70から2つの部分画像72を抜き出したい場合、ユーザは、印刷パス入力欄104に「2」を入力すればよい。また、原点入力欄106は、抜き出される画像の原点、つまり、画像が抜き出される際の基準となる基準座標を入力するためのものである。このため、抜き出される画像毎に、基準座標を入力する必要があり、印刷パス入力欄104に入力された数と同数の原点入力欄106が、設定画面100に表示される。つまり、図5に示すように、印刷パス入力欄104に「4」が入力された場合に、フィルタ26Aは、原点入力欄106として、第1原点入力欄106A,第2原点入力欄106B,第3原点入力欄106C,第4原点入力欄106Dの4つの原点入力欄106を表示する。また、印刷パス入力欄104に「2」が入力された場合に、フィルタ26Aは、2つの原点入力欄106を表示する。
そして、例えば、ユーザは、図2に示すランドスケープの画像60を、105mm×74mm(図2中の点線で囲まれる範囲)のサイズのラベルへの印刷を望んでいる場合に、図5に示すように、回転角度入力欄102に「0」を入力し、印刷パス入力欄104に、「4」を入力すればよい。さらに、ユーザは、第1原点入力欄106Aに、第1の部分画像62A(図2参照)の基準座標を入力し、第2原点入力欄106Bに、第2の部分画像62B(図2参照)の基準座標を入力し、第3原点入力欄106Cに、第3の部分画像62C(図2参照)の基準座標を入力し、第4原点入力欄106Dに、第4の部分画像62D(図2参照)の基準座標を入力すればよい。
なお、図5に示す設定画面100では、第1原点入力欄106Aに第1の部分画像62Aの基準座標として、(0、74)が入力されており、その座標は図2において66Aで示される。また、第2原点入力欄106Bに第2の部分画像62Bの基準座標として、(105、74)が入力されており、その座標は図2において66Bで示される。また、第3原点入力欄106Cに第3の部分画像62Cの基準座標として、(0、0)が入力されており、その座標は図2において66Cで示される。また、第4原点入力欄106Dに第4の部分画像62Dの基準座標として、(105、74)が入力されており、その座標は図2において66Bで示される。
また、例えば、ユーザが、図3に示すランドスケープの画像60を、90mm×152mm(図3中の点線で囲まれる範囲)のサイズのラベルへの印刷を望んでいる場合に、ユーザは、例えば、回転角度入力欄102に「270」を入力し、印刷パス入力欄104に、「2」を入力する。さらに、ユーザは、第1原点入力欄106Aに、第1の部分画像72A(図3参照)の基準座標を入力し、第2原点入力欄106Bに、第2の部分画像72B(図3参照)の基準座標を入力する。
そして、ユーザが入力I/F18を用いて、設定画面100への入力が完了したことを示す操作入力をすると、プリンタドライバ26のフィルタ26Aは、設定画面100への入力内容、つまり、回転角度入力欄102に入力された回転角度に関する情報(以下、「回転角度情報」と記載する)と、印刷パス入力欄104に入力されたパス数に関する情報(以下、「パス数情報」と記載する)と、原点入力欄106に入力された基準座標に関する情報(以下、「座標情報」と記載する)とに基づいて設定ファイルを作成し、その設定ファイルをデータ記憶領域30に記憶する。なお、設定ファイルは、回転角度情報、パス数情報、座標情報をテキストデータの形式で含んでいる。
用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができない場合には、抜出印刷処理を行う必要がある。
そこで、プリンタドライバ26のフィルタ26Aは、OS28から印刷対象画像データを受け付けると、用紙サイズ情報が示す用紙サイズの幅方向のサイズ(第1方向サイズの一例)が、印刷対象画像データに基づく画像の幅方向のサイズ及び奥行方向のサイズより小さい印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができるか否かを判断する。つまり、フィルタ26Aは、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができるか否かを判断する。
具体的には、フィルタ26Aは、印刷対象画像データに含まれる画像サイズ情報が示す画像のサイズが、用紙サイズ情報が示す用紙サイズより大きいか否かを判断する。この際、例えば、画像の幅方向のサイズ及び奥行方向のサイズが、用紙サイズの幅方向のサイズより大きい場合に、画像のサイズが用紙サイズより大きいと判断され、それ以外の場合に、画像のサイズが用紙サイズ以下であると判断される。そして、画像のサイズが用紙サイズより大きい場合に、フィルタ26Aは、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができないと判断する。一方、画像のサイズが用紙サイズ以下である場合に、フィルタ26Aは、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができると判断する。
そして、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができないと判断された場合に、プリンタドライバ26は、上記抜出印刷処理を実行する。一方、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができると判断された場合、つまり、画像のサイズが用紙サイズ以下である場合には、印刷対象画像データに基づく画像から部分画像を抜き出す必要はなく、印刷対象画像データに基づく画像を、印刷用紙に印刷することができる。このため、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができると判断された場合に、プリンタドライバ26は、一般的なプリンタで実行される印刷処理、つまり、通常印刷処理を実行する。例えば、画像のサイズも用紙サイズもA5サイズである場合や、画像のサイズがA5サイズであり用紙サイズはA4サイズである場合、プリンタドライバ26は、通常印刷処理を実行する。なお、通常印刷処理は周知の処理であるため、通常印刷処理の説明は省略する。
また、プリンタドライバ26のフィルタ26Aは、OS28から受け付けた印刷対象画像データに基づく画像を回転させる必要があるか否かを、当該印刷対象画像データに含まれる画像方向情報,画像サイズ情報と、当該印刷対象画像データとともに受け付けた用紙サイズ情報とに基づいて、判断する(S110)。具体的には、上述したように、画像方向情報がランドスケープの画像であることを示し、画像サイズ情報がA5サイズであることを示し、用紙サイズ情報がランドスケープの用紙サイズであることを示す場合、つまり、図2に示す画像60において、105mm×74mm(図2中の点線で囲まれる範囲)のサイズのラベルが印刷用紙として設定されている場合に、プリンタドライバ26のフィルタ26Aは、印刷対象画像データに基づく画像60の回転は不要であると判断する。
一方、画像方向情報がポートレートの画像であることを示し、画像サイズ情報がA5サイズであることを示し、用紙サイズ情報がランドスケープの用紙サイズであることを示す場合、つまり、図4に示す画像80において、90mm×152mm(図4中の点線で囲まれる範囲)のサイズのラベルが印刷用紙として設定されている場合に、プリンタドライバ26のフィルタ26Aは、印刷対象画像データに基づく画像80の回転は必要であると判断する。
この際、プリンタドライバ26のフィルタ26Aが、画像の回転は不要であると判断した場合に(S110:NO)、OS28から受け付けた印刷対象画像データ、つまり、図2に示す画像60の画像データを、データ記憶領域30に記憶する(S112)。次に、プリンタドライバ26のフィルタ26Aは、データ記憶領域30に記憶されている設定ファイルから設定された順番に従って、座標情報を読み出す。そして、プリンタドライバ26のフィルタ26Aは、読み出された座標情報毎に、その座標情報が示す基準座標を原点として、データ記憶領域30に記憶された画像データから、用紙サイズ情報が示す用紙サイズ、つまり、105mm×74mm(図2中の点線で囲まれる範囲)の大きさの部分画像62を示す画像データ(以下、「部分画像データ」と記載する)を抽出する旨のコマンドを、プリンタドライバ26のゴーストスクリプト26Bに出力する。
詳しくは、プリンタドライバ26のフィルタ26Aは、データ記憶領域30に記憶された設定ファイルから、まず、第1原点入力欄106Aに入力された基準座標に関する座標情報を読み出す。また、プリンタドライバ26は、データ記憶領域30に記憶された画像60の画像データを読み出す。そして、フィルタ26Aは、図2に示すように、読み出した座標情報が示す基準座標66Aを原点として、画像60を示す印刷対象画像データから、105mm×74mm(図2中の点線で囲まれる範囲)の大きさの第1の部分画像62Aを示す部分画像データを抽出する旨のコマンドを、データ記憶領域30から読み出した画像60の画像データとともに、ゴーストスクリプト26Bに出力する。なお、設定ファイルに含まれるテキストデータは、ゴーストスクリプト26Bが座標情報などを解釈可能な作法で記述されたテキストデータである。フィルタ26Aは、設定ファイルに含まれるテキストデータのうち必要な部分を抽出し、コマンドとしてゴーストスクリプト26Bに出力する。ゴーストスクリプト26Bは、そのコマンドを受け付けると、コマンドに従って、画像60を示す印刷対象画像データから、基準座標66Aを原点として第1の部分画像62Aを示す部分画像データを抽出する。さらに、ゴーストスクリプト26Bは、抽出した部分画像データのデータ形式を、PS形式からビットマット形式に変換する。そして、ゴーストスクリプト26Bは、ビットマップ形式に変換された部分画像データをフィルタ26Aに出力する。次に、フィルタ26Aは、ビットマップ形式に変換された部分画像データを受け付けると、その部分画像データに基づいて、印刷用画像データを作成する。これにより、画像60から抜き出された第1の部分画像62Aの印刷用画像データが作成される。そして、フィルタ26Aは、第1の部分画像62Aの印刷用画像データと用紙サイズ情報とを含む印刷指令をプリンタ50に送信するよう、OS28に指令する(S208)。OS28は、ネットワークI/F20を介して、印刷指令をプリンタ50に送信する。これにより、画像60から抜き出された第1の部分画像62Aが、105mm×74mmのサイズのラベルに印刷される。
次に、プリンタドライバ26のフィルタ26Aは、データ記憶領域30に記憶された設定ファイルから、第2原点入力欄106Bに入力された基準座標に関する座標情報を読み出す。そして、フィルタ26Aは、図2に示すように、読み出した座標情報が示す基準座標66Bを原点として、画像60を示す印刷対象画像データから、105mm×74mm(図2中の点線で囲まれる範囲)の大きさの第2の部分画像62Bを示す部分画像データを抽出する旨のコマンドを、データ記憶領域30から読み出した画像60の画像データとともに、ゴーストスクリプト26Bに出力する。なお、以降の処理は、上記処理と同じであるため、説明を省略する。これにより、第2の部分画像62Bの印刷用画像データと用紙サイズ情報とを含む印刷指令がプリンタ50に送信され、画像60から抜き出された第2の部分画像62Bが、105mm×74mmのサイズのラベルに印刷される。
続いて、フィルタ26Aは、データ記憶領域30に記憶された設定ファイルから、第3原点入力欄106Cに入力された基準座標と、第4原点入力欄106Dに入力された基準座標とに関する座標情報とを、順次、読み出す。そして、座標情報が読み出される毎に、上記処理が実行される。これにより、第3の部分画像62Cの印刷用画像データと用紙サイズ情報とを含む印刷指令がプリンタ50に送信され、画像60から抜き出された第3の部分画像62Cが、105mm×74mmのサイズのラベルに印刷され、さらに、第4の部分画像62Dの印刷用画像データと用紙サイズ情報とを含む印刷指令がプリンタ50に送信され、画像60から抜き出された第4の部分画像62Dが、105mm×74mmのサイズのラベルに印刷される。これにより、画像60から4つの部分画像62を抜き出し、それら4つの部分画像62の各々を、105mm×74mmのサイズのラベルに適切に印刷することが可能となる。
プリンタドライバ26のフィルタ26Aは、画像の回転が必要であると判断する(S110:YES)と、データ記憶領域30に記憶されている設定ファイルから、回転角度情報を読み出す(S118)。この際、回転角度情報が、例えば、270度を示している場合に、フィルタ26Aは、OS28から受け付けた印刷対象画像データに対して回転処理を施し、270度回転させた画像を示す画像データを作成する(S119)。回転処理後の画像データを、回転画像データとも記載する。なお、画像の回転方向は、反時計回りとされている。このため、作成された回転画像データに基づく画像は、図3に示す画像70となる。つまり、フィルタ26Aにより、図4に示すポートレートの画像80が270度回転されることで、図3に示すランドスケープの画像70となる。そして、フィルタ26Aは、そのランドスケープの画像70の画像データ、つまり、作成した回転画像データを、データ記憶領域30に記憶する(S120)。
次に、プリンタドライバ26のフィルタ26Aは、データ記憶領域30に記憶されている設定ファイルから設定された順番に従って、座標情報を読み出す。そして、プリンタドライバ26のフィルタ26Aは、読み出された座標情報毎に、その座標情報が示す基準座標を原点として、データ記憶領域30に記憶された画像データから、用紙サイズ情報が示す用紙サイズ、つまり、90mm×152mm(図3中の点線で囲まれる範囲)の大きさの部分画像72を示す部分画像データを抽出する旨のコマンドを、プリンタドライバ26のゴーストスクリプト26Bに出力する。
詳しくは、プリンタドライバ26のフィルタ26Aは、データ記憶領域30に記憶された設定ファイルから、まず、第1原点入力欄106Aに入力された基準座標に関する座標情報を読み出す。また、プリンタドライバ26は、データ記憶領域30に記憶された画像60の画像データを読み出す。そして、フィルタ26Aは、読み出した座標情報が示す基準座標を原点として、画像70を示す印刷対象画像データから、90mm×152mm(図3中の点線で囲まれる範囲)の大きさの第1の部分画像72Aを示す部分画像データを抽出する旨のコマンドを、データ記憶領域30から読み出した画像70の画像データとともに、ゴーストスクリプト26Bに出力する。なお、読み出した座標情報が示す基準座標は、第1の部分画像72Aの4隅のうちの何れか1隅の座標である。
ゴーストスクリプト26Bは、そのコマンドを受け付けると、画像70を示す印刷対象画像データから、コマンドに含まれる基準座標を原点として第1の部分画像72Aを示す部分画像データを抽出する。さらに、ゴーストスクリプト26Bは、抽出した部分画像データのデータ形式を、PS形式からビットマット形式に変換する。そして、ゴーストスクリプト26Bは、ビットマップ形式に変換された部分画像データをフィルタ26Aに出力する。次に、フィルタ26Aは、ビットマップ形式に変換された部分画像データを受け付けると、その部分画像データに基づいて、印刷用画像データを作成する。これにより、画像70から抜き出された第1の部分画像72Aの印刷用画像データが作成される。そして、フィルタ26Aは、第1の部分画像72Aの印刷用画像データと用紙サイズ情報とを含む印刷指令をプリンタ50に送信するよう、OS28に指令する(S208)。OS28は、ネットワークI/F20を介して、印刷指令をプリンタ50に送信する。これにより、画像70から抜き出された第1の部分画像72Aが、90mm×152mmのサイズのラベルに印刷される。
次に、プリンタドライバ26のフィルタ26Aは、データ記憶領域30に記憶された設定ファイルから、第2原点入力欄106Bに入力された基準座標に関する座標情報を読み出す。そして、フィルタ26Aは、図3に示すように、読み出した座標情報が示す基準座標を原点として、画像70を示す印刷対象画像データから、90mm×152mm(図3中の点線で囲まれる範囲)の大きさの第2の部分画像72Bを示す部分画像データを抽出する旨のコマンドを、データ記憶領域30から読み出した画像70の画像データとともに、ゴーストスクリプト26Bに出力する。なお、以降の処理は、上記処理と同じであるため、説明を省略する。これにより、第2の部分画像72Bの印刷用画像データと用紙サイズ情報とを含む印刷指令がプリンタ50に送信され、画像70から抜き出された第2の部分画像72Bが、90mm×152mmのサイズのラベルに印刷される。
このように、プリンタドライバ26が、OS28から受け付けたポートレートの画像80(図4参照)を回転させ、回転させた後のランドスケープの画像70(図3参照)から2つの部分画像72を抜き出すことで、それら2つの部分画像72の各々を、90mm×152mmのサイズのラベルに適切に印刷することが可能となる。
なお、OS28からプリンタドライバ26に出力される印刷対象画像データが、複数ページの画像の各々を示す複数の画像データ(以下、「ページ画像データ」と記載する)から構成されている場合に、プリンタドライバ26は、それら複数のページ画像データの各々から、設定ファイルに含まれる座標情報が示す基準座標を原点として、用紙サイズ情報が示すサイズの部分画像を示す部分画像データを抽出する。
つまり、例えば、印刷対象画像データが、3ページ分の画像の各々を示す3つのページ画像データから構成されている場合において、図2に示すランドスケープの画像60から第1の部分画像62Aが抜き出される際に、フィルタ26Aは、基準座標66Aを原点として、印刷対象画像データを構成する3つのページ画像データの各々から、105mm×74mm(図2中の点線で囲まれる範囲)の大きさの第1の部分画像62Aを示す部分画像データを抽出する旨のコマンドを、それら3つのページ画像データとともに、ゴーストスクリプト26Bに出力する。ゴーストスクリプト26Bは、そのコマンドを受け付けると、コマンドに従って、受け付けた3つのページ画像データの各々から、基準座標66Aを原点として第1の部分画像62Aを示す部分画像データを抽出する。さらに、ゴーストスクリプト26Bは、3つのページ画像データの各々から抽出した部分画像データのデータ形式を、PS形式からビットマット形式に変換する。そして、ゴーストスクリプト26Bは、ビットマップ形式に変換された3つの部分画像データをフィルタ26Aに出力する。次に、フィルタ26Aは、ビットマップ形式に変換された3つの部分画像データを受け付けると、3つの部分画像データの各々に基づいて、印刷用画像データを作成する。これにより、3ページ分の画像のうちの1ページ目の画像から抜き出された第1の部分画像62Aと、2ページ目の画像から抜き出された第1の部分画像62Aと、3ページ目の画像から抜き出された第1の部分画像62Aとの印刷用画像データが作成される。そして、フィルタ26Aは、それら3ページ分の画像の第1の部分画像62Aの印刷用画像データと用紙サイズ情報とを含む印刷指令をプリンタ50に送信するよう、OS28に指令する(S208)。OS28は、ネットワークI/F20を介して、印刷指令をプリンタ50に送信する。これにより、3ページ分の画像の第1の部分画像62Aが、105mm×74mmのサイズの3枚のラベルに印刷される。
<プリンタドライバの処理>
上記抜出印刷処理及び、通常印刷処理は、PC10のCPU12においてプリンタドライバ26が実行されることによって行われる。以下に、図6及び図7を用いて、プリンタドライバ26のフローが実行される際の処理を説明する。
本フローでは、OS28が、印刷対象画像データ及び、用紙サイズ情報をプリンタドライバ26に出力すると、プリンタドライバ26のフィルタ26Aが、図6に示すように、印刷対象画像データ及び、用紙サイズ情報を受け付ける(S100)。次に、フィルタ26Aは、印刷対象画像データに含まれる画像サイズ情報が示す画像のサイズが、用紙サイズ情報が示す用紙サイズより大きいか否かを判断する(S102)。この際、画像のサイズが用紙サイズ以下である場合(S102:NO)に、フィルタ26Aは、通常印刷処理を実行する(S104)。そして、本フローが終了する。
一方、画像のサイズが用紙サイズより大きい場合(S102:NO)に、フィルタ26Aは、設定画面100をLCD16に表示する(S106)。そして、フィルタ26Aは、設定画面100の原点入力欄106等への入力内容に応じて設定ファイルを作成する(S108)。続いて、フィルタ26Aは、印刷対象画像データに基づく画像を回転させる必要があるか否かを判断する(S110)。この際、画像を回転させる必要はないと判断されると、フィルタ26Aは、OS28から受け付けた印刷対象画像データをデータ記憶領域30に記憶する(S112)。そして、S116に進む。
また、画像を回転させる必要があると判断されると、フィルタ26Aは、設定ファイルから回転角度情報を取得する(S118)。次に、フィルタ26Aは、OS28から受け付けた印刷対象画像データに基づく画像を、回転角度情報に応じた角度、回転させて、回転画像データを作成する(S119)。続いて、フィルタ26Aは、回転画像データ、つまり、回転させた印刷対象画像データをデータ記憶領域30に記憶する(S120)。そして、S116に進む。
次に、S116において、プリンタドライバ26は抜出印刷処理実行サブルーチンを実行する(S116)。抜出印刷処理実行サブルーチンでは、フィルタ26Aが、図7に示すように、印刷対象のパスの座標情報を、設定ファイルから取得する(S200)。つまり、フィルタ26Aは、まず、第1原点入力欄106Aに入力された基準座標に関する座標情報を、設定ファイルから取得する。次に、座標情報が示す基準座標を原点として、データ記憶領域30に記憶された画像データから、用紙サイズ情報が示す用紙サイズの大きさの部分画像を示す部分画像データを抽出する旨のコマンドを、フィルタ26Aは、プリンタドライバ26のゴーストスクリプト26Bに出力する(S202)。
そして、ゴーストスクリプト26Bは、コマンドに従って処理を実行する。つまり、ゴーストスクリプト26Bは、印刷対象画像データから、基準座標を原点として部分画像を示す部分画像データを抽出する。さらに、ゴーストスクリプト26Bは、抽出した部分画像データのデータ形式を、PS形式からビットマット形式に変換する。そして、ゴーストスクリプト26Bは、ビットマップ形式に変換された部分画像データをフィルタ26Aに出力する。これにより、ゴーストスクリプト26Bによる処理が完了する。
次に、フィルタ26Aは、ビットマップ形式に変換された部分画像データを受け付けると、その部分画像データに基づいて、印刷用画像データを作成する(S206)。続いて、フィルタ26Aは、部分画像の印刷用画像データと用紙サイズ情報とを含む印刷指令をプリンタ50に送信するよう、OS28に指令する(S208)。そして、フィルタ26Aは、設定ファイルに設定された印刷パスの全てに対する処理が完了したか否かを判断する(S210)。つまり、フィルタ26Aは、設定ファイルに設定された印刷パスの数に相当する回数、S200~S208の処理を実行したか否かを判断する。
この際、設定ファイルに設定された印刷パスの全てに対する処理が完了していないと判断された場合(S210:NO)に、S200に戻る。一方、設定ファイルに設定された印刷パスの全てに対する処理が完了した判断された場合(S210:YES)に、抜出印刷処理実行サブルーチンが終了し、メインルーチンに戻る。そして、本フローが終了する。
なお、S100を実行するCPU12は、第1取得手段及び第2取得手段の一例である。S102を実行するCPU12は、判断手段の一例である。S106を実行するCPU12は、表示制御手段の一例である。S108を実行するCPU12は、ファイル作成手段の一例である。S118を実行するCPU12は、第4取得手段の一例である。S119を実行するCPU12は、回転手段の一例である。S200を実行するCPU12は、第3取得手段の一例である。S202を実行するCPU12は、出力手段の一例である。S206を実行するCPU12は、作成手段の一例である。S208を実行するCPU12は、印刷指示手段の一例である。
<第2実施形態>
上記第1実施形態では、ユーザが、設定画面100において、画像の回転角度,基準座標などを任意に設定し、その設定された基準座標等に基づいて、抜出印刷処理が実行されているが、第2実施形態では、画像の回転角度,基準座標などを含むコマンドが、設定ファイルとして、データ記憶領域30に予め記憶されており、その予め記憶されているコマンドに基づいて、抜出印刷処理が実行される。以下に、ポートレートの画像であることを示す画像方向情報と、A5サイズであることを示す画像サイズ情報とを含む印刷対象画像データ及び、ランドスケープの用紙サイズであることを示す用紙サイズ情報を、プリンタドライバ26がOS28から受け付けた場合について説明する。
このような場合において、プリンタドライバ26は、図4に示す画像80の印刷対象画像データと、90mm×152mm(図4中の点線で囲まれる範囲)のラベルサイズを示す用紙サイズ情報とを、OS28から受け付ける。そして、プリンタドライバ26は、印刷対象画像データと用紙サイズ情報とを受け付けると、受け付けた印刷対象画像データと用紙サイズ情報とを、データ記憶領域30に記憶する。
また、データ記憶領域30には、印刷対象画像データに基づく画像を、座標(0,430)88A(図4参照)を中心に270度回転させ、所定の基準座標112(図8参照)を原点として、用紙サイズ情報に応じたサイズ、つまり、90mm×152mm(図8中の点線で囲まれる範囲)のラベルサイズの大きさの部分画像を示す部分画像データを、印刷対象画像データから抽出する旨のコマンド(以下、「第1コマンド」と記載する)及び、印刷対象画像データに基づく画像を、座標(540,0)88B(図4参照)を中心に90度回転させ、所定の基準座標122(図9参照)を原点として、用紙サイズ情報に応じたサイズ、つまり、90mm×152mm(図9中の点線で囲まれる範囲)のラベルサイズの大きさの部分画像を示す部分画像データを、印刷対象画像データから抽出する旨のコマンド(以下、「第2コマンド」と記載する)が、設定ファイルとして記憶されている。
なお、図8は、印刷対象画像データに基づく画像、つまり、図4に示すポートレートの画像80を、座標(0,430)88Aを中心に270度回転させたランドスケープの画像110であり、その画像110の左下の隅の座標が、第1コマンドに含まれる基準座標112である。また、図9は、印刷対象画像データに基づく画像、つまり、図4に示すポートレートの画像80を、座標(540,0)88Bを中心に90度回転させたランドスケープの画像120であり、その画像120の左下の隅の座標が、第2コマンドに含まれる基準座標122である。
そして、抜出印刷処理が実行される際に、フィルタ26Aは、データ記憶領域30に記憶された印刷対象画像データ、つまり、図4に示す画像80の画像データを読み出し、読み出した印刷対象画像データと、第1コマンドとを、ゴーストスクリプト26Bに出力する。次に、印刷対象画像データと第1コマンドとを受け付けたゴーストスクリプト26Bは、第1コマンドに従って、印刷対象画像データが示す画像、つまり、図4に示すポートレートの画像80を、座標(0,430)88Aを中心に270度回転させる。これにより、図8に示すランドスケープの画像110の画像データが形成される。
次に、ゴーストスクリプト26Bは、図8に示すランドスケープの画像110の画像データから、基準座標112を原点として、90mm×152mmのラベルサイズの大きさの部分画像116を示す部分画像データを抽出する。さらに、ゴーストスクリプト26Bは、抽出した部分画像データのデータ形式を、PS形式からビットマット形式に変換する。そして、ゴーストスクリプト26Bは、ビットマップ形式に変換された部分画像データをフィルタ26Aに出力する。
フィルタ26Aは、ビットマップ形式に変換された部分画像データを受け付けると、その部分画像データに基づいて、印刷用画像データを作成する。これにより、画像110から抜き出された部分画像116の印刷用画像データが作成される。そして、フィルタ26Aは、部分画像116の印刷用画像データと用紙サイズ情報とを含む印刷指令をプリンタ50に送信する。これにより、画像110から抜き出された部分画像116が、90mm×152mmのサイズのラベルに印刷される。
また、フィルタ26Aは、データ記憶領域30に記憶された印刷対象画像データ、つまり、図4に示す画像80の画像データを読み出し、読み出した印刷対象画像データと、第2コマンドとを、ゴーストスクリプト26Bに出力する。次に、印刷対象画像データと第2コマンドとを受け付けたゴーストスクリプト26Bは、第2コマンドに従って、印刷対象画像データが示す画像、つまり、図4に示すポートレートの画像80を、座標(540,0)88Bを中心に90度回転させる。これにより、図9に示すランドスケープの画像120の画像データが形成される。
次に、ゴーストスクリプト26Bは、図9に示すランドスケープの画像120の画像データから、基準座標122を原点として、90mm×152mmのラベルサイズの大きさの部分画像126を示す部分画像データを抽出する。さらに、ゴーストスクリプト26Bは、抽出した部分画像データのデータ形式を、PS形式からビットマット形式に変換する。そして、ゴーストスクリプト26Bは、ビットマップ形式に変換された部分画像データをフィルタ26Aに出力する。
フィルタ26Aは、ビットマップ形式に変換された部分画像データを受け付けると、その部分画像データに基づいて、印刷用画像データを作成する。これにより、画像120から抜き出された部分画像126の印刷用画像データが作成される。そして、フィルタ26Aは、部分画像126の印刷用画像データと用紙サイズ情報とを含む印刷指令をプリンタ50に送信する。これにより、画像120から抜き出された部分画像126が、90mm×152mmのサイズのラベルに印刷される。
このように、第1実施形態のプリンタドライバ26では、フィルタ26Aが画像を回転させ、ゴーストスクリプト26Bが、その回転させた画像の画像データから部分画像データを抽出しているが、第2実施形態のプリンタドライバ26では、ゴーストスクリプト26Bが画像を回転させ、その回転させた画像の画像データから部分画像データを抽出している。また、第1実施形態のプリンタドライバ26では、画像の回転角度は、複数の部分画像の各々において同じとされているが、第2実施形態のプリンタドライバ26では、部分画像毎に、画像の回転角度が異なっている。これにより、抽出される部分画像毎に、異なった条件で部分画像を抽出することができる。
<実施例の効果>
上記した実施形態によれば、以下の効果を奏する。
プリンタドライバ26は、印刷対象画像データと用紙サイズ情報とをOS28から受け付ける。そして、その用紙サイズ情報は、印刷用紙における幅方向のサイズである第1方向サイズを少なくとも示している。また、プリンタドライバ26は、印刷対象画像データが示す画像内の基準座標を示す座標情報を、設定ファイルから取得する。そして、プリンタドライバ26は、印刷対象画像データが、用紙サイズ情報が示す幅方向のサイズである印刷用紙の印刷領域に収まらないサイズの画像を示す画像データである場合に、印刷対象画像データから、座標情報が示す基準座標を原点とする、少なくとも1辺のサイズが、用紙サイズ情報が示す幅方向のサイズ以下の部分画像を示す部分画像データを抽出する。これにより、用紙サイズ情報が示すサイズの印刷用紙に、部分画像を印刷することができる。
なお、「用紙サイズ情報が示す幅方向のサイズである印刷用紙の印刷領域に収まらないサイズの画像」は、用紙サイズ情報が示す幅方向のサイズよりも、幅方向のサイズが大きいサイズの画像であり、印刷用紙の幅方向に対してプリンタ50に設定されている印刷領域、例えば、印刷用紙のサイズより余白分(3mm)を考慮して小さく設定されているサイズよりも、幅方向のサイズが大きいサイズの画像である。また、「用紙サイズ情報が示す幅方向のサイズ」は、印刷用紙の幅方向のサイズそのものであってもよく、印刷用紙がシール用紙である場合には、印刷用紙のシール部分の幅方向のサイズでもよく、印刷用紙の台紙部分の幅方向のサイズであってもよい。
プリンタドライバ26は、印刷対象画像データに基づく画像の向きを90度単位で回転させた回転画像データを作成する。これにより、例えば、図4に示すポートレートの画像80を図3に示すランドスケープの画像70に変換することが可能となる。なお、回転画像データは、部分画像データが示す画像を90度単位で回転させたビットマップ形式の画像であり、部分画像データに、90度単位で回転させる回転角度情報を付加したデータである。
OS28はランドスケープの画像を示す画像データをアプリケーション24から受け付け、その画像データとともに受け付けた用紙サイズ情報がポートレートのサイズを示している場合に、OS28は、ランドスケープの画像をポートレートの画像となるように回転させた画像の画像データを、印刷対象画像データとして、プリンタドライバ26に出力する。そして、プリンタドライバ26は、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができない場合に、印刷対象画像データに基づく画像の向きを90度単位で回転させた回転画像データを作成する。これにより、印刷対象画像データに基づく画像から、部分画像を適切に抽出することができる。ちなみに、用紙サイズ情報がポートレートのサイズを示している例としては、例えば、90mm×152mmのラベルサイズを示す用紙サイズである。つまり、幅方向のサイズが奥行方向のサイズより短い用紙サイズである。なお、奥行方向のサイズが定められていない場合、つまり、無定長である場合においても、幅方向のサイズが奥行方向のサイズより短い用紙サイズである。
プリンタドライバ26は、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができないか否かを判断する。そして、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができない場合に、印刷対象画像データから、基準座標を原点として、用紙サイズ情報が示す用紙サイズの大きさの部分画像を示す部分画像データを抽出する。これにより、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができない場合に、抜出印刷処理が実行される。
プリンタドライバ26は、用紙サイズ情報が示すラベルサイズの幅方向のサイズより、2辺のサイズが大きな画像に基づく印刷対象画像データを取得した場合に、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができないと判断する。これにより、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができないか否かを、好適に判断できる。
プリンタドライバ26は、用紙サイズ情報が示す用紙サイズが、予め設定された第2用紙サイズである場合に、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができないと判断する。つまり、例えば、90mm×152mmサイズを、第2用紙サイズとして設定しておけば、図4に示すポートレートの画像80の画像データを、印刷対象画像データとして、OS28から受け付けた場合に、抜出印刷処理を実行することが可能となる。
プリンタドライバ26は、データ記憶領域30に記憶された設定ファイルから座標情報を取得する。上記実施例では、設定画面100に基づいて作成された設定ファイル、若しくは、予めコマンドが記憶された設定ファイルから、座標情報が取得されているが、種々の設定ファイルから座標情報を取得してもよい。例えば、テキストエディタ等により作成された設定ファイルから座標情報を取得してもよい。
プリンタドライバ26は、設定ファイルから回転角度情報を取得し、印刷対象画像データに基づく画像を、その回転角度情報が示す角度、回転させる。これにより、例えば、画像の回転角度を任意に設定することができる。
設定ファイルは、テキストファイルとされている。これにより、テキストファイルを種々の手法により作成することで、座標情報などを任意に設定することが可能となる。
プリンタドライバ26は、設定画面100において入力された内容に応じた設定ファイルを作成する。これにより、簡便な操作により、座標情報などを任意に設定することが可能となる。
プリンタドライバ26は、複数の座標情報を取得した場合に、複数の座標情報毎に、印刷用画像データから、複数の座標情報それぞれが示す複数の基準座標を原点とする複数の部分画像を示す複数の部分画像データを抽出する。これにより、1の画像から複数の部分画像を抜き出し、それら複数の部分画像を印刷することができる。
プリンタドライバ26は、複数の座標情報を取得し、印刷対象画像データから複数の座標情報毎に部分画像データを抽出する際に、座標情報を取得した順番に従って、印刷対象画像データから、複数の座標情報が示す座標を原点とする複数の部分画像を示す複数の部分画像データを抽出する。これにより、複数の部分画像データを抽出する順番を、任意に設定することができる。なお、上記実施形態では、プリンタドライバ26が、第1原点入力欄106Aに入力された基準座標に関する座標情報から、順次、第2原点入力欄106B、第3原点入力欄106C、第4原点入力欄106Dに入力された基準座標に関する座標情報を取得しているが、設定ファイルに設定された座標情報を、先頭から順番に取得してもよい。
プリンタドライバ26は、OS28から印刷対象画像データを受け付けると、その印刷対象画像データをデータ記憶領域30に記憶する。そして、プリンタドライバ26は、複数の座標情報を取得し、印刷対象画像データから複数の座標情報毎に部分画像データを抽出する際に、1の座標情報を原点とする部分画像を示す部分画像データを、データ記憶領域30に記憶された印刷対象画像データから抽出した後に、次の座標情報を原点とする部分画像を示す部分画像データを、データ記憶領域30に記憶された印刷対象画像データから抽出することを、上記複数の座標情報全てを部分画像データの抽出対象とするまで繰り返す。これにより、同じ印刷対象画像データから、取得した複数の座標情報の全てに対応する複数の部分画像データを抽出できる。
プリンタドライバ26が、複数ページの画像それぞれを示す複数のページ画像データを含む印刷対象画像データをOS28から受け付けた場合に、印刷対象画像データに含まれる複数のページ画像データそれぞれから、座標情報を原点とする部分画像を示す部分画像データを抽出する。これにより、複数のページ画像データの各々から、同じ基準座標を原点とする部分画像データを抽出することができる。
なお、本発明は、上記実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。具体的には、例えば、上記実施形態では、プリンタドライバ26が、用紙サイズ情報が示す用紙サイズの印刷用紙の印刷領域に、印刷対象画像データに基づく画像を印刷することができるか否かを判断し、印刷用紙の印刷領域に画像を印刷できる場合に、通常印刷処理が実行され、印刷用紙の印刷領域に画像を印刷できない場合に、抜出印刷処理が実行されるが、通常印刷処理と抜出印刷処理との何れを実行するかを、予め設定してもよい。つまり、プリンタドライバ26が、通常印刷処理と抜出印刷処理との何れかを設定するための画面を、LCD16に表示し、その画面で設定された印刷処理を実行してもよい。
また、上記実施形態では、ユーザ若しくは、プリンタドライバ26のベンダにより設定された用紙サイズ情報,座標情報を用いて抜出印刷処理が実行されているが、印刷対象画像データから画像位置を検出し、検出された画像位置に基づいて推定されるを用いて抜出印刷処理が実行されてもよい。
また、上記実施形態では、設定画面100に回転角度入力欄102が常時、表示されているが、回転角度入力欄102は、必要に応じて表示されてもよい。つまり、画像の回転が必要である場合に、回転角度入力欄102は設定画面100に表示され、画像の回転が不要である場合に、回転角度入力欄102は設定画面100に表示されなくてもよい。
また、上記実施形態では、画像サイズ情報が示す画像のサイズが、用紙サイズ情報が示す用紙サイズより大きいか否かの判断において、画像の幅方向のサイズ及び奥行方向のサイズが、用紙サイズの幅方向のサイズより大きい場合に、画像のサイズが用紙サイズより大きいと判断されている。つまり、画像の幅方向のサイズ及び奥行方向のサイズに基づいて、判断が行われてるが、画像の幅方向のサイズのみで判断してもよい。
また、上記実施形態では、図6のS102、S104に示すように、印刷用紙サイズが画像サイズより小さい場合に、LCD16に設定画面100が表示されているが、ユーザによる所定の操作に応じて、設定画面100が表示されてもよい。このような場合には、例えば、印刷用紙サイズが画像サイズより小さいと判断されても(図6のS102:YES)、設定画面100を表示することなく、S110の処理が実行されてもよい。
また、上記実施形態の設定画面100では、回転角度入力欄102に、印刷対象画像データに基づく画像を回転させるための角度が入力されるが、部分画像毎に回転させるための角度を入力してもよい。例えば、図9に示す設定画面150では、原点入力欄152毎に、回転角度入力欄154が表示される。そして、各回転角度入力欄154に回転角度が入力されることで、印刷パスに応じた数の部分画像の各々が、各原点入力欄152に入力された原点を中心に、各回転角度入力欄154に入力された角度回転させられる。このような場合、図6に示すフローでは、S118において、フィルタ26Aは、回転角度情報を取得せず、S119において、予め設定された角度、例えば、0度に回転させた画像の回転画像データを作成する。そして、フィルタ26Aは、S120及びS116の処理を実行し、S116の抜出印刷処理実行サブルーチン(図7参照)のS200において、座標情報と、座標情報に対応する回転角度情報とを取得する。そして、S202において、フィルタ26Aは、取得した座標情報と回転角度情報とに基づいて作成した、部分画像の抜き出しと回転とを示すコマンドをゴーストスクリプト26Bに出力する。これにより、ゴーストスクリプト26Bは、コマンドに従って、部分画像の抜き出しと、抜き出した画像の回転とを実行する。なお、S119における、予め設定された角度は0度に限らず、例えば、270度であってもよい。
また、上記実施形態では、プリンタドライバ26がPDF形式の画像データに対応していないため、OS28がPDF形式の画像データをPS形式の画像データに変換した後に、PS形式の画像データをプリンタドライバ26に出力しているが、プリンタドライバ26がPDF形式の画像データに対応している場合に、OS28はPDF形式の画像データを変換することなく、PDF形式の画像データをプリンタドライバ26に出力すればよい。
また、上記実施形態では、CPU12によって図6及び図7に示す処理が実行される例を説明したが、これら処理は、CPU12に限らず、ASICや他の論理集積回路により実行されてもよいし、これら処理が、CPU等やASIC、他の論理集積回路が協働することにより実行されてもよい。