(57)【要約】【課題】各オブジェクトの最適配置および処理効率の向上を実現する。【解決手段】本発明のある態様は、複数の項目の各々に対応するオブジェクトを取得する取得手段と、上記複数の項目の各々に対応するオブジェクトを含む複数のオブジェクト領域を、一方向に積み重ねて配置する配置手段と、配置手段によって配置された複数のオブジェクト領域に基づいて、描画データを作成する作成手段と、を備えたプリンタである。【選択図】図６
2020006510.tif 000002
【特許請求の範囲】
【請求項１】
複数の項目の各々に対応するオブジェクトを取得する取得手段と、
前記複数の項目の各々に対応するオブジェクトを含む複数のオブジェクト領域を、一方向に積み重ねて配置する配置手段と、
前記配置手段によって配置された前記複数のオブジェクト領域に基づいて、描画データを作成する作成手段と、
を備えたプリンタ。
【請求項２】
前記配置手段は、配置された一つのオブジェクト領域を基準として当該オブジェクト領域に接するように次に配置すべきオブジェクト領域を配置する、
請求項１に記載されたプリンタ。
【請求項３】
前記描画データに基づきライン毎に印字を行う印字手段を備え、
前記一方向は、前記ラインと直交する第１方向である、
請求項１または２に記載されたプリンタ。
【請求項４】
前記配置手段は、予め設定された前記複数のオブジェクト領域の配置順序に従って、前記複数のオブジェクト領域を配置する、
請求項１から３のいずれか１項に記載されたプリンタ。
【請求項５】
前記配置手段は、前記配置順序においてＮ番目に配置すべきオブジェクト領域にオブジェクトが含まれていない場合には、前記Ｎ番目に配置すべきオブジェクト領域に代えて、Ｎ＋１番目以降に配置すべきオブジェクト領域を配置する、
請求項４に記載されたプリンタ。
【請求項６】
前記オブジェクトとして文字列を含むオブジェクト領域の幅が固定長に設定され、
前記配置手段は、前記文字列の長さが前記固定長を超える場合には、前記オブジェクト領域内で前記文字列を改行して前記文字列を配置する、
請求項１から５のいずれか１項に記載されたプリンタ。
【請求項７】
前記配置手段は、前記第１方向と直交する第２方向におけるオブジェクト領域の位置決めを、配置済みのオブジェクト領域の前記第２方向におけるいずれか一方の端、または、前記印字媒体の印字可能範囲の前記第２方向におけるいずれか一方の端を基準にして決定する、
請求項３に記載されたプリンタ。
【請求項８】
前記配置手段は、前記第２方向におけるオブジェクト領域の長さを当該オブジェクト領域に含まれるオブジェクトの大きさに応じて決定する、
請求項７に記載されたプリンタ。
【請求項９】
コンピュータに、
複数の項目の各々に対応するオブジェクトを取得する取得手段と、
前記複数の項目の各々に対応するオブジェクトを含む複数のオブジェクト領域を、一方向に積み重ねて配置する配置手段と、
前記配置手段によって配置された前記複数のオブジェクト領域に基づいて、描画データを作成する作成手段と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタおよびプログラムに関する。
【背景技術】
【０００２】
従来から、印字媒体を効率的に使用するために印字媒体の余白部分を無くすようにして描画データを作成することが知られている。
例えば特許文献１には、用紙余白最小化処理、オブジェクト間隔値最小化処理、および、テキストオブジェクト内空白領域削除処理を行う印刷データ編集装置が記載されている。特許文献１によれば、かかる処理を行うことによって、文字列の存在しない無駄な空白領域の印刷データを被印刷媒体に印字してしまうことがない、とされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４７７５１５５号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載されている各処理は、印刷対象であるオブジェクトの位置の計算に手間が掛かるため、効率的な処理とはいえない。
【０００５】
そこで、本発明は、各オブジェクトの最適配置および処理効率の向上を目的とする。
【課題を解決するための手段】
【０００６】
本発明のある態様は、複数の項目の各々に対応するオブジェクトを取得する取得手段と、前記複数の項目の各々に対応するオブジェクトを含む複数のオブジェクト領域を、一方向に積み重ねて配置する配置手段と、前記配置手段によって配置された前記複数のオブジェクト領域に基づいて、描画データを作成する作成手段と、を備えたプリンタである。
【発明の効果】
【０００７】
本発明のある態様によれば、各オブジェクトの最適配置および処理効率の向上が可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施形態のプリンタの動作を説明するためのプリンタの概略断面図である。
【図２】実施形態のプリンタのブロック図である。
【図３】実施形態のプリンタに表示される画面の例を示す図である。
【図４】実施形態のプリンタの画面遷移の例を示す図である。
【図５】実施形態のプリンタで印字されるラベルの例を示す図である。
【図６】商品データベースのデータ構成例を示す図である。
【図７】印字レイアウトファイルのデータ構成例を示す図である。
【図８】実施形態のプリンタで行われる処理のフローチャートである。
【図９】実施形態のプリンタでの描画データの作成手順の一例を説明する図である。
【図１０】実施形態のプリンタでの描画データの作成手順の一例を説明する図である。
【図１１】図１１Ａ〜１１Ｄはそれぞれ、オブジェクト領域の配置の変形例を示す図である。
【図１２】実施形態のプリンタでの描画データの作成手順の変形例を説明する図である。
【図１３】実施形態のプリンタで印字されるラベルの別の例を示す図である。
【発明を実施するための形態】
【０００９】
本発明の「オブジェクト」とは、プリンタの印字対象となる情報を意味し、例えば、文字、数字、記号、画像、図形（罫線を含む）、マーク、ロゴ、バーコード等のコード情報等である。
【００１０】
（１）実施形態のプリンタの構成および動作
先ず、本実施形態に係るプリンタ１の全体的な構成および動作について、図１を参照して説明する。
図１は、実施形態に係るプリンタ１の動作を説明するためのプリンタ１の概略断面図である。図１は、プリンタ１におけるロール紙の通紙経路を示している。
【００１１】
図１に示すように、本実施形態のプリンタ１は、筐体２と、カバー３と、プラテンローラ５と、サーマルヘッド６と、収容部８と、ステッピングモータ２５と、補助ローラ１３，１７とを備える。筐体２は、プリンタ１の外形形状に合わせて形成されている。なお、図示しないが、プリンタ１には、タッチパネル機能を搭載した表示パネルが設けられている。
【００１２】
収容部８は、筐体２の内部に設けられてロール紙Ｒを収容する空間である。カバー３は、収容部８を開放または閉鎖するカバーであり、シャフト３１によって揺動可能に軸支して構成されている。
【００１３】
ロール紙Ｒは、帯状の連続紙Ｐがロール状に巻回されたものである。連続紙Ｐは、帯状の台紙と、台紙上に予め決められた間隔毎に仮着された複数枚のラベルとを備えている。本実施形態のプリンタ１では、プラテンローラ５の回転によってロール紙Ｒから連続紙Ｐが繰り出される。
【００１４】
プラテンローラ５はステッピングモータ２５によって駆動される。
筐体２側には補助ローラ１３が設けられ、カバー３側には補助ローラ１７が設けられている。図１に示すように、カバー３が閉鎖状態のときには、補助ローラ１３，１７が連続紙Ｐを挟んで対向し、連続紙Ｐのプラテンローラ５への搬送を補助する。
【００１５】
サーマルヘッド６は、カバー３が閉鎖状態のときにプラテンローラ５と対向するように、カバー３に配置されている。
サーマルヘッド６は、例えば、文字、画像、バーコード等のオブジェクトを、ロール紙Ｒから繰り出される連続紙Ｐのラベル上に印字する印字手段である。図１に示すように、サーマルヘッド６は、カバー３が閉鎖状態のときにはサーマルヘッド６の印字面が連続紙Ｐの搬送路に向き、かつプラテンローラ５に対向する。サーマルヘッド６の印字面には、通電により発熱する複数の発熱抵抗体（発熱素子）が連続紙Ｐの幅方向に沿って並んで設置されている。各発熱抵抗体が選択的に通電されることで、印字が行われる。
【００１６】
図１に示すように、カバー３が閉鎖されて印字が行われているときには、ロール紙Ｒから繰り出される連続紙Ｐがプラテンローラ５によって搬送されつつ、プラテンローラ５とサーマルヘッド６の間で挟持される。プラテンローラ５が順方向に駆動されると、ガイド機構１０に保持されたロール紙Ｒから繰り出される連続紙Ｐは、補助ローラ１３，１７に挟持されつつプラテンローラ５へ向かう。プラテンローラ５に対向するサーマルヘッド６によって印字された連続紙Ｐは、カバー３が閉鎖状態のときの筐体２とカバー３の隙間である排出口７からプリンタ１の外部に排出される。
【００１７】
（２）実施形態のプリンタの内部構成
次に、実施形態のプリンタ１の内部構成について、図２を参照して説明する。図２は、実施形態のプリンタ１のブロック図である。
図２に示すように、プリンタ１は、制御部２０、操作入力部２７、表示駆動部４０、ストレージ２０４と、モータ駆動部２０５と、ヘッド駆動部２０７と、カッタ駆動部２０８と、を備える。制御部２０は主として、ＣＰＵ（Central Processing Unit）２０１、ＲＯＭ（Read Only Memory）２０２、およびＲＡＭ（Random Access Memory）２０３を備える。
後述するラベル発行プログラムを実行する制御部２０は、取得手段、配置手段、および、作成手段の一例である。
【００１８】
ＣＰＵ２０１は、プリンタ１の起動時にＲＯＭ２０２に記憶されている各種プログラムを読み出して実行し、各部を制御する。各種プログラムには、ファームウェアが含まれる。ＲＡＭ２０３はＣＰＵ２０１のワークエリアとして機能し、各種データが一時的に記憶される。
また、ＲＯＭ２０２記憶されている各種プログラムには、後述するラベル発行プログラムが含まれる。ラベル発行プログラムは、ユーザが店舗において商品に貼付するためのラベルを発行するためのプログラムである。
なお、本実施形態では、ラベル発行プログラムがアプリケーションプログラムとして用意されている場合について説明するが、その限りではない。上記ファームウェアに組み込まれていても良いし、プリンタドライバに組み込まれてもよい。
【００１９】
ストレージ２０４は、例えばＳＳＤ（Solid State Drive）等の記憶装置である。ストレージ２０４には、上記ラベル発行プログラムにおいて参照される商品データベースおよび印字レイアウトファイルが格納されている。商品データベースおよび印字レイアウトファイルについては後述する。
【００２０】
モータ駆動部２０５は、プラテンローラ５の回転を制御するステッピングモータ２５を駆動することによって、ロール紙Ｒから連続紙Ｐを引き出して搬送させる。モータ駆動部２０５は、制御部２０からの搬送要求に応じて、当該搬送要求によって指定される搬送方向（順方向あるいは逆方向）および搬送量で連続紙Ｐを搬送させる。指定された搬送方向および搬送量は、例えばステッピングモータ２５の回転方向およびステップ数に対応している。モータ駆動部２０５は、当該回転方向およびステップ数に基づいてステッピングモータ２５を駆動する。
【００２１】
制御部２０は、ラベル発行プログラムを実行することでラベルに印字すべき描画データを作成し、描画データのライン毎のデータであるラインデータを順次、ヘッド駆動部２０７に送る。ヘッド駆動部２０７は、当該ラインデータに基づき、サーマルヘッド６の各発熱素子に選択的に電流を流す。電流により発熱した発熱素子がプラテンローラ５によって搬送された連続紙Ｐに押し当てられると、発熱素子に押し当てられた連続紙の部分が発色することで連続紙Ｐに情報が印字される。
【００２２】
カッタ駆動部２０８はカッタ（図示せず）を駆動して、制御部２０による制御の下、連続紙Ｐのうち印字が行われた部分を切断する。切断によって得られたラベルは、順次、排出口７から排出される。
【００２３】
操作入力部２７は、ユーザによって操作される操作ボタンやスイッチ等の入力装置を含む。表示駆動部４０は、操作入力部２７より入力されたデータ等を表示パネルに表示するための表示駆動回路を含む。
【００２４】
（３）ラベル発行プログラムが実行されたときの画面表示
次に、プリンタ１にインストールされているラベル発行プログラムが実行されたときの画面表示例について、図３〜５を参照して説明する。
図３は、本実施形態のプリンタ１に表示される画面の例を示す図である。図４は、本実施形態のプリンタ１の画面遷移の例を示す図である。図５は、本実施形態のプリンタ１で印字されるラベルの例を示す図である。
【００２５】
図３は、ラベル発行プログラムが実行されたときに最初に表示される基本画面を示している。基本画面には、以下のエリアが含まれる。
・エリアｗ１…商品コードを入力するエリア
・エリアｗ２…商品の商品名が表示されるエリア
・エリアｗ３…商品の消費期限が表示されるエリア
・エリアｗ４…商品の産地が表示されるエリア
・エリアｗ５…商品の内容量が表示されるエリア
・エリアｗ６…商品の単位が表示されるエリア
・エリアｗ７…商品の単価が表示されるエリア
・エリアｗ８…商品の価格が表示されるエリア
・エリア群ｗｇ９…印字履歴データを呼び出して表示するためのエリア
・エリア群ｗｇ１０…詳細内容が表示されるエリア
・エリアｗ１１…ラベルのプレビューが表示されるエリア
【００２６】
また、図３の基本画面には、印字指示を行うためのボタンｂ１（「印刷」）と、印字するラベルの枚数を指定するための入力エリアｂ１ｓとが含まれる。
【００２７】
図４の画面Ｇ１は、図３と同じ基本画面である。画面Ｇ１において、商品コードのエリアｗ１を操作すると、画面Ｇ２に遷移する。画面Ｇ２は、商品コードを入力するための画面であり、商品コードの入力エリアｗ２０と、テンキーｂｇとが含まれる。テンキーｂｇを操作して入力エリアｗ２０に商品コードが入力され、ボタンｂ２（「確定」）が操作されると、画面Ｇ３に遷移する。画面Ｇ３には、商品コードに対応付けられたデータが後述する商品データベースから読み出されて、対応するエリアに表示される。なお、エリアｗ１１に表示されるプレビューは、画面上でピンチイン操作あるいはピンチアウト操作を行うことで縮小あるいは拡大させるように構成されていることが好ましい。
画面Ｇ３のボタンｂ１を、発行枚数を指定して操作すると、図５に示すラベルが、指定された枚数だけ印字、発行される。
【００２８】
（４）ラベル発行プログラムによる描画データの作成処理および印字処理
次に、ラベル発行プログラムによる描画データの作成処理および印字処理について、図５〜１０を参照して説明する。図５に示すラベルは、ラベル発行プログラムによる描画データの作成処理および印字処理の説明のための例示的なラベルである。
図５に示すラベルにおいて搬送方向は紙面上方であり、ライン毎に印字を行うときの当該ラインと直交する方向である。ラベルの先端は、ライン毎に印字を行うときの先頭ライン側の端である。左端および右端は、図５に示すように便宜的に定める。
【００２９】
（４−１）商品データベースおよび印字レイアウトファイル
図６は、商品データベースのデータ構成例を示す図である。図７は、印字レイアウトファイルのデータ構成例を示す図である。図８は、本実施形態のプリンタ１で行われる処理のフローチャートである。図９および図１０は、本実施形態のプリンタ１での描画データの作成手順を説明する図である。
【００３０】
図６に示す商品データベースと、図７に示す印字レイアウトファイルとは、ストレージ２０４に格納されており、ラベル発行プログラムが実行されるときに適宜参照される。
【００３１】
図６の商品データベースは、１つのレコードが「商品コード」、「商品名」、「消費期限」、「産地」、「内容量」、「単位」、「単価」、「価格」、「履歴」、「詳細内容」の各フィールドのデータからなるデータベースであり、商品コードをキーとして各レコードのデータが読み出される。なお、図６の商品データベースのフィールド群は、複数の項目の一例である。
【００３２】
「商品コード」、「商品名」、「消費期限」、「産地」、「内容量」、「単位」、「単価」、「価格」の各フィールドは、図３のエリアｗ１，ｗ２，ｗ３，ｗ４，ｗ５，ｗ６，ｗ７，ｗ８にそれぞれ対応しており、各フィールドのデータが読み出されたときに、対応するエリアに表示される。
「履歴」フィールドは、図３のエリア群ｗｇ９に対応している。「履歴」フィールドのデータは、所定数（図３の例では３個）の印字履歴データである。
「詳細内容」フィールドは、図３のエリア群ｗｇ１０に対応しており、当該フィールドのデータが読み出されたときにはエリア群ｗｇ１０に表示される。「詳細内容」フィールドのデータは、例えば、商品が販売される店舗名称（店名）や商品の原材料名等、商品に関する詳細なデータである。
【００３３】
図７の印字レイアウトファイルは、ラベルの描画データを作成するときのオブジェクト領域の配置のための設定ファイルであり、オブジェクト領域の配置の際にラベル発行プログラムによって参照される。
印字レイアウトファイルは複数設けられてもよい。その場合、商品コードに対応して、あるいは、ユーザによる選択入力に基づいて、複数の印字レイアウトファイルの中からいずれかの印字レイアウトファイルが選択される。
【００３４】
複数のオブジェクト領域Ｆ１〜Ｆ１４は、ラベルの印字可能範囲に配置されるべき複数のオブジェクト領域を示しており、この順に配置される。つまり、制御部２０は、オブジェクト領域Ｆ１，Ｆ２，…，Ｆ１４の配置順序に従って、複数のオブジェクト領域Ｆ１〜Ｆ１４を配置する。
各オブジェクト領域に対応して、搬送方向の配置、幅方向の配置、および、オブジェクトについてのデータが記述される。なお、本実施形態のプリンタ１は描画データに基づきライン毎に印字を行うが、「搬送方向」とは、当該ラインと直交する第１方向の一例である。「幅方向」は第２方向の一例である。オブジェクト領域の幅は、第２方向におけるオブジェクト領域の長さの一例である。
【００３５】
図７の印字レイアウトファイルにおいて、オブジェクト領域Ｆ１〜Ｆ１４の中で配置すべきオブジェクト領域に対応して、搬送方向の配置のデータとして、「参照オブジェクト領域」と「オフセット」のデータが含まれる。
「参照オブジェクト領域」とは、配置すべきオブジェクト領域が連結されるように指定された、配置済みのオブジェクト領域を意味する。
「オフセット」は、配置すべきオブジェクト領域の参照オブジェクト領域からの搬送方向におけるオフセット量を意味する。例えば、オフセットが「０」であることは、参照オブジェクト領域を基準として、参照オブジェクト領域に接するようにして配置すべきオブジェクト領域が配置されることを意味している。
【００３６】
図７の印字レイアウトファイルにおいて、配置すべきオブジェクト領域に対応して、幅方向の配置のデータとして、「基準位置」、「左／右寄せ」、および「オフセット」のデータが含まれる。配置すべきオブジェクト領域の幅方向における位置決めは、幅方向の配置のデータに基づき、配置済みのオブジェクト領域の幅方向におけるいずれか一方の端、または、ラベルの印字可能範囲の幅方向における左端若しくは右端を基準にして行われる。
「基準位置」は、幅方向に配置すべきオブジェクト領域を配置するときの基準となる位置を示しており、配置済みのオブジェクト領域、またはラベルの印字可能範囲の左端若しくは右端である。
「左／右寄せ」は、配置すべきオブジェクト領域を基準位置に対して左寄せに配置するのか、あるいは右寄せに配置するのかを示す。
「オフセット」は、基準位置に対して左寄せあるいは右寄せを行う場合の、基準位置からオフセット量を意味する。例えば、オフセットが「０」であることは、幅方向において基準位置に接するようにして配置すべきオブジェクト領域が配置されることを意味している。
【００３７】
図７の印字レイアウトファイルにおいて、「オブジェクト」は、配置すべきオブジェクト領域に配置されるオブジェクトのデータである。図７に示す例では、オブジェクトが文字列の場合には、「文字形式」、「長さ」、「改行位置」についてのデータが記述される。オブジェクトが文字列以外（その他）の場合には、コードの種類（バーコード、ＱＲコード（登録商標）等）のデータや画像データが記述される。
オブジェクトが文字列の場合において「文字形式」は、文字列のフォント、サイズ、半角／全角等のデータである。「長さ」は、文字列の文字数のデータである。「改行位置」は、文字列を改行する場合の改行位置のデータ（何文字で改行するかの情報）である。
なお、図７には図示していないが、印字レイアウトファイルには、オブジェクトをオブジェクト領域内に配置するときの位置および配置態様についての情報が含まれてもよい。例えば、左寄せ、右寄せ、中央配置、均等配置などの情報である。
【００３８】
オブジェクトがコード情報または画像（「コード情報等」という。）である場合には、対応するオブジェクト領域の高さ（つまり、搬送方向の長さ）は、コード情報等の縦の長さによって予め設定されている。オブジェクトがコード情報等である場合には、対応するオブジェクト領域の幅方向の長さは、コード情報等の横の長さ以上の値に予め設定されるか、または、コード情報等の横の長さに応じた可変長である。
【００３９】
オブジェクトが文字列であって改行位置のデータが含まれていない場合には、対応するオブジェクト領域の幅は、固定長であるか、または、当該文字列の長さに以上の値に予め設定された、若しくは、当該文字列の長さに応じた可変長である。文字列に対応するオブジェクト領域の高さは、当該文字列の文字形式に応じて、当該文字列がオブジェクト領域内に収まるように設定される。
オブジェクトが文字列であって改行位置のデータが含まれている場合には、対応するオブジェクト領域の幅は、当該改行位置によって決定される。その場合のオブジェクト領域の高さは、当該文字列の文字数で設定される可変長である。
【００４０】
オブジェクト領域の幅が可変長である場合、オブジェクト領域のラベルの幅方向におけるオブジェクト領域の幅が当該オブジェクト領域に含まれるオブジェクトの大きさ（例えば、文字数の長さやコード情報の大きさ等）によって決定される。オブジェクト領域の幅を可変長とすることで、オブジェクトの内容に応じてオブジェクト領域の幅を柔軟に決定することができ、幅方向において最適なオブジェクト領域の配置とすることができる。
【００４１】
（４−２）ラベル発行プログラムの実行フロー
以下、図８のフローチャートについて、図９および図１０に示す具体的な描画データの作成手順を参照しながら説明する。図８は、プリンタ１の制御部２０がラベル発行プログラムを実行したときの処理を示すフローチャートである。図９および図１０は、それぞれ本実施形態のプリンタ１において、図５に例示したラベルに対応する描画データの作成手順を示している。
【００４２】
図８のフローチャートでは、制御部２０は、図３に示した画面においてエリアｗ１（「商品コード」）に対するユーザの操作入力があった場合（ステップＳ２０：ＹＥＳ）、商品データベース（図６）を参照して、対応するレコードのデータを読み出す（ステップＳ２２）。本実施形態の例では、商品コードとして「０４５１９」の入力があり、当該商品コードのレコードのデータが読み出された場合が想定される。
【００４３】
ステップＳ２４〜Ｓ２８は、印字レイアウトファイルを参照してオブジェクト領域Ｆ１〜Ｆ１４（図７参照）を順に配置する処理である。すなわち、制御部２０は、印字レイアウトファイルを参照して、配置すべきオブジェクト領域の起点を決定する(ステップＳ２４)。当該起点は、印字レイアウトファイルの搬送方向の配置および幅方向の配置のデータを参照して決定される。次いで制御部２０は、配置すべきオブジェクト領域に対応するオブジェクトを含むようにして、配置すべきオブジェクト領域を配置する（ステップＳ２６）。
【００４４】
ステップＳ２４，Ｓ２６の処理は具体的には以下のとおりである。
配置すべきオブジェクト領域がオブジェクト領域Ｆ１である場合、制御部２０は、搬送方向においてラベルの先端であって、かつ幅方向においてラベルの印字可能範囲の左端となる点をオブジェクト領域Ｆ１の起点ｐ１として決定する。次いで制御部２０は、オブジェクト領域Ｆ１に対応するオブジェクトである所定サイズのバーコードをオブジェクト領域Ｆ１内に含むようにしてオブジェクト領域Ｆ１を配置する。その結果、図９の状態Ｓ１に示すようにオブジェクト領域Ｆ１が配置される。
配置すべきオブジェクト領域がオブジェクト領域Ｆ２である場合、制御部２０は、搬送方向においてラベルの先端であって、かつ幅方向においてオブジェクト領域Ｆ１に左寄せした点をオブジェクト領域Ｆ２の配置の起点ｐ２として決定する。次いで制御部２０は、オブジェクト領域Ｆ２に対応するオブジェクトである文字列をオブジェクト領域Ｆ２内に含むようにしてオブジェクト領域Ｆ２を配置する。その結果、図９の状態Ｓ２に示すようにオブジェクト領域Ｆ２が配置される。オブジェクト領域Ｆ２には、「価格」の項目に対応する文字列として「１９８」が含まれる。
【００４５】
配置すべきオブジェクト領域がオブジェクト領域Ｆ３である場合、制御部２０は、搬送方向においてオブジェクト領域Ｆ２に連結し、かつ幅方向においてオブジェクト領域Ｆ１に左寄せした点をオブジェクト領域Ｆ３の起点ｐ３として決定する。次いで制御部２０は、オブジェクト領域Ｆ３に対応するオブジェクトである文字列をオブジェクト領域Ｆ３内に含むようにしてオブジェクト領域Ｆ３を配置する。その結果、図９の状態Ｓ３に示すようにオブジェクト領域Ｆ３が配置される。オブジェクト領域Ｆ３には、「本体価格（円）」という文字列を有する画像が含まれる。
配置すべきオブジェクト領域がオブジェクト領域Ｆ４である場合、制御部２０は、搬送方向においてオブジェクト領域Ｆ１に連結し、かつ幅方向においてラベルの印字可能範囲の左端となる点をオブジェクト領域Ｆ４の起点ｐ４として決定する。次いで制御部２０は、オブジェクト領域Ｆ４に対応するオブジェクトである文字列をオブジェクト領域Ｆ４内に含むようにしてオブジェクト領域Ｆ４を配置する。その結果、図９の状態Ｓ４に示すようにオブジェクト領域Ｆ４が配置される。オブジェクト領域Ｆ４には、「（税込価格」という文字列が含まれる。
配置すべきオブジェクト領域がオブジェクト領域Ｆ５である場合、制御部２０は、搬送方向においてオブジェクト領域Ｆ３に連結し、かつ幅方向においてオブジェクト領域Ｆ４に左寄せした点をオブジェクト領域Ｆ５の起点ｐ５として決定する。次いで制御部２０は、オブジェクト領域Ｆ５に対応するオブジェクトである文字列をオブジェクト領域Ｆ５内に含むようにしてオブジェクト領域Ｆ５を配置する。その結果、図９の状態Ｓ５に示すようにオブジェクト領域Ｆ５が配置される。オブジェクト領域Ｆ５には、「２１３円）」という文字列が含まれる。
【００４６】
配置すべきオブジェクト領域がオブジェクト領域Ｆ６，Ｆ７，Ｆ８である場合、制御部２０は、搬送方向においてそれぞれオブジェクト領域Ｆ４，Ｆ６，Ｆ７に連結し、かつ幅方向においてラベルの印字可能範囲の左端となる点を起点ｐ６，ｐ７，ｐ８として順に決定し、各オブジェクト領域内にオブジェクトである文字列を配置する。その結果、図９の状態Ｓ６，Ｓ７および図１０の状態Ｓ８に示すように、オブジェクト領域Ｆ６，Ｆ７，Ｆ８が順に配置される。オブジェクト領域Ｆ６には、「産地」の項目に対応する文字列として「ニュージーランド産」という文字列が含まれる。オブジェクト領域Ｆ７には、「商品名」の項目に対応する文字列として「かぼちゃ（輸入）」が含まれる。オブジェクト領域Ｆ８には、「１００ｇ当り  税込(円)」という文字列が含まれる。
【００４７】
配置すべきオブジェクト領域がオブジェクト領域Ｆ９〜Ｆ１２である場合、制御部２０は、それぞれ、搬送方向においてオブジェクト領域Ｆ７に連結し、かつ幅方向においてオブジェクト領域Ｆ８〜Ｆ１１に左寄せした点を起点ｐ９〜ｐ１２として順に決定し、各オブジェクト領域内にオブジェクトである文字列を配置する。その結果、図１０の状態Ｓ９に示すように、オブジェクト領域Ｆ９〜Ｆ１２が順に配置される。
【００４８】
配置すべきオブジェクト領域がオブジェクト領域Ｆ１３である場合、制御部２０は、搬送方向においてオブジェクト領域Ｆ８に連結し、かつ幅方向においてラベルの印字可能範囲の左端となる点をオブジェクト領域Ｆ１３の配置の起点ｐ１３として決定する。次いで制御部２０は、オブジェクト領域Ｆ１３に対応するオブジェクトである文字列をオブジェクト領域Ｆ１３内に含むようにしてオブジェクト領域Ｆ１３を配置する。その結果、図１０の状態Ｓ１０に示すようにオブジェクト領域Ｆ４が配置される。オブジェクト領域Ｆ１３に対応する項目は「詳細内容」であり、商品の販売者の住所を示す文字列がオブジェクト領域Ｆ１３内に含まれる。
配置すべきオブジェクト領域がオブジェクト領域Ｆ１４である場合、制御部２０は、搬送方向においてオブジェクト領域Ｆ１２に連結し、かつ幅方向においてオブジェクト領域Ｆ１３に左寄せした点をオブジェクト領域Ｆ１４の配置の起点ｐ１４として決定する。次いで制御部２０は、オブジェクト領域Ｆ１４に対応するオブジェクトである画像をオブジェクト領域Ｆ１４内に含むようにしてオブジェクト領域Ｆ１４を配置する。その結果、図１０の状態Ｓ１１に示すようにオブジェクト領域Ｆ１４が配置される。
【００４９】
配置すべきすべてのオブジェクト領域Ｆ１〜Ｆ１４の配置が終了すると（ステップＳ２８：ＹＥＳ）、制御部２０は、配置されたオブジェクト領域Ｆ１〜Ｆ１４に基づいて描画データを作成する（ステップＳ３０）。次いで制御部２０は、作成した描画データに基づくプレビュー画面が表示パネルに表示されるように表示駆動部４０を制御する（ステップＳ３２）。
表示パネルにおいて入力エリアｂ１ｓ（図３参照）に印字枚数が入力された状態でボタンｂ１（「印刷」）の操作入力が行われたことにより印字指示を受け付けると（ステップＳ３４：ＹＥＳ）、制御部２０はラベルの印字を実行する（ステップＳ３６）。それによって、入力された印字枚数のラベルが発行される。
【００５０】
以上説明したように、本実施形態のプリンタ１は、複数の項目の各々に対応するオブジェクトを含む複数のオブジェクト領域を一方向に積み重ねて配置し、描画データを作成する。そのため、ラベルのオブジェクト領域の配置を最適化して効率良く印字することが可能となる。しかも、印字レイアウトファイルを参照して、配置すべきオブジェクト領域の起点を既に配置されたオブジェクト領域あるいは印字可能領域の端を基準に決定し、当該起点を基に配置すべきオブジェクト領域を配置するだけでよいため、オブジェクト領域あるいはオブジェクトを配置するときに特別な計算を要しない。そのため、本実施形態のプリンタ１によれば、オブジェクト領域を配置するときの処理を効率的に行うことができる。
【００５１】
（５）変形例
（５−１）変形例１
図７に例示した印字レイアウトファイルは、搬送方向および幅方向の配置のオフセットがすべてゼロである。そのため、配置された一つのオブジェクト領域を基準として当該オブジェクト領域に接するように次に配置すべきオブジェクト領域が配置される。そのため、特に搬送方向において隣接するオブジェクト領域に隙間がないように複数のオブジェクト領域が積み上げられるため、隙間が僅かでもある場合と比較してさらに効率良くラベルに印字可能となる利点がある。
なお、配置された一つのオブジェクト領域を基準として当該オブジェクト領域に接するように次に配置すべきオブジェクト領域が配置されなくてもよい。そのような例を図１１に示す。図１１Ａ〜１１Ｄはそれぞれ、図５に例示したラベルにおけるオブジェクト領域Ｆ２（図９参照）の配置の変形例を示す図であり、オフセットがゼロでない場合である。
【００５２】
図１１Ａは、印字レイアウトファイルにおいてオブジェクト領域Ｆ２ａに対して搬送方向の配置におけるオフセットがｄ１に設定され、幅方向におけるオフセットがゼロに設定されている場合のオブジェクト領域Ｆ２ａの配置例を示している。
【００５３】
図１１Ｂは、印字レイアウトファイルにおいてオブジェクト領域Ｆ２ｂに対して搬送方向の配置におけるオフセットがゼロに設定され、幅方向におけるオフセットはゼロであるが右端を基準にして右寄せに設定されている場合のオブジェクト領域Ｆ２ｂの配置例を示している。この例では、オブジェクト領域Ｆ２ｂに含まれる文字列に応じてオブジェクト領域Ｆ２ｂの幅方向の長さが可変長となっている。その結果、オブジェクト領域Ｆ１とオブジェクト領域Ｆ２ｂの間に隙間が生じている。
【００５４】
図１１Ｃは、印字レイアウトファイルにおいてオブジェクト領域Ｆ３に対して搬送方向の配置におけるオフセットがｄ２に設定されている場合のオブジェクト領域Ｆ２ｃの配置例を示している。この例では、オブジェクト領域Ｆ２ｃに含まれる文字列のサイズがオブジェクト領域Ｆ２よりも小さく、オブジェクト領域Ｆ２ｃの高さがオブジェクト領域Ｆ２よりも低く設定されている。
この例では、オブジェクト領域Ｆ２ｃに含まれる文字列のオブジェクト領域Ｆ２ｃ内での位置が中央に設定されている場合を示している。各オブジェクト領域に含まれるオブジェクトのオブジェクト領域内での位置は、印字レイアウトファイルに設定されていてもよい。
【００５５】
図１１Ｄは、印字レイアウトファイルにおいてオブジェクト領域Ｆ２ｄに対して搬送方向の配置におけるオフセットがｄ３に設定され、幅方向におけるオフセットがｄ４に設定されている場合のオブジェクト領域Ｆ２ｄの配置例を示している。この例では、オブジェクト領域Ｆ２ｄに含まれる文字列のオブジェクト領域Ｆ２ｄ内での位置が左寄せに設定されている場合を示している。
【００５６】
（５−２）変形例２
制御部２０は、配置順序においてＮ番目に配置すべきオブジェクト領域にオブジェクトが含まれていない場合には、Ｎ番目に配置すべきオブジェクト領域に代えて、Ｎ＋１番目以降に配置すべきオブジェクト領域を配置することが好ましい。かかる処理の例を図１２に示す。図１２は、本実施形態のプリンタ１での描画データの作成手順の変形例を説明する図である。
図１２は、図７に例示した印字レイアウトファイルにおいてオブジェクト領域Ｆ６に対応するオブジェクトが存在しない場合の例である。この例では、オブジェクト領域Ｆ７が配置すべきオブジェクト領域であるときに、オブジェクト領域Ｆ６にオブジェクトが含まれていないため（状態Ｓ６ａ）、オブジェクト領域Ｆ６に代えてオブジェクト領域Ｆ７を配置する。このように配置することで、ラベルのオブジェクト領域の配置をさらに最適化して、より効率良く印字することが可能となる。
【００５７】
（５−３）変形例３
図７に示した印字レイアウトファイルの例では、改行位置が設定されていない場合である。それに対して、図１３は、改行位置が設定された印字レイアウトファイルに基づいて描画データが作成される例を示している。
図１３に例示するラベルでは、オブジェクト領域ＦＤに対応して「原材料名」の項目が設けられ、当該項目に対応するオブジェクトは、比較的長い文字数の文字列である。図１３に示す例では、オブジェクト領域ＦＤの幅が固定長（具体的には、ラベルの印字可能範囲の左右端の距離）に設定され、文字列の長さが当該固定長を超える場合には、オブジェクト領域ＦＤ内で文字列を改行して文字列が配置される。
固定長の設定や改行位置の設定は任意に行うことができる。適切にオブジェクト領域の固定長および改行位置を設定することで、表示内容の視認性を確保することができる。
【００５８】
以上、本発明のプリンタおよびプログラムの一実施形態について詳細に説明したが、本発明は上記の実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。
例えば、上述した実施形態では、搬送方向に複数のオブジェクト領域を積み重ねて配置することで描画データを作成する場合について説明したが、その限りではない。搬送方向とは反対の方向に複数のオブジェクト領域を積み重ねて配置してもよいし、ラベル上の任意の方向に複数のオブジェクト領域を積み重ねてもよい。
【００５９】
なお、図９および図１０を参照して説明した例では、搬送方向に沿ってオブジェクト領域Ｆ１，Ｆ２，…，Ｆ１４の配置順序に従って配置したが、その逆に、搬送方向に沿ってオブジェクト領域Ｆ１４，Ｆ１３，…，Ｆ１の配置順序に従って配置してもよい。その場合、各配置順序に配置されるオブジェクトの向きは、搬送方向の逆向きとなる。それによって、ラベルの向きが搬送方向とは逆になって排出される。
【００６０】
上述した実施形態では、商品データベースおよび印字レイアウトファイルをプリンタ１内の記憶装置（ストレージ）に保存し、制御部２０がストレージ２０４にアクセスすることにより本発明の取得手段が実現される例について示したが、その限りではない。プリンタ１が外部の記憶装置にアクセスして商品データベースからデータを読み出し、あるいは印字レイアウトファイルを参照してもよい。つまり、本発明の取得手段は、プリンタ１が通信可能な外部装置に例えばネットワークを介してアクセスし、複数の項目の各々に対応するオブジェクトを取得してもよい。
【符号の説明】
【００６１】
１…プリンタ
２…筐体
３…カバー
３１…シャフト
５…プラテンローラ
６…サーマルヘッド
８…収容部
１３，１７…補助ローラ
２０…制御部
２０１…ＣＰＵ
２０２…ＲＯＭ
２０３…ＲＡＭ
２０４…ストレージ
２０５…モータ制御部
２０７…ヘッド駆動部
２０８…カッタ制御部
２５…ステッピングモータ
４０…表示駆動部
Ｒ…ロール紙
Ｐ…連続紙
Ｇ１〜Ｇ３…画面
Ｆ１〜Ｆ１４，ＦＤ…オブジェクト領域
ｗ１〜ｗ１１…エリア
ｗｇ９，ｗｇ１０…エリア群
ｂ１，ｂ２…ボタン
ｂ１ｓ，ｗ２０…入力エリア
【図１】
2020006510.tif 000003
【図２】
2020006510.tif 000004
【図３】
2020006510.tif 000005
【図４】
2020006510.tif 000006
【図５】
2020006510.tif 000007
【図６】
2020006510.tif 000008
【図７】
2020006510.tif 000009
【図８】
2020006510.tif 000010
【図９】
2020006510.tif 000011
【図１０】
2020006510.tif 000012
【図１１】
2020006510.tif 000013
【図１２】
2020006510.tif 000014
【図１３】
2020006510.tif 000015