(57)【要約】      （修正有）【課題】印刷用紙の余白領域を有効に利用して、印刷用紙を節約することを可能にすると共に精度の高い余白領域の検出、検出した余白領域への印刷データの印刷、先に印刷された印刷データの識別を行う。【解決手段】インクの吐出を行う印字ヘッド１３５と、印字ヘッドを搭載するキャリッジ１３４と、印刷用紙を搬送するエンジン部１３０とを有し、キャリッジの往復運動をしながら、印字ヘッドからインクを吐出することにより、受信した印刷データに従って所定の印刷データを前記印刷用紙に印刷するインクジェットプリンタにおいて、印刷用紙内の印刷済領域を読み取る手段１３６と、印刷済領域情報を記憶する手段と、記憶した前記印刷済領域情報を使用して、最大余白領域を検出することができ、印刷データを最大余白領域に印刷するコントローラ部１２０を有し、印刷用紙内の最大余白領域を検出し、検出された最大余白領域に印刷データを印刷する。【選択図】  図１
2008100411.tif 000002
【特許請求の範囲】
【請求項１】
インクの吐出を行う印字ヘッドと、前記印字ヘッドを搭載するキャリッジと、印刷用紙を搬送するエンジンとを有し、前記キャリッジの往復運動をしながら、前記印字ヘッドからインクを吐出することにより、受信した印刷データに従って所定の印刷データを前記印刷用紙に印刷するインクジェットプリンタにおいて、前記印刷用紙内の印刷済領域を読み取る手段と、前記印刷済領域情報を記憶する手段とを有し、記憶した前記印刷済領域情報を使用して、最大余白領域を検出することができ、前記印刷データを前記最大余白領域に印刷するコントローラ部を有することを特徴とする印刷装置。
【請求項２】
請求項１において、前記コントローラは、前記印刷済領域情報を使用して、前記印刷用紙を印刷済領域と、余白領域に分割し、余白領域の面積が最大になるものを前記最大余白領域と判定することを特徴とする印刷装置。
【請求項３】
請求項１において、前記コントローラは、前記最大余白領域検出後、前記印刷データが前記最大余白領域に印刷可能かどうかを判定し、印刷可能と判定した場合は、前記印刷データのサイズを変更せずに、前記印刷用紙に印刷し、印刷不可能と判定した場合は、前記印刷データを、前記印刷用紙に印刷できるように縮小化してから印刷することを特徴とする印刷装置。
【請求項４】
請求項１において、前記コントローラは、前記印刷済領域に枠線を印刷することが出来ることを特徴とする印刷装置。
【請求項５】
請求項１において、前記コントローラは、電子透かし技術を用いて、前記印刷データに電子透かしデータを埋め込むことが出来ることを特徴とする印刷装置。
【請求項６】
請求項１において、前記印刷済領域を読み取る手段は、前記コントローラにより埋め込まれた電子透かしデータを、前記印刷用紙から検出することが出来ることを特徴とする印刷装置。
【請求項７】
請求項３において、前記コントローラは、前記印刷データが前記最大余白領域内に印刷可能であるかどうかの判定を、前記印刷データの幅と長さが、前記最大余白領域の幅及び長さ以下であるかどうかにより行うことを特徴とする印刷装置。
【請求項８】
請求項３において、前記コントローラは、前記印刷データの幅と前記最大余白領域の幅の比率と、前記印刷データの長さと前記最大余白領域の長さの比率を算出し、比率が小さい方を基準に、前記印刷データを縮小化することを特徴とする印刷装置。
【請求項９】
上記請求項１から上記請求項８を請求項１記載の印刷装置上で動作させるためのコンピュータプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷用紙内の最大余白領域を検出し、検出された最大余白領域に印刷データを印刷することで、余白領域を有効に活用することが出来るようにした印刷装置に関する。
【背景技術】
【０００２】
従来のインクジェットプリンタは、ホスト側の端末（例えば、パーソナルコンピュータ）で生成された印刷データを受信し、印字ヘッドを搭載したキャリッジを往復運動させ、印字ヘッドからインクを吐出させることにより、受信した印刷データを給紙された印刷用紙に印刷する。しかしながら、従来のインクジェットプリンタでは、給紙された印刷用紙上に印刷済領域が存在するかどうかを判定せず、印刷用紙の左上から印刷を開始するため、印刷領域が印刷用紙に比べて小さい場合は、印刷用紙内に余白領域が多く残ることになる。このような問題点を改善するために、プリンタ側が、インクキャリッジに取り付けたCCD読み取り手段により、印刷用紙内の印刷済領域部、または、余白領域部を読み取り、新たな印刷データに従う画像が余白領域に印刷可能であるか否かを判定し、印刷可能であると判断された場合、新たな印刷データに従う画像を余白領域に印刷するシステム(例えば、特開2001-96834)が存在する。
【特許文献１】特開2001-96834号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前記システム(例えば、特開2001-96834)を使用することで、印刷済領域の検出、余白領域への印刷は可能であるが、
a) 余白領域内に収まらない印刷データの印刷は不可能。
【０００４】
b) 検出できた余白領域が、本当に、余白領域なのか（例えば、先に印刷されたテンプレートの印刷予定部分なのか）などといった精度の高い余白領域の検出が不可能。
【０００５】
c) ユーザが先に印刷された印刷データとの識別を行うことが困難。
などという課題が残されている。
【０００６】
そこで、本発明は、印刷用紙の余白領域を有効に利用して、印刷用紙を節約することを可能にすると共に、前記課題a)〜c)を解決するために創作されたものであり、本発明を使用することで、精度の高い余白領域の検出、検出した余白領域への印刷データの印刷、先に印刷された印刷データの識別を行うことが可能になる。
【課題を解決するための手段】
【０００７】
本発明は、前記課題を解決するために、余白検出・印刷データ最適化印刷装置に以下の構成を採用する。
【０００８】
インクの吐出を行う印字ヘッドと、前記印字ヘッドを搭載するキャリッジと、印刷用紙を搬送するエンジンとを有し、前記キャリッジの往復運動をしながら、前記印字ヘッドからインクを吐出することにより、受信した印刷データに従って所定の印刷データを前記印刷用紙に印刷するインクジェットプリンタにおいて、前記印刷用紙内の印刷済領域を読み取る手段と、前記印刷済領域情報を記憶する手段とを有し、記憶した前記印刷済領域情報を使用して、最大余白領域を検出することができ、前記印刷データを前記最大余白領域に印刷するコントローラ部を有する印刷装置。
【０００９】
前記コントローラは、前記印刷済領域情報を使用して、前記印刷用紙を印刷済領域と、余白領域に分割し、余白領域の面積が最大になるものを前記最大余白領域と判定する。
【００１０】
前記コントローラは、電子透かし技術を用いて、前記印刷データに電子透かしデータを埋め込み、前記印刷済領域を読み取る手段（例えば、CCDセンサなど）が、前記コントローラにより埋め込まれた電子透かしデータを、前記印刷用紙から検出することで、印刷済領域を検出する。
【００１１】
前記コントローラは、前記印刷データが前記最大余白領域内に印刷可能であるかどうかの判定を、前記印刷データの幅と長さが、前記最大余白領域の幅及び長さ以下であるかどうかにより行い、印刷不可能と判定した場合、前記印刷データの幅と前記最大余白領域の幅の比率と、前記印刷データの長さと前記最大余白領域の長さの比率を算出し、比率が小さい方を基準に、前記印刷データを縮小化してから印刷する。
【００１２】
前記コントローラは、記憶された前記印刷済領域情報を使用し、前記印刷済領域に枠線を印刷することが出来る。
【発明の効果】
【００１３】
前記構成の本発明を使用することで、印刷用紙内に埋め込まれた電子透かしデータを元に、印刷用紙を印刷済領域と余白領域に分割し、検出したすべての余白領域の面積を比較することで、最大余白領域を検出し、検出した最大余白領域のサイズに対して印刷データを最適化することで、受信したすべての印刷データの印刷が可能になり、前記課題a）が解決する。また、電子透かしデータが埋め込まれた領域を印刷済領域と識別するため、前記課題b）が解決する。さらに、印刷済領域に対して、枠線を印刷するため、先に印刷された印刷データとの識別を行うことが容易となり、前記課題c）が解決する。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について実施例を図面を用いて説明する。しかし、かかる実施形態例が本発明の技術的範囲を限定するものではない。
【００１５】
図 1は、発明にかかわる余白検出・印刷データ最適化印刷装置の構成の一例を示すブロック図である。余白検出・印刷データ最適化印刷装置（１００）は、外部端末とのI/F部（１１０）と、コントローラ部（１２０）と、エンジン部（１３０）から構成される。コントローラ部（１１０）は、外部とのI/F部（１１０）から受信したデータの解析、エンジン部（１３０）の制御、記憶装置（１２２）とのアクセスを行う制御部（１２１）と、受信した印刷データに関するものの他に、印刷用紙内の印刷済領域と余白領域に関する情報も記憶しておく記憶装置（１２２）から構成される。エンジン部（１３０）は、紙搬送部（１３１）とヘッド駆動部（１３３）から構成されており、紙搬送部（１３１）は、印刷用紙を上下に搬送する紙搬送エンジン（１３２）から構成されている。また、ヘッド駆動部（１３３）は、キャリッジ（１３４）を左右に動作制御し、キャリッジ（１３４）に取り付けられている印字ヘッド（１３５）で、実際の印字を行う。また、キャリッジ（１３４）には、印刷済領域を読み取るためのセンサ（１３６）も取り付けられている。
【００１６】
図 2、図 3、図 4、図 5は、本発明の流れを示すフローチャートである。以下では、このフローチャートに沿って本発明の実施の形態について説明する。しかし、かかる実施形態例が本発明の技術的範囲を限定するものではない。
【００１７】
まず、１回目の印刷データを印刷用紙に印刷する場合について説明する。Ｓ１で、ユーザは、印刷用紙（図 6）を本発明印刷装置（１００）に給紙する。印刷用紙（図 6）が給紙されると、制御部（１２１）は、Ｓ２で、記憶装置（１２２）に格納されている印刷済領域数と余白領域数を０に設定し、Ｓ３で、最大余白領域開始位置座標を印刷用紙の左上に位置する座標（０，０）に、最大余白領域終了位置座標を印刷用紙の右下に位置する座標（印刷用紙の幅（Ｘ）、印刷用紙の長さ（Ｙ））に初期化する。次に、Ｓ４で、制御部（１２１）は、紙搬送部（１３１）とヘッド駆動部（１３３）を利用して、キャリッジ（１３４）を印刷用紙の左上に位置する座標（０，０）から順に右下に位置する座標（Ｘ，Ｙ）まで移動させる。その際、印刷用紙内に電子透かしデータが埋め込まれていれば、キャリッジ（１３４）に取り付けられたセンサ（１３６）が電子透かしデータを読込み、電子透かしデータの開始位置座標、電子透かしデータの終了位置座標と、電子透かしデータ数をカウントし、制御部（１２１）へ受け渡し、制御部（１２１）が受け取ったデータを記憶装置（１２２）に記憶する。キャリッジ（１３４）が、印刷用紙の右下に位置する（Ｘ，Ｙ）まで移動し、印刷用紙内のすべての電子透かしデータを読み取った後、制御部（１２１）が、紙搬送部（１３１）とヘッド駆動部（１３３）を利用して、印刷用紙を移動させ、キャリッジ（１３４）を印刷用紙の左上に位置する座標（０，０）へ移動させる。次に、Ｓ５で、制御部（１２１）が、Ｓ４で印刷済領域を検出できたかどうかを判定する。
【００１８】
本実施例の１回目の印刷では、電子透かしデータが印刷用紙内に埋め込まれていないとすると、Ｓ７へ処理が流れ、制御部（１２１）が記憶装置（１２２）上に格納されている余白領域数をインクリメントすることで、余白領域数は１（＝最大余白領域）となる。
【００１９】
次に、制御部（１２１）が、Ｓ８で余白領域を検出できたかどうかを判定する。ここで、余白領域を検出できなかった（余白領域数＝０）場合は、Ｓ１で給紙された印刷用紙内に余白領域が存在しないと判断し、Ｓ１０で印刷データの受信を拒否し、処理が終了する。
【００２０】
本実施例の１回目の印刷では、余白領域数が１（＝最大余白領域）であるため、Ｓ９へ処理が流れる。
【００２１】
次に、ユーザは、印刷したいデータを選定し、本発明印刷装置とネットワークケーブルで接続された端末（例えば、パーソナルコンピュータ）上からアプリケーションプログラムを使用して印刷データを本発明印刷装置へ送信する。本発明印刷装置は、Ｓ９で印刷データを受信する。
【００２２】
本実施例では、Ｓ９で受信した１回目の印刷データのサイズを幅＝ｘ１（＜Ｘ）、長さ＝ｙ１（＜Ｙ）とする。
【００２３】
次に、制御部（１２１）は、Ｓ１１で、再び、印刷済領域数を用いて、Ｓ４で印刷済領域を検出できたかどうかを判定する。Ｓ４で印刷済領域を検出した場合は、Ｓ１２で、検出した印刷済領域に枠線を印刷する。
【００２４】
本実施例の１回目の印刷では、Ｓ４で印刷済領域は検出しなかったため、Ｓ１３へ処理が流れる。
【００２５】
次に、制御部（１２１）は、Ｓ１３で、Ｓ９で受信した印刷データが最大余白領域内に印刷可能かどうかを印刷データの幅と長さが最大余白領域の幅及び長さ以下であるかどうかにより判定する。制御部（１２１）が印刷出来ない場合と判定した場合、つまり、最大余白領域内に印刷データの印刷が出来ない場合は、制御部（１２１）が、Ｓ１４で、Ｓ９で受信した印刷データに対して、縮小処理を施す。
【００２６】
本実施例の１回目の印刷では、最大余白領域（幅＝Ｘ、長さ＝Ｙ）内に印刷データ（幅＝ｘ１（＜Ｘ）、長さ＝ｙ１（＜Ｙ））が印刷可能であるため、Ｓ１４の縮小処理は行わない。
【００２７】
次に、Ｓ１５で制御部（１２１）は、印刷データ内に電子透かし技術を用いて電子透かしデータを埋め込む。電子透かしデータ内には、印刷済領域に関する情報とタイムスタンプを埋め込んでおく。次に、Ｓ１６で制御部（１２１）は、紙搬送部（１３１）とヘッド駆動部（１３３）を利用して、キャリッジ（１３４）を最大余白領域開始位置へ移動させ、印刷データの印刷を開始する。
【００２８】
本実施例では、１回目の印刷時、最大余白開始位置は、（０，０）であるため、（０，０）からＳ９で受信した印刷データの印刷を開始する。
【００２９】
印刷終了後、Ｓ１７で印刷用紙を排紙し、１回目の印刷が終了する。
【００３０】
本実施例の１回目の印刷では、印刷終了後、印刷用紙は、図 7のようになる。ここで、ｐ１ｘ＝ｘ１，ｐ１ｙ＝ｙ１ である。また、以下では、本実施例で新たに印刷された領域を印刷済領域Ａと呼ぶ。
【００３１】
次に、２回目の印刷データを印刷用紙の余白領域に印刷する場合について説明する。Ｓ１で、ユーザは既に１回印刷データが印刷されている印刷用紙を本発明印刷装置に給紙する。
【００３２】
本実施例の２回目の印刷では、給紙された印刷用紙（図 7）内の領域（（０，０）〜（ｐ１ｘ，ｐ１ｙ））には、１回目の印刷データと共に、電子透かしデータが印刷されている。
【００３３】
印刷用紙が給紙されると、１回目の印刷時と同様に、制御部（１２１）は、Ｓ２で、記憶装置（１２２）に格納されている印刷済領域数と余白領域数を０に設定し、Ｓ３で、最大余白領域開始位置座標を印刷用紙の左上に位置する座標（０，０）に、最大余白領域終了位置座標を印刷用紙の右下に位置する座標（印刷用紙の幅（Ｘ）、印刷用紙の長さ（Ｙ））に初期化する。次に、Ｓ４で、制御部（１２１）は、紙搬送部（１３１）とヘッド駆動部（１３３）を利用して、キャリッジ（１３４）を印刷用紙の左上に位置する座標（０，０）から順に右下に位置する座標（Ｘ，Ｙ）まで移動させる。その際、印刷用紙内に電子透かしデータが埋め込まれていれば、キャリッジ（１３４）に取り付けられたセンサ（１３６）が電子透かしデータを読込み、印刷済領域の開始位置座標、終了位置座標、電子透かしデータ内に埋め込まれたタイムスタンプ、電子透かしデータ数、つまり、印刷済領域数をカウントし、制御部（１２１）へ受け渡し、制御部（１２１）が受け取ったデータを記憶装置（１２２）に記憶する。
【００３４】
本実施例では、２回目の印刷時には、電子透かしデータ数、つまり、印刷済領域数が１であり、印刷済領域開始位置と印刷済領域終了位置は、それぞれ、（０，０）と（ｐ１ｘ，ｐ１ｙ）である印刷済領域Ａと、印刷済領域Ａが印刷された時のタイムスタンプが検出でき、これらの値が記憶装置（１２２）に記憶される。
【００３５】
キャリッジ（１３４）が、印刷用紙の右下に位置する（Ｘ，Ｙ）まで移動し、印刷用紙内の全透かしデータを読み取った後、１回目の印刷時と同様に、制御部（１２１）が、紙搬送部（１３１）とヘッド駆動部（１３３）を利用して、印刷用紙を移動させ、キャリッジ（１３４）を印刷用紙の左上に位置する座標（０，０）へ移動させる。次にＳ５で、制御部（１２１）が、Ｓ４で印刷済領域を検出できたかどうかを判定する。
【００３６】
本実施例の、２回目の印刷では、印刷済領域数が１であるため、Ｓ６の余白領域検出処理へ処理が流れる。
【００３７】
以下、図 3の余白領域検出処理について説明する。制御部（１２１）は、Ｓ６．１で、Ｓ４で抽出できた印刷済領域数を余白領域検索回数に代入する。次に、Ｓ６．２へ流れ、このループ処理内で、最大余白領域の座標と余白領域数を検出する。制御部（１２１）が、Ｓ６．３で、Ｓ４で抽出できた印刷済領域開始位置座標と、印刷済領域終了位置座標を記憶装置（１２２）から取り出す。
【００３８】
本実施例では、印刷済領域として印刷済領域Ａ（開始位置座標（０，０）、終了位置座標（ｐ１ｘ、ｐ１ｙ））が記憶装置（１２２）から取り出される。
【００３９】
次に、Ｓ６．４で、制御部（１２１）がＳ６．３で取り出した印刷済領域の右領域に余白領域が存在するかを印刷済領域の幅と最大余白領域の幅を比較することで判定する。印刷済領域の幅 ＜ 最大余白領域の幅 の場合、Ｓ６．３で取り出した印刷済領域の右領域に余白領域が存在することになるため、Ｓ６．５に処理が流れ、制御部（１２１）が、余白領域開始位置座標と余白領域終了位置座標を算出し、Ｓ６．６で余白領域数をインクリメントし、それぞれの値を記憶装置（１２２）へ記憶させる。
【００４０】
本実施例では、印刷済領域Ａの幅（ｐ１ｘ）＜ 最大余白領域の幅（Ｘ）であるため、印刷済領域Ａの右領域に余白領域が存在することになり、余白領域開始位置座標が（印刷済領域Ａ終了位置のＸ座標＝ｐ１ｘ、印刷済領域Ａ開始位置のＹ座標＝０）となり、余白領域終了位置座標が（最大余白領域終了位置のＸ座標＝Ｘ、印刷済領域Ａ終了位置のＹ座標＝ｐ１ｙ））となる。ここで算出した余白領域を以下、余白領域Ａと呼ぶ（図 8）。
【００４１】
次に、Ｓ６．７で、制御部（１２１）がＳ６．３で取り出した印刷済領域の下領域に余白領域が存在するかを印刷済領域の長さと最大余白領域の長さを比較することで判定する。印刷済領域の長さ ＜ 最大余白領域の長さ の場合、Ｓ６．３で取り出した印刷済領域Ａの下領域に余白領域が存在することになるため、Ｓ６．８に処理が流れ、制御部（１２１）が、余白領域開始位置座標と余白領域終了位置座標を算出し、Ｓ６．９で余白領域数をインクリメントし、それぞれの値を記憶装置（１２２）へ記憶させる。
【００４２】
本実施例では、印刷済領域Ａの長さ（ｐ１ｙ）＜ 最大余白領域の長さ（Ｙ）であるため、印刷済領域Ａの下領域に余白領域が存在することになり、余白領域開始位置座標が（印刷済領域Ａ開始位置のＸ座標＝０、印刷済領域Ａ終了位置のＹ座標＝ｐ１ｙ）となり、余白領域終了位置座標が（最大余白領域終了位置のＸ座標＝Ｘ、最大余白領域終了位置のＹ座標＝Ｙ）となる。ここで算出した余白領域を以下、余白領域Ｂと呼ぶ（図 9）。
【００４３】
次に、制御部（１２１）が、Ｓ６．１０で、検出できた余白領域を利用して、最大余白領域を検出する。
【００４４】
本実施例では、余白領域Ａと余白領域Ｂが検出されたので、上記２つの余白領域について最大余白領域を検出することになる。
【００４５】
以下、図 4の最大余白領域検出処理について説明する。制御部（１２１）が、Ｓ６．１０．１で、検出できた全ての余白領域に対して余白領域のサイズを 余白領域の幅×余白領域の長さ で算出する。次に、Ｓ６．１０．２で、Ｓ６．１０．１で算出した余白領域のサイズが最大になるものを最大余白領域に設定し、記憶装置（１２２）に記憶させる。
【００４６】
本実施例では、余白領域Ａ（サイズ＝（Ｘ−ｐ１ｘ）×ｐ１ｙ）と余白領域Ｂ（サイズ＝Ｘ×（Ｙ−ｐ１ｙ））が検出できており、ここで、（Ｘ−ｐ１ｘ）×ｐ１ｙ ＜ Ｘ×（Ｙ−ｐ１ｙ）とすると、最大余白領域は余白領域Ｂと判定され、最大余白領域開始位置は、（０、ｐ１ｙ）となり、最大余白領域終了位置は、（Ｘ，Ｙ）となる（図 9参照）。
【００４７】
最大余白領域検出後、制御部（１２１）は、Ｓ６．１１で、余白領域検索回数と、余白領域数をデクリメントし、Ｓ６．２に処理が流れる。
【００４８】
本実施例では、Ｓ６．１１で、余白領域検索回数をデクリメントした結果０となるため、Ｓ６．２のループ処理は抜け、図 2のＳ８に処理が移る。また、本実施例の２回目の印刷では、Ｓ６の余白領域検出処理で余白領域を検出できたため、Ｓ９へ流れる。
【００４９】
次に、１回目の印刷時と同様に、ユーザは、印刷したいデータを選定し、プリンタとネットワークケーブルで接続された端末（例えば、パーソナルコンピュータ）上からアプリケーションプログラムを使用して本発明印刷装置へ送信する。本発明印刷装置は、Ｓ９で、印刷データを受信する。
【００５０】
本実施例では、Ｓ９で受信した２回目の印刷データのサイズを幅＝ｘ２（＜Ｘ）、長さ＝ｙ２（＜Ｙ−ｐ１ｙ）とする。
【００５１】
次に、制御部（１２１）は、Ｓ１１で、印刷済領域数を用いて、Ｓ４で印刷済領域を検出できたかどうかを判定する。印刷済領域を検出できていた場合は、Ｓ１２で検出した印刷済領域上に枠線を印刷する。この枠線を印刷することで、ユーザは、前回の印刷箇所と今回の印刷箇所の違いを特定することが容易になる。
【００５２】
本実施例の２回目の印刷では、Ｓ４で印刷済領域を検出できたため、Ｓ１２へ処理が流れ、Ｓ４で検出した印刷済領域に枠線を印刷する。本実施例では、図 10のように、印刷済領域Ａ（開始位置（０，０）、終了位置（ｐ１ｘ，ｐ１ｙ））に枠線が印刷される。
【００５３】
Ｓ１２で枠線を印刷した後、Ｓ１３へ処理が流れ、制御部（１２１）が、Ｓ９で受信した印刷データが最大余白領域内に印刷可能かどうかを印刷データの幅と長さが最大余白領域の幅及び長さ以下であるかどうかにより判定する。制御部（１２１）が印刷出来ないと判定した場合は、制御部（１２１）が、Ｓ１４でＳ９で受信した印刷データに対して、縮小処理を施す。
【００５４】
本実施例の２回目の印刷では、最大余白領域（幅＝Ｘ、長さ＝Ｙ−ｐ１ｙ）内に、印刷データ（幅＝ｘ２（＜Ｘ）、長さ＝ｙ２（＜Ｙ−ｐ１ｙ））が印刷可能であるため、Ｓ１４の縮小処理は行わない。
【００５５】
次に、Ｓ１５で制御部（１２１）は、印刷データ内に電子透かし技術を用いて電子透かしデータを埋め込む。１回目の印刷時と同様に、電子透かしデータ内には、印刷済領域に関する情報とタイムスタンプを埋め込んでおく。次に、Ｓ１６で制御部（１２１）は、紙搬送部（１３１）とヘッド駆動部（１３３）を利用して、キャリッジ（１３４）を最大余白領域開始位置へ移動させ、印刷データの印刷を開始する。
【００５６】
本実施例では、２回目の印刷時、最大余白開始位置は、（０，ｐ１ｙ）であるため、（０，ｐ１ｙ）から印刷データの印刷を開始する。
【００５７】
印刷終了後、Ｓ１７で印刷用紙を排紙し、２回目の印刷が終了する。
【００５８】
本実施例では、２回目の印刷終了後、印刷用紙は図 11のようになる。ここで、ｐ２ｘ＝ｘ２，ｐ２ｙ＝ｙ２＋ｐ１ｙ である。また、以下では、新たに印刷された領域を印刷済領域Ｂと呼ぶ。
【００５９】
次に、３回目の印刷データを印刷用紙の余白領域に印刷する場合について説明する。Ｓ１で、ユーザは既に２回印刷データが印刷されている印刷用紙を本発明印刷装置に給紙する。
【００６０】
本実施例の３回目の印刷では、給紙された印刷用紙（図 11）内の領域（（０，０）〜（ｐ１ｘ，ｐ１ｙ）と（０，ｐ１ｙ）〜（ｐ２ｘ，ｐ２ｙ））には、印刷データと共に、電子透かしデータが印刷されている。
【００６１】
印刷用紙（図 11）が給紙されると、１、２回目の印刷時と同様に、制御部（１２１）は、Ｓ２で、印刷済領域数と余白領域数を０に設定し、Ｓ３で、最大余白領域開始位置座標を印刷用紙の左上に位置する（０，０）に、最大余白領域終了位置座標を印刷用紙の右下に位置する（印刷用紙の幅（Ｘ）、印刷用紙の長さ（Ｙ））に初期化する。次に、１、２回目の印刷時と同様に、Ｓ４で、制御部（１２１）は、紙搬送部（１３１）とヘッド駆動部（１３３）を利用して、キャリッジ（１３４）を印刷用紙の左上に位置する座標（０，０）から順に右下に位置する座標（Ｘ，Ｙ）まで移動させる。 その際、２回目の印刷時と同様に、印刷用紙内に電子透かしデータが埋め込まれていれば、キャリッジ（１３４）に取り付けられたセンサ（１３６）が電子透かしデータを読込み、印刷済領域の開始位置座標、終了位置座標、電子透かしデータ内に埋め込まれたタイムスタンプ、電子透かしデータ数、つまり、印刷済領域数をカウントし、制御部（１２１）へ受け渡し、制御部（１２１）が受け取ったデータを記憶装置（１２２）に記憶する。
【００６２】
本実施例では、３回目の印刷時には、印刷用紙には、印刷済領域Ａと印刷済領域Ｂが印刷されている（図 11）ため、印刷済領域数が２となり、印刷済領域数、印刷済領域Ａの開始位置、終了位置、印刷済領域Ａが印刷された時のタイムスタンプと印刷済領域Ｂの開始位置、終了位置、印刷済領域Ｂが印刷された時のタイムスタンプが検出でき、これらの値が記憶装置（１２２）に記憶される。
【００６３】
キャリッジ（１３４）が、印刷用紙の右下に位置する（Ｘ，Ｙ）まで移動し、印刷用紙内のすべての電子透かしデータを読み取った後、１、２回目の印刷時と同様に、制御部（１２１）が、紙搬送部（１３１）とヘッド駆動部（１３３）を利用して、印刷用紙を移動させ、キャリッジ（１３４）を印刷用紙の左上に位置する座標（０，０）へ移動させる。次にＳ５で、制御部（１２１）が、Ｓ４で印刷済領域を検出できたかどうかを判定する。
【００６４】
本実施例の、３回目の印刷では、印刷済領域数が２であるため、Ｓ６の余白領域検出処理へ処理が流れる。
【００６５】
以下、２回目の印刷時と同様に、図 3の余白領域検出処理について説明する。制御部（１２１）は、Ｓ６．１で、Ｓ４で抽出できた印刷済領域数を余白領域検索回数に代入する。
【００６６】
本実施例では、印刷済領域数は２であるため、余白領域検索回数は２になる。
【００６７】
次に、Ｓ６．２の処理へ流れ、このループ処理内で、最大余白領域と余白領域数を検出する。制御部（１２１）は、Ｓ６．３で、Ｓ４で検出できた印刷済領域開始位置座標と、印刷済領域終了位置座標を記憶装置（１２２）から取り出す。次に、Ｓ６．４〜Ｓ６．９でＳ６．３で取り出した印刷済領域に対し、２回目の印刷時と同様に、印刷済領域の右領域と下領域に余白領域が存在するかを判定し、Ｓ６．１０で最大余白領域を検出する。以降、Ｓ６．２のループ処理内で、制御部（１２１）が、検出できた最大余白領域をベースに再度、余白領域の検出、最大余白領域の更新を行っていく。
【００６８】
本実施例では、Ｓ６．３で、まず、タイムスタンプの小さい印刷済領域Ａを取り出し、Ｓ６．４〜Ｓ６．９で印刷済領域Ａに対し、右領域の余白領域（開始位置（Ｘ，ｐ１ｙ）、終了位置（ｐ１ｘ，０））と下領域の余白領域（開始位置（０，ｐ１ｙ）、終了位置（Ｘ，Ｙ））を検出することができ、Ｓ６．１０で、最大余白領域は余白領域Ｂと判定され、最大余白領域開始位置（０，ｐ１ｙ）、最大余白領域終了位置（Ｘ，Ｙ）となる。次に、Ｓ６．１１で、余白領域数と余白領域検索回数をデクリメントし、Ｓ６．２の処理へ流れる。ここでは、デクリメントした結果、余白領域検索回数が１であるため、再度、Ｓ６．３へ処理が流れる。Ｓ６．３では、印刷済領域Ｂが記憶装置（１２２）から取り出されることになり、Ｓ６．４で印刷済領域Ｂの幅（ｐ２ｘ）と最大余白領域の幅（Ｘ）を比較するが、ｐ２ｘ＜Ｘ であるため、印刷済領域Ｂの右領域に余白領域が存在すると判定され、Ｓ６．５，Ｓ６．６に処理が流れる。その結果、右領域の余白領域（開始位置（ｐ２ｘ，ｐ１ｙ）、終了位置（Ｘ，ｐ２ｙ））が検出される。以下、検出された印刷済領域Ｂに対する右領域の余白領域を余白領域Ｂ１と呼ぶ。次に、Ｓ６．７で、印刷済領域Ｂの長さ（ｐ２ｙ）と最大余白領域のＹ座標（Ｙ）を比較するが、ｐ２ｙ＜Ｙであるため、印刷済領域Ｂの下領域に余白領域（開始位置（０，ｐ２ｙ）、終了位置（Ｘ，Ｙ））が検出される。以下、印刷済領域Ｂに対する下領域の余白領域を余白領域Ｂ２と呼ぶ。ここまでの処理の中で、検出できた余白領域は、図 12のように、余白領域Ａ（開始位置（ｐ１ｘ，０）、終了位置（Ｘ，ｐ１ｙ））、余白領域Ｂ１（開始位置（ｐ１ｘ，０）、終了位置（Ｘ，ｐ１ｙ））、余白領域Ｂ２（開始位置（ｐ１ｘ，０）、終了位置（Ｘ，ｐ１ｙ））の３つである。検出できた３つの余白領域に関する情報を利用して、Ｓ６．１０で最大余白領域をＳ６．１０．１で検出できた上記３つの余白領域のサイズを余白領域の幅×余白領域の長さ を求め、それぞれのサイズを比較することで算出する。本実施例では、余白領域Ｂ２のサイズが最大であるとすると、Ｓ６．１０．２で最大余白領域は余白領域Ｂ１と判定され、最大余白領域開始位置は、（ｐ２ｘ，ｐ１ｙ）となり、最大余白領域終了位置は、（Ｘ，ｐ２ｙ）となる（図 12）。次に、Ｓ６．１１で余白領域数と余白領域検索回数をデクリメントし、再度Ｓ６．２の処理に流れるが、余白領域検索回数が０となるため、Ｓ６．２のループ処理には入らず、Ｓ８の処理に流れる。また、本実施例の３回目の印刷では、Ｓ６の余白領域検出処理で余白領域を検出できたため、Ｓ９へ流れる。
【００６９】
次に、１、２回目の印刷時と同様に、ユーザは、印刷したいデータを選定し、印刷装置とネットワークケーブルで接続された端末（例えば、パーソナルコンピュータ）上からアプリケーションプログラムを使用して本発明印刷装置へ送信する。本発明印刷装置は、Ｓ９で、印刷データを受信する。
【００７０】
本実施例では、S9で受信した３回目の印刷データのサイズを幅＝ｘ３（＜Ｘ−ｐ２ｘ）、長さ＝ｙ３（＞ｐ２ｙ−ｐ１ｙ）とする。
【００７１】
次に、制御部（１２１）は、Ｓ１１で、再び、印刷済領域数を用いて、Ｓ４で印刷済領域を検出できたかどうかを判定する。
【００７２】
本実施例の３回目の印刷では、図 12のように、Ｓ４で印刷済領域Ａ、印刷済領域Ｂを検出できたため、２回目の印刷時と同様に、Ｓ１２へ処理が流れ、Ｓ４で検出した印刷済領域Ａと印刷済領域Ｂに枠線を印刷する（図 13）。
【００７３】
次に、Ｓ１３へ処理が流れ、制御部（１２１）が、Ｓ１３で、Ｓ９で受信した印刷データが最大余白領域内に印刷可能かどうかを判定する。
【００７４】
本実施例では、Ｓ９で受信した３回目の印刷データの長さ（ｙ３）が、最大余白領域の長さ（ｐ２ｙ−ｐ１ｙ）より大きいため、Ｓ１４でＳ９で受信した印刷データに対して、制御部（１２１）が、縮小処理を施す。
【００７５】
以下、図 5の印刷データ縮小処理について説明する。Ｓ１４．１で、制御部（１２１）は、受信した印刷データの幅と最大余白領域の幅の比率と、印刷データの長さと最大余白領域の長さの比率を算出し、Ｓ１４．２〜Ｓ１４．４で、比率が小さい方の値をデータ縮小率と算出する。Ｓ１４．５で、受信した印刷データを算出されたデータ縮小率に沿って縮小化する。
【００７６】
本実施例では、（Ｘ−ｐ２ｘ）／ｘ３ ＞（ｐ２ｙ−ｐ１ｙ）／ｙ３ であるため、データ縮小率は、（ｐ２ｙ−ｐ１ｙ）／ｙ３となり、この縮小率に沿って受信した印刷データを縮小化する。
【００７７】
次に、Ｓ１５で制御部（１２１）は、印刷データ内に電子透かし技術を用いて電子透かしデータを埋め込む。１、２回目の印刷時と同様に、電子透かしデータの内容は、センサ部が識別できるものならば、特に指定はしない。次に、Ｓ１６で制御部（１２１）は、紙搬送部（１３１）とヘッド駆動部（１３３）を利用して、キャリッジ（１３４）を最大余白領域開始位置へ移動させ、印刷データの印刷を開始する。
【００７８】
本実施例では、３回目の印刷時、最大余白開始位置は、（ｐ２ｘ，ｐ１ｙ）であるため、（ｐ２ｘ，ｐ１ｙ）から印刷データの印刷を開始する。
【００７９】
印刷終了後、Ｓ１７で印刷用紙を排紙し、３回目の印刷が終了する。
【００８０】
本実施例では、印刷終了後、印刷用紙は、図 14のようになる。ここで、ｐ３ｘ＝ｘ３，ｐ３ｙ＝ｙ３＋ｐ１ｙ である。
【００８１】
４回目の印刷以降も、１〜３回目の印刷と同様に、Ｓ１〜S１６の処理で、最大余白領域を検出し、検出した最大余白領域内にデータを印刷する形となる。
【図面の簡単な説明】
【００８２】
【図１】本発明の一実施形態の構成を示すブロック図
【図２】本発明のメイン処理動作を説明するためのフローチャート
【図３】本発明の余白領域検出処理を説明するためのフローチャート
【図４】本発明の最大余白領域検出処理を説明するためのフローチャート
【図５】本発明の印刷データ縮小処理を説明するためのフローチャート
【図６】本発明のメイン処理動作を説明するためのフローチャート
【図７】本発明を使用して１回目の印刷データの印刷を行った場合の一例
【図８】本発明を使用して余白領域の検出を行った場合の一例
【図９】本発明を使用して余白領域の検出を行った場合の一例
【図１０】本発明を使用して印刷済領域に枠線の印刷を行った場合の一例
【図１１】本発明を使用して２回目の印刷データの印刷を行った場合の一例
【図１２】本発明を使用して余白領域の検出を行った場合の一例
【図１３】本発明を使用して印刷済領域に枠線の印刷を行った場合の一例
【図１４】本発明を使用して３回目の印刷データの印刷を行った場合の一例
【図１】
2008100411.tif 000003
【図２】
2008100411.tif 000004
【図３】
2008100411.tif 000005
【図４】
2008100411.tif 000006
【図５】
2008100411.tif 000007
【図６】
2008100411.tif 000008
【図７】
2008100411.tif 000009
【図８】
2008100411.tif 000010
【図９】
2008100411.tif 000011
【図１０】
2008100411.tif 000012
【図１１】
2008100411.tif 000013
【図１２】
2008100411.tif 000014
【図１３】
2008100411.tif 000015
【図１４】
2008100411.tif 000016