(57)【要約】【課題】  画像データを所定の高さで区分したバンドごとに受信した後、実際に用紙の方向と画像の方向が異なる場合に、用紙の方向に合わせた画像を印刷する印刷装置および印刷方法を提供する。【解決手段】  ホストコンピュータから画像データを受信する印刷データ取得部４０と、印刷データから、用紙の方向と画像の方向とが一致するか否かを判断する印刷方向判断部４１と、画像データの階調数を少なくするバンドデータ変換部４２と、バンドを分割することにより複数のブロックを取得するブロック生成部４３と、ブロックを回転させる処理を行うブロック回転部４４と、ブロックのデータを圧縮するブロック圧縮部４５と、複数のブロックからバンドを生成するバンドデータ生成部４６と、バンドを圧縮する圧縮部４７とを備える。【選択図】      図４
2006159468.tif 000002
【特許請求の範囲】
【請求項１】
所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、前記バンドに基づいて前記画像を所定の方向の用紙に印刷する印刷装置であって、
前記バンドを分割することにより複数のブロックを取得するブロック取得手段と、
前記ブロックを回転させることにより、前記ブロックにおける前記画像の印刷方向を、前記用紙の方向に合わせて整列する整列手段と、
複数の整列したブロックを結合することにより、バンドを構築するバンド構築手段と、
構築後のバンドに基づいて印刷する印刷手段と、を備えることを特徴とする印刷装置。
【請求項２】
請求項１に記載の印刷装置において、
前記受信したバンドを記憶するバンド記憶手段と、
前記ブロックを記憶するブロック記憶手段を更に備え、
前記整列手段は、前記バンド記憶手段に記憶されているブロックを読み出してから、前記ブロック記憶手段を用いてブロックを回転させることを特徴とする印刷装置。
【請求項３】
請求項２に記載の印刷装置において、
前記ブロック取得手段は、前記バンドの高さと同じ幅で前記バンドを分割することにより複数のブロックを取得することを特徴とする印刷装置。
【請求項４】
請求項３に記載の印刷装置において、
前記整列手段は、回転後のブロックを回転前のブロックが記憶されていた前記バンド記憶手段の記憶領域に記憶することを特徴とする印刷装置。
【請求項５】
請求項１ないし４のいずれかの一項に記載の印刷装置において、
前記バンド構築手段は、前記画像の印刷方向と前記用紙の方向が一致していない場合に、印刷するべきページのうちの１ページに対応するバンドのみを構築することを特徴とする印刷装置。
【請求項６】
請求項５に記載の印刷装置において、
前記バンドに対して、画質を落とす変換を行うバンド変換手段を更に備えることを特徴とする印刷装置。
【請求項７】
請求項５または６に記載の印刷装置において、
前記画像の印刷方向と前記用紙の方向とが一致していない旨を表す状態表示画像を分割した状態表示ブロックを記憶する状態表示ブロック記憶手段を更に備え、
前記バンド構築手段は、前記ブロックおよび前記状態表示ブロックから、バンドを構築することを特徴とする印刷装置。
【請求項８】
所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、前記バンドに基づいて前記画像を所定の方向の用紙に印刷する印刷装置であって、
前記画像の印刷方向と前記用紙の方向が一致していない場合に、印刷するべきページのうちの１ページに対応するバンドについて、前記バンドを回転させることにより、前記バンドにおける前記画像の印刷方向を、前記用紙の方向に合わせて整列する整列手段と、
前記整列したバンドに基づいて印刷する印刷手段と、を備えることを特徴とする印刷装置。
【請求項９】
所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、前記バンドに基づいて前記画像を所定の方向の用紙に印刷する印刷装置であって、
前記バンドを回転させることにより、前記バンドにおける前記画像の印刷方向を、前記用紙の方向に合わせて整列する整列手段と、
前記整列したバンドに対して、前記画像の印刷方向と前記用紙の方向と一致していない旨を表す状態表示画像を付与することにより、前記状態表示画像を含むバンドを構築するバンド構築手段と、
前記構築したバンドに基づいて印刷する印刷手段と、を備えることを特徴とする印刷装置。
【請求項１０】
所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、前記バンドに基づいて前記画像を所定の方向の用紙に印刷する印刷方法であって、
前記バンドを分割することにより複数のブロックを取得するブロック取得工程と、
前記ブロックを回転させることにより、前記ブロックにおける前記画像の印刷方向を、用紙の方向に合わせて整列する整列工程と、
複数の整列したブロックを結合することにより、バンドを構築するバンド構築工程と、
構築後のバンドに基づいて印刷する印刷工程と、を備えることを特徴とする印刷方法。
【請求項１１】
所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、前記バンドに基づいて前記画像を所定の方向の用紙に印刷する印刷方法であって、
印刷するべきページのうちの１ページに対応するバンドについて、前記バンドを回転させることにより、前記バンドにおける前記画像の印刷方向を、前記用紙の方向に合わせて整列する整列工程と、
前記整列したバンドに基づいて印刷する印刷工程と、を備えることを特徴とする印刷方法。
【請求項１２】
所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、前記バンドに基づいて前記画像を所定の方向の用紙に印刷する印刷方法であって、
前記バンドを回転させることにより、前記バンドにおける前記画像の印刷方向を、前記用紙の方向に合わせて整列する整列工程と、
前記整列したバンドに対して、前記画像の印刷方向と前記用紙の方向と一致していない旨を表す状態表示画像を付与することにより、状態表示画像を含むバンドを構築するバンド構築工程と、
前記構築したバンドに基づいて印刷する印刷工程と、を備えることを特徴とする印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信した後、受信したバンドに基づいて所定の印刷方向に印刷を行う印刷装置および印刷方法に関する。
【背景技術】
【０００２】
一般に、印刷に用いられる用紙として、Ａ３，Ａ４など縦横の長さが異なる所定のサイズの用紙が用いられている。用紙がセットされる方向は印刷装置の機種により異なることがあり、例えば、Ａ４用紙に対応した画像を印刷する際に、Ａ３用紙対応の印刷装置では、印刷する方向に対してＡ４用紙の長辺方向を垂直にセットすることがある。一方、Ａ４用紙対応の印刷装置では、印刷ヘッドまたは露光ビームを走査する走査長が短くなるように走査方向と用紙の短辺方向とを揃えてセットする。このとき、印刷する方向は走査方向に対して垂直になっているので、Ａ４用紙の短辺方向が印刷する方向に対して垂直にセットされる。このように、印刷装置の機種に依存して、異なる方向にセットされた用紙に対して印刷することがある。そこで、ホスト装置が個々の印刷装置に対応した画像データを生成する、いわゆるホストベースの印刷システムにおいては、ホスト装置は、用紙の方向に対応した画像データを生成するようにしている。
【０００３】
ここで、ホスト装置と印刷装置との機種設定の不一致、ホスト装置側の印刷設定の誤りなどがあった場合、用紙の方向に対応していない画像データが生成されることがある。このような場合、画像データを正しい方向で印刷するためには、印刷装置側で画像データの印刷方向を変換する処理が必要になる。そこで、例えば、特許文献１では、画像データを回転させることにより、用紙の方向に対応した画像データを取得する技術が開示されている（特許文献１  第２１頁  図１３参照）。また、特許文献２では、画像データを回転させる際に、１ページ分の画像データを、より小さなブロックを単位として回転させる技術が開示されている。
【０００４】
【特許文献１】特開２０００−０７９７２３号公報
【特許文献２】特開２００１−１７１１８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ホスト装置から印刷装置へのデータ転送方法には、画像データを色の順番で送信するプレーン順次の転送方法と、用紙１ページ分の画像データを高さ方向に所定の長さで分割したバンドという領域ごとにデータを送信するバンド順次のデータ転送がある。特許文献１および特許文献２に記載の従来の印刷装置では、各色の画像データごとに送られてくるプレーン順次の転送方法においては、各色ごとの画像データを適切に処理することができる。しかしながら、各色のバンドごとに送られてくるバンド順次の転送方法においては、バンドごとに処理する必要があるため、１ページ分の画像データに対して処理を行うとする従来の印刷装置では適切に処理することができなかった。そこで、本発明は、バンド順次の転送方法においても、適切に画像データを回転させることができる処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明では、所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、バンドに基づいて画像を所定の方向の用紙に印刷する印刷装置であって、バンドを分割することにより複数のブロックを取得するブロック取得手段と、ブロックを回転させることにより、ブロックにおける画像の印刷方向を、用紙の方向に合わせて整列する整列手段と、複数の整列したブロックを結合することにより、バンドを構築するバンド構築手段と、構築後のバンドに基づいて印刷する印刷手段と、を備えることを特徴とする。
【０００７】
この構成によれば、画像を所定の高さで区分したバンドを受信した後に、バンドを分割して得られるブロックごとに回転させる処理を行い、回転後のブロックを結合することで回転後のバンドを取得する。回転後のバンドに基づいて印刷することにより、用紙の方向に合わせて回転させた画像を印刷することができる。
【０００８】
また、本発明は、受信したバンドを記憶するバンド記憶手段と、ブロックを記憶するブロック記憶手段を更に備え、整列手段は、バンド記憶手段に記憶されているブロックを読み出してから、ブロック記憶手段を用いてブロックを回転させることが好ましい。
【０００９】
このようにすれば、画像より小さいブロックに対して回転させる処理を行うとしたことにより、回転させる処理を行う際に用いるブロック記憶手段の記憶容量を少なくすることができる。
【００１０】
また、本発明は、ブロック取得手段は、バンドの高さと同じ幅でバンドを分割することにより複数のブロックを取得することが好ましい。
【００１１】
このようにすれば、バンドの高さを１辺とする正方形形状のブロックが得られる。正方形形状のブロックは、画像の印刷方向を用紙の方向に合わせて９０°回転させてもブロック中心の座標が変化することがないので、バンド記憶手段に記憶されたブロックを記憶領域上で管理しやすくなる。
【００１２】
また、本発明は、整列手段は、回転後のブロックを回転前のブロックが記憶されていたバンド記憶手段の記憶領域に記憶することが好ましい。
【００１３】
このようにすれば、回転前後のブロックは形状が変化しないので、回転前のブロックが記憶されていたバンド記憶手段の記憶領域に回転後のブロックを記憶することができる。回転前後のブロックを同じ記憶領域に記憶するとしたことにより、バンド記憶手段に必要となる記憶容量を少なくすることができる。
【００１４】
また、本発明は、バンド構築手段は、画像の印刷方向と用紙の方向が一致していない場合に、印刷するべきページのうちの１ページに対応するバンドのみを構築することが好ましい。
【００１５】
このようにすれば、画像の印刷方向と用紙の方向が一致していない場合には、１ページ分の画像のみが印刷されることになる。ここで、画像データの印刷方向が印刷装置の印刷方向と一致していない場合に、上述したように画像を回転させる処理を伴うために印刷に要する処理量は大きくなる。複数のページを印刷する場合であっては、複数のページについて処理を行うため多大な処理量、印刷時間を要することになるので、ユーザにとっては不便である。そこで、印刷するべきページのうちの１ページだけを印刷するとしたことにより、ユーザは、１ページの印刷物を受け取った後に、画像の印刷方向または用紙の方向の設定を変えて、回転させる処理を伴わない印刷により全ての印刷するべきページを印刷することができるようになる。１ページだけについて回転させる処理を行うことになるので、印刷するべきページを印刷するために要するトータルでの処理量、処理時間を軽減することができる。
【００１６】
また、本発明は、バンドに対して、画質を落とす変換を行うバンド変換手段を更に備えることが好ましい。
【００１７】
このようにすれば、印刷される画像データはバンドの画質を落とす変換を行うことによりデータ量が少なくなる。画像データの印刷方向と印刷装置の印刷方向が一致していない場合に印刷された１ページは、画像データのデータ量を少なくすることによって印刷に要する処理量、印刷時間をさらに軽減することができる。なお、画質を落とす変換としては、画像の階調数、色数、解像度などを元の画像より少なくする変換を行うことが望ましい。また、バンドデータを変換するタイミングとしては、バンドをブロックに分割する前に行うとよい。
【００１８】
また、本発明は、画像の印刷方向と用紙の方向とが一致していない旨を表す状態表示画像を分割した状態表示ブロックを記憶する状態表示ブロック記憶手段を更に備え、バンド構築手段は、ブロックおよび状態表示ブロックから、バンドを構築することが好ましい。
【００１９】
このようにすれば、画像データの印刷方向と用紙の方向が一致していない場合には、回転させた画像と共に状態表示画像が表示された画像を印刷する。印刷された状態表示画像を見ることによって、ユーザは画像データの印刷方向が用紙の方向と一致していないことを知ることができる。
【００２０】
また、本発明の印刷装置は、所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、バンドに基づいて画像を所定の方向の用紙に印刷する印刷装置であって、画像の印刷方向と用紙の方向が一致していない場合に、印刷するべきページのうちの１ページに対応するバンドについて、バンドを回転させることにより、バンドにおける画像の印刷方向を、用紙の方向に合わせて整列する整列手段と、整列したバンドに基づいて印刷する印刷手段と、を備えるとしてもよい。
【００２１】
この構成によれば、画像の印刷方向と用紙の方向が一致していない場合に、回転させた画像を１ページだけ印刷する。２ページ目以降の印刷については、ユーザは、印刷設定を変更して回転させる処理を必要としない通常の印刷処理により印刷することができるようになる。
【００２２】
また、本発明の印刷装置は、所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、バンドに基づいて画像を所定の方向の用紙に印刷する印刷装置であって、バンドを回転させることにより、バンドにおける画像の印刷方向を、用紙の方向に合わせて整列する整列手段と、整列したバンドに対して、画像の印刷方向と用紙の方向と一致していない旨を表す状態表示画像を付与することにより、状態表示画像を含むバンドを構築するバンド構築手段と、構築したバンドに基づいて印刷する印刷手段と、を備えるとしてもよい。
【００２３】
この構成によれば、画像の印刷方向と用紙の方向が一致していない場合に、印刷するべき画像と状態表示画像を含む画像を印刷することになる。したがって、ユーザは、状態表示画像から画像の印刷方向と用紙の方向が一致していないことを知ることができる。
【００２４】
また、本発明は、印刷方法とすることもできる。すなわち、本発明の印刷方法は、所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、バンドに基づいて画像を所定の方向の用紙に印刷する印刷方法であって、バンドを分割することにより複数のブロックを取得するブロック取得工程と、ブロックを回転させることにより、ブロックにおける画像の印刷方向を、用紙の方向に合わせて整列する整列工程と、複数の整列したブロックを結合することにより、バンドを構築するバンド構築工程と、構築後のバンドに基づいて印刷する印刷工程と、を備えることを特徴とする。
【００２５】
本発明の印刷方法は、所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、バンドに基づいて画像を所定の方向の用紙に印刷する印刷方法であって、印刷するべきページのうちの１ページに対応するバンドについて、バンドを回転させることにより、バンドにおける画像の印刷方向を、用紙の方向に合わせて整列する整列工程と、整列したバンドに基づいて印刷する印刷工程と、を備えることを特徴とする。
【００２６】
本発明の印刷方法は、所定の印刷方向に対応した画像を所定の高さで区分したバンドごとに受信し、バンドに基づいて画像を所定の方向の用紙に印刷する印刷方法であって、バンドを回転させることにより、バンドにおける画像の印刷方向を、用紙の方向に合わせて整列する整列工程と、整列したバンドに対して、画像の印刷方向と用紙の方向と一致していない旨を表す状態表示画像を付与することにより、状態表示画像を含むバンドを構築するバンド構築工程と、構築したバンドに基づいて印刷する印刷工程と、を備えることを特徴とする。
【発明を実施するための最良の形態】
【００２７】
以下、本発明を具体化した一実施形態について図面を参照して説明する。
【００２８】
図１は、本発明に係る印刷システム１の構成を示した図である。図１に示すように、印刷システム１は、プリンタ（印刷装置）２およびホストコンピュータ３を備えている。プリンタ２は、ホストコンピュータ３に接続されており、ホストコンピュータ３から送られる印刷データに基づいて、印刷媒体である用紙に印刷を行う。
【００２９】
図１に示すホストコンピュータ３は、プリンタ２に対して印刷要求を行うホスト装置であり、アプリケーション１０と、プリンタドライバ１１と、インターフェイス（以下Ｉ／Ｆと記す）１２とを備えている。ホストコンピュータ３には、ディスプレイ、キーボードおよびマウス（図示なし）が接続されている。ディスプレイに表示される画面に従ってキーボードまたはマウスから入力される操作信号に基づいて以下に述べる印刷処理が行われる。また、ホストコンピュータ３は汎用のパーソナルコンピュータであり、ホストコンピュータ３の内部には、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク（図示なし）が備えられている。
【００３０】
アプリケーション１０は、プリンタ２に対する印刷要求元であり、印刷要求を行うユーザは、ディスプレイに表示される設定画面に従って、印刷時の各種印刷条件を設定する。印刷条件としては、Ａ４、Ａ３、Ｂ４など用紙の種類、用紙が縦方向か、横方向であるかを示す印刷方向、カラー印刷を行うかモノクロ印刷を行うかの設定などがある。ユーザが印刷を行う際には、キーボードまたはマウスなどにより入力される操作信号に基づいて当該アプリケーション１０、または、後述するプリンタドライバ１１からその旨の要求を行う。このとき、アプリケーション１０は、プリンタドライバ１１に印刷要求および画像データを送信する。
【００３１】
プリンタドライバ１１は、アプリケーション１０からＧＤＩ(Graphic Device Interface)データを受け取って、プリンタ２が処理することができるデータ形式の印刷データを生成する。ここで、プリンタドライバ１１は、オブジェクト毎に記述される画像データを画素毎の濃度値で表現された画像データに変換する処理を行っている。そして、変換後の画像データの色表現（ＲＧＢデータ）をプリンタ２で印刷される際の色表現に変換する色変換処理、その後のデータを圧縮する圧縮処理等も行う。すなわち、本実施形態では、いわゆるホストベースのシステムを想定している。
なお、プリンタドライバ１１は、上述した色変換処理において、カラー印刷、モノクロ印刷などの印刷設定に従って、ＲＧＢデータを各種の画像データに変換する。すなわち、カラー印刷を行うと設定されている場合、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）の各々について階調値をもつＣＭＹＫデータからなる画像データに変換する。モノクロ印刷に設定されている場合には、Ｋの濃度を表す階調値をもつＫデータ、またはＫの輝度を表す階調値をもつＧｒａｙデータが画像データに変換する。本実施形態では、上述したＣＭＹＫデータ、Ｇｒａｙデータ、Ｋデータの階調値は２５６階調（８ビット）で表現されることとしている。もっとも、変換する色表現、階調数はこれに限られるものではない。
【００３２】
プリンタドライバ１１は、画像の表示領域を高さ方向に所定の画素数ごとに分割した矩形形状の画像（以下、バンドという）に対応する画像データであるバンドデータを生成する。得られたバンドデータは、ＫＣＭＹの順番に各色のバンドデータを送信する。また、アプリケーション１０からの印刷要求に基づいて、各種印刷条件を示す制御コマンドが生成される。プリンタドライバ１１は、バンドデータおよび制御コマンドからなる印刷データを、Ｉ／Ｆ１２を介して所定の順番でプリンタ２に送信する。このように、本印刷システム１では、バンドの順番に従って画像データを送信するバンド順次のデータ転送を行う。なお、本実施形態では、バンドの高さを６４画素としている。
【００３３】
次に、プリンタドライバ１１が送信する印刷データについて説明する。
図２は、プリンタドライバがプリンタに送信する印刷データのデータ構成とデータ転送の順番を示した図である。図２に示すように、印刷データは、ヘッダ（１）〜（３）および画像データであるバンドデータから構成されている。また、図２は、複数ページの画像データを含む１つの印刷ジョブの印刷データを送信する際の、データの順番を示している。印刷データの送信が開始されると、始めに、ヘッダ（１）が送信される。ヘッダ（１）は、印刷データの先頭に付与された印刷データ全体の制御情報である。具体的には、ヘッダ（１）は、６００ｄｐｉというように当該印刷データが想定している解像度を示す解像度情報などを有している。ヘッダ（１）の次には、各ページの画像データが送信されるが、各ページのデータの先頭にはヘッダ（２）が付与されている。ヘッダ（２）は、ページごとに付与される制御情報であり、当該ページの総バンド数を示す総バンド数情報、当該ページを印刷するために用いる用紙サイズを示す用紙サイズ情報、画像データの描画領域を示す描画領域情報などを有している。ヘッダ（２）の次にはヘッダ（２）に対応するページの画像データが送信される。ここで、上述したように、バンド順次のデータ転送を行うので、バンドデータを順番に送信することにより画像データの送信が行われている。例えば、図２では、各色のバンドデータを、“Ｋ，Ｃ，Ｙ，Ｍ”と表しており、これに付随する数字がバンドの順番を示している。画像データを送信する際には、始めに送信するバンドデータのＣＭＹＫデータをＫ１，Ｃ１，Ｍ１，Ｙ１の順にを送信してから、次に２つめのバンドデータのＣＭＹＫデータをＫ２，Ｃ２，Ｍ２，Ｙ２の順に送信する。このように、各色のデータをバンドごとに順次送信することにより１ページ目の画像データの送信を行っている。そして、総バンド数情報が示すバンド数だけバンドデータの送信を繰り返すと１ページ目の画像データの送信が完了する。次に、２ページ目の画像データについて、ヘッダ（２）と当該ページのバンドデータを送信する。このようにして、印刷データが有するページ数だけ画像データの送信を繰り返した後には、プリンタドライバ１１は、ヘッダ（３）を送信して印刷データの送信を終了する。ヘッダ（３）は、印刷データの送信の終了を示す情報を有した制御情報である。
【００３４】
インターフェイス（Ｉ／Ｆ）１２は、プリンタ２と相互に通信可能に接続されており、上述した印刷データをプリンタ２に送信する。
【００３５】
なお、通常、ホストコンピュータ３は、プリンタ２に対応したドライバプログラムを実行してプリンタドライバ１１として機能する。この場合、プリンタ２に対応したプリンタドライバ１１であるので、プリンタ２は印刷データの制御情報（ヘッダ（１）〜ヘッダ（３））に基づいて、画像データを印刷することができる。
【００３６】
ここで、様々な利用環境のもとでは、プリンタドライバ１１に対応していないプリンタ２により印刷が行われる状況が発生することがある。例えば、ホストコンピュータ３がモバイルコンピュータであれば、ユーザは移動先で印刷を試みる場合があるため、Ａ４用紙対応のプリンタ用のプリンタドライバから、Ａ３用紙対応のプリンタに印刷データが転送されるような状況が発生する。さらに、プリンタの機種によっては、Ａ４対応のプリンタはＡ４用紙の長辺方向に沿って印刷を行うが、Ａ３用紙対応のプリンタでは、Ａ４用紙の短辺方向に沿って印刷を行うというように、プリンタの機種によっては同じ種類の用紙に対しても用紙の方向が異なる場合がある。この場合、プリンタドライバ１１はＡ４用紙の長辺方向を用紙の方向として画像データを生成する一方で、実際の印刷はＡ４用紙の短辺方向に沿って行われることになる。このようなとき、従来のプリンタでは、用紙形状が異なるため１枚の用紙に収めて印刷することができなくなり、１ページ分の画像を複数のページに分けて印刷されていた。図３は、画像データを印刷した結果を説明するための図である。図３（ａ）は、縦方向にセットされたＡ４用紙に、縦方向の印刷に対応する画像データを印刷した印刷物を示している。このときの印刷方向は用紙の縦方向である。同図に示すように、正しい方向に印刷された画像は、画像の描画領域が１ページの用紙の内部に収まっている。図３（ｂ）は、同じ画像データを横方向にセットされたＡ４用紙に印刷した印刷物の１ページ目を示している。この印刷結果では図３（ａ）の描画領域が１枚の用紙に収まっていない。このように、ホストベースプリンタでは用紙の種類が合っていても、用紙がセットされた方向である用紙の方向が画像の方向と異なっているときは正しく印刷が行われないことがある。そこで、例えば、特許文献１，２に記載されているプリンタでは、プリンタが用紙の方向に合わせて画像データを回転させる処理を行っている。このようにすれば、正しい方向に印刷することはできる。しかし、多数のページを印刷する際には、全ページの画像データを変換する必要が生じるので多大な演算量が必要になる。本発明のプリンタ２は、特にバンド順次のデータ転送において、画像データの印刷方向とプリンタ２が用紙の方向とが一致していない場合に行う処理に特徴を有するものである。
【００３７】
プリンタ２は、前記ホストコンピュータ３から送信される印刷データを受信して、ページ単位で印刷を実行するいわゆる４サイクルのレーザプリンタである。図１に示すように、プリンタ２は、制御部２０、印刷エンジン２１を備えている。制御部２０は、入出力インターフェイス（以下、入出力Ｉ／Ｆという）３０、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３およびエンジンインターフェイス（以下、エンジンＩ／Ｆという）３６を有している。
【００３８】
入出力Ｉ／Ｆ３０は、ホストコンピュータ３から送信される印刷データを受信する。
【００３９】
ＲＯＭ３２は、プリンタ２を制御するための各種プログラムを記憶している。また、詳細は後述するが、ＲＯＭ３２には用紙の方向と画像の方向が異なる旨を表示する状態表示画像の画像データ（図８（ａ）参照）を記憶している。
【００４０】
ＲＡＭ３３は、ＣＰＵ３１が後述する処理を行うために使用する汎用のメモリであり、ＲＡＭ３３の記憶領域上にはページ記憶部３４およびブロック記憶部３５が形成されている。ページ記憶部３４は、印刷データ等をページごとに格納する記憶領域であり、入出力Ｉ／Ｆ３０が受信した印刷データは、いったんページ記憶部３４に格納される。ブロック記憶部３５は後述するブロックを記憶するための記憶領域である。なお、詳細は後述するが、アドレス参照テーブルもＲＡＭ３３の所定の記憶領域に記憶される。
【００４１】
ＣＰＵ３１は、プリンタ２において行われる各種処理を制御する部分である。ＣＰＵ３１は、特に、受信した印刷データをページ記憶部３４に格納する処理、印刷データに含まれる制御情報を解釈して用紙の方向を判断する処理、用紙の方向に合わせて画像データを変換する処理、印刷エンジン２１に対して印刷処理を指示する処理などを司る。ＣＰＵ３１が実行する処理は、ＲＯＭ３２またはＲＡＭ３３に記憶されたプログラムに従って行われる。
【００４２】
エンジンＩ／Ｆ３６は、印刷エンジン２１が印刷を実行する際に、所定のタイミングでページ記憶部３４に格納されている画像データを読み出し、それらに所定の処理を施した後に印刷エンジン２１に引き渡す、制御部２０と印刷エンジン２１とのインターフェースを司る部分である。このエンジンＩ／Ｆ３６には、図示していないが、データを一時的に格納するメモリ、解凍部、スクリーン処理部等が備えられ、ＲＡＭ３３から読み出した画像データに対して、圧縮されたデータの解凍、ドットのデータへ変換するスクリーン処理などがなされる。これらの処理を行うエンジンＩ／Ｆ３６の処理回路は、具体的には、ＡＳＩＣ(Application Specific Integrated Circuit)で構成されている。
【００４３】
以上に説明した制御部２０の各構成は、図１に示すように、相互にデータ授受可能に接続されている。
【００４４】
図４は、制御部２０の機能的構成を示した図である。図４に示すように、制御部２０は、印刷データ取得部４０、印刷方向判断部（判断手段）４１、バンドデータ変換部（バンド変換手段）４２、ブロック生成部（ブロック取得手段）４３、ブロック回転部（整列手段）４４、ブロック圧縮部４５、バンドデータ生成部（バンド構築手段）４６、圧縮部４７とを有している。ＣＰＵ３１が、入出力Ｉ／Ｆ３０、ＲＯＭ３２、ＲＡＭ３３、ページ記憶部３４、ブロック記憶部３５およびエンジンＩ／Ｆ３６を動作させて処理を行うことにより、制御部２０が上記した各構成として機能している。図５および図６は制御部２０が行う処理を説明するための図である。以下、制御部２０の各構成が行う処理について図を用いて説明する。
【００４５】
印刷データ取得部４０は、入出力Ｉ／Ｆ３０が受信した印刷データよりバンドデータおよびヘッダ（１）〜（３）からなる制御情報を取得する。ここで図５上段に示すように、プリンタドライバ１１は、画像を６４画素の高さごとに区分したバンドデータを、画像データの上側に位置するバンドデータから順に送信している。この送信する順番を、ｍで表すこととする。そして、画像データの総バンド数をＭとすると、Ｍ番目のバンドデータを受信すると、画像データの全バンドデータを取得したことになる。したがって、図５上段に示す画像データは“ｍ＝１”のバンドデータから順に送信され、図５中上段には、印刷データ取得部４０が“ｍ＝１”のバンドデータを取得した様子が示されている。
【００４６】
印刷方向判断部４１は、印刷データのヘッダ（１）およびヘッダ（２）が有する制御情報に基づいて、印刷する用紙の方向と画像の方向（画像の印刷方向）とが合っているか否かを判断する。ここで、制御情報に基づいた判断の方法について説明する。印刷方向判断部４１は、まず、ヘッダ（１）が有している解像度情報およびヘッダ（２）が有している用紙サイズ情報から印刷する用紙の描画領域を算出する。ここでは、用紙サイズと解像度とを乗算することにより印刷する用紙の描画領域を算出する。次に、ヘッダ（２）が有している画像データの描画領域情報から、画像の描画領域を取得する。こうして得られた印刷する用紙の描画領域と画像の描画領域とを比較することにより、用紙の方向と画像の方向が一致しているか否かを判断することができる。例えば、印刷する用紙の描画領域が縦長の形状であり、画像の描画領域が横長の形状となっていた場合、用紙の方向と画像の方向が９０°ずれており、一致していないと判断する。用紙の方向と画像の方向が一致していない場合、以下に述べる処理を行う。用紙の方向と画像の方向とが一致している場合は、エンジンＩ／Ｆ３６は、画像データを、そのまま印刷エンジン２１に転送して通常の印刷を行うことになる。
【００４７】
バンドデータ変換部４２は、用紙の方向と画像の方向とが一致していない場合に、バンドデータをＫデータ（１ビット）に変換する。バンドデータがＣＭＹＫ各色８ビットで表したＣＭＹＫデータの場合、バンドデータを構成する各画素ごとに、所定の変換式に基づいて変換を行う。例えば、次に示す式（１）〜式（３）を用いてＣＭＹＫデータをＲＧＢデータに変換した後に、式（４）による変換を行うことにより、まずＧｒａｙデータを取得することができる。
Ｒ＝２５５−（Ｃ＋Ｋ）…（１）
Ｇ＝２５５−（Ｍ＋Ｋ）…（２）
Ｂ＝２５５−（Ｙ＋Ｋ）…（３）
Ｇｒａｙ＝（７７×Ｒ＋１５１×Ｇ＋２８×Ｂ）／２５６  …（４）
取得したＧｒａｙデータは、次式によりＫ（８ビット）データに変換される。
Ｋ（８ビット）＝２５５−Ｇｒａｙ  …（５）
Ｋ（８ビット）データは、例えば次に示す式（６）によりＫ（１ビット）データに変換することができる。ここで、ｉｎｔ（）は小数点以下の値を切り捨て整数を出力する関数である。
Ｋ（１ビット）＝ｉｎｔ（Ｋ（８ビット）／２５５）  …（６）
また、バンドデータがＧｒａｙデータ（８ビット）であった場合、式（５）および式（６）の変換式によりＫ（１ビット）データに変換する。Ｋデータ（８ビット）であった場合については、式（６）の変換式によりＫ（１ビット）で表したデータに変換する。なお、以上に説明した変換式は一例であって、この変換式に限られるものではない。例えば、式（６）においてＫ（８ビット）データを所定の閾値で区切ることによってＫ（１ビット）データを得るとしてもよいし、ＣＭＹデータから直接、Ｇｒａｙデータ、Ｋデータに変換する変換式を用いるとしてもよい。もちろん、２〜３ビット程度のＫデータに変換するとしてもよい。また、本実施形態では、データ量を少なくするために階調数および色数を変換しているが、バンドデータの解像度を小さくするとしてもよい。
【００４８】
ブロック生成部４３は、バンドデータを分割することにより、バンドデータより小さな処理単位であるブロックを取得する。図５中下段は、図５中上段に示したバンドデータのうち、Ｋのバンドデータを分割した一例を示している。分割する間隔としては、バンドの高さと同じ間隔で、バンドデータを幅方向に分割することとした。すなわち、本実施形態では各バンドデータが高さ方向に６４画素の高さを有しているので、６４画素間隔でバンドデータを幅方向に分割することにより縦横６４×６４画素からなる正方形のブロックを得ている。ここで、図５中下段に示すように、分割することにより得られたブロックはＢ１（ｍ，ｎ）と表記する。（ｍ，ｎ）はブロックの座標を示している。ｍは垂直（高さ）方向に並んだバンドデータの番号であり、ｎは水平（幅）方向に並んだブロックを示す番号である。Ｎは１つのバンドデータから得られるブロックの数である。図５中下段では、“ｍ＝１“のバンドデータからブロックＢ１（１，１）〜Ｂ１（１，Ｎ）を取得している。また、図５の例では、ブロックＢ１（１，１）には”Ａ“、ブロックＢ１（１，２）には”Ｂ“、ブロックＢ１（１，３）には”Ｃ“の文字が表示されている。
【００４９】
上述したバンドデータを分割してブロックを生成する処理は、実際には、ページ記憶部３４に記憶されたバンドデータのアドレスのうち、各ブロックＢ１の中央に位置する階調値が記憶されているアドレスを、ＲＡＭ３３に記憶されているアドレス参照テーブルに記憶することにより行われる。図７は、アドレス参照テーブルを示した図である。図７（ａ）には、ブロックの座標ごとに、ブロックＢ１（１，１）〜Ｂ１（Ｍ，Ｎ）を記憶しているページ記憶部３４のアドレスが記憶されているアドレス参照テーブルが示されている。ここで記憶しているアドレスは、実際にはブロックＢ１の中央に位置する階調値を記憶しているアドレスである。ページ記憶部３４からデータを読み出す際には、ＣＰＵ３１はアドレス参照テーブルを参照して、ブロックの中心に位置する階調値が記憶されているアドレスからブロックが記憶されているアドレス範囲を算出する。算出したアドレス範囲の記憶領域にアクセスすることによって、ブロックごとのデータを読み出すことができる。
【００５０】
なお、画像の幅方向の画素数が６４で割り切れない値である場合、６４画素間隔で分割した際に、最後に分割されたブロックは６４画素の幅に満たないことになる。このような場合は、足りない画素について、空白の階調値を付加することにより６４×６４画素のブロックを生成するとよい。具体的には、バンドデータはＫデータに変換されているので、階調値“０”を付加し、階調値が与えられていても実際には印刷が行われないようにして処理する。
【００５１】
ブロック回転部４４は、印刷方向判断部４１が取得した用紙の方向と画像の方向に基づいて座標変換を行うことにより、ブロックＢ１を回転させる処理を行う。ブロックＢ１（１，１）〜Ｂ１（１，Ｎ）を回転させることにより、図５下段に示すように、時計回りに９０°回転させたブロックＢ２（１，１）〜Ｂ２（１，Ｎ）が得られる。このように、ブロックＢ１（ｍ，ｎ）を回転させることにより、用紙の方向と画像の方向が一致した回転後のブロックＢ２（ｍ，ｎ）が得られる。
【００５２】
ブロック圧縮部４５は、ブロックＢ２に可逆圧縮を行う。圧縮したブロックは、回転前のブロックが記憶されていたページ記憶部３４の記憶領域と同じ記憶領域に記憶される。アドレス参照テーブルには、図７（ｂ）に示すように、圧縮されたブロックＢ２が記憶されているアドレスが記憶される。
【００５３】
バンドデータ生成部４６は、圧縮したブロックＢ２（ｍ，ｎ）を配置して構築することにより画像の方向を用紙の方向に合わせたバンドデータを生成する。図６は、ブロックを配置することによりバンドデータを構築する処理を説明する図である。図６上段には、１ページ分のブロックＢ２（ｍ，ｎ）が配置されている様子が示されている。構築後のブロックＢ３（ｍ，ｎ）は、ブロックＢ２の座標を時計回りに９０°回転させる座標変換を行うことにより得られる。例えば、図６の例にあるように、ブロックＢ２（１，１）が変換されてブロックＢ３（１，Ｍ）、ブロックＢ２（１，Ｎ）が座標変換されてブロックＢ３（Ｎ，Ｍ）となる。
さらに、図６下段に示すように、構築後のブロックＢ３（ｍ，ｎ）を水平方向（ｎ方向）に結合することによりバンドデータが得られる。
【００５４】
上述したバンドデータを構築する処理では、配置前後のアドレス参照テーブルにおいて、ブロックが記憶されているアドレスを書き換えることにより各ブロックの座標変換を行っている。図７（ｃ）は、図７（ｂ）に示すアドレス参照テーブルについて、構築した後のアドレス参照テーブルを示した図である。例えば、図７（ｂ）の構築前のアドレス参照テーブルでは、座標（１，１）に対応してＢ２（１，１）が記憶されているアドレスが格納されているが、図７（ｃ）の構築後のアドレス参照テーブルでは、座標（１，１）にはＢ２（Ｍ，１）が記憶されているアドレスが格納されている。このように、ブロックのデータが記憶されている記憶領域を直接処理することなく、アドレス参照テーブルの記憶先アドレスを書き換えることにより、バンドデータを構築する処理を行っている。
【００５５】
また、バンドデータ生成部４６は、上述して得られた画像データに対して、用紙の方向と画像の方向が違っていることを表す状態表示画像を付与する処理も行っている。図８は状態表示画像を示す図である。図８（ａ）には状態表示画像の一例が示されている。図８に示すように、状態表示画像５０は、用紙の方向と画像の方向が違っていることを視覚的に知らせる画像であり、用紙の方向を画像の方向に合わせて得られた画像データと共に、用紙に印刷するための画像である。ユーザは、用紙に印刷された状態表示画像５０を見ることにより用紙の方向と画像の方向とが異なっていたことを容易に知ることができる。状態表示画像５０を画像データに付与する処理は以下のようにして行う。
【００５６】
状態表示画像５０を画像データに付与する処理は、ブロックを処理単位として行う。図８（ｂ）は、図８（ａ）に示した状態表示画像５０をブロックの状態に分割した様子を示した図である。ここで、状態表示画像５０のブロックをＢ４と表記する。ブロックＢ４は上述したバンドデータのブロックＢと同じ大きさであり、本実施形態では６４×６４画素の大きさを有している。状態表示画像５０は、図８（ｂ）に示すようにブロックに分割した状態で、ブロックごとにＲＯＭ３２に記憶されている。
【００５７】
画像データの中で状態表示画像５０を配置する位置は、例えば、画像の中央と予め決められている。ＣＰＵ３１は、バンドデータごとに、状態表示画像５０を配置すべきブロックの座標を計算して、当該ブロックの座標に状態表示画像５０のブロックＢ４を配置すべきかを判断している。そして、状態表示画像５０を表示すべき座標であった場合には、当該座標のブロックＢ３に代えて、状態表示画像５０のブロックＢ４を配置することによりバンドデータを構築する。このとき、実際には、アドレス参照テーブルにおいて、バンドデータのブロックＢ２の記録先のアドレスをブロックＢ４を記録しているＲＯＭ３２上のアドレスに書き換えることにより処理している。図９は、状態表示画像５０を配置した際のアドレス参照テーブルの一例を示す図である。図９では、図７（ｃ）に示すアドレス参照テーブルに、ブロックＢ４を記憶したアドレスを記録したときの様子が示されている。上述したように、ＣＰＵ３１がブロックＢ４を配置すべき座標を計算するのであるが、図９の例では、座標（ａ，ｂ）〜（ａ＋４，ｂ＋２）に状態表示画像５０のブロックＢ４（１，１）〜ｂ４（５，３）を配置するとした場合に、”ｍ＝ａ“のバンドデータについてアドレスを書き換えている。例えば、座標（ａ，ｂ）にはブロックＢ４（１，１）を配置するので、ブロックＢ４（１，１）を記憶するアドレスが記憶されている。同じバンドデータに含まれる、座標（ａ，ｂ＋１）〜（ａ，ｂ＋２）についても、各座標に対応してブロックＢ４（１，２）〜ブロックＢ４（１，３）が記憶されているアドレスに書き換える。このようにしてバンドデータを構築することによって、状態表示画像５０を付与したバンドデータを得ることができる。
【００５８】
圧縮部４７は、バンドデータの可逆圧縮を解凍する処理、バンドデータをドットデータへ変換するスクリーン処理等を行った後に、印刷エンジン２１へデータを送信するためにデータの圧縮を行う。
【００５９】
以上に述べたように、制御部２０は、用紙の方向と画像の方向とが異なる場合に画像データをブロックごとに回転させることによって、用紙の方向に一致した方向をもつ画像データを生成する。
【００６０】
次に、印刷エンジン２１は、エンジンＩ／Ｆ３６から出力されたデータに基づく印刷処理を実行し、用紙などの印刷媒体に対する印刷を行う。印刷エンジン２１は、帯電ユニット、露光ユニット、現像ユニット、転写ユニット、定着ユニット等（図示なし）を有している。そして、エンジンＩ／Ｆ３６より受信したデータに基づいて、給紙トレイ（図示なし）などから供給された用紙に転写ユニットによる転写処理、定着ユニットによる定着処理を順次行うことにより画像を印刷する。
【００６１】
図１０は、１つの印刷ジョブについて印刷システム１が行う処理の流れを示したフローチャートである。以上に説明した構成を有する本実施形態に係る印刷システム１が行う処理の流れについてフローチャートにしたがって説明する。なお、ステップＳ１およびステップＳ４は印刷データ取得部４０、ステップＳ２〜ステップＳ３は印刷方向判断部４１、ステップＳ５はバンドデータ変換部４２、ステップＳ６はブロック生成部４３、ステップＳ８はバンドデータ生成部４６、ステップＳ１０は圧縮部４７、が行う処理である。
【００６２】
ホストコンピュータ３から印刷要求および印刷データが送信されると、図１０に示す処理を開始し、ステップＳ１において、プリンタ２のＣＰＵ３１は、当該印刷要求による印刷データを入出力Ｉ／Ｆ３０を介して受信する。ここでは、印刷データの先頭に付与された制御情報であるヘッダ（１）およびヘッダ（２）を取得する。また、ヘッダ（１）およびヘッダ（２）の制御情報に基づいて、印刷ジョブに対する各種印刷条件が決定される。
【００６３】
次に、ステップＳ２において、プリンタ２が受信した印刷データのヘッダ（１）に含まれる解像度情報、ヘッダ（２）に含まれる用紙サイズ情報、描画領域情報からＣＰＵ３１は、印刷する用紙の描画領域および画像の描画領域を算出する。
【００６４】
次に、ステップＳ３では、ＣＰＵ３１は、ステップＳ２で取得した印刷する用紙の描画領域および画像データの描画領域から、用紙の方向と画像の方向が異なるか否かを判断する。用紙の方向と画像の方向とが異なる場合（Ｙｅｓ）、ステップＳ４へ進む。一致している場合（Ｎｏ）、ステップＳ１２へ進む。ステップＳ１２においては、ＣＰＵ３１は、ブロックに分割する処理、ブロックを回転させる処理などを行うことなく通常の印刷を行うが、本発明の特徴部分ではないため詳細な説明は省く。
【００６５】
ステップＳ４では、入出力Ｉ／Ｆ３０が印刷データのヘッダ（２）の次に送信されるバンドデータを受信することにより、ＣＰＵ３１は、バンドデータを取得する。取得したバンドデータは、ページ記憶部３４に格納する。
【００６６】
ステップＳ５では、ＣＰＵ３１は、バンドデータを階調変換する処理を行う。図１１は、バンドデータを階調変換する処理の流れを示す図である。バンドデータを階調変換する処理を開始すると、ステップＳ５０において、ＣＰＵ３１は、バンドデータがＣＭＹＫデータであるか否かを判断する。ＣＭＹＫデータの場合、ステップＳ５１へ進む。ＣＭＹＫデータでない場合、ステップＳ５２へ進む。
【００６７】
ステップＳ５１では、ＣＰＵ３１は、式（１）〜式（６）の変換式に従う演算を行うことにより、ＣＭＹＫデータ（８ビット）であるバンドデータからＫデータ（１ビット）であるバンドデータを得る。得られたバンドデータは、ページ記憶部３４に格納する。バンドデータを変換する処理を終えると、ステップＳ６に進む。
【００６８】
ステップＳ５２では、ＣＰＵ３１は、バンドデータがＧｒａｙデータであるか否かを判断する。Ｇｒａｙデータの場合、ステップＳ５３へ進む。Ｇｒａｙデータでない場合、ステップＳ５４へ進む。
【００６９】
ステップＳ５３では、ＣＰＵ３１は、式（５）および式（６）の変換式に従って、Ｇｒａｙデータ（８ビット）であるバンドデータからＫデータ（１ビット）であるバンドデータを得る。得られたバンドデータは、ページ記憶部３４に格納する。バンドデータを変換する処理を終えると、ステップＳ６に進む。
【００７０】
ステップＳ５４では、ＣＰＵ３１は、バンドデータがＫデータの多値データであるか否かを判断する。Ｋ多値データの場合、ステップＳ５５へ進む。Ｋ多値データでない、すなわち、Ｋデータ（１ビット）からなる２値画像データである場合、ステップＳ６へ進む。
【００７１】
ステップＳ５５では、ＣＰＵ３１は、式（６）の変換式に従って、Ｋ多値データ（８ビット）であるバンドデータからＫデータ（１ビット）であるバンドデータを得る。得られたバンドデータは、ページ記憶部３４に格納する。バンドデータを変換する処理を終えると、ステップＳ６に進む。
【００７２】
図１０のフローチャートに戻り、ステップＳ６では、ＣＰＵ３１は、バンドデータからブロックを生成する処理を行う。図１２は、バンドデータからブロックを生成する処理の流れを示すフローチャートである。なお、ステップＳ６２はブロック回転部４４、ステップＳ６３はブロック圧縮部４５が行う処理である。
【００７３】
バンドデータからブロックを生成する処理を開始すると、ステップＳ６０において、ＣＰＵ３１は、バンドデータをブロックに分割する処理を行う。ここで、上述したように、バンドデータを記憶したページ記憶部３４の記憶領域上において、各ブロックに対応するデータを記憶したアドレスをＲＡＭ３３上のアドレス参照テーブルに記憶してブロックごとのデータの記憶領域のアドレスを得ることによりブロックの分割が行われる。
【００７４】
次に、ステップＳ６１において、ＣＰＵ３１はステップＳ６０で得られたブロックＢ１のうちの１つを選択する。
【００７５】
次に、ステップＳ６２において、ブロックＢ１を回転させる処理を行う。実際には、ＣＰＵ３１は、ページ記憶部３４に記憶されたブロックＢ１の各画素の座標ごとに座標変換を行って対応する画素の値を算出し、変換後の座標の画素に記憶された画素値をブロック記憶部３５に書き込むようにして処理が行われる。したがって、回転させる処理を終えるとブロック記憶部３５には回転後のブロックＢ２のデータが記憶されている。
【００７６】
次に、ステップＳ６３において、ＣＰＵ３１は、ブロック記憶部３５に記憶されている回転後のブロックＢ２に対して可逆圧縮を行う。
【００７７】
次に、ステップＳ６４において、ＣＰＵ３１は、圧縮したブロックＢ２をページ記憶部３４に記憶することにより、ブロックの登録を行う。ここで、ページ記憶部３４のメモリ容量を節約するためページ記憶部３４の記憶領域のうち回転前のブロックＢ１が記憶されている記憶領域に、回転・圧縮したブロックＢ２を書き換えるようにして格納する。このとき、ＣＰＵ３１は、ブロックＢ２を記録した記憶領域のアドレスを、アドレス参照テーブルに記録する。
【００７８】
次に、ステップＳ６５において、ＣＰＵ３１は、当該バンドデータの全てのブロックについてステップＳ６１〜ステップＳ６４の処理を行ったか否かを判断する。処理を行っていた場合（Ｙｅｓ）、ステップＳ７へ進む。処理を行っていなかった場合（Ｎｏ）、ステップＳ６１へ戻り別のブロックに対して処理を行う。
【００７９】
図１０のフローチャートに戻り、ステップＳ７では、１ページ目の画像データの全てのバンドデータについて処理を行ったか否かを判断する。全てのバンドデータについて終えていた場合（Ｙｅｓ）、ステップＳ８へ進む。処理を終えていない場合（Ｎｏ）、ステップＳ４へ戻り、次のバンドデータの処理を行う。
【００８０】
ステップＳ８では、バンドデータを構築する処理を行う。図１３はバンドデータを構築する処理の流れを示すフローチャートである。バンドデータを構築する処理を開始すると、ステップＳ８０において、ブロックを配置する座標を求める処理を行う。ここでは、ＣＰＵ３１が、ＲＡＭ３３に記憶されたアドレス参照テーブルを参照することにより、全てのブロックについて配置するべき座標を計算する。計算した座標に対応するブロックの記憶先のアドレスがアドレス参照テーブルに記憶される。
【００８１】
次に、ステップＳ８１では、画像データに状態表示画像５０の画像データを付与する処理を行う。上述したように状態表示画像５０を表示する位置は、予め決められているので、ＣＰＵ３１は、状態表示画像５０のブロックごとに、配置すべき位置を計算する。そして、ＲＡＭ３３に記憶されているアドレス参照テーブルを参照して、ブロックを記憶しているアドレスを記憶している記憶領域に、状態表示画像５０のブロックを記憶しているアドレスを上書きする。
【００８２】
次に、ステップＳ８２では、ＣＰＵ３１は、アドレス参照テーブルに基づいてバンドデータを生成する。バンドデータを構築する処理を終えると、ステップＳ９へ進む。
【００８３】
図１０のフローチャートに戻り、ステップＳ９では、生成されたバンドデータを圧縮する。ここでは、ＣＰＵ３１は、生成されたバンドデータをアドレス参照テーブルを参照してページ記憶部３４から読み出して、エンジンＩ／Ｆ３６に引き渡す。そして、エンジンＩ／Ｆ３６が圧縮する処理を行う。
【００８４】
次に、ステップＳ１０では、エンジンＩ／Ｆ３６は、圧縮したバンドデータを印刷エンジン２１に送信する。印刷エンジン２１は、受信したバンドデータに基づいて印刷を行う。
【００８５】
次に、ステップＳ１１では、ＣＰＵ３１は、１ページ分の全てのバンドデータを送信したか否かを判断する。全てのバンドデータを送信していた場合（Ｙｅｓ）、１ページ分の画像データが印刷されたことになるので処理を終了する。全てのバンドデータを送信していない場合（Ｎｏ）、ステップＳ８に戻り次のバンドデータについての処理を行う。
【００８６】
なお、図１２のフローチャートにおけるステップＳ６０がブロック取得工程、ステップＳ６１がブロック記憶工程、ステップＳ６２が整列工程、図１０のフローチャートにおけるステップＳ８がバンド構築工程、ステップＳ１０が印刷工程に相当する。
【００８７】
以上に述べた処理を行うことにより、用紙の方向と画像の方向が一致していない場合、印刷物が１ページだけ得られる。図１４は、図３（ａ）に示した画像を本印刷システム１により印刷した印刷物の一例を示す図である。用紙の方向と画像の方向が異なっている場合でも、図１４に示すように、用紙の方向に合わせて回転させることにより、用紙の方向と画像の方向が一致している画像を得ることができる。また、用紙の方向と画像の方向が違っている旨を示す状態表示画像５０が印刷され、２ページ目以降のページについては印刷されない。ユーザは、１ページの印刷物から用紙の方向と画像の方向が一致していなかったことを知ることができるので、再び画像データまたはプリンタ２の設定を変えて、印刷し直すことができる。
【００８８】
以下、本実施形態の効果を記載する。
【００８９】
（１）バンドデータを分割して、ブロックごとに回転させるとしたことによりバンド順次のデータ転送においても、適切にバンドデータを回転させる処理を施すことができる。
【００９０】
（２）用紙の方向と画像の方向とが異なる場合に、バンドデータよりデータ量が小さいブロックごとに回転させる処理を行うので、バンドデータそのものを回転させる場合に比べて、回転させる処理に用いられるブロック記憶部３５に要するメモリ容量をより少なくすることができる。
【００９１】
（３）正方形のブロックとなるようにバンドデータを分割した。正方形のブロックを扱うためブロックを９０°回転させる処理の前後でのブロック中央の位置は変化しない。そこで、ブロックＢ１の中央に位置する画素の階調位置が記憶されているアドレスを、アドレス参照テーブルに記憶して管理している。ブロックの全画素の記憶先アドレスを管理する必要がなくなるので、回転前後のブロックの管理が容易になる。
【００９２】
（４）ブロックを正方形としたことにより、ブロックを９０°回転させる処理の前後でのブロックの形状が変わることがない。そのため、ページ記憶部３４の記憶領域のうち回転前のブロックＢ１が記憶されている記憶領域に、回転・圧縮したブロックＢ１を書き換えるようにして格納することができるようになった。そのため、バンドデータを正方形形状に分割することによって、ページ記憶部３４のメモリ容量を少なくすることができる。
【００９３】
（５）用紙の方向と画像の方向とが一致するか否かを判断し、用紙の方向と画像の方向とが異なる場合にのみ、画像を回転させるとしたので、プリンタ２は印刷データに合わせて適切な処理を行うことができる。
【００９４】
（６）用紙の方向と画像の方向が一致していない場合に、１ページ目の画像のみを印刷する。２ページ目以降を印刷しないとしたことにより、２ページ目以降のページの印刷に要する回転させる処理を行わないので、多大な処理量、印刷時間を要することがない。
【００９５】
（７）本来印刷すべき画像に加えて状態表示画像５０を印刷しているので、ユーザは状態表示画像５０から、用紙の方向と画像の方向が一致していないことを容易に知ることができる。
【００９６】
（８）ステップＳ５において、画質を落とす変換を行うことによりデータ量を少なくしているので、ブロック記憶部３５に要するメモリ容量を少なくすることができる。また、処理するデータ量が少なくなるので、処理時間をより短縮することができる。なお、印刷物の画質が落ちることになるが、上述したように、用紙の方向と画像の方向が一致していない場合に、１ページ目の印刷物をみることにより方向が誤っていることを知ったユーザは、印刷設定を変えてから、再度全ページの印刷を行うことになるため問題ない。
【００９７】
以上、本発明の一実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施することもできる。以下、変形例を挙げて説明する。
【００９８】
（変形例１）
前記実施形態では、プリンタ２は１ページ分のバンドデータを受信してから、ステップＳ８のバンドを構築する処理を行う必要がある。ここで、プリンタドライバ１１で行われる設定には、フライング印刷を行う旨の設定が含まれている場合がある。フライング印刷とは、１ページ分の画像データを受信することを待たずに、ある程度の画像データが格納された時点で印刷エンジンへのデータ転送を開始する印刷方法である。この設定は、印刷データの制御情報に含まれる。しかしながら、前記実施形態のプリンタ２では、バンドを構築する処理を行うため１ページ分の画像データが格納されている必要があるので、フライング印刷が設定されていた場合であってもこれに対応することはできない。したがって、フライング印刷を行う設定がなされた印刷データを受信した際であっても、プリンタ２は、フライング印刷設定を無視して、印刷するとすればよい。
【００９９】
（変形例２）
前記実施形態では、用紙の方向と画像の方向が異なる場合に、印刷データの画像と状態表示画像５０とを共に印刷することとした。この状態表示画像５０はユーザに印刷条件を誤ったことを知らせる機能があるため、印刷データの画像は印刷することなく状態表示画像５０のみを印刷するとすることもできる。例えば、プリンタ２が受信した印刷データが、電子透かし情報が付加されている場合がある。このような場合の印刷データは機密度の高い画像や、著作権が関与している画像であると考えられるため、不要な印刷は行わないことが望ましい。そこで、ＣＰＵ３１は受信した印刷データに電子透かし情報が付加されていると判断した場合は、画像データを印刷することなく、状態表示画像５０だけを印刷する。
【０１００】
（変形例３）
前記実施形態では、用紙の方向と画像の方向が異なる場合に、印刷データの画像データと状態表示画像５０とを印刷することとした。しかし、状態表示画像５０が印刷された印刷物が得られることになるので、ユーザが本来所望していない画像を印刷しているともいえる。ここで、例えば、前記実施形態にある印刷システム１が、印刷した印刷物の枚数に応じて、ユーザに課金される場合であっては、不要な印刷は極力行わないことが望ましい。そこで、課金が行われるような印刷システム１では、用紙の方向と画像の方向が異なる場合には、印刷を行わないこととするとよい。
【０１０１】
（変形例４）
前記実施形態では、印刷データの制御情報から用紙の方向と画像の方向が一致しているか否かを判断した。用紙の方向と画像の方向が一致しているかを判断する方法は、この方法に限られることなく、第４の変形例では、ヘッダ（２）から求めた画像の描画領域と、プリンタの給紙トレイごとに設定された用紙情報から判断する。また、ヘッダ（２）から求めた画像の描画領域と、プリンタ２の給紙トレイに備えたセンサなどにより検出した実際の用紙の方向とから判断するとしてもよい。
【０１０２】
（変形例５）
前記実施形態では、用紙の方向と画像の方向とが異なっている場合に、ブロックを回転させることにより方向を修正した画像を１ページ分だけを印刷した。第５の変形例では、ブロックを回転させることなく、異なった方向のままの画像を１ページのみ印刷する。このようにしても、ユーザは１ページの印刷物を見ることにより所望の印刷結果となっていないことを知ることができる。また、回転させる処理は行わないが、１ページのみを印刷しているため無駄に用紙・インクを浪費することはない。なお、この場合であっても、状態表示画像５０を印刷するとしてもよい。
【０１０３】
（変形例６）
前記実施形態では、用紙の方向と画像の方向とが異なっている場合の処理に特徴があった。第６の変形例では、印刷条件の違いにより複数のページが印刷される場合に、１ページ目だけを印刷する。例えば、用紙の方向と画像の方向とが異なっている場合の他、画像のサイズと用紙サイズとが異なっている場合にも１ページにのみ印刷する処理を行う。具体的には、Ａ３用紙に印刷するための画像をＡ４用紙に印刷する場合は、用紙の方向と画像の方向とが同じであっても、複数のページのＡ４用紙に分けて印刷が行われる。このような場合、各ページはユーザが所望する印刷物ではなくなる。第６の変形例では、印刷方向判断部４１は、ヘッダ（１）およびヘッダ（２）から、用紙の方向の他に印刷するサイズを含めた印刷条件が合っていないか否かを判断する。印刷条件があっていないと判断した場合、１ページ目のバンドデータについて、ドットデータへ変換するスクリーン処理等を行った後に、印刷エンジン２１へデータを送信する。印刷エンジン２１は、１ページ分のデータに基づいて１ページ目だけを印刷する。このように、印刷条件が合っていない場合、始めの１ページのみを印刷することにより、用紙の浪費を防止することができる。画像データと用紙の大きさが異なる旨を表示する状態表示画像５０も印刷することにより、ユーザは印刷条件が合っていないことを知ることができる。
【０１０４】
（変形例７）
前記実施形態では、ブロックごとに回転させて得られる画像を、階調数を少なくして１ページのみ印刷するとしたが、回転させた画像を階調数を少なくすることなく、全ページ印刷するとしてもよい。このとき、状態表示画像を付与するとしてもよい。
【０１０５】
（変形例８）
前記実施形態では、ブロックごとに回転させて得られる画像を、階調数を少なくして１ページのみ印刷するとしたが、回転させた画像を階調数を落とすことなく１ページだけを印刷するとしてもよい。また、このとき、状態表示画像５０を印刷しないようにすれば、最初の１ページは、ユーザが所望の印刷物の１ページ目として有効に使用することができるので、再度印刷をしなおす際にも１ページ目を印刷しなおす必要がなくなる。
【０１０６】
（変形例９）
前記実施形態では、プリンタ２が４サイクルのレーザプリンタであったが、いわゆるタンデム式のプリンタやモノクロのプリンタであってもよい。また、インクジェットプリンタなど、他の印刷方式のプリンタであってもよい。また、本発明は、プリンタに限らず複写機などにも適用することができる。
【図面の簡単な説明】
【０１０７】
【図１】本発明に係る印刷システム１の構成を示した図。
【図２】プリンタドライバ１１がプリンタ２に送信する印刷データのデータ構造とデータ転送の順番を示した図。
【図３】印刷結果を示した図。（ａ）は、縦方向にセットされたＡ４用紙に、縦方向の印刷に対応する画像データを印刷した印刷物を示した図、（ｂ）は、横方向にセットされたＡ４用紙に、縦方向の印刷に対応する画像データを印刷した印刷物を示した図。
【図４】制御部の機能的構成を示した図。
【図５】制御部が行う処理を説明するための説明図。
【図６】制御部が行う処理を説明するための説明図。
【図７】アドレス参照テーブルを示す図。（ａ）はブロックを回転する前のアドレス参照テーブル、（ｂ）はブロックを回転した後のアドレス参照テーブル、（ｃ）は構築した後のアドレス参照テーブルを示す図。
【図８】状態表示画像を示す図。（ａ）は状態表示画像の一例を示す図、（ｂ）は状態表示画像をブロックの状態に分割した様子を示した図。
【図９】状態表示画像を配置した際のアドレス参照テーブルの一例を示す図。
【図１０】本印刷システム１が行う処理の流れを示したフローチャート。
【図１１】バンドデータを変換する処理の流れを示すフローチャート。
【図１２】バンドデータからブロックを生成する処理の流れを示すフローチャート。
【図１３】バンドデータを構築する処理の流れを示すフローチャート。
【図１４】本印刷システム１により印刷した印刷物の一例を示す図。
【符号の説明】
【０１０８】
１…印刷システム、２…印刷装置としてのプリンタ、３…ホストコンピュータ、１０…アプリケーション、１１…プリンタドライバ、１２…インターフェイス、２０…制御部、２１…印刷手段としての印刷エンジン、３１…ＣＰＵ、３２…状態表示ブロック記憶手段としてのＲＯＭ、３３…ＲＡＭ、３４…バンド記憶手段としてのページ記憶部、３５…ブロック記憶手段としてのブロック記憶部、４０…印刷データ取得部、４１…印刷判断手段としての印刷判断部、４２…バンド変換手段としてのバンドデータ変換部、４３…ブロック取得手段としてのブロック生成部、４４…整列手段としてのブロック回転部、４５…ブロック圧縮部、４６…バンド構築手段としてのバンドデータ生成部、４７…圧縮部、５０…状態表示画像、Ｂ…ブロック、Ｂ２…回転後のブロック、Ｂ３…構築後のブロック、Ｂ４…状態表示画像のブロック、ｍ…バンドデータを示す番号または垂直方向のブロックの座標、ｎ…ブロックを示す番号または水平方向のブロックの座標、Ｍ…画像データの総バンド数、Ｎ…１つのバンドデータから得られるブロックの数。
【図１】
2006159468.tif 000003
【図２】
2006159468.tif 000004
【図３】
2006159468.tif 000005
【図４】
2006159468.tif 000006
【図５】
2006159468.tif 000007
【図６】
2006159468.tif 000008
【図７】
2006159468.tif 000009
【図８】
2006159468.tif 000010
【図９】
2006159468.tif 000011
【図１０】
2006159468.tif 000012
【図１１】
2006159468.tif 000013
【図１２】
2006159468.tif 000014
【図１３】
2006159468.tif 000015
【図１４】
2006159468.tif 000016