以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明する実施形態は、本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更できる。
図1は、本実施形態に係るプリンタシステム1のブロック図である。図1に示すプリンタシステム1は、PC(情報処理装置の一例)10、プリンタ50を備える。PC10は、CPU(コンピュータの一例)12、メモリ14、LCD(表示インタフェースの一例)16、入力I/F(ユーザインタフェースの一例)18、通信I/F20を主に備えている。これらの構成要素は、バス22を介して互いに通信可能とされている。
PC10は、プリンタ50と通信I/F20及び通信経路56を通じて通信可能となっている。通信の方式としては、例えば、有線LAN、USB、Wi-Fi(登録商標)やBluetooth(登録商標)を採用できる。なお、プリンタ50は、例えば、ラベルプリンタであり、PC10との間で各種の情報や指示信号を送受信し、PC10による制御に基づいて、所望のテキストや画像等のオブジェクトを印刷したラベルを作成する。
CPU12は、メモリ14内の制御プログラム(プログラムの一例)30に従って処理を実行する。制御プログラム30は、例えば、プリンタ50により印刷される画像の画像データを作成するためのアプリケーションプログラムである。なお、以下の説明では、制御プログラム30を実行するCPU12のことを、単にプログラム名でも記載する場合がある。例えば、「制御プログラム30が」という記載は、「制御プログラム30を実行するCPU12が」ということを意味する場合がある。
また、メモリ14は、データ記憶領域32を備える。データ記憶領域32は、制御プログラム30の実行に必要なデータなどを記憶する領域である。なお、メモリ14は、RAM、ROM、フラッシュメモリ、HDD、PC10に着脱されるUSBメモリ等の可搬記憶媒体、CPU12が備えるバッファなどが組み合わされて構成されている。
なお、メモリ14は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
また、LCD16は、PC10の各種情報を表示する。なお、本願のディスプレイは、液晶ディスプレイに限らず、有機ELディスプレイ等の他の表示方式のディスプレイでも良い。入力I/F18は、マウス、キーボード等を含み、ユーザ操作を入力するためのインタフェースである。
なお、本明細書では、基本的に、プログラムに記述された命令に従ったCPU12の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」「設定」等の処理は、CPU12の処理を表している。CPU12による処理は、OSを介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU12が要求することなくデータを受信するという処理も、「CPU12がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。また、CPUによる、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPUによる、情報Aが事柄Bであることを示しているか、事柄Cであるかを示しているかを判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
プリンタシステム1では、上述した構成に従って、PC10において、プリンタ50での印刷媒体であるラベルへの印刷対象のオブジェクトが編集される。具体的には、制御プログラム30の処理により、図2に示す編集画面70がLCD16に表示される。編集画面70は、第1設定領域72と編集領域74と第2設定領域76とにより構成されている。第1設定領域72には、各種選択ボタンが表示されており、各種選択ボタンへのユーザ操作により、ラベル印刷時における印刷条件が設定される。詳しくは、第1設定領域72に、プリンタ選択ボタン80,ラベルサイズ選択ボタン82等が表示されている。そして、プリンタ選択ボタン80への操作により、印刷処理を実行するプリンタが選択される。また、ラベルサイズ選択ボタン82への操作により、オブジェクトを印刷するためのラベルのサイズが選択される。
編集領域74は、オブジェクトを編集するための領域であり、ラベルサイズ選択ボタン82への操作により選択されたサイズに応じた大きさのラベル画像86が表示される。また、 第2設定領域76には、ラベルへの印刷対象のオブジェクトを編集するための各種編集ボタンが表示される。なお、編集画面70の上端部には、オブジェクトの種類を選択するための複数の選択ボタン88が表示されており、操作された選択ボタン88に応じた編集ボタンが第2設定領域76に表示される。例えば、選択ボタン88aは、オブジェクトの種類としてテキストオブジェクトを選択するためのものであり、選択ボタン88aが操作されることで、テキストオブジェクトを編集するための編集ボタンが第2設定領域76に表示される。また、選択ボタン88b~88hはそれぞれ、オブジェクトの種類として飾り枠オブジェクト、ドローオブジェクト、バーコードオブジェクト、表オブジェクト、カレンダーオブジェクト、日付・時刻オブジェクト、イメージオブジェクトを選択するためのものである。なお、第2設定領域76に表示される編集ボタンには、任意のオブジェクトを選択するボタン,オブジェクトの表示態様を変更するためのボタン等がある。
各種選択ボタン88及び第2設定領域76への操作により、編集領域74のラベル画像86に、第1テキストオブジェクト100と第2テキストオブジェクト102とバーコードオブジェクト104とドローオブジェクト106とイメージオブジェクト108と飾り枠オブジェクト110との6個のオブジェクトが配置される。この際、それら6個のオブジェクトが配置された画像(以下、「配置画像」と記載する)がラベル画像86として表示される。この際、6個のオブジェクトが配置された配置画像は、それら6個のオブジェクトのZオーダーに従って表示される。
なお、Zオーダーとは、画像の奥行方向、いわゆるZ方向におけるオブジェクトの描画の優先順位である。換言すると、Z方向における、オブジェクトの階層を示す順番である。Z方向における、オブジェクトの優先順を示す順番であるとも言い換えられる。例えばバーコードオブジェクト104のZオーダーの優先順位がイメージオブジェクト108のZオーダーの優先順位より高い場合に、バーコードオブジェクト104とイメージオブジェクト108とが共通の座標に配置されると、図4に示すように、バーコードオブジェクト104がイメージオブジェクト108の前面側に描画され、イメージオブジェクト108の少なくとも一部が、バーコードオブジェクト104により隠される。すなわち、編集画面70を眺めるユーザにとっては、バーコードオブジェクト104とイメージオブジェクト108とは重ねて配置されており、バーコードオブジェクト104がイメージオブジェクト108よりも前面に居るように見える。すなわち、Z方向とは、画像を眺めるユーザにとっての奥行方向であるともいえる。このように、6個のオブジェクトが配置された配置画像は、それら6個のオブジェクトのZオーダーに従って表示される。そして、編集画面70の上端部に表示されている保存ボタン120が操作されることで、配置画像をZオーダーに従って表示するための画像データが、データ記憶領域32に記憶される。
また、編集画面70の上端部に表示されている印刷ボタン122が操作されることで、配置画像の印刷用画像データが作成されるが、その印刷用画像データもZオーダーに従って作成される。つまり、例えば、バーコードオブジェクト104とイメージオブジェクト108とが重ねて配置され、バーコードオブジェクト104のZオーダーの優先順位がイメージオブジェクト108のZオーダーの優先順位より高い場合には、図4に示すように、バーコードオブジェクト104がイメージオブジェクト108の前面側に位置する配置画像の印刷用画像データが作成される。そして、作成された印刷用画像データがプリンタ50に送信されることで、Zオーダーに従って配置された配置画像がラベルに印刷される。
さらに、オブジェクトのZオーダーは、配置画像の表示時,配置画像の印刷用画像データの作成時だけでなく、ラベル画像86の編集時にも用いられる。例えば、図3に示す配置画像、つまり、上記6個のオブジェクトが配置された配置画像に対して、編集操作が行われる際に、それら6個のオブジェクトのうちの任意の1個のオブジェクトがユーザ操作により指定され、その指定されたオブジェクトの編集操作が行われる。その際に、例えば、バーコードオブジェクト104が指定されると、そのバーコードオブジェクト104が、所定の表示態様、例えば、カーソル表示,点滅表示,反転表示等により、編集対象のオブジェクトであることが示される。なお、編集画面70において、配置画像に配置されているオブジェクトの各々に対して所定の操作を行うことで、オブジェクトのZオーダーを任意の順番に変更することが可能とされている。そして、所定の操作ボタン、例えば、キーボードのTabキーが操作されることで、編集対象のオブジェクトが変更される。この際、オブジェクトのZオーダーに従って、編集対象のオブジェクトが変更される。このように、オブジェクトのZオーダーは、ラベル画像86の編集時にも用いられる。なお、配置画像での編集対象のオブジェクトは、Tabキーの操作により、配置画像の上方から下方、若しくは、配置画像の左側から右側に変更されることが好ましい。文書を上方から下方、左側から右側に書き進む習慣のユーザが多い、人間工学的に、右利きのユーザには理にかなっている、など、総合的な理由のためである。
従来、オブジェクトのZオーダーは、配置画像でのオブジェクトの配置順と逆の順番に設定されていた。つまり、従来の手法では、配置画像でのオブジェクトの配置順が遅いほど、優先順位が高くなるように、オブジェクトのZオーダーが設定されていた。ところが、従来の、配置画像でのオブジェクトの配置順と逆の順番に設定する手法により設定されたZオーダーでは、配置画像での編集対象のオブジェクトが、Tabキーの操作により、配置画像の上方から下方、配置画像の左側から右側に変更されるとは限らない。
例えば、仮に、選択ボタン88a及び第2設定領域76への操作が行われるとともに、編集領域74においてラベル画像86の中央付近の位置が指定されることで、図3に示すように、ラベル画像86の中央付近に、第1テキストオブジェクト100及び第2テキストオブジェクト102が配置される。次に、選択ボタン88d及び第2設定領域76への操作が行われるとともに、ラベル画像86の右下付近の位置が指定されることで、ラベル画像86の右下に、バーコードオブジェクト104が配置される。続いて、選択ボタン88c及び第2設定領域76への操作が行われるとともに、ラベル画像86の左端付近の位置が指定されることで、ラベル画像86の左端に、ドローオブジェクト106が配置される。さらに、選択ボタン88a及び第2設定領域76への操作が行われるとともに、ラベル画像86においてドローオブジェクト106の内側の位置が指定されることで、ドローオブジェクト106の内側に、イメージオブジェクト108が配置される。そして、最後に、選択ボタン88b及び第2設定領域76への操作が行われるとともに、ラベル画像86において第1テキストオブジェクト100,第2テキストオブジェクト102,バーコードオブジェクト104,ドローオブジェクト106,イメージオブジェクト108の全体を囲う位置が指定されることで、それら複数のオブジェクトを囲うように、飾り枠オブジェクト110が配置される。この場合、従来の手法では、第1テキストオブジェクト100,第2テキストオブジェクト102,バーコードオブジェクト104,ドローオブジェクト106,イメージオブジェクト108,飾り枠オブジェクト110の順に配置されていることから、従来の手法でのZオーダーは、飾り枠オブジェクト110,イメージオブジェクト108,ドローオブジェクト106,バーコードオブジェクト104,第2テキストオブジェクト102,第1テキストオブジェクト100の順に設定されることになる。
このため、配置画像の編集時において、バーコードオブジェクト104が所定の表示態様で表示されている際に、Tabキーが操作されると、バーコードオブジェクト104の代わりに、第2テキストオブジェクト102が所定の表示態様で表示され、再度、Tabキーが操作されると、第2テキストオブジェクト102の代わりに、第1テキストオブジェクト100が所定の表示態様で表示される。つまり、Tabキーが操作される毎に、編集対象のオブジェクトが、バーコードオブジェクト104,第2テキストオブジェクト102,第1テキストオブジェクト100の順に変更される。ただし、Tabキーが操作される毎に、編集対象のオブジェクトが、バーコードオブジェクト104,第2テキストオブジェクト102,第1テキストオブジェクト100の順に変更されると、ユーザが違和感を抱く虞がある。
なお、編集画面70において、配置画像に配置されているオブジェクトの各々に対して所定の操作を行うことで、オブジェクトのZオーダーを任意の順番に変更することが可能とされているが、配置画像に配置されているオブジェクトの各々に対する所定の操作は、ユーザの負担となる。また、ユーザ操作によりZオーダーが変更されると、Zオーダーの変更を行ったユーザ毎に、異なる優先順位のZオーダーが作成される場合がある。このような場合には、Zオーダーを変更したユーザ以外のユーザが違和感を抱く虞がある。このようなことに鑑みて、PC10では、制御プログラム30の処理により、一律的にオブジェクトのZオーダーが自動で設定される。以下に、オブジェクトのZオーダーが一律的に自動で設定される際の制御プログラム30の処理について、図11及び図12に示すフローチャートを用いて、詳しく説明する。
まず、制御プログラム30は、オブジェクトの編集操作を受け付ける(S100)。つまり、制御プログラム30は、各種選択ボタン88及び第2設定領域76への操作と、編集領域74でのラベル画像86の任意の位置を指定する操作とを受け付ける。この際、制御プログラム30は、ラベル画像86の指定された位置に、各種選択ボタン88及び第2設定領域76への操作に応じたオブジェクトを配置する。そして、制御プログラム30は、保存ボタン120若しくは、印刷ボタン122の操作を受け付けるまで、S100の処理を繰り返す。つまり、制御プログラム30は、保存ボタン120若しくは、印刷ボタン122の操作を受け付けたか否かを判断し(S102)、保存ボタン120若しくは、印刷ボタン122の操作を受け付けていない場合(S102:NO)に、S100に戻る。
一方、保存ボタン120若しくは、印刷ボタン122の操作を受け付けた場合(S102:YES)に、制御プログラム30は、Zオーダー決定サブルーチンを実行する(S104)。Zオーダー決定サブルーチンにおいて、制御プログラム30は、オブジェクト情報を情報テーブルに格納する(S120)。オブジェクト情報は、オブジェクト名と座標情報とサイズ情報とにより構成されている。オブジェクト名は、編集操作時にラベル画像86に配置されたオブジェクトの名称である。また、座標情報は、ラベル画像86において配置されたオブジェクトの左上端の位置をXY座標で示す情報である。なお、座標情報が示すXY座標の原点(0,0)はラベル画像86の左上端の角とされている。また、サイズ情報は、ラベル画像86において配置されたオブジェクトの縦方向の寸法と横方向の寸法とを示す情報である。そして、情報テーブルは、データ記憶領域32に設定されており、オブジェクト編集時においてラベル画像86に配置されたオブジェクトのオブジェクト情報が情報テーブルに格納される。つまり、図3に示すラベル画像86では、上述したように、第1テキストオブジェクト100,第2テキストオブジェクト102,バーコードオブジェクト104,ドローオブジェクト106,イメージオブジェクト108,飾り枠オブジェクト110の6個のオブジェクトが配置されているため、図5に示すように、それら6個のオブジェクトのオブジェクト情報が情報テーブルに格納される。
次に、制御プログラム30は、情報テーブルのオブジェクト名を作業領域にコピーする(S122)。作業領域は、データ記憶領域32に設定されており、その作業領域に、図6に示すように、情報テーブルに格納された全てのオブジェクト名がコピーされる。なお、作業領域は、Zオーダーの優先順位を並び替えるための領域であるため、作業領域にコピーされたオブジェクト名の各々には、Zオーダーの優先順位が付されているが、オブジェクト名がコピーされた時点での優先順位は無意味である。
そして、制御プログラム30は、作業領域にコピーされたオブジェクト名を、座標情報に従って並べ替える(S124)。この際、制御プログラム30は、原点に近い座標情報を含むオブジェクト情報のオブジェクト名から順番に、オブジェクト名を並び替える。つまり、オブジェクトの左上端が、ラベル画像86の左上端に近いほどZオーダーの優先順位が高くなるように、オブジェクト名が並べ替えられる。ここで、図3を参照してみると、飾り枠オブジェクト110,ドローオブジェクト106,イメージオブジェクト108,第1テキストオブジェクト100,第2テキストオブジェクト102,バーコードオブジェクト104の順に、オブジェクトの左上端がラベル画像86の左上端に近い。このため、図7に示すように、作業領域において、オブジェクト名が、飾り枠オブジェクト110,ドローオブジェクト106,イメージオブジェクト108,第1テキストオブジェクト100,第2テキストオブジェクト102,バーコードオブジェクト104の順に並べ替えられる。なお、座標情報に従って並べ替えられたオブジェクト名の各々に、その並べ替えられた順番に従ってオブジェクトナンバーが付される。つまり、例えば、飾り枠オブジェクト110のオブジェクト名に、オブジェクトナンバー「1」が付され、ドローオブジェクト106のオブジェクト名に、オブジェクトナンバー「2」が付される。そして、制御プログラム30は、オブジェクトナンバーの順に、Zオーダーの優先順位を判定するべく、オブジェクトナンバーNを1にセットする(S126)。
次に、制御プログラム30は、オブジェクトナンバーNがA以下であるか否かを判断する(S128)。なお、Aは、ラベル画像86に配置されたオブジェクトの数、つまり、作業領域でのオブジェクト名の数を示しており、ここでの説明において、Aは6となる。そして、S126でオブジェクトナンバーNが1にセットされているため、オブジェクトナンバーN(=1)はA(=6)以下であると判断され(S128:YES)、制御プログラム30は、オブジェクトナンバーNのオブジェクト(以下、「対象オブジェクト」と記載する)が、ラベル画像86において、対象オブジェクト以外のオブジェクトと重なって配置されているか否かを判断する(S130)。この際、制御プログラム30は、オブジェクト情報に含まれる座標情報とサイズ情報とを用いて、対象オブジェクトが、対象オブジェクト以外のオブジェクトと重なって配置されているか否かを判断する。
ここで、オブジェクトナンバーN(=1)の対象オブジェクト、つまり、飾り枠オブジェクト110は、図3から分かるように、第1テキストオブジェクト100,第2テキストオブジェクト102,バーコードオブジェクト104,ドローオブジェクト106,イメージオブジェクト108の全てのオブジェクトと重なって配置されている。このため、オブジェクトナンバーN(=1)の対象オブジェクトは、対象オブジェクト以外のオブジェクトと重なって配置されていると判断される(S130:YES)。そして、制御プログラム30は、設定優先順位に従って、作業領域でのオブジェクト名を並べ替える(S132)。
設定優先順位は、配置画像の表示時,印刷時などにおいて、優先的に表示若しくは印刷したいオブジェクトの優先順位を設定したものであり、データ記憶領域32に記憶されている。なお、この設定優先順位は、ユーザ操作により任意に設定することが可能であり、ここでの説明では、図8に示すように、テキストを示すオブジェクト,日付/時刻/カレンダーを示すオブジェクト,バーコードを示すオブジェクト,イメージを示すオブジェクト,表を示すオブジェクト,ドローを示すオブジェクト,飾り枠を示すオブジェクトの順に設定されている。
そして、制御プログラム30は、対象オブジェクトと、その対象オブジェクトと重なって配置されていると判断されたオブジェクト(以下、「重複オブジェクト」と記載する)との何れが、設定優先順位において高く設定されているかを判断する。この際、対象オブジェクトが、設定優先順位において重複オブジェクトより低く設定されている場合に、制御プログラム30は、対象オブジェクトのZオーダーが、重複オブジェクトのZオーダーより低くなるように、作業領域のオブジェクト名を並べ替える。一方、対象オブジェクトが、設定優先順位において重複オブジェクトより高く設定されている場合に、作業領域でのオブジェクト名の並べ替えは行われずに、対象オブジェクトのZオーダーは維持される。
ここで、オブジェクトナンバーN(=1)の対象オブジェクト、つまり、飾り枠オブジェクト110は、重複オブジェクト、つまり、第1テキストオブジェクト100,第2テキストオブジェクト102,バーコードオブジェクト104,ドローオブジェクト106,イメージオブジェクト108の何れよりも、設定優先順位において低く設定されている。このため、図9に示すように、飾り枠オブジェクト110のZオーダーが、第1テキストオブジェクト100,第2テキストオブジェクト102,バーコードオブジェクト104,ドローオブジェクト106,イメージオブジェクト108の何れのZオーダーより低くなるように、オブジェクト名が並べ替えられる。そして、制御プログラム30は、オブジェクトナンバーNに1を加算して(S134)、S128に戻る。
次に、制御プログラム30は、オブジェクトナンバーNがA以下であるか否かを判断する(S128)。この際、S134でオブジェクトナンバーN(=1)に1が加算されているため、オブジェクトナンバーN(=2)はA(=6)以下であると判断され(S128:YES)、制御プログラム30は、対象オブジェクトが他のオブジェクトと重なって配置されているか否かを判断する(S130)。ここで、オブジェクトナンバーN(=2)の対象オブジェクト、つまり、ドローオブジェクト106は、図3から分かるように、イメージオブジェクト108及び飾り枠オブジェクト110と重なって配置されている。このため、オブジェクトナンバーN(=2)の対象オブジェクトは他のオブジェクトと重なって配置されていると判断される(S130:YES)。そして、制御プログラム30は、設定優先順位に従って、作業領域でのオブジェクト名を並べ替える(S132)。
ここで、オブジェクトナンバーN(=2)の対象オブジェクト、つまり、ドローオブジェクト106は、図8に示すように、イメージオブジェクト108よりも、設定優先順位において低く設定されている。このため、図10に示すように、ドローオブジェクト106のZオーダーが、イメージオブジェクト108のZオーダーより低くなるように、オブジェクト名が並べ替えられる。また、ドローオブジェクト106は、図8に示すように、飾り枠オブジェクト110よりも、設定優先順位において高く設定されている。このため、作業領域でのオブジェクト名の並べ替えは行われずに、ドローオブジェクト106のZオーダーは維持される。そして、制御プログラム30は、オブジェクトナンバーNに1を加算して(S134)、S128に戻る。
次に、制御プログラム30は、オブジェクトナンバーNがA以下であるか否かを判断する(S128)。この際、S134でオブジェクトナンバーN(=2)に1が加算されているため、オブジェクトナンバーN(=3)はA(=6)以下であると判断され(S128:YES)、制御プログラム30は、対象オブジェクトが他のオブジェクトと重なって配置されているか否かを判断する(S130)。ここで、オブジェクトナンバーN(=3)の対象オブジェクト、つまり、イメージオブジェクト108は、図3から分かるように、ドローオブジェクト106及び飾り枠オブジェクト110と重なって配置されている。このため、オブジェクトナンバーN(=3)の対象オブジェクトは他のオブジェクトと重なって配置されていると判断される(S130:YES)。そして、制御プログラム30は、設定優先順位に従って、作業領域でのオブジェクト名を並べ替える(S132)。
ここで、オブジェクトナンバーN(=3)の対象オブジェクト、つまり、イメージオブジェクト108は、図8に示すように、ドローオブジェクト106及び飾り枠オブジェクト110よりも、設定優先順位において高く設定されている。このため、作業領域でのオブジェクト名の並べ替えは行われずに、イメージオブジェクト108のZオーダーは維持される。そして、制御プログラム30は、オブジェクトナンバーNに1を加算して(S134)、S128に戻る。
次に、制御プログラム30は、オブジェクトナンバーNがA以下であるか否かを判断する(S128)。この際、S134でオブジェクトナンバーN(=3)に1が加算されているため、オブジェクトナンバーN(=4)はA(=6)以下であると判断され(S128:YES)、制御プログラム30は、対象オブジェクトが他のオブジェクトと重なって配置されているか否かを判断する(S130)。ここで、オブジェクトナンバーN(=4)の対象オブジェクト、つまり、第1テキストオブジェクト100は、図3から分かるように、飾り枠オブジェクト110と重なって配置されている。このため、オブジェクトナンバーN(=4)の対象オブジェクトは他のオブジェクトと重なって配置されていると判断される(S130:YES)。そして、制御プログラム30は、設定優先順位に従って、作業領域でのオブジェクト名を並べ替える(S132)。
ここで、オブジェクトナンバーN(=4)の対象オブジェクト、つまり、第1テキストオブジェクト100は、図8に示すように、飾り枠オブジェクト110よりも、設定優先順位において高く設定されている。このため、作業領域でのオブジェクト名の並べ替えは行われずに、第1テキストオブジェクト100のZオーダーは維持される。そして、制御プログラム30は、オブジェクトナンバーNに1を加算して(S134)、S128に戻る。
次に、制御プログラム30は、オブジェクトナンバーNがA以下であるか否かを判断する(S128)。この際、S134でオブジェクトナンバーN(=4)に1が加算されているため、オブジェクトナンバーN(=5)はA(=6)以下であると判断され(S128:YES)、制御プログラム30は、対象オブジェクトが他のオブジェクトと重なって配置されているか否かを判断する(S130)。ここで、オブジェクトナンバーN(=5)の対象オブジェクト、つまり、第2テキストオブジェクト102は、図3から分かるように、飾り枠オブジェクト110と重なって配置されている。このため、オブジェクトナンバーN(=5)の対象オブジェクトは他のオブジェクトと重なって配置されていると判断される(S130:YES)。そして、制御プログラム30は、設定優先順位に従って、作業領域でのオブジェクト名を並べ替える(S132)。
ここで、オブジェクトナンバーN(=5)の対象オブジェクト、つまり、第2テキストオブジェクト102は、図8に示すように、飾り枠オブジェクト110よりも、設定優先順位において高く設定されている。このため、作業領域でのオブジェクト名の並べ替えは行われずに、第2テキストオブジェクト102のZオーダーは維持される。そして、制御プログラム30は、オブジェクトナンバーNに1を加算して(S134)、S128に戻る。
次に、制御プログラム30は、オブジェクトナンバーNがA以下であるか否かを判断する(S128)。この際、S134でオブジェクトナンバーN(=5)に1が加算されているため、オブジェクトナンバーN(=6)はA(=6)以下であると判断され(S128:YES)、制御プログラム30は、対象オブジェクトが他のオブジェクトと重なって配置されているか否かを判断する(S130)。ここで、オブジェクトナンバーN(=6)の対象オブジェクト、つまり、バーコードオブジェクト104は、図3から分かるように、飾り枠オブジェクト110と重なって配置されている。このため、オブジェクトナンバーN(=6)の対象オブジェクトは他のオブジェクトと重なって配置されていると判断される(S130:YES)。そして、制御プログラム30は、設定優先順位に従って、作業領域でのオブジェクト名を並べ替える(S132)。
ここで、オブジェクトナンバーN(=6)の対象オブジェクト、つまり、バーコードオブジェクト104は、図8に示すように、飾り枠オブジェクト110よりも、設定優先順位において高く設定されている。このため、作業領域でのオブジェクト名の並べ替えは行われずに、バーコードオブジェクト104のZオーダーは維持される。そして、制御プログラム30は、オブジェクトナンバーNに1を加算して(S134)、S128に戻る。
次に、制御プログラム30は、オブジェクトナンバーNがA以下であるか否かを判断する(S128)。この際、S134でオブジェクトナンバーN(=6)に1が加算されているため、オブジェクトナンバーN(=7)はA(=6)以下でないと判断される(S128:NO)。これにより、Zオーダー決定サブルーチンが完了する。そして、メインルーチンに戻り、制御プログラム30は、Zオーダー決定サブルーチンにおいて決定されたZオーダー、つまり、作業領域において最終的に並べ替えられたオブジェクト名(図10参照)の並び順に従って画像データを作成する(S106)。この際、制御プログラム30は、S102で受け付けた操作ボタンに応じた画像データを作成する。つまり、S102で保存ボタン120の操作を受け付けている場合に、制御プログラム30は、上記6個のオブジェクトが配置された配置画像をZオーダーに従ってLCD16に表示するための画像データを作成する。また、S102で印刷ボタン122の操作を受け付けている場合に、制御プログラム30は、上記6個のオブジェクトが配置された配置画像を印刷するための印刷用画像データを作成する。そして、制御プログラム30は、作成した画像データを保存、若しくはプリンタ50に送信する(S108)。つまり、つまり、S102で保存ボタン120の操作を受け付けている場合に、制御プログラム30は、作成した画像データをデータ記憶領域32に保存する。また、S102で印刷ボタン122の操作を受け付けている場合に、制御プログラム30は、作成した画像データをプリンタ50に送信する。そして、制御プログラム30は、終了ボタン(図示省略)の操作を受け付けたか否かを判断し(S110)、終了ボタンの操作を受け付けていない場合(S110:NO)に、S100に戻る。一方、終了ボタンの操作を受け付けている場合(S110:YES)に、本フローチャートが終了する。
なお、S100を実行するCPU12は、受付手段の一例である。S104を実行するCPU12は、決定手段の一例である。S106を実行するCPU12は、作成手段の一例である。S108を実行するCPU12は、出力手段の一例である。
上記した実施形態によれば、以下の効果を奏する。
上記実施形態では、ラベル画像86において指定された位置にオブジェクトが配置され、そのオブジェクトが配置された画像、つまり、配置画像の画像データが作成される。その際、ラベル画像86での指定された位置に基づいて、オブジェクトのZオーダーが決定される。これにより、オブジェクトのZオーダーを一律的、かつ、自動で作成することが可能となる。
また、上記実施形態では、配置画像の表示時,印刷時などにおいて、優先的に表示若しくは印刷したいオブジェクトの優先順位を示す設定優先順位が設定されており、配置画像においてオブジェクトが重なって配置されている場合に、その設定優先順位に従ってオブジェクトのZオーダーが並べ替えられる。これにより、オブジェクトの配置された位置だけでなく、オブジェクトの属性をも考慮して、Zオーダーを自動で作成することが可能となる。
また、上記実施形態では、図8に示すように、設定優先順位において、テキスト, 日付/時刻/カレンダー,バーコード,イメージといった情報を示す情報オブジェクトが、表,ドロー,飾り枠といった情報オブジェクトを装飾する装飾オブジェクトより高く設定されている。これにより、各種情報を示すオブジェクトを、装飾オブジェクトより優先的に表示、若しくは、印刷することが可能となる。
また、上記実施形態では、情報オブジェクトとしてテキストオブジェクト及びバーコードオブジェクトが採用されており、装飾オブジェクトとして情報オブジェクトを囲う表オブジェクト,ドローオブジェクト,飾り枠オブジェクトが採用されている。これにより、重要な情報を示すテキスト,バーコード等を優先的に表示、若しくは、印刷することが可能となる。
また、上記実施形態では、テキスト, 日付/時刻/カレンダー,バーコード,イメージといった複数の情報オブジェクトの各々に対して設定優先順位が設定されており、表,ドロー,飾り枠といった複数の装飾オブジェクトの各々に対して設定優先順位が設定されている。これにより、種々のオブジェクトの属性を考慮してZオーダーを自動で作成することが可能となる。
また、上記実施形態では、設定優先順位がユーザ操作により任意に設定することが可能とされている。これにより、ユーザの意思を反映させたZオーダーを自動で作成することができる。
また、上記実施形態では、保存ボタン120若しくは、印刷ボタン122が操作された場合に、オブジェクトのZオーダーが自動で作成される。つまり、オブジェクトの編集操作が完了したと推定される場合に、オブジェクトのZオーダーが自動で作成される。これにより、適切なタイミングでオブジェクトのZオーダーを自動で作成することが可能となる。
また、上記実施形態では、自動で作成されたZオーダーを利用して、オブジェクトの編集時などにおいて、編集対象のオブジェクトの表示態様が変更される。つまり、ユーザ操作により任意のオブジェクトが編集対象のオブジェクトとして指定された場合に、キーボードのTabキーが操作される毎に、Zオーダーの順に、編集対象のオブジェクトが変更される。この際、Zオーダーが座標情報に従って並べ替えられているため、オブジェクトの変更順を、配置画像での上方から下方、かつ、左側から右側とすることができる。
また、上記実施形態では、オブジェクトの配置された配置画像が、自動で作成されたZオーダーに従ってLCD16に表示される。これにより、適切に配置画像をLCD16に表示することが可能となる。
また、上記実施形態では、オブジェクトの配置された配置画像を印刷するための印刷用画像データが、自動で作成されたZオーダーに従って作成される。これにより、適切に配置画像を印刷することが可能となる。
また、本発明は、上記実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。具体的には、例えば、上記実施形態では、保存ボタン120若しくは、印刷ボタン122が操作された場合に、オブジェクトの編集操作が完了したと推定され、オブジェクトのZオーダーが作成されているが、別の手法によりオブジェクトの編集操作が完了したと推定し、オブジェクトのZオーダーが自動で作成されてもよい。具体的には、例えば、オブジェクトの編集操作を受け付けてから、所定期間、新たなオブジェクトの編集操作を受け付けない場合に、オブジェクトの編集操作が完了したと推定し、オブジェクトのZオーダーが自動で作成されてもよい。
また、上記実施形態では、PC10が制御プログラム30を備えているが、プリンタ50が制御プログラム30と同等のプログラムを備えていてもよい。そして、プリンタがディスプレイや入力I/Fを備えることで、プリンタ50において、上述したPC10の処理を実行することが可能となる。つまり、図11及び図12に示す処理を、プリンタ50において実行することが可能となる。ただし、図11及び図12に示す処理がプリンタ50において実行される際には、S108の処理が、印刷用画像データに基づく印刷処理となる。なお、プリンタ50が制御プログラム30と同等のプログラムを備える場合には、プリンタ50が情報処理装置の一例となる。
また、上記実施形態では、ラベルに印刷するためのオブジェクトが採用されているが、印刷媒体として、ラベルに限定されず、種々の印刷媒体に印刷するためのオブジェクトを採用することが可能である。
また、上記実施形態では、CPU12によって図11及び図12に示す処理が実行される例を説明したが、これら処理は、CPU12に限らず、ASICや他の論理集積回路により実行されてもよいし、これら処理が、CPU等やASIC、他の論理集積回路が協働することにより実行されてもよい。