(57)【要約】【課題】ハンドヘルドプリンタを用いた画像形成出力に際し、品質の良い画像形成を容易に行う。【解決手段】ユーザの手動走査によって記録媒体に画像を形成する画像形成部と、手動走査による画像形成部の記録媒体に対する移動量を検知する移動量検知部と、検知された移動量と、出力対象である画像が形成される記録媒体に仮想的に形成される画像領域と、当該画像領域に対する所定の領域と、に基づいて、画像形成部の位置が画像領域に含まれていないと判定された場合に、その旨の報知情報を出力する報知部と、を備える画像形成装置による。【選択図】図１
2020040383.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの手動走査によって記録媒体に画像を形成する画像形成装置であって、
前記記録媒体に画像を形成する画像形成部と、
前記手動走査による前記画像形成部の前記記録媒体に対する移動量を検知する移動量検知部と、
検知された前記移動量と、出力対象である前記画像が形成される前記記録媒体に仮想的に形成される画像領域と、当該画像領域に対する所定の領域と、に基づいて、前記画像形成部の位置が前記画像領域に含まれていないと判定された場合に、その旨の報知情報を出力する報知部と、
を備えることを特徴とする画像形成装置。
【請求項２】
前記報知部は、
前記画像形成部の位置が前記画像領域に含まれていると判定された場合に、前記報知情報を解除する、
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記所定の領域は、
前記画像領域の周囲に所定の余白を設けた余白領域とする、
ことを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記所定の領域は、
前記画像領域の周囲に所定の第一マージンを設けた第一領域と、前記画像領域の周囲に所定の第二マージンとを設けた第二領域とであって、
前記第一マージンは前記第二マージンよりも大きく設定されていて、
前記画像形成部を前記画像領域に近づくよう走査したときは、前記第二領域と前記画像形成部の位置とに基づいて、当該画像形成部の位置が前記所定の領域に含まれるか否かを判定し、
前記画像形成部を前記画像領域から遠ざかるように走査したときは、前記第一領域と前記画像形成部の位置とに基づいて、当該画像形成部の位置が前記所定の領域に含まれるか否かを判定する
ことを特徴とする請求項１乃至３のいずれか一項に記載の画像形成装置。
【請求項５】
前記報知部は、
前記所定の領域と前記画像形成部の位置との比較の結果、前記画像形成部の位置が前記所定の領域に含まれておらず、さらに、前記画像形成部の位置が前記所定の領域から遠ざかっていると判定された場合には、前記判定の結果を前記ユーザに通知する、
ことを特徴とする請求項１乃至４のいずれか一項に記載の画像形成装置。
【請求項６】
前記画像形成部が前記所定の領域に含まれている旨を示す情報を記憶する記憶部を備え、
前記報知部は、
前記情報が、前記記憶部に記憶されている場合に前記画像形成部の位置が前記所定の領域に含まれていないと判断されたとき、その旨を前記画像形成装置のユーザに報知する、
ことを特徴とする請求項１乃至５のいずれか一項に記載の画像形成装置。
【請求項７】
前記報知部は、
画像形成装置に設けられた表示機構もしくは発音機構によって前記ユーザに報知情報を出力する請求項１乃至６のいずれか一項に記載の画像形成装置。
【請求項８】
画像データを送信する情報処理端末と、前記情報処理端末から受信した前記画像データに基づいてユーザの手動走査によって記録媒体に画像を形成する画像形成装置を含む画像形成システムであって、
前記画像形成装置は、
前記記録媒体に画像を形成する画像形成部と、
前記手動走査による前記画像形成部の前記記録媒体に対する移動量を検知する移動量検知部と、
検知された前記移動量と、出力対象である前記画像が形成される前記記録媒体に仮想的に形成される画像領域と、当該画像領域に対する所定の領域と、に基づいて、前記画像形成部の位置が前記画像領域に含まれていないと判定された場合に、その旨の報知情報を出力する報知部と、
を備え、
前記情報処理端末は、
前記報知情報に基づいてその旨の表示を行う表示部を備える、
ことを特徴とする画像形成システム。
【請求項９】
前記画像形成装置は、前記所定の領域と前記画像形成部の位置とを比較して、前記画像形成部の位置が前記所定の領域に含まれるか否かを判定する比較判定部を備える、
ことを特徴とする請求項８に記載の画像形成システム。
【請求項１０】
ユーザの手動走査によって記録媒体に画像を形成する画像形成装置の制御方法であって、
前記記録媒体に画像を形成する画像形成部が前記手動走査により前記記録媒体に対する移動量を検知し、
検知された前記移動量と、出力対象である前記画像が形成される前記記録媒体に仮想的に形成される画像領域と、当該画像領域に対する所定の領域と、に基づいて、前記画像形成部の位置が前記画像領域に含まれていないと判定された場合に、その旨の報知情報を出力する、
ことを特徴とする制御方法。
【請求項１１】
ユーザの手動走査によって記録媒体に画像を形成する画像形成装置の制御プログラムであって、
前記記録媒体に画像を形成する画像形成部を動作させるステップと、
前記手動走査による前記画像形成部の前記記録媒体に対する移動量を検知するステップと、
検知された前記移動量と、出力対象である前記画像が形成される前記記録媒体に仮想的に形成される画像領域と、当該画像領域に対する所定の領域と、に基づいて、前記画像形成部の位置が前記画像領域に含まれていないと判定された場合に、その旨の報知情報を出力するステップと、
をコンピュータに実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成システム、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
近年、電子化された情報の出力に用いる画像形成装置が欠かせない機器となっている。画像形成装置を利用して画像データを出力するコンピュータなど機器（画像情報出力装置）の小型化や可搬化に伴って、画像形成装置に対しても小型化及び可搬化（携帯化）のニーズは高まっている。
【０００３】
そこで、画像形成装置から紙搬送機構を排除して小型化を図った「ハンドヘルドモバイルプリンタ」が実用化されつつある。ハンドヘルドモバイルプリンタは、小型かつ可搬できる画像形成装置であって、画像情報出力装置から送信された画像データに基づいて画像形成処理の実行するときに、利用者が手動で画像形成対象に対する走査を行うものである。
【０００４】
ハンドヘルドプリンタに関連する技術として、記録媒体に対向しているときに画像形成出力を実行する技術が既に知られている（特許文献１参照）。特許文献１に開示された技術では、ハンドヘルドプリンタをユーザが把持した状態において、印刷対象物である記録媒体を検知したときにのみインクを吐出する記録ヘッドを駆動させて記録媒体上に画像を形成する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ハンドヘルドプリンタは、画像を形成する対象物（記録媒体）における所定の位置であってユーザが指定する位置から走査をしてインクを記録媒体に吐出することにより画像を形成する。したがって、ユーザが所望する位置に所望する画像を形成するには、少なくとも記録媒体における目標位置に対して正確に、ユーザがハンドヘルドプリンタを走査する必要がある。
【０００６】
しかし、特許文献１に開示されている技術は、記録媒体の有無のみを検知して画像を形成するので、ユーザは、画像形成の目標位置に対してハンドヘルドプリンタを走査しているのか否かを認識できない。したがって、特許文献１に開示されている技術によると、ユーザに不要な走査を行わせるという問題がある。
【０００７】
本発明は、このような問題を解決するためになされたものであり、画像形成出力を行う際に、ハンドヘルドプリンタの不要な走査を減らすことを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様は、ユーザの手動走査により当該記録媒体に画像を形成する画像形成装置であって、前記記録媒体に画像を形成する画像形成部と、前記手動走査による前記画像形成部の前記記録媒体に対する移動量を検知する移動量検知部と、検知された前記移動量と、出力対象である前記画像が形成される前記記録媒体に仮想的に形成される画像領域と、当該画像領域に対する所定の領域と、に基づいて、前記画像形成部の位置が前記画像領域に含まれていないと判定された場合に、その旨の報知情報を出力する報知部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、画像形成出力を行う際に、ハンドヘルドプリンタの不要な走査を減らすことができる。
【図面の簡単な説明】
【００１０】
【図１】本発明に係る画像形成システムの実施形態を模式的に示す図。
【図２】本発明に係る画像形成装置の実施形態であるハンドヘルドプリンタのハードウェア構成を示すブロック図。
【図３】上記ハンドヘルドプリンタの制御部の構成を示す機能ブロック図。
【図４】上記ハンドヘルドプリンタの判定処理部の内部構成を示す機能ブロック図。
【図５】本実施形態に係る画像データ送信端末の構成を示すハードウェアブロック図。
【図６】上記画像データ送信端末のコントローラの内部構成を示す機能ブロック図。
【図７】上記ハンドヘルドプリンタの現在位置と画像データが形成される領域との位置関係を例示した図。
【図８】上記ハンドヘルドプリンタの起動から画像形成の終了までの動作手順を示すシーケンス図。
【図９】上記ハンドヘルドプリンタの印刷実行処理の流れを示すフローチャート。
【図１０】上記ハンドヘルドプリンタで実行される画像領域外通知処理の流れの例を示すフローチャート。
【図１１】上記画像領域通知処理において用いられる複数の閾値と画像領域との関係を示す図。
【図１２】上記ハンドヘルドプリンタの位置の移動に係る閾値の変化を説明するための図。
【図１３】上記ハンドヘルドプリンタで実行される画像領域外通知処理の流れの別の例を示すフローチャート。
【図１４】上記ハンドヘルドプリンタで実行される画像領域外通知処理の流れの更に別の例を示すフローチャート。
【図１５】上記ハンドヘルドプリンタに係る画像形成の出力態様の例を示す模式図。
【図１６】上記ハンドヘルドプリンタに係る画像形成の出力態様の別の例を示す模式図。
【図１７】上記ハンドヘルドプリンタに係る画像形成の出力態様のさらに別の例を示す模式図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施形態を説明する。図１は、本実施形態に係る画像形成システム１０００において、画像形成装置の実施形態であって液滴吐出装置を備えるハンドヘルドプリンタ１を使用して行う画像形成の様子を模式的に示す図である。本実施形態に係る画像形成システム１０００は、ハンドヘルドプリンタ１および画像情報出力装置の実施形態となる画像データ送信端末２によって構成される。ハンドヘルドプリンタ１は、スマートフォンやＰＣ等からなる画像データ送信端末２から画像データを受信し、その画像データに基づく画像を記録媒体３に形成する。
【００１２】
以下、本発明に係る画像形成装置の実施形態として、図１のようなハンドヘルドプリンタ１を例示する。このハンドヘルドプリンタ１は、可搬型の画像形成装置であり、画像形成処理を実行するための開始操作はユーザ４の操作によるものであり、また、画像形成動作時に必要となる走査は、ユーザ４の手動によるものである。すなわち、本実施形態に係るハンドヘルドプリンタ１は、ユーザ４によって、記録媒体３の所定の位置及び範囲に対して手動走査を行うことによって、記録媒体３上に画像を形成する。
【００１３】
図１は、ハンドヘルドプリンタ１と、画情報出力機器の実施形態である画像データ送信端末２を含んで構成される画像形成システム１０００の全体像であって、ハンドヘルドプリンタ１を使用した画像形成処理（画像形成操作）を行う様子を模式的に示す図である。ハンドヘルドプリンタ１は、特定の処理動作に用いるデータの送信元に相当する外部装置の実施形態である画像データ送信端末２から受信した画像データに応じて、特定の処理動作の例である画像形成処理を行う。
【００１４】
画像データ送信端末２には、無線接続インタフェース（以下、「Ｉ／Ｆ」と表記する。）を介して接続するスマートフォンなどの無線端末２ａや、有線接続Ｉ／Ｆを介して接続するＰＣなどの有線端末２ｂが含まれる。以下、本明細書において、通信Ｉ／Ｆの形式を限定しない情報出力機器に基づく説明をするときは、単に「画像データ送信端末２」と表記する。
【００１５】
図１に示すように、ハンドヘルドプリンタ１が画像データ送信端末２から画像データを受信して記録媒体３に対する画像形成動作を実行するときには、ユーザ４が、記録媒体３に対してハンドヘルドプリンタ１を手動で走査させる。ハンドヘルドプリンタ１は、記録媒体３に対し、自己の位置に応じてインク等の着色剤を含む液滴を吐出する。これによって、ハンドヘルドプリンタ１を用いて画像データ送信端末２から受信した画像データに基づく画像形成出力が実行される。
【００１６】
本実施形態において記録媒体３は、図１に例示するような、ノートやコピー用紙等の平面部分を有する部材とする。例えば、定形用紙などである。なお、記録媒体３として適用可能な部材は、ハンドヘルドプリンタ１による手動走査が可能なものであれば、その材質や形状を特には問わないものとする。したがって、記録媒体３として、手動走査に伴って移動するハンドヘルドプリンタ１の位置が検知可能な媒体であればよく、曲面を含む媒体であってもよい。
【００１７】
ハンドヘルドプリンタ１は、特定の処理動作の一種である画像形成動作を行うために、外部装置からの画像データを受信する。そして、画像形成動作を開始する動作開始トリガはユーザ４の操作によるものであり、動作開始トリガの後に、ユーザ４が記録媒体３上の所定の領域に対して手動走査を行う。
【００１８】
［ハンドヘルドプリンタ１のハードウェア構成］
次に、ハンドヘルドプリンタ１のハードウェア構成について図２を参照して説明する。図２に示すように、ハンドヘルドプリンタ１は、一般的なコンピュータと同様のハードウェアを備え、制御部１０１、電源回路１４０、電源１４１、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３、（Ｏｐｅｒａｔｉｏｎ  Ｐａｎｅｌ  Ｕｎｉｔ）１０４、ナビゲーションセンサ１０５、ＩＪ（インクジェット）記録ヘッド駆動回路１０７、ＩＪ記録ヘッド１０８、通信Ｉ／Ｆ１０９及びオーディオスピーカ１６０を含んで構成される。
【００１９】
制御部１０１は、ハンドヘルドプリンタ１全体の動作を制御する。制御部１０１の機能構成については後述する。また、制御部１０１には、ＤＲＡＭ１０２、ＲＯＭ１０３、ＯＰＵ１０４、ナビゲーションセンサ１０５、ジャイロセンサ１０６、ＩＪ記録ヘッド駆動回路１０７、通信Ｉ／Ｆ１０９及びオーディオスピーカ１６０が電気的に接続されている。
【００２０】
電源１４１としては、乾電池、充電池、太陽電池、燃料電池等を用いることができる。電源回路１４０は、図２の点線１００で囲まれた各部とそれぞれ電気線によって接続されており、電源１４１が供給する電力を、ハンドヘルドプリンタ１を構成する各部に分配する。
【００２１】
また、電源回路１４０は、ハンドヘルドプリンタ１を構成する各部に電力を分配するに際し、電源１４１の電圧を各部に適した電圧に昇圧もしくは降圧する。なお、電源１４１として充放電が可能な電池が用いられる場合はこれを充電する機能を備える。例えば、電源回路１４０が、ハンドヘルドプリンタ１に対する商用電源の接続を検知して電源１４１を充電するための回路に接続させる。
【００２２】
ＤＲＡＭ１０２は、揮発性の記憶媒体であり、通信Ｉ／Ｆ１０９を介して画像データ送信端末２から受信した画像データを記憶し、または、ＲＯＭ１０３から展開されたファームウェアを記録する。ＤＲＡＭ１０２は、制御部１０１のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１１（図３を参照）がファームウェアを実行する際のワークメモリとして用いられる。
【００２３】
ＲＯＭ１０３は、不揮発性の記憶媒体であり、制御部１０１が実行するハンドヘルドプリンタ１のハードウェア制御を行うためのファームウェアなどの各種プログラムを格納している。また、ＲＯＭ１０３には、ＩＪ記録ヘッド１０８に吐出動作を行わせるための駆動波形データや、ハンドヘルドプリンタ１の初期設定データ等も格納している。
【００２４】
ＯＰＵ１０４は、ユーザ４からの操作を受け付ける操作部と、ハンドヘルドプリンタ１の状態を表示するための表示部を兼ねる操作表示部であって、ＬＥＤ、スイッチ（例えば、ＬＥＤスイッチや電源スイッチ）等によって構成される。また、ＯＰＵ１０４として、液晶パネルやタッチパネル式のディスプレイ等の表示機構、音を発する発音機構を用いてもよい。ＯＰＵ１０４に対するユーザ４の操作は、ハンドヘルドプリンタ１に画像形成動作（特定の処理動作）の実行開始を指示する「動作開始トリガ」や、画像形成動作の終了を指示する「動作終了トリガ」として、制御部１０１において認識される。ＯＰＵ１０４は、操作受付手段を構成する。
【００２５】
ナビゲーションセンサ１０５は、ハンドヘルドプリンタ１や画像形成部であるＩＪ記録ヘッド１０８の位置に関して、その移動量、加速度などをサンプリング周期ごとに検知して出力するセンサである。ナビゲーションセンサ１０５の構成として、例えば、発光ダイオードやレーザなどの光源と、記録媒体３を撮像する撮像素子とを組み合わせた光学式距離測定センサが用いられる。なお、ナビゲーションセンサ１０５の構成として加速度センサを用いてもよい。
【００２６】
ナビゲーションセンサ１０５を構成する光学式距離測定センサは、記録媒体３に対するユーザ４の操作によるハンドヘルドプリンタ１の走査に応じて、記録媒体３の表面の色や明るさの変化点であるエッジを検知することができる。ナビゲーションセンサ１０５によるエッジの検知信号は制御部１０１に入力される。制御部１０１では、エッジの検知信号からエッジ間の距離を算出し、この算出した距離に基づいてハンドヘルドプリンタ１の移動量を算出する。
【００２７】
ジャイロセンサ１０６は、記録媒体３の画像記録面に対して垂直に立てた軸を中心にハンドヘルドプリンタ１（及びＩＪ記録ヘッド１０８）が回転した際の角速度を検出するセンサである。また、ジャイロセンサ１０６は、記録媒体３を画像記録面に対して平行に移動させるとき（手動走査するとき）のハンドヘルドプリンタ１（及びＩＪ記録ヘッド１０８）の記録媒体３に対する傾きや回転量を検出するセンサでもある。
【００２８】
すなわち、ジャイロセンサ１０６は、ユーザ４が記録媒体３に対してハンドヘルドプリンタ１を走査したときの角速度を検知して、制御部１０１が角速度を積分することにより、回転角θを検知することができる。また、検出した傾きによって傾き角度も検知することができる。
【００２９】
ジャイロセンサ１０６の検知結果に基づいて、ハンドヘルドプリンタ１の走査時の回転や傾斜が判定可能になる。これによって、画像形成出力の走査時に、ハンドヘルドプリンタ１が記録媒体３から浮いたり、ＩＪ記録ヘッド１０８から記録媒体３に対する液滴の吐出方向が傾斜したり、正常な画像形成に支障が生ずる状態になっていることを判定することができる。さらに、加速度センサが含まれてナビゲーションセンサ１０５が構成されている場合、ジャイロセンサ１０６の検知結果と組み合わせることにより、ハンドヘルドプリンタ１本体の向きや傾きなどをより精度よく検知することができる。
【００３０】
ナビゲーションセンサ１０５により検出される移動量及びジャイロセンサ１０６により検出される角速度を元に、ＩＪ記録ヘッド１０８の各ノズルの位置、当該位置に応じて形成する画像の決定などの制御が制御部１０１によって行われるように構成されている。ナビゲーションセンサ１０５とジャイロセンサ１０６が移動量検知部として機能する。
【００３１】
ＩＪ記録ヘッド駆動回路１０７は、制御部１０１から出力される駆動波形データに基づいて、ＩＪ記録ヘッド１０８を駆動するための駆動電圧を生成する。ＩＪ記録ヘッド駆動回路１０７は、ＩＪ記録ヘッド１０８から吐出するインクの液滴の大きさに応じた駆動電圧を生成する。
【００３２】
ＩＪ記録ヘッド１０８は、インク（液滴）を吐出する液滴吐出部であって、データ処理の結果に基づく外部出力を実行する外部出力手段に相当する。本実施形態では、ＣＭＹＫの４色のインクを吐出可能な構成を例示しているが、単色のインクを吐出する構成、または、５色以上のインクを吐出する構成を用いることもできる。ＩＪ記録ヘッド１０８は、ＩＪ記録ヘッド駆動回路１０７から出力される駆動電圧によってインクを記録媒体３に向けて吐出する。この吐出されたインクによって記録媒体３に画像が形成される。
【００３３】
ＩＪ記録ヘッド１０８の駆動方式としては、ピエゾ素子等の圧電素子を用いたピエゾ式、インクを加熱して発生する泡を利用してインクを吐出するサーマル式等を用いることができる。
【００３４】
なお、本実施形態においては、ナビゲーションセンサ１０５によってハンドヘルドプリンタ１の移動方向及び移動量を判定するために用いられる各種の情報は、予めＲＯＭ１０３等の記憶媒体に格納されているものとする。ここで、「各種の情報」とは、例えば、ナビゲーションセンサ１０５からＩＪ記録ヘッド１０８の端部までの距離、ＩＪ記録ヘッド１０８の端部から最も近い位置に配列されているノズルと当該ＩＪ記録ヘッド１０８の端部との距離などである。また、ＩＪ記録ヘッド１０８に配列されているノズル間の距離なども各種の情報に含まれる。
【００３５】
通信Ｉ／Ｆ１０９は、外部装置とのデータ通信を行うための接続を、各種の無線通信規格、例えば、無線ＬＡＮやＮＦＣ等に対応した通信、または、有線ＬＡＮやＵＳＢ等の有線通信で行うための構成である。通信Ｉ／Ｆを介して、ハンドヘルドプリンタ１は、外部機器である画像データ送信端末２やその他の情報処理装置と通信を行う。なお、通信Ｉ／Ｆ１０９は複数の接続を同時に行うことができる構成であって、複数の外部機器と同時にデータ通信可能状態を確立させることができる。
【００３６】
したがって、通信Ｉ／Ｆ１０９は、有線通信手段と無線通信手段を含むデータ受信手段を構成する。また、通信Ｉ／Ｆ１０９は、接続されている画像データ送信端末２に対して、ハンドヘルドプリンタ１の状態を判定した結果を含む判定結果情報を出力する結果出力手段も構成する。
【００３７】
オーディオスピーカ１６０は、制御部１０１の制御によって、所定の条件が満たされたことをユーザ４に知らせる音を出力する発音機構及び報知部を構成する。オーディオスピーカ１６０は、ユーザ４がハンドヘルドプリンタ１を走査しているとき、その走査位置が画像形成位置として妥当な位置であるか否かをユーザに音で知らせるための構成である。
【００３８】
［制御部１０１の内部機能ブロック］
次に、図３を参照して、本実施形態に係る制御部１０１の内部構成について説明する。図３は、本実施形態に係る制御部１０１の構成を示す機能ブロック図である。本実施形態に係る制御部１０１は、ＳｏＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）１１０、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）／ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）１２０により構成される。ＳｏＣ１１０とＡＳＩＣ／ＦＰＧＡ１２０との間の通信は、バス１３１Ａ、１３１Ｂを介して行われる。
【００３９】
なお、ＡＳＩＣ／ＦＰＧＡ１２０は、ＡＳＩＣまたはＦＰＧＡのどちらの実装技術を用いて設計されてもよいものである。また、ＡＳＩＣ／ＦＰＧＡ１２０は、ＡＳＩＣ、ＦＰＧＡ以外の実装技術を用いる構成であってもよい。また、ＳｏＣ１１０とＡＳＩＣ／ＦＰＧＡ１２０とを別々のチップではなく、一つのチップまたは基板上、あるいは、三つ以上のチップまたは基板上に実装してもよい。
【００４０】
ＳｏＣ１１０は、バス１３１Ａを介して接続されたＣＰＵ１１１、位置算出部１１２、判定処理部１１３、メモリＣＴＬ（コントローラ）１１４、ＲＯＭＣＴＬ（コントローラ）１１５を含む。なお、ＳｏＣ１１０は、上記以外の機能を含んで構成されてもよい。
【００４１】
ＡＳＩＣ／ＦＰＧＡ１２０は、バス１３１Ｂを介して接続されたイメージＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２１、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）１２２、回転処理部１２３、割込みコントローラ１２４、ナビゲーションセンサＩ／Ｆ１２５、印字／センサタイミング生成部１２６、ＩＪ記録ヘッド制御部１２７、ジャイロセンサＩ／Ｆ１２８、通信制御部１２９、音出力Ｉ／Ｆ１３２を含む。なお、ＡＳＩＣ／ＦＰＧＡ１２０は、上記以外の機能を含んで構成されてもよい。
【００４２】
ＣＰＵ１１１は、ＲＯＭ１０３からＤＲＡＭ１０２に展開されたファームウェア等を実行し、ＳｏＣ１１０内の位置算出部１１２、判定処理部１１３、メモリＣＴＬ１１４、ＲＯＭＣＴＬ１１５の動作を制御する。
【００４３】
さらに、ＣＰＵ１１１は、ＡＳＩＣ／ＦＰＧＡ１２０内のイメージＲＡＭ１２１、ＤＭＡＣ１２２、回転処理部１２３、割込みコントローラ１２４、ナビゲーションセンサＩ／Ｆ１２５、印字／センサタイミング生成部１２６、ＩＪ記録ヘッド制御部１２７、ジャイロセンサＩ／Ｆ１２８、通信制御部１２９、音出力Ｉ／Ｆ１３２の動作を制御する。そして、ＣＰＵ１１１はこれらの各部を制御することにより、ハンドヘルドプリンタ１を構成する各部の機能を実現する。
【００４４】
位置算出部１１２は、サンプリング周期ごとにナビゲーションセンサ１０５から入力されるハンドヘルドプリンタ１の移動量に基づいて、ハンドヘルドプリンタ１の位置を算出する。ハンドヘルドプリンタ１の位置とは、厳密にはＩＪ記録ヘッド１０８のノズルの位置のことであるが、ナビゲーションセンサ１０５が存在する位置が分かればノズルの位置を算出することができる。
【００４５】
位置算出部１１２は、所定の原点、例えば、画像形成出力の開始時におけるハンドヘルドプリンタ１の初期位置を基準にナビゲーションセンサ１０５の位置を算出する。また、位置算出部１１２は、過去のナビゲーションセンサ１０５の位置の算出結果と最も新しいナビゲーションセンサ１０５の位置の算出結果との差に基づいて、次回のサンプリング周期におけるハンドヘルドプリンタ１の移動速度や移動方向を推定する。
【００４６】
位置算出部１１２は、ハンドヘルドプリンタ１の移動速度や移動方向の推定結果に基づいて、次回のサンプリング周期におけるナビゲーションセンサ１０５の位置を予測する構成であってもよい。
【００４７】
また位置算出部１１２は、サンプリング周期ごとジャイロセンサ１０６から入力されるハンドヘルドプリンタ１の回転角速度に基づいて、ハンドヘルドプリンタ１の傾き具合を検知する。ハンドヘルドプリンタ１の傾きとは、厳密にはＩＪ記録ヘッド１０８のノズルの記録媒体３に対する正常状態からの傾斜のことであるが、ナビゲーションセンサ１０５の正常時からの傾斜が分かればノズルの傾斜を算出することができる。ハンドヘルドプリンタ１の傾きを用いることで、正常な画像形成が可能な状態か否かの判定に用いることができる。
【００４８】
なお、位置算出部１１２は、ハンドヘルドプリンタ１の傾き具合についても、ジャイロセンサ１０６の位置の過去の算出結果とジャイロセンサ１０６の位置の最も新しい算出結果との差に基づいて、次回のサンプリング周期におけるハンドヘルドプリンタ１の傾き具合を推定する。
【００４９】
位置算出部１１２は、ハンドヘルドプリンタ１の移動速度や移動方向、傾き具合の推定結果に基づく状態量を用いて、次回のサンプリング周期におけるハンドヘルドプリンタ１の位置および傾き具合を予測する。
【００５０】
判定処理部１１３は、位置算出部１１２によるハンドヘルドプリンタ１の位置の算出結果および画像データ送信端末２から受信した画像領域情報に基づいて、ハンドヘルドプリンタ１が画像領域３００内を走査しているか否かを判定する。また、判定処理部１１３は、通信Ｉ／Ｆ１０９における画像データ送信端末２の接続状況を通信制御部１２９から受信し、ハンドヘルドプリンタ１に接続している外部機器の状況（有線通信であるか無線通信であるか）を判定する。判定処理部１１３は、接続判定手段を構成する。
【００５１】
上述したように、ハンドヘルドプリンタ１の位置とは、厳密には記録ヘッドのノズルの位置のことであるが、ナビゲーションセンサ１０５が存在する位置が分かればノズルの位置を算出することができる。ゆえに、判定処理部１１３は、ハンドヘルドプリンタ１の位置の算出結果から、ＩＪ記録ヘッド１０８に配列されているノズルの位置を算出し、ノズルの位置が画像領域３００内を走査可能な箇所にあるか否かを判定する構成であってもよい。
【００５２】
なお、「画像領域情報」とは、ユーザ４がハンドヘルドプリンタ１による画像形成出力の対象として選択した画像データに基づいて定められる情報である。言い換えると、「画像領域情報」とは、ユーザ４が選択した画像データに基づいて記録媒体３に画像を形成するときに、その画像が形成される範囲を示す情報である。すなわち、画像領域情報は、画像形成出力の対象として選択された画像データが形成される記録媒体３上における仮想的な領域を示す情報であって、記録媒体３の特定の位置が、当該仮想領域の内側（含まれるか）、外側（含まれないか）の判定に用いることができる情報である。
【００５３】
メモリＣＴＬ１１４は、ＤＲＡＭ１０２とのＩ／Ｆであり、ＤＲＡＭ１０２に対しデータを要求する。メモリＣＴＬ１１４は、ＤＲＡＭ１０２から取得したファームウェアをＣＰＵ１１１に転送し、また、ＤＲＡＭ１０２から取得した画像データをＡＳＩＣ／ＦＰＧＡ１２０に転送する。
【００５４】
ＲＯＭＣＴＬ１１５は、ＲＯＭ１０３とのＩ／Ｆであり、ＲＯＭ１０３に対しデータを要求する。ＲＯＭＣＴＬ１１５は、ＲＯＭ１０３から取得したデータをＣＰＵ１１１やＡＳＩＣ／ＦＰＧＡ１２０に転送する。
【００５５】
イメージＲＡＭ１２１は、ＤＭＡＣ１２２が取得した画像データを一時的に格納する。すなわち、イメージＲＡＭ１２１において画像データがバッファリングされ、ハンドヘルドプリンタ１の位置に応じた周辺画像がイメージＲＡＭ１２１にバッファリングされた画像データから読み出される。
【００５６】
回転処理部１２３は、ＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８内のノズル位置に応じて、ＤＭＡＣ１２２が取得した画像データに対する回転処理を行う。ＤＭＡＣ１２２は回転処理後の画像データをＩＪ記録ヘッド制御部１２７に出力する。
【００５７】
回転処理部１２３は、例えば、位置算出部１１２が、ジャイロセンサ１０６が検出した角速度に基づいて、ハンドヘルドプリンタ１の位置を算出する際に算出した回転角θを取得し、その回転角θを用いて周辺画像に対して回転処理を実行する。なお、このときの回転角θは、画像形成出力を開始する際のハンドヘルドプリンタ１が記録媒体３の平面上において、記録媒体３に対する正常な画像形成を実行する姿勢を基準とした場合の傾きの角度である。
【００５８】
割込みコントローラ１２４は、ナビゲーションセンサＩ／Ｆ１２５がナビゲーションセンサ１０５との通信を完了したこと、およびジャイロセンサＩ／Ｆ１２８がジャイロセンサ１０６との通信を完了したこと、を検知する。そして割込みコントローラ１２４は、これらの通信完了を、ＳｏＣ１１０に対して通知するための割り込み信号を出力する。ＣＰＵ１１１はこの割り込み信号によって、ナビゲーションセンサＩ／Ｆ１２５が内部レジスタに記憶しているナビゲーションセンサ１０５の移動量を取得する。また、割込みコントローラ１２４は、エラーなどのステータス通知機能も有する。
【００５９】
印字／センサタイミング生成部１２６は、ナビゲーションセンサＩ／Ｆ１２５にナビゲーションセンサ１０５の検知信号を読み取るタイミングを通知し、また、ＩＪ記録ヘッド制御部１２７に駆動タイミングを通知する。ＩＪ記録ヘッド制御部１２７は、ノズル位置がインクを吐出すべき目標吐出位置に到達したと判断されるとインクを記録媒体３に対して吐出する。
【００６０】
通信制御部１２９は、通信Ｉ／Ｆ１０９に無線端末２ａや有線端末２ｂが接続されていることを検知して判定処理部１１３に接続状態を通知する。また、通信制御部１２９は、通信Ｉ／Ｆ１０９に接続される無線端末２ａや有線端末２ｂとの通信を制御する。したがって、通信制御部１２９は、画像データ送信端末２に対し、判定の結果を含む判定結果情報（詳細は後述する）を出力する結果出力手段を構成する。
【００６１】
音出力Ｉ／Ｆ１３２は、ＣＰＵ１１１から通知される報知情報に基づいて、オーディオスピーカ１６０を駆動させて所定の音を出力させる。
【００６２】
［判定処理部１１３の機能構成］
次に、本実施形態に係る判定処理部１１３の詳細な構成について図４を参照して説明する。図４は、判定処理部１１３の内部構成を示す機能ブロック図である。判定処理部１１３は、位置情報取得部１１３１、画像領域情報取得部１１３２、比較判定部１１３３、判定結果出力部１１３４を含む。
【００６３】
位置情報取得部１１３１は、位置算出部１１２が算出したハンドヘルドプリンタ１の位置の情報を取得する。なお、位置情報取得部１１３１は、ＩＪ記録ヘッド１０８に配列されているノズルの位置の情報を取得する構成であってもよい。
【００６４】
画像領域情報取得部１１３２は、ユーザ４がハンドヘルドプリンタ１による画像形成出力の対象として選択した画像データにおいて定められる情報である「画像領域情報」をＤＲＡＭ１０２などの記憶媒体から取得する。画像領域情報は、画像データ送信端末２からハンドヘルドプリンタ１に送信された出力対象の画像データに基づいて、記録媒体３に対する画像形成範囲として設定される領域を示す情報である。この画像領域情報に基づいて記録媒体３の画像が形成される面（画像形成面）上に、仮想的な領域が設定され、その仮想的な領域に対してユーザ４がハンドヘルドプリンタ１を走査することにより、画像が形成される。なお、画像領域情報は、画像データ送信端末２から受信した画像データに基づいてＣＰＵ１１１において形成されて、ＤＲＡＭ１０２等の記憶媒体に格納される。そして、手動走査におけるハンドヘルドプリンタ１の現在位置は画像が形成される領域であるか否かの判定に用いられる。
【００６５】
比較判定部１１３３は、位置情報取得部１１３１が取得したハンドヘルドプリンタ１の位置の情報および画像領域情報に基づいて、ハンドヘルドプリンタ１の現在の走査位置が画像領域３００内であるか否かを判定する。
【００６６】
判定結果出力部１１３４は、比較判定部１１３３によるハンドヘルドプリンタ１の現在の走査位置が画像領域３００内であるか否かの判定結果をＣＰＵ１１１に出力する。判定結果出力部１１３４は、結果出力手段を構成する。
【００６７】
ＣＰＵ１１１は、判定結果出力部１１３４から受信したハンドヘルドプリンタ１の現在の走査位置が画像領域３００内であるか否かの判定結果に基づいて、ユーザ４に対してハンドヘルドプリンタ１の現在の走査位置に関する報知（画像領域外報知）を行う。
【００６８】
また、ＣＰＵ１１１は、ＤＲＡＭ１０２に展開されているアプリケーションによって、画像領域外であることを報知するための報知情報を生成、接続状態に基づく報知情報を生成し、これらを画像データ送信端末２に送信する構成であってもよい。報知情報を受信すると、画像データ送信端末２では、例えば、「画像が印刷されている範囲から離れています」などの文字情報の表示や音声ガイダンスによって画像領域外であることの報知が行なわれる。したがって、ＣＰＵ１１１と画像データ送信端末２とが協働して判定結果通知部として機能する。
【００６９】
また、ＣＰＵ１１１は、判定結果出力部１１３４から通知される判定結果情報において、キャップが装着されていることを示す情報が含まれていれば、ＩＪ記録ヘッド制御部１２７に対して動作を停止（または、入力操作を無効に）する制御信号を通知する。
【００７０】
なお、ＣＰＵ１１１は、ユーザ４に対する画像領域外報知として、例えば、ＬＥＤスイッチや電源スイッチなどのＯＰＵ１０４を点滅させる制御によって通知を行う。また、ＯＰＵ１０４に発音機構が含まれる構成の場合、ＣＰＵ１１１は、ブザーや音声ガイダンスによる画像領域外報知やオフライン通知またはオンライン通知を行う。したがって、ＣＰＵ１１１とＯＰＵ１０４とが協働して、結果出力手段を構成する。
【００７１】
また、ＣＰＵ１１１とＩＪ記録ヘッド駆動回路１０７が協働して、データ処理手段を構成する。
【００７２】
［画像データ送信端末２のハードウェア構成］
次に、画像データ送信端末２のハードウェア構成について説明する。図５は、画像データ送信端末２のハードウェア構成を示している。本実施形態に係る画像データ送信端末２は、一般的なＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置と同様の構成を有する。すなわち、本実施形態に係る無線端末２ａは、ＣＰＵ２１０、ＲＡＭ２２０、ＲＯＭ２３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶媒体２４０、Ｉ／Ｆ２５０がバス２９０を介して接続されている。
【００７３】
また、上記の構成に加え、画像データ送信端末２は、Ｉ／Ｆ２５０を介してＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示部２６１やキーボードなどの操作部２７０、ＬＡＮなどの有線接続、ＮＦＣや無線ＬＡＮ等の無線接続により、ハンドヘルドプリンタ１やその他の情報処理端末と通信を行い通信部２８１が接続されて構成されている。また、Ｉ／Ｆ２５０を介して音を出力する音出力部２６２が接続されている。
【００７４】
ＣＰＵ２１０は演算手段であり、画像データ送信端末２全体の動作を制御する。ＲＡＭ２２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ２１０が情報を処理する際の作業領域（ワーキングメモリ）として用いられる。ＲＯＭ２３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。
【００７５】
記憶媒体２４０は、ＨＤＤ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム（以後、アプリケーション）等が格納されている。Ｉ／Ｆ２５０は、バス２９０と、表示部２６１、操作部２７０、音出力部などの各種のハードウェアや通信部２８０を介してネットワーク等を接続し制御する。
【００７６】
表示部２６１は、Ｉ／Ｆ２５０を介して受信した画像データ送信端末２の状態をユーザ４が確認するユーザＩ／Ｆである。操作部２７０は、キーボードなどによって構成され、ユーザ４が画像データ送信端末２に情報を入力するためのユーザＩ／Ｆである。なお、表示部２６１および操作部２７０を、動作原理方式として抵抗膜方式、表面弾性波方式、静電容量方式等が用いられたタッチパネルとして構成してもよい。
【００７７】
音出力部２６２は、ハンドヘルドプリンタ１から通知される判定結果情報に基づいて、ハンドヘルドプリンタ１の状態を音としてユーザ４に報知する。
【００７８】
このようなハードウェア構成において、ＲＯＭ２３０に格納されたプログラムや記憶媒体２４０からＲＡＭ２２０に読み出されたプログラムに従ってＣＰＵ２１０が演算を行うことにより、図７において説明するコントローラ２００の内部機能が構成される。なおコントローラ２００の内部機能と、ハードウェアとの組み合わせによって、画像データ送信端末２の機能を実現する機能ブロックが構成される。
【００７９】
［コントローラ２００の機能ブロック］
次に、画像データ送信端末２のコントローラ２００の内部機能について説明する。図６は、本実施形態に係るコントローラ２００の内部機能の構成を示す機能ブロック図である。
【００８０】
コントローラ２００は、画像処理部２０１、画像領域算出部２０２、報知制御部２０３、操作制御部２０４、通信制御部２０５を含む。画像処理部２０１は、ユーザ４がハンドヘルドプリンタ１による画像形成出力の対象として選択した画像データを、ハンドヘルドプリンタ１で出力可能な形式に変換する処理を行う。
【００８１】
このとき、画像処理部２０１は、画像形成出力に際してユーザ４によって設定された条件、例えば、モノクロ／カラー印刷、拡大／縮小などの条件を適用して、画像データをハンドヘルドプリンタ１で出力可能な形式に変換する処理を行う。
【００８２】
画像領域算出部２０２は、画像処理部２０１によって処理された画像データに基づいて、ユーザ４がハンドヘルドプリンタ１による画像形成出力の対象として選択した画像データが形成される領域を算出して画像領域情報を生成する。なお、ユーザ４の指定によって画像データが形成される領域を決定して画像領域情報を生成する構成であってもよい。
【００８３】
報知制御部２０３は、表示部２６１に表示される画面の制御を実行する。例えば、報知制御部２０３は、ハンドヘルドプリンタ１から画像領域外報知情報を受信した場合に、その画像領域外報知情報に基づいた画面を表示部２６１に表示させる。
【００８４】
また、報知制御部２０３は、ハンドヘルドプリンタ１から初期化完了通知を受信した場合に、その初期化完了通知に基づいた画面を表示部２６１に表示させる。この場合、報知制御部２０３は、音出力部２６２を介して、ハンドヘルドプリンタ１の初期化完了を知らせる音を出力してもよい。
【００８５】
また、報知制御部２０３は、ハンドヘルドプリンタ１から異常状態やオペレータコール状態の関する通知を受信した場合に、その旨をユーザ４に報知するための画面を表示部２６１に表示させる。この場合、報知制御部２０３は、音出力部２６２を介して、ハンドヘルドプリンタ１の状態を知らせる音を出力してもよい。
【００８６】
操作制御部２０４は、ユーザ４による操作部２７０の操作に基づいた制御情報を生成し、コントローラ２００を構成する各部に送信する。通信制御部２０５は、ハンドヘルドプリンタ１との通信を制御し、ハンドヘルドプリンタ１との情報の送受信を制御する。
【００８７】
以上説明したような構成によって、本実施形態に係る画像形成システム１０００では、画像データ送信端末２から受信した画像データに基づいてハンドヘルドプリンタ１を使用して記録媒体３に対する画像形成出力を実行する。
【００８８】
［手動走査時の画像領域３００とハンドヘルドプリンタ１の位置関係］
ハンドヘルドプリンタ１を使用した画像形成出力の際には、ユーザ４がハンドヘルドプリンタ１を把持した状態で、記録媒体３に対してハンドヘルドプリンタ１を走査する。記録媒体３には、図７に例示するように、画像形成位置として画像データに基づいて規定される画像領域３００が仮想的に設定される。この画像領域３００は、ハンドヘルドプリンタ１における画像形成動作で用いられる仮想的なものであって、記録媒体３に対してマーカ等が明示されているものではない。
【００８９】
したがって、ユーザ４は、ハンドヘルドプリンタ１を走査しながら、現在位置（走査位置）が画像領域３００の内側に相当するのか外側に相当するのかを認識しづらい。この場合、ユーザ４は、画像形成出力対象の画像を全て印刷するためには、記録媒体３上をくまなく走査しなければならない状態になる。
【００９０】
そこで、本実施形態に係るハンドヘルドプリンタ１は、ユーザ４による画像形成出力時の走査を効率的に行えるように、ハンドヘルドプリンタ１の現在位置と、記録媒体３において画像データが形成される領域である画像領域３００との位置関係をユーザ４に通知する。これによって、記録媒体３上におけるユーザ４による不要なハンドヘルドプリンタ１の走査を減らすことができ、画像形成出力を効率よく行えるようにする。
【００９１】
図７は、ハンドヘルドプリンタ１の現在位置と、記録媒体３の表面に仮想的に設定される画像領域３００との位置関係について、複数のバリエーションを例示している。
【００９２】
［第一位置関係について］
ハンドヘルドプリンタ１ａは、画像領域３００の内から画像領域３００の外に向かって移動し、画像領域３００外に離れていこうとしているハンドヘルドプリンタ１を例示している。本実施形態では、ハンドヘルドプリンタ１ａのように、画像領域３００の境界（輪郭）から、ある程度の距離を示す閾値（Ｌｔｈ）を想定する。詳細には後述するが、画像領域３００の内ではなくても、画像領域３００の輪郭に閾値（Ｌｔｈ）を加算した領域（余白領域）は、手動走査時に、ハンドヘルドプリンタ１が画像領域３００の内側で走査されているか外側に出てしまっているかを判定するときに用いられる。本実施形態では、画像領域３００の境界から閾値（Ｌｔｈ）以上離れた位置に至ったハンドヘルドプリンタ１は、「画像領域３００の外」と判定する。
【００９３】
［第二位置関係について］
ハンドヘルドプリンタ１ｂは、画像領域３００の外にあるものが、画像領域３００から離れようとしているハンドヘルドプリンタ１を例示している。この場合、ハンドヘルドプリンタ１ｂの位置は、画像領域３００の境界から閾値（Ｌｔｈ）以上離れた位置が現在位置である。そして、ハンドヘルドプリンタ１ｂの現在位置は経時的に、画像領域３００の境界からの距離が長くなるように変化する。
【００９４】
［第三位置関係について］
ハンドヘルドプリンタ１ｃは、画像領域３００の外にあるものが画像領域３００に接近する方向に走査されており、画像領域３００内に入ろうとしているハンドヘルドプリンタ１を例示している。この場合、ハンドヘルドプリンタ１ｃの位置は、画像領域３００の境界から閾値（Ｌｔｈ）以上離れた位置が現在位置である。そして、ハンドヘルドプリンタ１ｃの現在位置は経時的に、画像領域３００の境界からの距離が短くなるように変化する。
【００９５】
［制御方法及び制御プログラムの第一実施形態］
以下、本発明に係る制御方法及び制御プログラムの実施形態について説明する。本実施形態に係る制御方法及び制御プログラムによれば、ハンドヘルドプリンタ１を用いた画像形成出力に際して、ハンドヘルドプリンタ１の現在位置と、画像領域３００との位置関係をユーザ４に適宜報知することができる。
【００９６】
まず、図８を参照して、本実施形態に係るハンドヘルドプリンタ１を用いた画像形成出力動作の流れについて説明する。図８は、本実施形態に係るハンドヘルドプリンタ１の起動から画像形成の終了までの動作手順を示すシーケンス図である。
【００９７】
図８の処理において、ＣＰＵ１１１が実行主体として記載されている処理は、ＣＰＵ１１１がファームウェア等を実行することにより、利用可能となる機能によって実現される処理である。
【００９８】
ユーザ４がハンドヘルドプリンタ１の電源スイッチを押下する（Ｓ８０１）と、ハンドヘルドプリンタ１は電源１４１からの電源供給を開始する（Ｓ８０２）。電源供給を受けると、ＳｏＣ１１０のＣＰＵ１１１は、ハンドヘルドプリンタ１を構成する各電子デバイス、例えば、ＡＳＩＣ／ＦＰＧＡ１２０などの各構成要素の初期化を実行する（Ｓ８０３）。
【００９９】
ハンドヘルドプリンタ１の各構成要素の初期化が完了すると、ＣＰＵ１１１は、電源スイッチのバックライトとして搭載されているＬＥＤを点灯させるなどして、ユーザ４に対してハンドヘルドプリンタ１が使用可能な状態となったことを報知する初期化完了報知を実行する（Ｓ８０４）。なお、ＯＰＵ１０４として発音機構が実装されている場合、ユーザ４に対して音声によって初期化完了報知を行う構成であってもよい。
【０１００】
ユーザ４は、ハンドヘルドプリンタ１が使用可能な状態になったことを認識したのち、ハンドヘルドプリンタ１を使用して印刷する画像（画像形成出力対象の画像）を画像データ送信端末２に表示させるなどして選択する（Ｓ８０５）。
【０１０１】
そして、画像データ送信端末２においてＳ８０５で選択された画像の印刷を実行する操作がユーザ４によって行われると、画像データ送信端末２は、印刷ジョブおよび画像領域情報を生成してハンドヘルドプリンタ１に送信する（Ｓ８０６）。
【０１０２】
画像データ送信端末２には、画像データを印刷出力可能なプリント・アプリケーションがインストールされている。このプリント・アプリケーションは、ユーザ４によってＳ８０５で選択された画像の印刷を実行する操作が行われると、プリンタドライバを呼び出して印刷条件と画像データを所定の形式で記述して、ハンドヘルドプリンタ１に送信する。なお、プリンタドライバを介さずに、画像データをＴＩＦＦやＪＰＥＧ等のままハンドヘルドプリンタ１に送信する構成であってもよい。
【０１０３】
また、画像領域算出部２０２は、ユーザ４によって画像形成対象の画像として選択された画像データに基づいて、画像領域３００に相当する情報を仮想的に生成する。そして、当該画像領域３００の原点を、記録媒体３に画像を形成したときの左上端部に相当する位置に設定する。また、画像領域算出部２０２は、ハンドヘルドプリンタ１本体の幅などを考慮して、実際に画像が形成される領域（画像領域３００）のまわりにマージンを持たせた状態で画像領域情報を生成してもよい。
【０１０４】
ハンドヘルドプリンタ１に画像データの送信が開始されると、ＣＰＵ１１１は、例えば、ＬＥＤスイッチを点滅させるなどして、画像データの受信中であることをユーザ４に報知する（Ｓ８０７）。
【０１０５】
そして、画像データの受信が完了すると、ＣＰＵ１１１は、点滅させていたＬＥＤスイッチを点灯状態にさせるなどして、ユーザ４に対して画像データの受信が完了したことを報知する（Ｓ８０８）。ＣＰＵ１１１は、受信した画像データをＤＭＡＣ１２２に転送する。
【０１０６】
なお、ＯＰＵ１０４として、発音機構を備えている場合には、Ｓ８０７の画像データ受信通知やＳ８０８の画像データ受信完了報知を音声により行う構成であってもよい。
【０１０７】
ユーザ４は、ハンドヘルドプリンタ１において画像データの受信が完了したことを認識すると、記録媒体３の上でハンドヘルドプリンタ１の初期位置を決定して、その位置にハンドヘルドプリンタ１を置く（Ｓ８０９）。
【０１０８】
ユーザ４は、例えば、ハンドヘルドプリンタ１を記録媒体３上の任意の位置に置き、ＬＥＤスイッチを押下するなどの、「印刷開始トリガ」をハンドヘルドプリンタ１に与える操作をする（Ｓ８１０）。
【０１０９】
ＣＰＵ１１１は、ＬＥＤスイッチによるキー割込みを受け付け、ナビゲーションセンサＩ／Ｆ１２５を介してナビゲーションセンサ１０５にハンドヘルドプリンタ１の位置を検知させる（Ｓ８１１）。
【０１１０】
Ｓ８１１の処理においてナビゲーションセンサ１０５により検知された記録媒体３の上でハンドヘルドプリンタ１の位置が、画像形成開始時のハンドヘルドプリンタ１の初期位置、すなわち、ハンドヘルドプリンタ１による画像形成の開始位置となる。ナビゲーションセンサ１０５によって検知された開始位置の情報は、ハンドヘルドプリンタ１の開始位置情報として、ＤＲＡＭ１０２等の記憶媒体に格納される（Ｓ８１２）。
【０１１１】
なお、上述したように、ナビゲーションセンサ１０５からＩＪ記録ヘッド１０８の端部までの距離、ＩＪ記録ヘッド１０８の端部からもっとも近い位置に配列されているノズルとＩＪ記録ヘッド１０８の端部との距離、ＩＪ記録ヘッド１０８に配列されているノズル間の距離は、予めＲＯＭ１０３等の記憶媒体に格納されている。
【０１１２】
したがって、位置算出部１１２は、ハンドヘルドプリンタ１の位置情報に基づいて、ＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８に配列されているそれぞれのノズルの位置を算出することができる。
【０１１３】
Ｓ８１１で取得したナビゲーションセンサ１０５の検知結果に基づいて、位置算出部１１２にＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８に配列されているそれぞれのノズルの位置を算出させてもよい。
【０１１４】
さらに、位置算出部１１２によって算出された結果を、画像形成出力開始時のＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８に配列されているそれぞれのノズルの位置の開始位置情報としてＤＲＡＭ１０２等の記憶媒体に格納する構成としてもよい。
【０１１５】
また、ナビゲーションセンサ１０５によって検知されたハンドヘルドプリンタ１の開始位置を、例えば、座標（０，０）としてＤＲＡＭ１０２等に格納してもよい。
【０１１６】
開始位置を格納すると、ＣＰＵ１１１は、印刷実行処理を開始する（Ｓ８１３）。そして、ユーザ４の手動走査によって記録媒体３に画像を形成するための画像形成出力が完了すると、ＣＰＵ１１１は、ＬＥＤスイッチを消灯するなどして、ユーザ４に対して画像データの印刷が完了したことを通知する（Ｓ８１４）。
【０１１７】
［印刷実行処理の詳細］
次に、Ｓ８１３における印刷実行処理について、図９に示すフローチャートを参照して詳細に説明する。図９は、本実施形態に係るハンドヘルドプリンタ１の印刷実行処理の流れを示すフローチャートである。
【０１１８】
Ｓ８１２の処理によって、ハンドヘルドプリンタ１（または／および、ＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８に配列されているそれぞれのノズル）の開始位置情報が記憶媒体に格納されると、ＣＰＵ１１１は、印字／センサタイミング生成部１２６に時間計測を開始させる（Ｓ９０１）。
【０１１９】
予め設定されたナビゲーションセンサ１０５へのリードタイミングになると（Ｓ９０２／ＹＥＳ）、ナビゲーションセンサＩ／Ｆ１２５を介してＣＰＵ１１１は、ナビゲーションセンサ１０５からハンドヘルドプリンタ１の現在位置に係る情報を取得する（Ｓ９０３）。
【０１２０】
ＣＰＵ１１１は、取得したナビゲーションセンサ１０５からの情報に基づいて、位置算出部１１２にハンドヘルドプリンタ１の現在位置Ｐ１を算出させる（Ｓ９０４）。Ｓ９０４の処理において、位置算出部１１２は、前回算出したハンドヘルドプリンタ１の位置Ｐ（Ｘ，Ｙ）と今回取得したハンドヘルドプリンタ１の移動量ΔＰ（ΔＸ，ΔＹ）とに基づいて、ハンドヘルドプリンタ１の現在位置Ｐ１（Ｘ１，Ｙ１）を算出し、ＤＲＡＭ１０２に格納する。
【０１２１】
続いて、ＣＰＵ１１１は、算出されたハンドヘルドプリンタ１の現在位置Ｐ１（Ｘ１，Ｙ１）の情報をＡＳＩＣ／ＦＰＧＡ１２０に転送する。なお、位置算出部１１２にハンドヘルドプリンタ１の位置情報に基づいて、ＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８に配列されているそれぞれのノズルの位置を算出させた結果を、ＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８に配列されているそれぞれのノズルの現在位置Ｐ１として、ＡＳＩＣ／ＦＰＧＡ１２０に転送する構成であってもよい。
【０１２２】
ＤＭＡＣ１２２は、ハンドヘルドプリンタ１の現在位置Ｐ１（Ｘ１，Ｙ１）の位置情報に基づいて、ＩＪ記録ヘッド１０８に配列されているノズル周辺の位置に相当する画像データをＤＲＡＭ１０２から取得し、イメージＲＡＭ１２１に一時的に記憶させる。
【０１２３】
そして、回転処理部１２３は、ハンドヘルドプリンタ１の現在位置Ｐ１（Ｘ１，Ｙ１）に基づいて、イメージＲＡＭ１２１からノズル周辺の画像データを取得し、取得したノズル周辺の画像データに対して回転処理を行う（Ｓ９０５）。
【０１２４】
ＤＭＡＣ１２２は、ＤＲＡＭ１０２から取得したノズル周辺の画像データを、ＤＲＡＭ１０２から削除する。ＩＪ記録ヘッド制御部１２７は、回転処理された画像データの座標とハンドヘルドプリンタ１の現在位置Ｐ１（Ｘ１，Ｙ１）に基づいて定められるノズルの位置の座標とを比較する（Ｓ９０６）。
【０１２５】
そして、予め設定されたインク吐出条件、すなわち、ノズル位置が、画像データに基づいて定められるインクを吐出すべき目標吐出位置に到達した、もしくは、ノズル位置と目標吐出位置とのずれが許容誤差内に収まると判断した場合（Ｓ９０７／ＹＥＳ）、ＩＪ記録ヘッド制御部１２７は、Ｓ９０５の処理において、回転処理されたＩＪ記録ヘッド１０８のノズル周辺の画像データをＩＪ記録ヘッド駆動回路１０７に入力する。
【０１２６】
ＩＪ記録ヘッド駆動回路１０７は、入力された画像データに基づいてＩＪ記録ヘッド１０８から記録媒体３に対してインクを吐出させる（Ｓ９０８）。ＤＲＡＭ１０２に記憶されている画像形成出力対象の画像データの全てがＤＭＡＣ１２２へ転送されるまで、または、ユーザ４によってＬＥＤスイッチが操作されるなどして画像形成出力を終了する信号が受信されるまで（Ｓ９０９／ＮＯ）、Ｓ９０２からＳ９０８の処理ステップが繰り返し実行されて、記録媒体３に画像が形成される。
【０１２７】
Ｓ９０８にてインクが吐出され、ＤＲＡＭ１０２に記憶されている画像形成出力対象の画像データの全てがＤＭＡＣ１２２へ転送された、もしくは、ユーザ４によってＬＥＤスイッチが操作されるなどして画像形成出力を終了する信号を受信済みである場合、ＣＰＵ１１１は、画像形成出力が終了したと判定する（Ｓ９０９／ＹＥＳ）。
【０１２８】
本実施形態に係るハンドヘルドプリンタ１は、図８および図９に説明したような処理に従って記録媒体３に対して画像形成出力を実行する。Ｓ８１３の処理の実行中に、画像領域３００上をハンドヘルドプリンタ１が走査しているのかどうかをユーザ４が認識することができないために不要な走査を行わざるを得ない状況が生じてしまう。
【０１２９】
これに対して、本実施形態では、ハンドヘルドプリンタ１の現在位置と、記録媒体３において画像データが形成される領域との位置関係がどのような状態であるかをユーザ４に通知する。
【０１３０】
［制御方法及び制御プログラムの第二実施形態］
次に、ハンドヘルドプリンタ１における印刷処理の別の実施形態について説明する。以下説明する印刷処理は、画像形成領域外通知処理を含むものである。当該処理は、手動で走査されるハンドヘルドプリンタ１が、記録媒体３上の仮想領域である画像領域３００の内側で走査されているか外側で走査されているかをユーザ４に報知する。また、内側で走査されているハンドヘルドプリンタ１が外側に移動しようとしていることを検知し、それをユーザ４に報知する。
【０１３１】
図１０は、本実施形態に係るハンドヘルドプリンタ１における画像領域外報知処理の一例を示すフローチャートである。本実施形態では、ハンドヘルドプリンタ１の現在位置と、記録媒体３において画像データが形成される領域との位置関係がどのような状態であるかをユーザ４に通知する
【０１３２】
本実施形態において、画像領域外報知処理を実行するか否かは、ユーザ４がハンドヘルドプリンタ１もしくは画像データ送信端末２を操作することにより設定する構成であってもよい。
【０１３３】
なお、図１０に示すフローチャートでは、図７の第一の例、すなわち、画像領域３００内から画像領域３００外に離れようとしているハンドヘルドプリンタ１ａを使用した画像形成に係る画像領域外報知処理の流れを説明する。
【０１３４】
Ｓ８１２の処理によって、ハンドヘルドプリンタ１（または／および、ＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８に配列されているそれぞれのノズル）の開始位置情報が記憶媒体に格納されると、ＣＰＵ１１１において実行される画像領域外報知プログラムは、変数として用いる「Ａｒｅａ＿ｆｌａｇレジスタ」の値をリセットする。具体的には、「Ａｒｅａ＿ｆｌａｇ＝０」とする（Ｓ１００１）。
【０１３５】
Ａｒｅａ＿ｆｌａｇレジスタの値は、一度、ハンドヘルドプリンタ１の位置が画像領域３００の内であると判定されると、「Ａｒｅａ＿ｆｌａｇ＝１」がセットされる。したがって、Ａｒｅａ＿ｆｌａｇレジスタは、ハンドヘルドプリンタ１が画像領域３００に入った履歴を示す履歴情報記憶部として機能する。
【０１３６】
なお、「Ａｒｅａ＿ｆｌａｇ＝０」の場合、ＣＰＵ１１１は、画像領域外報知を行わない。したがって、「Ａｒｅａ＿ｆｌａｇレジスタ＝０」とセットすることにより、例えば、ハンドヘルドプリンタ１の開始位置が画像領域外であった場合に画像領域外報知が行われることを防ぐことができる。
【０１３７】
次に、ＣＰＵ１１１は、印字／センサタイミング生成部１２６に時間計測を開始させる（Ｓ１００２）。予め設定されたナビゲーションセンサ１０５へのリードタイミングになると（Ｓ１００３／ＹＥＳ）、ナビゲーションセンサＩ／Ｆ１２５は、ナビゲーションセンサ１０５に、ハンドヘルドプリンタ１の移動量等を検知させる（Ｓ１００４）。
【０１３８】
ＣＰＵ１１１は、ＡＳＩＣ／ＦＰＧＡ１２０からナビゲーションセンサ１０５の検知結果を取得し、位置算出部１１２にハンドヘルドプリンタ１の現在位置Ｐ１を算出させる（Ｓ１００５）。なお、Ｓ１００５の処理の具体的態様は、Ｓ９０４と同じであるため説明を省略する。
【０１３９】
なお、位置算出部１１２にハンドヘルドプリンタ１の位置情報に基づいて、ＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８に配列されているそれぞれのノズルの位置を算出させた結果をＩＪ記録ヘッド１０８およびＩＪ記録ヘッド１０８に配列されているそれぞれのノズルの現在位置Ｐ１として、ＡＳＩＣ／ＦＰＧＡ１２０に転送する構成であってもよい（Ｓ１００６）。
【０１４０】
ＣＰＵ１１１は、ハンドヘルドプリンタ１の現在位置Ｐ１を算出させると、判定処理部１１３にハンドヘルドプリンタ１が画像領域３００内を走査しているか否かを判定する処理を実行させる。
【０１４１】
比較判定部１１３３は、位置情報取得部１１３１に位置算出部１１２が算出したハンドヘルドプリンタ１の現在位置Ｐ１の情報（および／または、ノズルの位置の情報）を取得させ、画像領域情報取得部１１３２に、画像領域情報を取得させる。そして、比較判定部１１３３は、ハンドヘルドプリンタ１の現在位置Ｐ１の情報および画像領域情報に基づいて、ハンドヘルドプリンタ１の現在位置Ｐ１から画像領域３００の境界までの距離Ｄ１を算出する（Ｓ１００７）。
【０１４２】
次に、比較判定部１１３３は、距離Ｄ１が所定の閾値Ｌｔｈより大きいか否かを判定する（Ｓ１００８）。Ｓ１００８の判定結果は、比較判定部１１３３から判定結果出力部１１３４に出力される。判定結果出力部１１３４は、比較判定部１１３３から入力されたＳ１００８の判定結果をＣＰＵ１１１に送信する。
【０１４３】
距離Ｄ１が閾値Ｌｔｈ以下である場合（Ｓ１００８／ＮＯ）、ＣＰＵ１１１は、すでに画像領域外報知を行っているか否かを判定し（Ｓ１００９）、画像領域外報知をおこなっている場合には（Ｓ１００９／ＹＥＳ）、画像領域外報知を取り消す（Ｓ１０１０）。ＣＰＵ１１１は、画像領域外報知をおこなっていない場合には（Ｓ１００９／ＮＯ）、そのまま次のステップに進む。
【０１４４】
続いて、ＣＰＵ１１１は、Ａｒｅａ＿ｆｌａｇレジスタの値を「Ａｒｅａ＿ｆｌａｇ＝１」とする（Ｓ１０１１）。Ｓ１０１１のステップにより、ハンドヘルドプリンタ１と画像領域３００との距離Ｄ１が所定の閾値Ｌｔｈ以下であることが示される。
【０１４５】
次に、ＣＰＵ１１１は、Ｓ９０５の処理と同様に、回転処理部１２３によって回転処理が実行されたノズル周辺の画像データに基づいて、ＩＪ記録ヘッド制御部１２７によって、予め設定されたインク吐出条件を満たすか否かの判断処理を実行させる（Ｓ１０１２）、ＩＪ記録ヘッド制御部１２７が、入力されたノズル周辺の画像データは予め設定されたインク吐出条件を満たすと判断した場合（Ｓ１０１２／ＹＥＳ）、ＩＪ記録ヘッド駆動回路１０７に、入力された画像データに基づいてＩＪ記録ヘッド１０８から記録媒体３に対してインクを吐出させ（Ｓ１０１３）、Ｓ１０１４のステップに進む。なお、Ｓ１０１２のインク吐出条件は、Ｓ９０７と同じインク吐出条件であるため、説明を省略する。
【０１４６】
ＩＪ記録ヘッド制御部１２７が入力されたノズル周辺の画像データは予め設定されたインク吐出条件を満たさないと判断した場合（Ｓ１０１２／ＮＯ）、処理をＳ１００３に戻す。
【０１４７】
一方で、Ｓ１００８の処理において、距離Ｄ１が閾値Ｌｔｈ以上である場合（Ｓ１００８／ＹＥＳ）、ＣＰＵ１１１は、Ａｒｅａ＿ｆｌａｇレジスタの値が「Ａｒｅａ＿ｆｌａｇ＝１」であるか否かを判定する（Ｓ１０１５）。
【０１４８】
Ａｒｅａ＿ｆｌａｇレジスタの値が「Ａｒｅａ＿ｆｌａｇ＝１」である場合（Ｓ１０１５／ＹＥＳ）、ＣＰＵ１１１は、印刷ジョブに記述されている情報に基づいて、画像形成出力中の画像データが、マルチパスモードによって出力される画像データであるか否かを判定する（Ｓ１０１６）。
【０１４９】
なお、ハンドヘルドプリンタ１における画像形成の出力態様としては、「シングルモード」、「Ｎパスモード」、「マルチパスモード」がある。
【０１５０】
まず、「シングルモード」におけるハンドヘルドプリンタ１の走査の様子を図１５の模式図を用いて説明する。シングルモードは、ハンドヘルドプリンタ１の走査を１回１方向で記録媒体３上に画像形成するモードである。図１５に例示するように、記録媒体３の端から直線的に走査し、反対側の端に到達すると画像形成が終了する。次の画像形成を実行するときには、先の画像形成時と同じ側から走査を始めて、同じ方向に直線的に走査する。シングルパスモードは、バーコードなどの直線的な画像を形成するときに適するモードである。
【０１５１】
次に、「Ｎパスモード」におけるハンドヘルドプリンタ１の走査の様子を図１６の模式図を用いて説明する。Ｎパスモードは、ハンドヘルドプリンタ１の走査を１回複数方向で記録媒体３上に画像形成するモードである。図１６に例示するように、記録媒体３の端から直線的に走査し、反対側の端に到達したら改行する（走査方向と交差する方向に位置をずらす）。その後、先とは反対方向に直線的に走査をする。このように、ハンドヘルドプリンタ１の走査と改行とを繰り返して行い、複数行に渡るキャラクタを記録媒体３上に形成するモードがＮパスモードである。
【０１５２】
次に、「マルチパスモード」におけるハンドヘルドプリンタ１の走査の様子を図１７の模式図を用いて説明する。マルチパスモードは、ハンドヘルドプリンタ１の走査を、往復で自由に繰り返すことで、記録媒体３上に画像を形成するモードである。図１７に例示するように、記録媒体３の端から画像形成処理（印刷処理）を開始したとして、画像領域３００の内側の塗りつぶすように、往復させるようにして走査をする。これを繰り返すことにより、部分的な画像を繋ぎ合わせて一の画像を記録媒体３上に形成するモードがマルチパスモードである。
【０１５３】
図１０に戻る。したがって、画像領域外になったことを通知するのは、ハンドヘルドプリンタ１における画像形成の出力態様が「マルチパスモード」のときだけでよい（Ｓ１０１６／ＹＥＳ）。ハンドヘルドプリンタ１における画像形成の出力態様が「マルチパスモード」である場合、ＣＰＵ１１１は、画像領域外報知を実行する（Ｓ１０１７）。画像領域外報知の態様については、上記した通りである。
【０１５４】
Ｓ１０１６の処理において、画像形成出力中の画像データがマルチパスモードによって出力される画像データではない場合（Ｓ１０１６／ＮＯ）、ＣＰＵ１１１は、印刷ジョブに記述されている情報に基づいて、画像形成出力中の画像データが、「Ｎパスモード」で出力されるものであるか否かを判定する（Ｓ１０１８）。
【０１５５】
画像形成出力中の画像データが、「Ｎパスモード」で出力されるものである場合（Ｓ１０１８／ＹＥＳ）、ハンドヘルドプリンタ１が画像形成領域外になると、次の行の印刷を行う。したがって、ＣＰＵ１１１は、改行報知を実行する（Ｓ１０１９）。
【０１５６】
なお、改行報知は、画像領域外報知と同様に、例えば、ＬＥＤスイッチや電源スイッチなどのＯＰＵ１０４を点滅させる制御、ブザーや音声、さらに、文字情報の表示や音声ガイダンスを画像データ送信端末２に行わせる構成であってよい。
【０１５７】
一方で、画像形成出力中の画像データが、「Ｎパスモード」で出力されるものではない場合（Ｓ１０１８／ＮＯ）、その画像データは、「ワンパスモード」で出力されるものである。したがって、ＣＰＵ１１１は、ハンドヘルドプリンタ１が画像形成領域外になると、印刷終了報知を実行する（Ｓ１０２０）。
【０１５８】
なお、印刷終了報知についても、改行報知と同様に、例えば、ＬＥＤスイッチや電源スイッチなどのＯＰＵ１０４を点滅させる制御、ブザーや音声、さらに、文字情報の表示や音声ガイダンスを画像データ送信端末２に行わせる構成であってよい。
【０１５９】
そして、ＣＰＵ１１１は、ＤＲＡＭ１０２に記憶されている画像形成出力対象の画像データの全てがＤＭＡＣ１２２へ転送された、もしくは、ユーザ４によってＬＥＤスイッチが操作されるなどして画像形成出力を終了する信号を受信済みである場合、画像形成出力が終了したと判定し（Ｓ１０１４／ＹＥＳ）、本処理を終了する。
【０１６０】
［閾値の実施形態］
ここで、本実施形態に係るハンドヘルドプリンタ１の画像領域外報知処理において用いられる閾値について詳細に説明する。図１１に示すように、本実施形態では、画像領域３００の周囲に複数の閾値を設定してもよい。例えば、第一マージンを設けるために設定される第一閾値Ｌｔｈ１と、第二マージンを設けるために設定される第二閾値Ｌｔｈ２のように、複数設定してもよい。なお、各閾値は、画像領域３００の境界の周囲の余白領域を設定することで、画像領域３００から外側への乖離量を判定するための値である。本実施形態では、第二閾値Ｌｔｈ２よりも第一閾値Ｌｔｈ１の方が大きい値となる。
【０１６１】
本実施形態において、記録媒体３の内側に仮想的に形成される画像領域３００の周囲には、第一閾値Ｌｔｈ１と第二閾値Ｌｔｈ２によって仮想的に、第一領域と第二領域が設定される。図１１において、第一領域を「第一判定領域３０１」とし、第二領域を「第二判定領域３０２」として例示している。
【０１６２】
図１２は、第一閾値Ｌｔｈ１及び第二閾値Ｌｔｈ２について、ハンドヘルドプリンタ１の移動と、「Ａｒｅａ＿ｆｌａｇレジスタ」、「Ａｒｅａ＿ｉｎレジスタ」の値の変化との関係を説明するための図である。
【０１６３】
Ａｒｅａ＿ｉｎレジスタの値は、ハンドヘルドプリンタ１の位置が、一度、第二判定領域３０２内であると判定されると、「Ａｒｅａ＿ｉｎ＝１」がセットされる。すなわち、「Ａｒｅａ＿ｉｎ＝１」は、ハンドヘルドプリンタ１が画像を形成するための位置にあることを示している。
【０１６４】
図１２に示すように、第一判定領域３０１から画像領域３００にハンドヘルドプリンタ１が近づくように移動すると、ハンドヘルドプリンタ１の位置が第二判定領域３０２に入ったタイミングで「Ａｒｅａ＿ｆｌａｇ＝１」、「Ａｒｅａ＿ｉｎ＝１」となる。
【０１６５】
ハンドヘルドプリンタ１の位置が、一度、第二判定領域３０２内に入った後、第二判定領域３０２の外であって第一判定領域３０１に内の領域に移動したと判定された場合、ハンドヘルドプリンタ１の位置が第一判定領域３０１の外になるまで、「Ａｒｅａ＿ｉｎ＝０」は維持される。つまり、ハンドヘルドプリンタ１が、一度、第二判定領域３０２内に入った後は、第一判定領域３０１の外に移動するまで、「Ａｒｅａ＿ｉｎレジスタ」の値は０のままである。
【０１６６】
このように第一判定領域３０１の外の領域から画像領域３００へ近づくようにハンドヘルドプリンタ１の位置を移動させる際には、画像領域３００からの距離として第二閾値Ｌｔｈ２を用いる。また、第二判定領域３０２の内から画像領域３００の外へハンドヘルドプリンタ１の位置が変化する場合、すなわち、ハンドヘルドプリンタ１が画像領域３００から遠ざかるように移動している場合には、画像領域３００からの距離として第一閾値Ｌｔｈ１を用いて画像領域外報知処理を実行する。
【０１６７】
このようにして、ハンドヘルドプリンタ１が画像領域３００に近づくか、もしくは、遠ざかるかに応じてヒステリシス効果を持たせた閾値を設定する。このように設定された閾値を用いて画像領域外報知処理を行うことにより、画像領域３００の近傍でのハンドヘルドプリンタ１の位置の細かい変化に対しても、精度よく画像領域外報知処理を行うことができる。
【０１６８】
［画像領域外報知処理の第二実施形態］
図１３は、本実施形態に係るヒステリシス効果を持たせた閾値を用いて画像領域外報知処理を行う処理の流れを示すフローチャートである。また、図１３に示す画像領域外報知処理において、ＣＰＵ１１１は、「Ａｒｅａ＿ｆｌａｇレジスタ」および「Ａｒｅａ＿ｉｎレジスタ」の値を、それぞれ０もしくは１にセットする。
【０１６９】
上述したように、「Ａｒｅａ＿ｆｌａｇ＝０」の場合、ＣＰＵ１１１は、画像領域外報知を行わない。ＣＰＵ１１１は、図１３のＳ１００１の処理において、Ａｒｅａ＿ｆｌａｇレジスタ、Ａｒｅａ＿ｉｎレジスタの値をリセットし、それぞれ「Ａｒｅａ＿ｆｌａｇ＝０」、「Ａｒｅａ＿ｉｎ＝０」をセットする。
【０１７０】
なお、図１３に示すフローチャートにおいて、図１０に示すフローチャートと同じ処理を行う処理ブロックについては、図１０と同じ符号を付し、重複する説明を省略する。
【０１７１】
Ｓ１００６の処理後、図１３に示すように、比較判定部１１３３は、位置情報取得部１１３１に位置算出部１１２が算出したハンドヘルドプリンタ１の現在位置Ｐ１の情報（および／または、ノズルの位置の情報）を取得させ、画像領域情報取得部１１３２に、画像領域情報を取得させる。
【０１７２】
そして、比較判定部１１３３は、ハンドヘルドプリンタ１の現在位置Ｐ１の情報および画像領域情報に基づいて、ハンドヘルドプリンタ１の現在位置Ｐ１から画像領域３００までの距離Ｄ２を算出する（Ｓ１３０１）。
【０１７３】
次に、比較判定部１１３３は、所定の閾値Ｌｔｈの値として、「Ｌｔｈ＝Ｌｔｈ２」をセットする（Ｓ１３０２）。そして、ＣＰＵ１１１は、「Ａｒｅａ＿ｉｎ＝１」であるか否かを判定し（Ｓ１３０３）、判定結果を判定処理部１１３に出力する。
【０１７４】
「Ａｒｅａ＿ｉｎ＝１」である場合（Ｓ１３０３／ＹＥＳ）、ハンドヘルドプリンタ１は、図１１で示す第二判定領域３０２の内側の領域に位置しているため、比較判定部１１３３は、所定の閾値Ｌｔｈの値として、「Ｌｔｈ＝Ｌｔｈ１」をセットする（Ｓ１３０４）。
【０１７５】
一方で、「Ａｒｅａ＿ｉｎ＝０」である場合（Ｓ１３０３／ＮＯ）、ハンドヘルドプリンタ１は、図１１で示す第二判定領域３０２の外側の領域に位置しているため、比較判定部１１３３は、そのまま次の処理に進む。
【０１７６】
次に、比較判定部１１３３は、Ｓ１３０１で算出したハンドヘルドプリンタ１の現在位置Ｐ１から画像領域３００までの距離Ｄ２が、距離Ｄ２＞Ｌｔｈであるか否かを判定する（Ｓ１３０５）。
【０１７７】
距離Ｄ２＞Ｌｔｈではない場合（Ｓ１３０５／ＮＯ）、ＣＰＵ１１１は、画像領域外報知を行っているか否かを判定し（Ｓ１３０６）、画像領域外報知を行っている場合には（Ｓ１３０６／ＹＥＳ）、画像領域外報知を取り消す（Ｓ１３０７）。ＣＰＵ１１１は、画像領域外報知をおこなっていない場合には（Ｓ１３０６／ＮＯ）、そのまま次のステップに進む。
【０１７８】
次に、ＣＰＵ１１１は、ＣＰＵ１１１のＡｒｅａ＿ｆｌａｇレジスタの値を「Ａｒｅａ＿ｆｌａｇ＝１」とセットし（Ｓ１３０８）、Ａｒｅａ＿ｉｎレジスタの値を「Ａｒｅａ＿ｉｎ＝１」にセットする（Ｓ１３０９）。
【０１７９】
なお、ハンドヘルドプリンタ１の位置が、第二判定領域３０２の内部に一度入った後であって、かつ、第一判定領域３０１の外部に出ていない場合に、Ａｒｅａ＿ｉｎレジスタの値が「Ａｒｅａ＿ｉｎ＝１」となる（図１２参照）。
【０１８０】
次に、ＣＰＵ１１１は、Ｓ９０５の処理と同様に回転処理部１２３にノズル周辺の画像データの回転処理を実行させる。回転処理部１２３は、回転処理したノズル周辺の画像データを、ＩＪ記録ヘッド制御部１２７に入力する。
【０１８１】
ＩＪ記録ヘッド制御部１２７は、予め設定されたインク吐出条件を満たすと判断した場合（Ｓ１３１０）、ＩＪ記録ヘッド駆動回路１０７に、入力された画像データに基づいてＩＪ記録ヘッド１０８から記録媒体３に対してインクを吐出させ（Ｓ１３１１）、Ｓ１３１２のステップに進む。なお、Ｓ１３１０のインク吐出条件は、Ｓ９０７、Ｓ１０１２と同じインク吐出条件であるため、説明を省略する。
【０１８２】
なお、Ｓ１３０５の処理において、距離Ｄ２＞Ｌｔｈである場合（Ｓ１３０５／ＹＥＳ）、ハンドヘルドプリンタ１の現在位置Ｐ１は、記録媒体３において、画像形成出力対象の画像が形成されない領域にある。したがって、ＣＰＵ１１１は、「Ａｒｅａ＿ｉｎ＝０」をセットする（Ｓ１３１３）。
【０１８３】
次に、ＣＰＵ１１１は、「Ａｒｅａ＿ｆｌａｇ＝１」であるか否かを判定する（Ｓ１３１４）。このとき、「Ａｒｅａ＿ｆｌａｇ＝１」となるのは、Ｓ１３０８の処理が実行された場合に限られるため、「Ａｒｅａ＿ｆｌａｇ＝１」であれば、ハンドヘルドプリンタ１は、必ず一度は、第二判定領域３０２の内側の領域に進入していることとなる。
【０１８４】
したがって、「Ａｒｅａ＿ｉｎ＝０」かつ「Ａｒｅａ＿ｆｌａｇ＝１」となるのは（Ｓ１３１４／ＹＥＳ）、ハンドヘルドプリンタ１が、第二判定領域３０２の内側の領域に進入した後で、第一判定領域３０１の外側の領域に移動した場合である。Ｓ１３１４でＹＥＳであった場合、ＣＰＵ１１１は、画像領域外報知を実行し（Ｓ１３１５）、Ｓ１３１２の処理に進む。
【０１８５】
そして、ＣＰＵ１１１は、ＤＲＡＭ１０２に記憶されている画像形成出力対象の画像データの全てがＤＭＡＣ１２２へ転送された、もしくは、ユーザ４によってＬＥＤスイッチが操作されるなどして画像形成出力を終了する信号を受信済みである場合、画像形成出力が終了したと判定し（Ｓ１３１２／ＹＥＳ）、本処理を終了する。
【０１８６】
次に、ハンドヘルドプリンタ１の現在位置Ｐ１が画像領域３００の外側の領域にある場合であって、ハンドヘルドプリンタ１が画像領域３００からさらに離れるように移動している場合の画像領域外報知処理について説明する。
【０１８７】
図１４は、本実施形態に係る画像領域３００からさらに離れるように移動するハンドヘルドプリンタ１に対して画像領域外報知処理を行う処理の流れを示すフローチャートである。
【０１８８】
上述したように、「Ａｒｅａ＿ｆｌａｇ＝０」の場合、ＣＰＵ１１１は、画像領域外報知を行わない構成である。ＣＰＵ１１１は、図１４のＳ１００１の処理において、Ａｒｅａ＿ｆｌａｇレジスタ、Ａｒｅａ＿ｉｎレジスタの値をリセットし、それぞれ「Ａｒｅａ＿ｆｌａｇ＝０」、「Ａｒｅａ＿ｉｎ＝０」をセットする。
【０１８９】
なお、図１４に示すフローチャートにおいて、図１０に示すフローチャートと同じ処理を行う処理ブロックについては、図１０と同じ符号を付し、重複する説明を省略する。また、第一閾値Ｌｔｈ１、第二閾値Ｌｔｈ２は、図１３のフローチャートと同様に設定される閾値である。
【０１９０】
Ｓ１００６の処理後、図１４に示すように、比較判定部１１３３は、位置情報取得部１１３１に位置算出部１１２が算出したハンドヘルドプリンタ１の現在位置Ｐ１の情報（および／または、ノズルの位置の情報）を取得させ、画像領域情報取得部１１３２に、画像領域情報を取得させる。
【０１９１】
そして、比較判定部１１３３は、ハンドヘルドプリンタ１の現在位置Ｐ１の情報および画像領域情報に基づいて、ハンドヘルドプリンタ１の現在位置Ｐ１から画像領域３００までの距離Ｄ３を算出する（Ｓ１４０１）。
【０１９２】
そして、比較判定部１１３３は、前回のハンドヘルドプリンタ１の現在位置Ｐ１から画像領域３００までの距離の算出値（前回距離）をＬｏｌｄにセットする（Ｓ１４０２）。なお、画像形成出力開始後、ハンドヘルドプリンタ１の現在位置Ｐ１から画像領域３００までの距離を初めて算出する際には、Ｌｏｌｄ＝Ｌｔｈ２と設定してもよい。
【０１９３】
次に、比較判定部１１３３は、所定の閾値Ｌｔｈの値として、「Ｌｔｈ＝Ｌｔｈ２」をセットする（Ｓ１４０３）。そして、ＣＰＵ１１１は、「Ａｒｅａ＿ｉｎ＝１」であるか否かを判定し（Ｓ１４０４）、判定結果を判定処理部１１３に出力する。
【０１９４】
Ｓ１４０１の処理を行うまでに、ハンドヘルドプリンタ１の現在位置Ｐ１が第二判定領域３０２に一度でも入っている場合には、「Ａｒｅａ＿ｉｎレジスタ」の値は１であり、ハンドヘルドプリンタ１の現在位置Ｐ１が第二判定領域３０２に一度も入っていない場合には、「Ａｒｅａ＿ｉｎレジスタ」の値は０である。
【０１９５】
「Ａｒｅａ＿ｉｎ＝１」である場合（Ｓ１４０４／ＹＥＳ）、ハンドヘルドプリンタ１は、図１１で示す第二判定領域３０２の内側の領域に位置しているため、比較判定部１１３３は、所定の閾値Ｌｔｈの値として、「Ｌｔｈ＝Ｌｔｈ１」をセットする（Ｓ１４０５）。
【０１９６】
一方で、「Ａｒｅａ＿ｉｎ＝０」である場合（Ｓ１４０４／ＮＯ）、ハンドヘルドプリンタ１は、図１１で示す第二判定領域３０２の外側の領域に位置しているため、比較判定部１１３３は、そのまま次の処理に進む。
【０１９７】
次に、比較判定部１１３３は、Ｓ１４０１で算出したハンドヘルドプリンタ１の現在位置Ｐ１から画像領域３００までの距離Ｄ３が、距離Ｄ３＞Ｌｔｈであるか否かを判定する（Ｓ１４０６）。
【０１９８】
距離Ｄ３＞Ｌｔｈではない場合（Ｓ１４０６／ＮＯ）、ＣＰＵ１１１は、ＣＰＵ１１１のＡｒｅａ＿ｆｌａｇレジスタの値を「Ａｒｅａ＿ｆｌａｇ＝１」とセットし、Ａｒｅａ＿ｉｎレジスタの値を「Ａｒｅａ＿ｉｎ＝１」にセットする（Ｓ１４０７）。
【０１９９】
なお、ハンドヘルドプリンタ１の位置が、第二判定領域３０２の内部に一度入った後であって、かつ、第一判定領域３０１の外部に出ていない場合に、Ａｒｅａ＿ｉｎレジスタの値が「Ａｒｅａ＿ｉｎ＝１」となる（図１２参照）。
【０２００】
次に、ＣＰＵ１１１は、画像領域外報知を行っているか否かを判定し（Ｓ１４０８）、画像領域外報知を行っている場合には（Ｓ１４０８／ＹＥＳ）、画像領域外報知を取り消す（Ｓ１４０９）。ＣＰＵ１１１は、画像領域外報知をおこなっていない場合には（Ｓ１４０８／ＮＯ）、そのまま次のステップに進む。
【０２０１】
次に、ＣＰＵ１１１は、Ｓ９０５の処理と同様に回転処理部１２３にノズル周辺の画像データの回転処理を実行させる。回転処理部１２３は、回転処理したノズル周辺の画像データを、ＩＪ記録ヘッド制御部１２７に入力する。
【０２０２】
ＩＪ記録ヘッド制御部１２７は、予め設定されたインク吐出条件を満たすと判断した場合（Ｓ１４１０）、ＩＪ記録ヘッド駆動回路１０７に、入力された画像データに基づいてＩＪ記録ヘッド１０８から記録媒体３に対してインクを吐出させ（Ｓ１４１１）、Ｓ１４１２のステップに進む。なお、Ｓ１４１０のインク吐出条件は、Ｓ９０７、Ｓ１０１２、Ｓ１３１０と同じインク吐出条件であるため、説明を省略する。
【０２０３】
なお、Ｓ１４０６の処理において、距離Ｄ３＞Ｌｔｈである場合（Ｓ１４０６／ＹＥＳ）、ハンドヘルドプリンタ１の現在位置Ｐ１は、記録媒体３において、画像形成出力対象の画像が形成されない領域にある。したがって、ＣＰＵ１１１は、「Ａｒｅａ＿ｉｎ＝０」をセットする（Ｓ１４１３）。
【０２０４】
次に、ＣＰＵ１１１は、「Ａｒｅａ＿ｆｌａｇ＝１」であるか否かを判定する（Ｓ１４１４）。このとき、「Ａｒｅａ＿ｆｌａｇ＝１」となるのは、Ｓ１４０７の処理が実行された場合に限られるため、「Ａｒｅａ＿ｆｌａｇ＝１」であれば、ハンドヘルドプリンタ１は、必ず一度は、第二判定領域３０２の内側の領域に進入していることとなる。
【０２０５】
したがって、「Ａｒｅａ＿ｉｎ＝０」かつ「Ａｒｅａ＿ｆｌａｇ＝１」となるのは（Ｓ１４１４／ＹＥＳ）、ハンドヘルドプリンタ１が、第二判定領域３０２の内側の領域に進入した後で、第一判定領域３０１の外側の領域に移動した場合である。
【０２０６】
また、「Ａｒｅａ＿ｉｎ＝０」かつ「Ａｒｅａ＿ｆｌａｇ＝０」となるのは（Ｓ１４１４／ＮＯ）、ハンドヘルドプリンタ１が、第二判定領域３０２の内側の領域に進入せずに、かつ、第一判定領域３０１の内側の領域にも侵入したことがない場合、すなわち、第一判定領域３０１の外側においてのみ移動している場合である。このとき、ＣＰＵ１１１は、Ｓ１４１２の処理に進む。
【０２０７】
Ｓ１４１４でＹＥＳであった場合、比較判定部１１３３は、距離Ｄ３＞Ｌｏｌｄであるか否かを判定する（Ｓ１４１５）。ハンドヘルドプリンタ１の現在位置Ｐ１から画像領域３００までの距離Ｄ３が前回距離より大きくなっている場合（Ｓ１４１５／ＹＥＳ）、ハンドヘルドプリンタ１は、前回の距離算出時よりも画像領域３００から離れるように移動している状態である。
【０２０８】
したがって、ＣＰＵ１１１は、画像領域外報知を実行し（Ｓ１４１６）、Ｓ１４１２の処理に進む。そして、ＣＰＵ１１１は、ＤＲＡＭ１０２に記憶されている画像形成出力対象の画像データの全てがＤＭＡＣ１２２へ転送された、もしくは、ユーザ４によってＬＥＤスイッチが操作されるなどして画像形成出力を終了する信号を受信済みである場合、画像形成出力が終了したと判定し（Ｓ１４１２／ＹＥＳ）、本処理を終了する。
【０２０９】
なお、ハンドヘルドプリンタ１の判定処理部１１３に相当する構成を画像データ送信端末２に実装し、画像領域外報知処理を画像データ送信端末２で行う構成としてもよい。このような構成の場合、ＣＰＵ１１１は、位置算出部１１２によって算出されたハンドヘルドプリンタ１の現在位置Ｐ１（および／または、ＩＪ記録ヘッド１０８の現在位置）を画像データ送信端末２に送信する。したがって、ＣＰＵ１１１は、位置情報送信部として機能する。
【０２１０】
以上説明したように、本実施形態では、画像データに基づいて画像領域３００を算出することにより、ハンドヘルドプリンタ１の走査態様ごとに好適な画像領域を定めることができる。このようにすることで、画像領域３００に基づいて画像領域外報知処理を実行することできるため、ハンドヘルドプリンタ１の不要な走査を減らして画像形成出力を行うことができる。
【０２１１】
本発明は、説明した実施形態に限定されるものではなく、その他の実施形態、追加、修正、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用や効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【０２１２】
１            ：ハンドヘルドプリンタ
２            ：画像データ送信端末
３            ：記録媒体
４            ：ユーザ
１０１        ：制御部
１０２        ：ＤＲＡＭ
１０３        ：ＲＯＭ
１０４        ：ＯＰＵ
１０５        ：ナビゲーションセンサ
１０６        ：ジャイロセンサ
１０７        ：ＩＪ記録ヘッド駆動回路
１０８        ：ＩＪ記録ヘッド
１０９        ：通信Ｉ／Ｆ
１１１        ：ＣＰＵ
１１２        ：位置算出部
１１３        ：判定処理部
１２０        ：ＦＰＧＡ
１２１        ：イメージＲＡＭ
１２２        ：ＤＭＡＣ
１２３        ：回転処理部
１２４        ：割込みコントローラ
１２５        ：ナビゲーションセンサＩ／Ｆ
１２６        ：センサタイミング生成部
１２７        ：ＩＪ記録ヘッド制御部
１２８        ：ジャイロセンサＩ／Ｆ
１２９        ：通信制御部
１３１Ａ      ：バス
１３１Ｂ      ：バス
１３２        ：音出力Ｉ／Ｆ
１４０        ：電源回路
１４１        ：電源
１６０        ：オーディオスピーカ
２００        ：コントローラ
２０１        ：画像処理部
２０２        ：画像領域算出部
２０３        ：報知制御部
２０４        ：操作制御部
２０５        ：通信制御部
２１０        ：ＣＰＵ
２２０        ：ＲＡＭ
２３０        ：ＲＯＭ
２４０        ：記憶媒体
２５０        ：Ｉ／Ｆ
２６１        ：表示部
２６２        ：音出力部
２７０        ：操作部
２８０        ：通信部
２８１        ：通信部
２９０        ：バス
３００        ：画像領域
３０１        ：第一判定領域
３０２        ：第二判定領域
１０００      ：画像形成システム
１１３１      ：位置情報取得部
１１３２      ：画像領域情報取得部
１１３３      ：比較判定部
１１３４      ：判定結果出力部
【先行技術文献】
【特許文献】
【０２１３】
【特許文献１】特開２００１−３１５３８５号公報
【図１】
2020040383.tif 000003
【図２】
2020040383.tif 000004
【図３】
2020040383.tif 000005
【図４】
2020040383.tif 000006
【図５】
2020040383.tif 000007
【図６】
2020040383.tif 000008
【図７】
2020040383.tif 000009
【図８】
2020040383.tif 000010
【図９】
2020040383.tif 000011
【図１０】
2020040383.tif 000012
【図１１】
2020040383.tif 000013
【図１２】
2020040383.tif 000014
【図１３】
2020040383.tif 000015
【図１４】
2020040383.tif 000016
【図１５】
2020040383.tif 000017
【図１６】
2020040383.tif 000018
【図１７】
2020040383.tif 000019