(57)【要約】【課題】画像の回転処理が必要な印刷を行う印刷装置において、小容量のメモリであっても印字品質が低下し難い技術を提供すること。【解決手段】プリンタ１００は、ページ記述言語で示された画像データを受信し、画像データをラスタライズし、ラスタライズ後のラスタデータをメモリに記憶し、記憶されたラスタデータから印刷データを生成し、印刷データを用いて印刷する。プリンタ１００のＣＰＵ３１は、印刷する品質が所定の品質以上であることを示す所定条件を満たすか否かの判断と、画像データの画像を回転させるか否かの判断とを行い、回転かつ所定条件を満たすと判断した場合、画像の回転をラスタライズと同時に行い、回転かつ所定条件を満たさないと判断した場合、ラスタライズ時には回転を行わず、ラスタデータの回転を行い、回転済みのラスタデータから印刷データを生成する。【選択図】図３
2020049903.tif 000002
【特許請求の範囲】
【請求項１】
印刷デバイスと、
通信インタフェースと、
メモリと、
コントローラと、
を備え、
前記コントローラは、
ページ記述言語で示された画像データを、前記通信インタフェースを介して受信する受信処理と、
前記画像データをラスタライズし、ラスタライズ後のデータであるラスタデータを前記メモリに記憶するラスタライズ処理と、
前記メモリに記憶された前記ラスタデータから、シートに印刷を行うための印刷データを生成する生成処理と、
前記印刷データを用いて、前記印刷デバイスに印刷を行わせる印刷処理と、
を実行し、
さらに前記コントローラは、
前記画像データに対応する前記印刷データを印刷する品質が所定の品質以上であることを示す所定条件を満たすか否かを判断する条件判断処理と、
前記画像データの画像を回転させるか否かを判断する回転判断処理と、
を実行し、
前記回転判断処理において前記画像を回転させると判断し、かつ前記条件判断処理において前記所定条件を満たすと判断した場合、
前記ラスタライズ処理において、前記画像データの前記画像の回転を、前記画像データのラスタライズと同時に行い、前記画像の回転済みの前記ラスタデータを前記メモリに記憶し、
前記回転判断処理において前記画像を回転させると判断し、かつ前記条件判断処理において前記所定条件を満たさないと判断した場合、
前記ラスタライズ処理では前記画像データの前記画像の回転を行わず、前記生成処理において、前記メモリに記憶された前記ラスタデータの前記画像の回転を行い、前記画像の回転済みの前記ラスタデータから前記印刷データを生成する、
ことを特徴とする印刷装置。
【請求項２】
請求項１に記載する印刷装置において、
受信した前記画像データのパラメータに含まれる解像度が所定値を超えることを、前記所定条件とする、
ことを特徴とする印刷装置。
【請求項３】
請求項１または請求項２に記載する印刷装置において、
前記印刷装置あるいは受信した前記画像データに高品質を示すパラメータが設定されていること、を前記所定条件とする、
ことを特徴とする印刷装置。
【請求項４】
請求項１から請求項３のいずれか１つに記載する印刷装置において、
前記画像データに対応する前記印刷データを生成するまでに必要なメモリ量が所定量以下であることを、さらなる前記所定条件とし、
前記回転判断処理において前記画像を回転させると判断し、かつ前記条件判断処理において前記所定条件を満たさないと判断した場合、
前記ラスタライズ処理では前記画像の回転を行わずにラスタライズした前記ラスタデータに対して解像度を落として前記メモリに記憶させ、前記生成処理において、前記メモリに記憶された前記ラスタデータの前記画像の回転を行い、前記画像の回転済みの前記ラスタデータから前記印刷データを生成する、
ことを特徴とする印刷装置。
【請求項５】
請求項１から請求項４のいずれか１つに記載する印刷装置において、
前記受信処理において受信する前記画像データの前記ページ記述言語には、
前記ラスタライズ処理を開始するコマンドの前に、描画方向を示す第１方向情報とシートサイズを示す第１サイズ情報とが記述される第１方式と、
前記ラスタライズ処理を開始するコマンドの前に、描画方向を示す第２方向情報とシートサイズを示す第２サイズ情報とが記述され、さらに前記第２方向情報の記述と前記第２サイズ情報の記述との少なくとも一方を省略する場合がある第２方式と、があり、
前記印刷装置には、
デフォルトの描画方向およびシートサイズが設定されており、
前記コントローラは、
前記受信処理において受信した前記画像データの前記ページ記述言語が前記第１方式か前記第２方式かを判断する方式判断処理を実行し、
前記方式判断処理において前記第２方式と判断した場合、
前記回転判断処理において、前記ラスタライズ処理を開始するコマンドの前に、前記第２方向情報と前記第２サイズ情報とが記述されている場合、前記第２方向情報と前記第２サイズ情報とに基づいて、前記画像データの画像を回転させるか否かを判断し、前記第２方向情報と前記第２サイズ情報との少なくとも一方が記述されていなかった場合、前記印刷装置のデフォルトの前記描画方向ないし前記シートサイズを用いて、前記画像を回転させるか否かを判断し、
前記回転判断処理において前記画像を回転させると判断した場合、前記ラスタライズ処理において、前記画像データの前記画像の回転を、前記画像データのラスタライズと同時に行い、前記画像の回転済みの前記ラスタデータを前記メモリに記憶する、
ことを特徴とする印刷装置。
【請求項６】
請求項５に記載する印刷装置において、
前記コントローラは、
前記方式判断処理において前記第２方式と判断した場合、前記印刷装置のデフォルトの前記描画方向および前記シートサイズを用いて、前記画像を回転させるか否かの仮判断を行い、前記ラスタライズ処理を開始するコマンドの前に前記第２方向情報と前記第２サイズ情報とが記述されていた場合、前記仮判断の結果に代えて、前記第２方向情報と前記第２サイズ情報とに基づいて、前記画像データの画像を回転させるか否かを判断し、その判断結果を前記回転判断処理での判断結果とし、前記ラスタライズ処理を開始するコマンドの前に前記第２方向情報と前記第２サイズ情報とが記述されていなかった場合、前記仮判断の結果を前記回転判断処理での判断結果とする、
ことを特徴とする印刷装置。
【請求項７】
請求項１から請求項６のいずれか１つに記載する印刷装置において、
前記コントローラは、
前記回転判断処理では、前記印刷装置に設定されているシートの向きと、受信した前記画像データの描画方向と、の組み合わせに基づいて、前記画像を回転させるか否かを判断する、
ことを特徴とする印刷装置。
【請求項８】
請求項１から請求項７のいずれか１つに記載する印刷装置において、
前記コントローラは、
前記回転判断処理では、受信した前記画像データの両面印刷を行う場合、前記画像の印刷面と、とじ方向と、シートの向きと、の組み合わせに基づいて、前記画像を回転させるか否かを判断する、
ことを特徴とする印刷装置。
【請求項９】
通信インタフェースと、メモリと、を備える情報処理装置のコンピュータにより読取可能なプログラムであって、
前記コンピュータに、
ページ記述言語で示された画像データを受信する受信処理と、
前記画像データをラスタライズし、ラスタライズ後のデータであるラスタデータをメモリに記憶するラスタライズ処理と、
前記メモリに記憶された前記ラスタデータから、シートに印刷を行うための印刷データを生成する生成処理と、
前記印刷データを用いて、印刷装置に印刷を行わせる印刷処理と、
を実行させ、
さらに前記コンピュータに、
前記画像データに対応する前記印刷データを印刷する品質が所定の品質以上であることを示す所定条件を満たすか否かを判断する条件判断処理と、
前記画像データの画像を回転させるか否かを判断する回転判断処理と、
を実行させ、
前記回転判断処理において前記画像を回転させると判断し、かつ前記条件判断処理において前記所定条件を満たすと判断した場合、
前記ラスタライズ処理において、前記画像データの前記画像の回転を、前記画像データのラスタライズと同時に行わせ、前記画像の回転済みの前記ラスタデータを前記メモリに記憶させ、
前記回転判断処理において前記画像を回転させると判断し、かつ前記条件判断処理において前記所定条件を満たさないと判断した場合、
前記ラスタライズ処理では前記画像データの前記画像の回転を行わせず、前記生成処理において、前記メモリに記憶された前記ラスタデータの前記画像の回転を行わせ、前記画像の回転済みの前記ラスタデータから前記印刷データを生成させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される技術分野は、印刷装置およびプログラムに関する。
【背景技術】
【０００２】
従来、ページ記述言語で示された画像データをラスタライズし、そのラスタライズ後のデータであるラスタデータに基づいて、シートに印刷を行うための印刷データを生成し、その印刷データを用いて印刷を行う印刷装置が実用化されている。例えば、特許文献１には、印刷データを生成する手順として、ラスタライズを行うＲＩＰ処理を実行した後、ラスタデータに対して必要に応じて回転処理を施し、その後に印刷処理を行う構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１４５０６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されているように、ラスタデータに対して回転処理を施す場合、印刷データを生成するためのハードウェアを用いて実現することが可能であり、処理が高速である反面、ラスタデータのデータサイズが画像データと比較して大きくなる傾向にあることから、多くのメモリを必要とする。回転処理を小容量のメモリで実現しようとすると、回転処理の前に、ラスタデータに対して解像度を落とすサンプリング処理を行う必要があり、ユーザが希望する印字品質にならないことがある。
【０００５】
本明細書は、画像の回転処理が必要な印刷を行う印刷装置において、小容量のメモリであっても印字品質が低下し難い技術を開示する。
【課題を解決するための手段】
【０００６】
この課題の解決を目的としてなされた印刷装置は、印刷デバイスと、通信インタフェースと、メモリと、コントローラと、を備え、前記コントローラは、ページ記述言語で示された画像データを、前記通信インタフェースを介して受信する受信処理と、前記画像データをラスタライズし、ラスタライズ後のデータであるラスタデータを前記メモリに記憶するラスタライズ処理と、前記メモリに記憶された前記ラスタデータから、シートに印刷を行うための印刷データを生成する生成処理と、前記印刷データを用いて、前記印刷デバイスに印刷を行わせる印刷処理と、を実行し、さらに前記コントローラは、前記画像データに対応する前記印刷データを印刷する品質が所定の品質以上であることを示す所定条件を満たすか否かを判断する条件判断処理と、前記画像データの画像を回転させるか否かを判断する回転判断処理と、を実行し、前記回転判断処理において前記画像を回転させると判断し、かつ前記条件判断処理において前記所定条件を満たすと判断した場合、前記ラスタライズ処理において、前記画像データの前記画像の回転を、前記画像データのラスタライズと同時に行い、前記画像の回転済みの前記ラスタデータを前記メモリに記憶し、前記回転判断処理において前記画像を回転させると判断し、かつ前記条件判断処理において前記所定条件を満たさないと判断した場合、前記ラスタライズ処理では前記画像データの前記画像の回転を行わず、前記生成処理において、前記メモリに記憶された前記ラスタデータの前記画像の回転を行い、前記画像の回転済みの前記ラスタデータから前記印刷データを生成する、ことを特徴としている。
【０００７】
本明細書に開示される印刷装置は、ページ記述言語で示された画像データをラスタライズしたラスタデータから印刷データを生成し、印刷データを用いて印刷する。高品質の印刷を行うためには、高解像度の印刷データが必要となるため、必要なメモリ量が多くなる可能性が高い。本明細書に開示される印刷装置は、画像を回転させる場合に、印刷する品質の判断に基づいて、ラスタライズ時に画像を回転させるか印刷データの生成時に画像を回転させるかを決定する。すなわち、印刷装置は、高品質の印刷を行う場合には、ラスタライズ時に画像を回転させるので、ラスタデータを回転させる場合と比較して、小メモリで画像の回転を行うことができる。一方、印刷装置は、高品質の印刷を行わない場合には、印刷データの生成時に画像を回転させるので、処理の高速化を図ることができる。
【０００８】
上記装置の機能を実現するための制御方法、コンピュータプログラム、および当該コンピュータプログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【０００９】
本明細書に開示される技術によれば、画像の回転処理が必要な印刷を行う印刷装置において、小容量のメモリであっても印字品質が低下し難い技術が実現される。
【図面の簡単な説明】
【００１０】
【図１】実施の形態にかかるプリンタの概略構成を示す断面図である。
【図２】プリンタの電気的構成を示すブロック図である。
【図３】印刷データを生成する手順の例を示す説明図である。
【図４】ラスタライズ部にて画像を回転させる場合の例を示す説明図である。
【図５】画像回転部にて画像を回転させる場合の例を示す説明図である。
【図６】ＰＣＬＸＬによるコマンドの例を示す説明図である。
【図７】ＰＣＬ５によるコマンドの例を示す説明図である。
【図８】ＰＤＬ印刷処理の手順を示すフローチャートである。
【図９】回転角決定処理の手順を示すフローチャートである。
【図１０】後段処理の手順を示すフローチャートである。
【図１１】第２方式処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明にかかる印刷装置を具体化した実施の形態について、添付図面を参照しつつ詳細に説明する。本形態は、インクジェット方式のプリンタに本発明を適用したものである。
【００１２】
本形態のプリンタ１００は、例えば、図１に示すように、シートＰに画像を形成する印刷部１０と、印刷部１０へ向けてシートＰを搬送する搬送機構２０と、を備える。本形態のプリンタ１００は、カラー画像の形成が可能であり、また、両面印刷を実行可能な装置である。印刷部１０は、印刷デバイスの一例である。プリンタ１００は、印刷装置の一例である。
【００１３】
プリンタ１００の印刷部１０は、例えば、印刷ヘッドとキャリッジとプラテンとを含み、プラテンと印刷ヘッドとの間を通って搬送されるシートＰに向けてインクを吐出することで、シートＰの片面に画像を印刷する。図１の例では、シートＰの搬送路の図中で上方に印刷ヘッドが配置され、印刷部１０を通過するシートＰの図中で上側の面に画像が印刷される。なお、印刷部１０の印刷方式は、インクジェット方式に限らず、電子写真方式、熱転写方式等でも良い。
【００１４】
プリンタ１００の搬送機構２０は、例えば、図１に示すように、給紙トレイ２１と、複数の搬送ローラと各種のガイドとを含み、給紙トレイ２１に載置されたシートＰを１枚ずつ引き出して印刷部１０へ向けて搬送する。片面印刷の場合、給紙トレイ２１から給紙ローラ２２にて引き出されたシートＰは、図１中に一点鎖線で示す経路Ｒ１を経て印刷部１０を通過し、印刷後に機外へ排出される。
【００１５】
一方、両面印刷を実行する場合、搬送機構２０は、印刷部１０を通過して片面への印刷が終了したシートＰを排出する前に引き戻し、印刷部１０を迂回する経路を通過させることでシートＰを裏返す。具体的には、図１に示すように、搬送機構２０は、経路Ｒ１を経て印刷部１０を通過したシートＰを、排紙ローラ２３まで搬送し、シートＰの後端が分岐点ＢＰを通過した後に排紙ローラ２３を停止させる。これにより、排紙ローラ２３がシートＰを狭持して、シートＰの搬送が停止される。
【００１６】
さらに、搬送機構２０は、排紙ローラ２３を逆回転させることで、シートＰの後端側を分岐点ＢＰから図中に二点鎖線で示す経路Ｒ２へ進入させる。経路Ｒ２は、経路Ｒ１上のシートの進行方向について、印刷部１０より上流側の合流点ＧＰにて経路Ｒ１に合流する。経路Ｒ２を経て経路Ｒ１に戻ったシートＰは、経路Ｒ１を初回に通過した時に比較して、表裏及び進行方向の前後が逆転した配置となっている。
【００１７】
続いて、プリンタ１００の電気的構成について説明する。プリンタ１００は、図２に示すように、ＣＰＵ３１と、ＲＯＭ３２と、ＲＡＭ３３と、不揮発性メモリ３４とを含む制御基板３０を備えている。また、プリンタ１００は、印刷部１０と、ネットワークインタフェース（以下、「ネットワークＩＦ」とする）３７と、ＵＳＢインタフェース（以下、「ＵＳＢ−ＩＦ」とする）３８と、操作パネル４０と、後段ハードウェア部６０１と、を備え、これらが制御基板３０に電気的に接続されている。
【００１８】
ＣＰＵ３１は、ＲＯＭ３２や不揮発性メモリ３４から読み出したプログラムに従って、また、ユーザの操作に基づいて、各種の処理を実行する。ＣＰＵ３１は、コントローラの一例である。制御基板３０がコントローラの一例であってもよい。なお、図１中の制御基板３０は、ＣＰＵ３１等、プリンタ１００の制御に利用されるハードウェアを纏めた総称であって、実際にプリンタ１００に存在する単一のハードウェアを表すとは限らない。
【００１９】
ＲＯＭ３２には、プリンタ１００を起動するための起動プログラム等が記憶されている。ＲＡＭ３３は、各種の処理が実行される際の作業領域として、あるいは、データを一時的に記憶する記憶領域として利用される。不揮発性メモリ３４は、例えば、ＨＤＤ、フラッシュメモリであり、各種のプログラムや画像データ等のデータや各種設定を記憶する領域として利用される。ＲＯＭ３２、ＲＡＭ３３および不揮発性メモリ３４は、いずれもメモリの一例である。また、ＣＰＵ３１がＣＰＵバッファを備えているものであれば、ＣＰＵバッファもメモリの一例である。
【００２０】
ネットワークＩＦ３７は、ネットワークを介して外部装置と通信を行うためのハードウェアを含む。ＵＳＢ−ＩＦ３８は、ＵＳＢケーブル等を介して接続された外部装置と通信を行うためのハードウェアを含む。ネットワークＩＦ３７およびＵＳＢ−ＩＦ３８は、通信インタフェースの一例である。また、操作パネル４０は、例えば、ディスプレイやタッチパネルを備え、ユーザに向けた各種の表示を行うとともに、ユーザによる指示入力を受け付ける。
【００２１】
プリンタ１００は、ネットワークＩＦ３７やＵＳＢ−ＩＦ３８を介して、外部装置からページ記述言語で記述された印刷用の画像データ（以下、「ＰＤＬデータ」とする）を受信する。ページ記述言語は、プリンタに印刷させるための各種のプログラム言語であり、例えば、ＰＣＬ（登録商標）、Ｐｏｓｔｓｃｒｉｐｔ（登録商標）、ＬＩＰＳ（登録商標）がある。
【００２２】
プリンタ１００は、受信したＰＤＬデータに基づいて、印刷部１０での印刷に使用する印刷データを生成する。印刷データの生成のための構成として、プリンタ１００は、図３に示すように、ＲＩＰ（Raster  Image  Processorの略）部５０と後段画像処理部６０とを有している。ＲＩＰ部５０と後段画像処理部６０とは、ソフトウェアのみによる構成であっても、ソフトウェアとハードウェアとを組み合わせた構成であっても良い。本形態のプリンタ１００では、例えば、ＲＩＰ部５０はソフトウェアモジュールであり、後段画像処理部６０は、ハードウェア支援を有するソフトウェアモジュールである。つまり、ＲＩＰ部５０は、ＲＯＭ３２に記憶されるソフトウェアによって構成されており、後段画像処理部６０は、前述した後段ハードウェア部６０１と、ＲＯＭ３２に記憶されるソフトウェアとの組合せによって構成されている。
【００２３】
本形態のＲＩＰ部５０は、図３に示すように、ＰＤＬデータの画像データをラスタライズし、ラスタライズ後のデータであるラスタデータを生成する処理を行うラスタライズ部５１と、ラスタデータをサンプリングしてデータ量を縮小する処理を行うサンプリング部５２と、を含む。具体的には、ＲＩＰ部５０は、ＰＤＬデータを解析して、例えば、８ビットのＲＧＢで６００ｄｐｉ×６００ｄｐｉのラスタデータを生成する。また、サンプリング部５２は、６００ｄｐｉ×６００ｄｐｉのラスタデータをサンプリングして、例えば、３００ｄｐｉ×３００ｄｐｉのラスタデータに変換する。ＲＩＰ部５０にて生成されたラスタデータは、一旦ＲＡＭ３３に記憶される。
【００２４】
本形態の後段画像処理部６０は、ラスタデータの画像を回転させる処理を行う画像回転部６１と、ＲＧＢ形式のラスタデータからＣＭＹＫ形式の印刷データに変換するＣＭＹＫ変換部６２と、を含む。具体的には、画像回転部６１は、回転角度の指示に基づいて、ラスタデータを９０度の倍数の角度で回転する。また、ＣＭＹＫ変換部６２は、８ビットのＲＧＢ形式のラスタデータを所定の印刷解像度を有するＣＭＹＫ形式の印刷データに変換する。後段画像処理部６０は、ＲＩＰ部５０によって記憶されたラスタデータをＲＡＭ３３から読み出して印刷データを生成し、生成した印刷データをＲＡＭ３３に記憶する。印刷部１０は、ＲＡＭ３３に記憶されている印刷データを用いて、印刷を実行する。
【００２５】
ＰＤＬデータには、画像データに加えて、印刷に関わる各種のパラメータが含まれる。印刷に関わるパラメータには、例えば、シートサイズ、描画方向、印刷解像度、印刷品質、がある。そして、例えば、シートサイズや描画方向の設定によっては、ＰＤＬデータの画像を回転させる必要がある。
【００２６】
本形態のプリンタ１００は、画像の回転が必要な場合、ＲＩＰ部５０にて画像を回転させる方法と、後段画像処理部６０にて画像を回転させる方法との２つの方法から選択して実行する。ＲＩＰ部５０にて画像を回転させる場合、プリンタ１００は、図４に示すように、ＲＩＰ部５０のラスタライズ部５１にて、画像を回転とラスタライズとを同時に行い、回転済みのラスタデータを生成してＲＡＭ３３に記憶させる。よって、後段画像処理部６０の画像回転部６１による回転は行われない。一方、後段画像処理部６０にて画像を回転させる場合、プリンタ１００は、図５に示すように、ラスタライズ部５１にて、回転していないラスタデータを生成してＲＡＭ３３に記憶させ、後段画像処理部６０の画像回転部６１にてラスタデータを回転させる。
【００２７】
画像回転部６１での回転処理は、ハードウェア支援があることから処理が高速である反面、解像度の高いラスタデータをサンプリング処理をせずに回転する場合には多くのメモリが必要となる。ラスタライズ部５１による回転処理は、サンプリング処理をしていない高解像度のラスタデータを画像回転部６１で回転処理する場合に比較して小容量のメモリでも実行可能である反面、画像回転部６１ほど高速な処理とはならない場合がある。  
【００２８】
本形態のプリンタ１００は、画像の回転が必要であると判断した場合、印刷データを印刷する品質に応じて、ラスタライズ部５１と画像回転部６１との何れによる回転処理を行うかを決定する。例えば、高解像での印刷や高品質での印刷が設定されている場合には、解像度を下げて回転処理を行うことは好ましくないことから、プリンタ１００は、ラスタライズ部５１にて回転処理を行う。一方、例えば、高解像度での印刷や高品質での印刷が設定されていない場合など、解像度を下げて回転処理を行っても良いと推定される場合には、プリンタ１００は、サンプリング処理によって解像度を下げて、画像回転部６１にて回転処理を行う。
【００２９】
また、本形態のプリンタ１００は、複数種のＰＤＬに対応している。プリンタ１００にて対応可能なＰＤＬとしては、例えば、ＰＣＬがある。ＰＣＬには、複数のバージョンがあり、例えば、ＰＣＬＸＬとＰＣＬ５とではコマンドの構成が異なる。本形態のプリンタ１００は、ＰＣＬＸＬとＰＣＬ５との何れにも対応可能である。
【００３０】
具体的に、ＰＣＬＸＬの場合には、シートサイズのコマンドと描画方向のコマンドとは、何れも省略されない。そのため、プリンタ１００は、例えば、図６に示すように、ラスタライズの契機となるBeginPageのコマンド７１を受信するまでに、描画方向を示すOrientationのコマンド７２とシートサイズを示すMediaSizeのコマンド７３とを受信する。つまり、BeginPageのコマンド７１を受信する前に、シートサイズと描画方向とが決定している。プリンタ１００は、受信した画像データのＰＤＬ言語がＰＣＬＸＬである場合、BeginPageのコマンド７１を受信した後、例えば、次の描画コマンドを受信するまでの間に、画像の回転が必要か否か、及び回転が必要であれば、前述した２つの方法の何れを使用するか、を決定できる。
【００３１】
一方、ＰＣＬ５の場合には、シートサイズのコマンドと描画方向のコマンドとは、いずれも省略可能である。プリンタ１００は、例えば、図７に示すように、描画方向を示すLocal  Page  Orientationのコマンド８１とシートサイズを示すPage  Sizeのコマンド８２とを受信する場合もあるが、これらを受信することなく、ラスタライズの契機となるStart  Raster  Graphicsのコマンド８３を受信する場合もある。シートサイズや描画方向のコマンドが省略されていた場合、プリンタ１００は、自装置のデフォルトの設定を使用する。これらのコマンドが省略されていた場合、Start  Raster  Graphicsのコマンド８３を受信した時点で省略されていると分かることから、プリンタ１００は、Start  Raster  Graphicsのコマンド８３を受信するまで、画像の回転が必要か否かを決定できない。さらに、ＰＣＬ５ではStart  Raster  Graphicsのコマンド８３の後、直ちに画像データの受信とラスタライズとが始まるため、Start  Raster  Graphicsのコマンド８３を受信したときには、処理手順が決定されている必要がある。
【００３２】
このように、コマンドが異なることから、プリンタ１００は、受信したＰＤＬデータがＰＣＬＸＬで記載されたデータであるかＰＣＬ５で記載されたデータであるかに基づいて、異なる処理を実行する。
【００３３】
続いて、上述したＰＤＬデータの印刷動作を実現するＰＤＬ印刷処理の手順について、図８のフローチャートを参照して説明する。ＰＤＬ印刷処理は、ＰＤＬ言語で記述された印刷ジョブを受信したことを契機に、プリンタ１００のＣＰＵ３１にて実行される。ＰＤＬ印刷処理の実行契機である印刷ジョブの受信は、受信処理の一例である。
【００３４】
ＰＤＬ印刷処理では、ＣＰＵ３１は、まず、受信した印刷ジョブを記述するＰＤＬ言語の種類が、ＰＣＬ５であるか否かを判断する（Ｓ１０１）。Ｓ１０１は、方式判断処理の一例である。プリンタ１００は、印刷ジョブに含まれる設定情報に基づいて、ＰＤＬデータの受信前にＰＤＬ言語の種類を判断できる。
【００３５】
ＰＣＬ５は、前述したように、印刷パラメータとして、シートサイズの設定および描画方向の設定の少なくとも一方を省略できる言語である。ＰＣＬ５であった場合の処理については、後述する。なお、ＰＣＬ５以外でもシートサイズや描画方向のコマンドを省略できる言語であれば、ＣＰＵ３１は、Ｓ１０１にてＹＥＳと判断する。
【００３６】
例えば、ＰＤＬがＰＣＬＸＬであって、ＰＣＬ５ではないと判断した場合（Ｓ１０１：ＮＯ）、ＣＰＵ３１は、印刷ジョブの印刷パラメータからシートサイズの情報を取得する（Ｓ１０２）。すなわち、MediaSizeのコマンド７３で指定されたシートサイズを取得する。さらに、ＣＰＵ３１は、印刷ジョブの印刷パラメータから描画方向の情報を取得する（Ｓ１０３）。すなわち、Orientationのコマンド７２で指定された描画方向を取得する。ＰＣＬ５以外のＰＤＬ、例えば、ＰＣＬＸＬは、第１方式のＰＤＬの一例である。そして、描画方向の情報は第１方向情報の一例であり、シートサイズの情報は、第１サイズ情報の一例である。
【００３７】
ＰＣＬ５以外のＰＤＬでは、印刷パラメータに少なくともシートサイズのコマンドと描画方向のコマンドとが含まれる。ＣＰＵ３１は、印刷パラメータに基づいて、シートサイズの情報と描画方向の情報とを、画像データより前に取得する。Ｓ１０２とＳ１０３とは、印刷パラメータの記載順に従って実行されれば良く、何れが先であっても良い。
【００３８】
ＣＰＵ３１は、ページ開始コマンドを受信したか否かを判断する（Ｓ１０４）。具体的には、ＣＰＵ３１は、図６に示したBeginPageのコマンド７１を受信したか否かを判断する。ページ開始コマンドを受信していないと判断した場合（Ｓ１０４：ＮＯ）、ＣＰＵ３１は、ページ開始コマンドを受信するまで待機する。ページ開始コマンドは、ラスタライズ処理を開始するコマンドの一例である。
【００３９】
そして、ページ開始コマンドを受信したと判断した場合（Ｓ１０４：ＹＥＳ）、ＣＰＵ３１は、印刷の品質を判断するための所定条件を満たしているか否かを判断する（Ｓ１０５）。Ｓ１０５は、条件判断処理の一例である。所定条件は、印刷する品質が所定の品質以上であることを示す条件である。例えば、画像データの解像度が所定値以上である、印刷設定として高解像度印刷が設定されている、高品質の印刷クオリティが指定されている、の少なくとも１つを満たす場合、ＣＰＵ３１は、所定条件を満たすと判断する。ＣＰＵ３１は、例えば、印刷解像度の設定値が所定値を超える場合に、高解像度印刷の設定であると判断する。
【００４０】
なお、ＣＰＵ３１は、印刷の品質が所定以上であっても、画像データに対応する印刷データを生成するまでに必要なメモリ量が所定量より多い場合には、所定条件を満たさないと判断してもよい。つまり、ＣＰＵ３１は、印刷の品質が高く、かつ、必要なメモリ量が所定量以下である場合には、所定条件を満たすと判断し、印刷の品質が低い場合、または、印刷の品質が高く、かつ、必要なメモリ量が所定量を超える場合には、所定条件を満たさないと判断する。
【００４１】
所定条件を満たすと判断した場合（Ｓ１０５：ＹＥＳ）、ＣＰＵ３１は、回転角決定処理を実行する（Ｓ１０６）。回転角決定処理は、画像の回転が必要であるか否かを判断し、必要であればその回転角を決定する処理である。
【００４２】
回転角決定処理の手順について、図９のフローチャートを参照して説明する。回転角決定処理では、ＣＰＵ３１は、まず、シートサイズの情報から、指定されたシートが横置きのシートであるか否かを判断する（Ｓ２０１）。横置きのシートとは、シートの搬送方向に対して横長に配置されるシートであり、印刷時にシート短辺に沿う方向に搬送されるシートである。
【００４３】
本形態のプリンタ１００は、レターサイズ及びＡ４サイズのシートは横置きの状態（シートの短辺がシートの搬送方向に沿う状態）で給紙トレイ２１に載置されるように設計されており、Ａ３、Ａ５、Ａ６の各サイズのシートは、縦置きの状態（シートの長辺がシートの搬送方向に沿う状態）で給紙トレイ２１に載置されるように設計されている。このように、シートサイズによってシートの向きが決められている場合、ＣＰＵ３１は、シートサイズの情報に基づいて、横置きのシートであるか否かを判断する。あるいは、例えば、給紙トレイ２１に複数のシートセンサが設けられていれば、ＣＰＵ３１は、それらのシートセンサの検出結果に基づいて、横置きのシートであるか否かを判断しても良い。また、例えば、ＣＰＵ３１は、プリンタ１００に設定されているユーザ設定に基づいて、判断しても良い。
【００４４】
横置きのシートであると判断した場合（Ｓ２０１：ＹＥＳ）、ＣＰＵ３１は、シートサイズの情報のうち、主走査方向の数値と副走査方向の数値とを入れ替える（Ｓ２０２）。シートサイズの情報には、主走査方向の長さを示す情報と副走査方向の長さを示す情報とが含まれる。そして、コマンドとして受信するシートサイズの情報は、縦置きした場合のサイズとなっていることから、ＣＰＵ３１は、主副の数値を入れ替える必要がある。
【００４５】
次に、ＣＰＵ３１は、描画方向の情報から、描画方向として横方向が指定されているか否かを判断する（Ｓ２０３）。描画方向が横方向とは、シートを横長とした向きに画像が配置される画像の向きであり、描画方向が横方向の画像は、画像の上下がシートの長辺側に配置される。そして、描画方向が横方向であると判断した場合（Ｓ２０３：ＹＥＳ）、ＣＰＵ３１は、回転角を０度と決定する（Ｓ２０４）。横置きのシートに横向きに印刷する場合、画像の回転は不要である。
【００４６】
また、横置きシートではないと判断した場合（Ｓ２０１：ＮＯ）、ＣＰＵ３１は、描画方向の情報から、描画方向として横方向が指定されているか否かを判断する（Ｓ２０５）。Ｓ２０５は、Ｓ２０３と同様の判断である。そして、描画方向が横方向ではないと判断した場合（Ｓ２０５：ＮＯ）、ＣＰＵ３１は、回転角を０度と決定する（Ｓ２０６）。縦置きのシートに縦向きに印刷する場合も、画像の回転は不要である。
【００４７】
一方、横置きのシートで描画方向が横方向ではないと判断した場合（Ｓ２０３：ＮＯ）、または、縦置きのシートで描画方向が横方向であると判断した場合（Ｓ２０５：ＹＥＳ）、ＣＰＵ３１は、回転角を２７０度と決定する（Ｓ２０７）。本形態のプリンタ１００では、画像の回転角を右回りの回転角で指定する。回転角が２７０度とは、シートの左下を画像の原点として、画像の上辺をシートの左辺に配置する画像の配置である。
【００４８】
次に、ＣＰＵ３１は、これから印刷する印刷面が、両面印刷の２面目であるか否かを判断する（Ｓ２０８）。両面印刷の場合、前述したようにシートを裏返すことから、２面目の印刷時には、シートの表裏のみでなく搬送方向に対するシートの前後も反転している。そのため、縦置きのシートで長辺綴じの場合や、横置きのシートで短辺綴じの場合には、画像の上下を反転させる必要がある。
【００４９】
両面印刷の２面目であると判断した場合（Ｓ２０８：ＹＥＳ）、ＣＰＵ３１は、搬送方向に沿うシートの辺が綴じ辺に一致しているか否かを判断する（Ｓ２０９）。搬送方向の辺が綴じ辺であると判断した場合（Ｓ２０９：ＹＥＳ）、ＣＰＵ３１は、先に決定した回転角に１８０度を加算して（Ｓ２１０）、回転角決定処理を終了する。一方、両面印刷の２面目ではないと判断した場合（Ｓ２０８：ＮＯ）、または、搬送方向の辺が綴じ辺ではないと判断した場合（Ｓ２０９：ＮＯ）、ＣＰＵ３１は、先に決定した回転角に決定して、回転角決定処理を終了する。
【００５０】
図８のＰＤＬ印刷処理の説明に戻る。Ｓ１０６の回転角決定処理の後、ＣＰＵ３１は、決定した回転角が０度であるか否かを判断する（Ｓ１０７）。Ｓ１０７は、回転判断処理の一例である。回転角が０度であると判断した場合（Ｓ１０７：ＹＥＳ）、または、所定条件を満たさないと判断した場合（Ｓ１０５：ＮＯ）、ＣＰＵ３１は、ＲＩＰ部５０のラスタライズ部５１にて、回転を伴わないラスタライズを行う（Ｓ１０８）。Ｓ１０８は、ラスタライズ処理の一例である。
【００５１】
一方、回転角が０度ではないと判断した場合（Ｓ１０７：ＮＯ）、ＣＰＵ３１は、ＲＩＰ部５０のラスタライズ部５１にて、回転を伴うラスタライズを行う（Ｓ１０９）。Ｓ１０９は、ラスタライズ処理の一例である。決定した回転角度に対応して、画像データの座標軸と書き込み方向とを所定の角度分変換し、回転済みのラスタデータを生成する。すなわち、Ｓ１０９では、画像の回転とラスタライズとが、同時に行われる。
【００５２】
Ｓ１０８の後、または、Ｓ１０９の後、ＣＰＵ３１は、ラスタデータを高解像度で印刷するか否かを判断する（Ｓ１１０）。高解像度で印刷しないと判断した場合（Ｓ１１０：ＮＯ）、ＣＰＵ３１は、サンプリング部５２によるサンプリングを行う（Ｓ１１１）。ＣＰＵ３１は、Ｓ１０５にて所定条件を満たすと判断されていない場合に、ラスタデータを高解像度で印刷しないと判断する。高解像度での印刷が設定されていない場合は、高解像度の画像データが不要であるため、後段画像処理部６０の負荷を軽減するために、サンプリングを行ってデータ量を縮小する。また、Ｓ１０５にて、印刷の品質が高く、かつ、必要なメモリ量が所定量を超えることにより所定条件を満たさないと判断した場合も、Ｓ１１１のサンプリングを実行する。これにより、メモリの使用量を削減できる。
【００５３】
さらに、Ｓ１１１の後、または、Ｓ１０５にて所定条件を満たすと判断されておりラスタデータを高解像度で印刷すると判断した場合（Ｓ１１０：ＹＥＳ）、ＣＰＵ３１は、生成したラスタデータをＲＡＭ３３に記憶する（Ｓ１１２）。その結果、Ｓ１０９にて回転ラスタライズによりラスタライズされたラスタデータと、Ｓ１０７にてＹＥＳと判断された場合の非回転ラスタライズによりラスタライズされたラスタデータは、サンプリングされずにＲＡＭ３３に記憶される。
【００５４】
次に、ＣＰＵ３１は、後段処理を実行する（Ｓ１１３）。後段処理は、ＲＡＭ３３に記憶されているラスタデータに基づいて、印刷データを生成する処理である。後段処理は、後段画像処理部６０にて実行される処理である。
【００５５】
後段処理の手順について、図１０のフローチャートを参照して説明する。後段処理では、ＣＰＵ３１は、まず、ＲＡＭ３３に記憶されているラスタデータが縦画像であるか否かを判断する（Ｓ３０１）。ＣＰＵ３１は、画像のサイズに基づいて、Ｓ３０１の判断を行う。具体的には、ＣＰＵ３１は、画像の副走査方向のサイズが主走査方向のサイズよりも大きい場合、縦画像であると判断する。画像のサイズは、ラスタデータとともにＲＡＭ３３に記憶される。
【００５６】
そして、ラスタデータが縦画像であると判断した場合（Ｓ３０１：ＹＥＳ）、ＣＰＵ３１は、画像のサイズが、横置きシートに対応するサイズであるか否かを判断する（Ｓ３０２）。前述したように、本形態のプリンタ１００は、レターサイズ及びＡ４サイズのシートは横置きの状態、つまり、シートの短辺がシートの搬送方向に沿う状態で、給紙トレイ２１に載置されるように設計されている。Ｓ３０１では、ＣＰＵ３１は、画像の主走査方向のサイズ及び副走査方向のサイズが、レターサイズまたはＡ４サイズに対応するサイズであるか否かを判断する。
【００５７】
画像のサイズが横置きシートに対応するサイズであると判断した場合（Ｓ３０２：ＹＥＳ）、ＣＰＵ３１は、回転角を２７０度と決定する（Ｓ３０３）。一方、画像のサイズが横置きシートに対応するサイズではないと判断した場合（Ｓ３０２：ＮＯ）、ＣＰＵ３１は、回転角を０度と決定する（Ｓ３０４）。
【００５８】
Ｓ３０３またはＳ３０４の後、ＣＰＵ３１は、両面印刷の２面目であるか否かを判断する（Ｓ３０５）。両面印刷の２面目であると判断した場合（Ｓ３０５：ＹＥＳ）、ＣＰＵ３１は、搬送方向に沿うシートの辺が綴じ辺に一致しているか否かを判断する（Ｓ３０６）。搬送方向の辺が綴じ辺であると判断した場合（Ｓ３０６：ＹＥＳ）、ＣＰＵ３１は、先に決定した回転角に１８０度を加算する（Ｓ３０７）。Ｓ３０５〜Ｓ３０７は、それぞれ、回転角決定処理のＳ２０８〜Ｓ２１０と同様の処理である。
【００５９】
Ｓ３０７の後、または、両面印刷の２面目ではないと判断した場合（Ｓ３０５：ＮＯ）、または、搬送方向の辺が綴じ辺ではないと判断した場合（Ｓ３０６：ＮＯ）、決定した回転角が０度であるか否かを判断する（Ｓ３０８）。Ｓ３０８は、回転判断処理の一例である。回転角が０度ではないと判断した場合（Ｓ３０８：ＮＯ）、ＣＰＵ３１は、後段画像処理部６０の画像回転部６１による画像の回転を行う（Ｓ３０９）。ハードウェア支援を有する画像回転部６１による画像の回転を行うことで、より高速な処理が可能となる。
【００６０】
Ｓ３０９の後、または、ラスタデータが縦画像ではないと判断した場合（Ｓ３０１：ＮＯ）、または、回転角が０度であると判断した場合（Ｓ３０８：ＹＥＳ）、ＣＰＵ３１は、後段画像処理部６０のＣＭＹＫ変換部６２によるＣＭＹＫ変換を行い（Ｓ３１０）、後段処理を終了する。Ｓ３１０は、生成処理の一例である。これにより、印刷部１０にて印刷に用いる印刷データが生成される。
【００６１】
図８のＰＤＬ印刷処理の説明に戻る。一方、受信した印刷ジョブを記述するＰＤＬ言語の種類が、ＰＣＬ５であると判断した場合（Ｓ１０１：ＹＥＳ）、ＣＰＵ３１は、第２方式処理を実行する（Ｓ１１４）。ＰＣＬ５は、第２方式のＰＤＬの一例である。第２方式処理は、印刷パラメータにシートサイズの情報や描画方向の情報が含まれない可能性のある場合の処理である。
【００６２】
第２方式処理の手順について、図１１のフローチャートを参照して説明する。第２方式処理では、ＣＰＵ３１は、まず、デフォルトのシートサイズの情報と描画方向の情報とを取得する（Ｓ４０１）。デフォルトの情報は、例えば、初期設定やユーザの設定によりあらかじめ決められており、不揮発性メモリ３４に記憶されている。そして、ＣＰＵ３１は、デフォルトのシートサイズと描画方向を用いて、回転角決定処理を実行する（Ｓ４０２）。回転角決定処理は、ＰＤＬ印刷処理のＳ１０６と同様の処理であり、前述した図９の処理である。Ｓ４０２の回転角決定処理による回転角の判断は、仮判断の一例である。
【００６３】
Ｓ４０２の回転角決定処理の後、ＣＰＵ３１は、受信中の印刷パラメータとして、シートサイズの情報を示すコマンド（Page  Sizeのコマンド８２）を受信したか否かを判断する（Ｓ４０３）。シートサイズのコマンドを受信していないと判断した場合（Ｓ４０３：ＮＯ）、ＣＰＵ３１は、描画方向の情報を示すコマンド（Local  Page  Orientationのコマンド８１）を受信したか否かを判断する（Ｓ４０４）。描画方向のコマンドを受信していないと判断した場合（Ｓ４０４：ＮＯ）、ＣＰＵ３１は、データ開始コマンドを受信したか否かを判断する（Ｓ４０５）。具体的には、ＣＰＵ３１は、図７に示したStart  Raster  Graphicsのコマンド８３を受信したか否かを判断する。
【００６４】
データ開始コマンドを受信していないと判断した場合（Ｓ４０５：ＮＯ）、ＣＰＵ３１は、Ｓ４０３に戻って、シートサイズのコマンド、描画方向のコマンド、データ開始コマンドの何れかを受信するまで待機する。データ開始コマンドは、ラスタライズ処理を開始するコマンドの一例である。
【００６５】
シートサイズのコマンドを受信したと判断した場合（Ｓ４０３：ＹＥＳ）、ＣＰＵ３１は、受信したコマンドに基づくシートサイズが、デフォルトのシートサイズと異なるか否かを判断する（Ｓ４０６）。また、描画方向のコマンドを受信したと判断した場合（Ｓ４０４：ＹＥＳ）、ＣＰＵ３１は、受信したコマンドに基づく描画方向が、デフォルトの描画方向と異なるか否かを判断する（Ｓ４０７）。コマンドとして受信した描画方向の情報は、第２方向情報の一例であり、コマンドとして受信したシートサイズの情報は、第２サイズ情報の一例である。
【００６６】
受信したコマンドに基づく情報がデフォルトと同じであると判断した場合（Ｓ４０６：ＹＥＳまたはＳ４０７：ＹＥＳ）、ＣＰＵ３１は、さらにコマンドの受信を待つ。なお、同じコマンドを複数回受信する可能性は低いので、受信済みのコマンドについての判断は省略しても良い。
【００６７】
受信したコマンドに基づく情報がデフォルトと同じではないと判断した場合（Ｓ４０６：ＮＯまたはＳ４０７：ＮＯ）、ＣＰＵ３１は、回転角決定処理を実行する（Ｓ４０８）。Ｓ４０８は、Ｓ４０２やＰＤＬ印刷処理のＳ１０６と同様の処理である。ＣＰＵ３１は、デフォルトのシートサイズの情報や描画方向の情報をＲＡＭ３３に一旦記憶し、コマンドを受信するごとにその部分を書き換えて回転角決定処理をやり直す。
【００６８】
そして、データ開始コマンドを受信したと判断した場合（Ｓ４０５：ＹＥＳ）、ＣＰＵ３１は、その時点で決定されている回転角が０度であるか否かを判断する（Ｓ４０９）。回転角が０度であると判断した場合、（Ｓ４０９：ＹＥＳ）、ＣＰＵ３１は、ＲＩＰ部５０のラスタライズ部５１にて、回転を伴わないラスタライズを行う（Ｓ４１０）。Ｓ４１０は、Ｓ１０８と同様の処理である。
【００６９】
回転角が０度ではないと判断した場合、（Ｓ４０９：ＮＯ）、ＣＰＵ３１は、ＲＩＰ部５０のラスタライズ部５１にて、回転を伴うラスタライズを行う（Ｓ４１１）。Ｓ４１１は、Ｓ１０９と同様の処理である。Ｓ４１０の後、または、Ｓ４１１の後、ＣＰＵ３１は、高解像度印刷が設定されているか否かを判断する（Ｓ４１２）。高解像度印刷が設定されていないと判断した場合（Ｓ４１２：ＮＯ）、ＣＰＵ３１は、サンプリング部５２によるサンプリングを行う（Ｓ４１３）。Ｓ４１３は、Ｓ１１１と同様の処理である。
【００７０】
Ｓ４１３の後、または、高解像度印刷が設定されていると判断した場合（Ｓ４１２：ＹＥＳ）、ＣＰＵ３１は、生成したラスタデータをＲＡＭ３３に記憶する（Ｓ４１４）。さらに、ＣＰＵ３１は、後段画像処理部６０のＣＭＹＫ変換部６２によるＣＭＹＫ変換を行い（Ｓ４１５）、ＰＤＬ印刷処理に戻る。Ｓ４１４は、ＰＤＬ印刷処理のＳ１１２と同様の処理であり、Ｓ４１５は、後段処理のＳ３０５と同様の処理である。
【００７１】
ＰＣＬ５では、描画方向とシートサイズとの少なくとも一方が記述されず、ラスタライズ開始までに画像の回転の要否が決められない場合がある。そこで、ＰＣＬ５の場合、印刷パラメータとして描画方向の情報とシートサイズの情報とがあれば、それらの情報に基づいて回転の有無を判断する一方、それらの情報がなければ装置に設定されているデフォルトを用いて回転の有無を判断する。そして、回転の必要があれば、画像データのラスタライズと同時に画像の回転を行うものとすることで、小メモリで画像を劣化させることなく画像の回転を行うことができる。特に、先にデフォルトの描画方向およびシートサイズに基づいて画像の回転の有無を決定しておくことで、ラスタライズ処理を速やかに開始できる。
【００７２】
図８のＰＤＬ印刷処理の説明に戻る。Ｓ１１４の第２方式処理の後、または、Ｓ１１３の後段処理の後、ＣＰＵ３１は、印刷部１０に印刷データに基づく印刷を実行させ（Ｓ１１５）、ＰＤＬ印刷処理を終了する。Ｓ１１５は、印刷処理の一例である。
【００７３】
以上、詳細に説明したように、本形態のプリンタ１００によれば、回転の必要な画像を高品質または高解像度で印刷する場合、ラスタライズ処理においてラスタライズと同時に画像の回転も行う。これにより、サンプリングにより画像を劣化させることなく、画像が回転した状態の印刷データを生成できる。一方、回転が必要な画像であっても、高品質または高解像度での印刷を行わない場合、サンプリングした後のラスタデータを記憶し、後段画像処理部６０にてハードウェア支援を受けて画像の回転を行うことで、処理の高速化を図ることができる。さらに、高品質または高解像度での印刷であっても、印刷データの生成に必要なメモリ量が多い場合には、サンプリングした後のラスタデータを記憶し、後段画像処理部６０にてハードウェア支援を受けて画像の回転を行うことで、メモリ不足に陥る可能性を低減できる。
【００７４】
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、プリンタに限らず、複写機、複合機、ＦＡＸ装置等、印刷機能を備えるものであれば適用可能である。また、画像読取機能を備える装置であれば、外部装置から受信する画像データに代えて、自装置にて読み取った画像データにも適用可能である。
【００７５】
また、本形態では、全ての処理をプリンタ１００が行うものとして説明しているが、印刷データを生成するまでの処理をプリンタ１００とは別の装置が行っても良い。例えば、印刷用サーバとプリンタ１００とを含むシステムにて、印刷用サーバが、印刷データの生成までの各処理を実行しても良い。つまり、印刷用サーバが、ＰＤＬデータを受信し、印刷データを生成して、生成した印刷データをプリンタ１００に送信し、プリンタ１００は、受信した印刷データに基づいて印刷を実行するとしても良い。その場合、印刷用サーバは、情報処理装置の一例であり、印刷用サーバのＣＰＵは、コンピュータの一例である。
【００７６】
また、印刷データの生成に必要なメモリ量の判断は、実施の形態に記載した所定条件の他、例えば、空きメモリが所定量以上か否かによっても判断できる。例えば、空きメモリ量が所定量以上であれば、生成処理によるラスタデータの回転を行い、空きメモリ量が所定量よりも少ない場合には、ラスタライズと同時に画像の回転を行うとしても良い。
【００７７】
また、本形態のＰＤＬ印刷処理では、ページ開始コマンドを受信した後に回転角決定処理を行うとしたが、シートサイズの情報と描画方向の情報との両方を取得した後であれば、ページ開始コマンドの受信前に以後の処理を開始しても良い。
【００７８】
また、本形態の第２方式処理では、受信したコマンドに基づくシートサイズや描画方向が、デフォルトと同じであるか否かを判断して、回転角決定処理を実行するか否かを決定しているが、デフォルトと同じであっても回転角決定処理を実行するとしても良い。具体的には、Ｓ４０６やＳ４０７を削除し、Ｓ４０３やＳ４０４にてＹＥＳと判断した場合には、Ｓ４０８に進むとしても良い。
【００７９】
また、ＰＤＬがＰＣＬ５の場合でも、所定条件を考慮しても良い。具体的には、Ｓ４０９にて回転角が０度ではないと判断した場合に、さらに所定条件を判断し、所定条件を満たしている場合にＳ４１１に進むとしても良い。所定条件を満たさない場合には、例えば、ＰＤＬ印刷処理のＳ１１３〜Ｓ１１６と同様の処理を行うとしても良い。
【００８０】
また、実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【００８１】
また、実施の形態に開示されている処理は、単一のＣＰＵ、複数のＣＰＵ、ＡＳＩＣなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【００８２】
１０  印刷部
３１  ＣＰＵ
３３  ＲＡＭ
３４  不揮発性メモリ
３７  ネットワークＩＦ
３８  ＵＳＢ−ＩＦ
１００  プリンタ
【図１】
2020049903.tif 000003
【図２】
2020049903.tif 000004
【図３】
2020049903.tif 000005
【図４】
2020049903.tif 000006
【図５】
2020049903.tif 000007
【図６】
2020049903.tif 000008
【図７】
2020049903.tif 000009
【図８】
2020049903.tif 000010
【図９】
2020049903.tif 000011
【図１０】
2020049903.tif 000012
【図１１】
2020049903.tif 000013