(57)【要約】【課題】ユーザにとって印刷結果を認識し易いプレビュー表示を行うプログラムおよび情報処理装置を提供すること。【解決手段】ＰＣ１に組み込まれたプログラムは，画像データの向きを両面印刷設定に応じて変更するか否かを決定する。そして，プログラムは，向きを変更する場合には，画像データの向きを変更して，プリンタ２用の印刷データを生成する。また，プログラムは，画像データの向きを変更して印刷データを生成する場合に，プレビュー４２用のプレビューデータとして，画像データの向きを再度変更し，画像イメージに基づくプレビューデータを生成する。【選択図】            図１１
2014063253.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に，
印刷対象となる画像データを取得する取得処理と，
前記取得手段にて取得した画像データの向きを両面印刷設定に応じて変更するか否かを決定し，向きを変更する場合には，当該画像データの向きを変更して印刷用のイメージデータである印刷データを生成する印刷データ生成処理と，
前記印刷データ生成処理にて画像データの向きを変更して印刷データを生成した場合に，当該変更した画像データの向きを再度変更して，前記印刷データからプレビュー用のイメージデータであるプレビューデータを生成するプレビューデータ生成処理と，
前記プレビューデータ生成処理にて生成されたプレビューデータを，前記情報処理装置に表示させる表示処理と，
を実行させることを特徴とするプログラム。
【請求項２】
請求項１に記載するプログラムにおいて，
前記印刷データ生成処理では，両面印刷設定に応じて，用紙の一方の面に印刷される画像データの向きを変更し，当該用紙の他方の面に印刷される画像データの向きを変更しない，と決定し，
前記プレビューデータ生成処理では，前記一方の面に印刷される画像データの向きを変更前の向きに戻して前記プレビューデータを生成することを特徴とするプログラム。
【請求項３】
請求項１または請求項２に記載するプログラムにおいて，
前記印刷データの送信先となる印刷装置の，印刷データを記憶するメモリの空き容量が所定量未満である場合に，印刷データの前記印刷装置への送信順を，ページ順から印刷順に入れ替える入替処理を，前記情報処理装置に実行させ，
前記表示処理では，プレビューデータをページ順に表示することを特徴とするプログラム。
【請求項４】
請求項１から請求項３のいずれか１つに記載するプログラムにおいて，
前記印刷データ生成処理では，前記印刷データの送信先となる印刷装置の回転処理能力を示す能力情報を取得し，当該能力情報に基づいて，画像の幅方向の回転および画像の高さ方向の回転のうち，前記印刷装置が実行できない回転を行うことで，画像データの向きを変更することを特徴とするプログラム。
【請求項５】
表示部と，
制御部と，
を備え，
前記制御部は，
印刷対象となる画像データを取得する取得処理と，
前記取得処理にて取得した画像データの向きを両面印刷設定に応じて変更するか否かを決定し，向きを変更する場合には，当該画像データの向きを変更して印刷用のイメージデータである印刷データを生成する印刷データ生成処理と，
前記印刷データ生成処理にて画像データの向きを変更して印刷データを生成した場合に，当該変更した画像データの向きを再度変更して，前記印刷データからプレビュー用のイメージデータであるプレビューデータを生成するプレビューデータ生成処理と，
前記プレビューデータ生成処理にて生成されたプレビューデータを，前記表示部に表示させる表示処理と，
を実行することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，プログラムおよび情報処理装置に関する。さらに詳細には，用紙に印刷される画像のイメージデータであるプレビューデータを表示するプレビュー機能を有するプログラムおよび情報処理装置に関するものである。
【背景技術】
【０００２】
従来から，印刷装置にて印刷を行う前に，プレビュー画面にプレビューデータを表示するプレビュー機能が知られている。例えば，特許文献１には，情報処理装置から印刷装置に印刷データを送信した後，情報処理装置から印刷装置にプレビューコマンドを送信し，印刷装置は，プレビューコマンドを受信すると，ドットイメージに展開した印刷データを情報処理装置に返送し，情報処理装置は，返送された展開済みの印刷データを表示する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−３０４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら，前記した従来の技術には，次のような問題があった。すなわち，印刷装置の装置構成や印刷設定に合わせて印刷データの向きを変更することがある。例えば，両面印刷を行う際，両面印刷設定に応じて一方の面に印刷される印刷データを上下反転させる必要がある。この場合，展開済みの印刷データをそのままプレビュー表示すると，上下反転後の印刷データが表示されることになり，ユーザにとって印刷結果を認識し難い。
【０００５】
本発明は，前記した従来の技術が有する問題点を解決するためになされたものである。すなわちその課題とするところは，ユーザにとって印刷結果を認識し易いプレビュー表示を行うプログラムおよび情報処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
この課題の解決を目的としてなされたプログラムは，情報処理装置に，印刷対象となる画像データを取得する取得処理と，前記取得手段にて取得した画像データの向きを両面印刷設定に応じて変更するか否かを決定し，向きを変更する場合には，当該画像データの向きを変更して印刷用のイメージデータである印刷データを生成する印刷データ生成処理と，前記印刷データ生成処理にて画像データの向きを変更して印刷データを生成した場合に，当該変更した画像データの向きを再度変更して，前記印刷データからプレビュー用のイメージデータであるプレビューデータを生成するプレビューデータ生成処理と，前記プレビューデータ生成処理にて生成されたプレビューデータを，前記情報処理装置に表示させる表示処理とを実行させることを特徴としている。
【０００７】
本明細書で開示されるプログラムは，画像データの向きを両面印刷設定に応じて変更するか否かを決定する。両面印刷設定には，両面印刷の実行有無の他，例えば，印刷方向や綴じ部の配置が含まれる。そして，当該プログラムは，向きを変更する場合には，画像データの向きを変更して印刷データを生成する。画像データの向きの変更は，画像の幅方向の変更であってもよいし，画像の高さ方向の変更であってもよいし，その両方であってもよい。また，当該プログラムは，画像データの向きを変更して印刷データを生成する場合に，画像データの向きを再度変更し，当該画像データの画像イメージに基づくプレビューデータを生成する。
【０００８】
すなわち，本明細書で開示されるプログラムでは，画像データの向きを変更して印刷データを生成する場合に，その画像データの向きを変更前の画像イメージに戻すように再度変更してプレビューデータを生成する。これにより，プレビュー表示される画像の向きが揃えられる。そのため，ユーザが印刷結果を認識し易くなる。
【０００９】
また，前記印刷データ生成処理では，両面印刷設定に応じて，用紙の一方の面に印刷される画像データの向きを変更し，当該用紙の他方の面に印刷される画像データの向きを変更しないと決定し，前記プレビューデータ生成処理では，前記一方の面に印刷される画像データの向きを変更前の向きに戻して前記プレビューデータを生成するとよい。自動両面印刷では，１枚の用紙について，表面印刷時と裏面印刷時とで用紙の搬送方向が１８０度入れ替わるため，表面と裏面の画像の向きを一致させるには，表面の印刷データと裏面の印刷データとの一方を１８０度反転させる必要がある。そこで，一方の面に印刷される画像データの向きを変更することで，用紙１枚分の印刷結果を，より正確にプレビュー表示できる。なお，向きを変更する面は，表面であっても裏面であってもよい。
【００１０】
また，本明細書で開示されるプログラムは，前記印刷データの送信先となる印刷装置の，印刷装置が印刷データを記憶するメモリの空き容量が所定量未満である場合に，印刷データの前記印刷装置への送信順を，ページ順から印刷順に入れ替える入替処理を，前記情報処理装置に実行させ，前記表示処理では，プレビューデータをページ順に表示するとよい。メモリの空き容量が両面印刷に必要なページ分の印刷データを記憶できる所定量に満たない場合には，プログラムにて印刷データの送信順を入れ替えることで，そのような小容量の印刷装置であっても両面印刷を実現できる。一方，プレビューでは，ページ順で表示する方が，印刷結果により近いプレビューを表示する上で好ましい。そのため，プログラムは表示順を入れ替えない。
【００１１】
また，前記印刷データ生成処理では，前記印刷データの送信先となる印刷装置の回転処理能力を示す能力情報を取得し，当該能力情報に基づいて，画像の幅方向の回転および画像の高さ方向の回転のうち，前記印刷装置が実行できない回転を行うことで，画像データの向きを変更するとよい。印刷装置で回転可能な回転処理については，印刷装置で行う方が処理完了が早い。そのため，情報処理装置では，印刷装置で実行可能な回転については回転を行わず，実行不可能な回転についてのみ行う方が，処理の負荷が小さく，プレビュー表示までの時間が短い。
【００１２】
また，本明細書には，表示部と，制御部とを備え，前記制御部は，印刷対象となる画像データを取得する取得処理と，前記取得処理にて取得した画像データの向きを両面印刷設定に応じて変更するか否かを決定し，向きを変更する場合には，当該画像データの向きを変更して印刷用のイメージデータである印刷データを生成する印刷データ生成処理と，前記印刷データ生成処理にて画像データの向きを変更して印刷データを生成した場合に，当該変更した画像データの向きを再度変更して，前記印刷データからプレビュー用のイメージデータであるプレビューデータを生成するプレビューデータ生成処理と，前記プレビューデータ生成処理にて生成されたプレビューデータを，前記表示部に表示させる表示処理とを実行することを特徴とする情報処理装置が開示されている。
【発明の効果】
【００１３】
本発明によれば，ユーザにとって印刷結果を認識し易いプレビュー表示を行うプログラムおよび情報処理装置が実現される。
【図面の簡単な説明】
【００１４】
【図１】実施の形態に係るプリントシステムの構成を示すブロック図である。
【図２】パーソナルコンピュータ（ＰＣ）に組み込まれたプログラムの構成を示すブロック図である。
【図３】印刷設定画面の構成を示す図である。
【図４】プレビュー画面の構成を示す図である。
【図５】プリンタの構成を示す図である。
【図６】両面印刷における綴じ部および印刷方向の設定別の印刷イメージを示す図である。
【図７】直接印刷方式の印刷手順を示すブロック図である。
【図８】印刷プレビュー方式の印刷手順を示すブロック図である。
【図９】第１の形態に係るプリンタドライバの印刷処理の手順を示すフローチャートである。
【図１０】第１の形態に係るプリンタドライバのデータ生成処理の手順を示すフローチャートである。
【図１１】原稿，プレビューデータ，印刷データの各画像イメージを示す図である。
【図１２】第２の形態に係るプリンタドライバのデータ生成処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下，本発明にかかるプログラムおよび情報処理装置を具体化した実施の形態について，添付図面を参照しつつ詳細に説明する。
【００１６】
［プリントシステムの構成］
本形態のプリントシステム１００は，図１に示すように，プリンタ２（印刷装置の一例）と，プリンタ２を制御するＰＣ１（情報処理装置の一例）とを備えている。プリントシステム１００では，ＰＣ１とプリンタ２とがＵＳＢケーブルを介して接続されている。
【００１７】
なお，プリントシステム１００を構成するプリンタおよびＰＣは各１台に限るものではなく，それぞれ複数台接続してもよい。また，ＰＣ１とプリンタ２との接続は，ＵＳＢケーブルに限らず，その他のシリアル通信ケーブル，パラレル通信ケーブル，有線ＬＡＮケーブル，さらには無線ＬＡＮ等の無線通信経路であってもよい。
【００１８】
ＰＣ１は，各種処理を実行するＣＰＵ１１（制御部の一例）と，当該ＰＣ１の起動時にＣＰＵ１１が行う起動処理のプログラム（ＢＩＯＳ）等を記憶したＲＯＭ１２と，ＣＰＵ１１が各種処理を行う際に一時的な記憶領域として利用されるＲＡＭ１３と，各種のプログラムやデータを記憶したハードディスクドライブ（ＨＤＤ）１４とを有している。
【００１９】
また，ＰＣ１は，キーボードやマウス等からなる操作部１５と，液晶ディスプレイ等からなる表示部１６（表示部の一例）と，ＵＳＢインターフェース１７と，ネットワークインターフェース１８とを有している。
【００２０】
ＰＣ１のＨＤＤ１４には，図２に示すように，オペレーティングシステム（ＯＳ）５０と，アプリケーションプログラム６１（文書作成ソフト，作図ソフト，表計算ソフト，写真データ編集ソフト等）と，プリンタ２を制御するプリンタドライバ４０（プログラムの一例）とが記憶されている。なお，各種プログラムはＣＤ−ＲＯＭなどの記憶媒体に記憶されているものをインストールしてもよいし，ネットワーク上のサーバに記憶されているものをダウンロードしてインストールしてもよい。
【００２１】
ＰＣ１に組み込まれたアプリケーションプログラム６１は，プリンタドライバ４０に印刷指令を出力する機能を備えており，この機能によって原稿画像の画像データがプリンタドライバ４０に渡される。プリンタドライバ４０は，アプリケーションプログラム６１から渡された画像データに基づいて，プリンタ２で印刷するために必要なＰＤＬ形式の印刷データを生成する。
【００２２】
プリンタドライバ４０が作成した印刷データは，ＵＳＢインターフェース１７を経由してプリンタ２へと送信される。プリンタ２は，印刷データを受信し，その印刷データの画像を用紙に印刷する。
【００２３】
プリンタ２は，用紙に画像を形成する機能を有していればよく，その画像形成方式は，電子写真方式，インクジェット方式，その他の一般的な画像形成方式を採用していればよい。また，カラー画像及びモノクロ画像の画像形成が可能であっても，モノクロ画像のみの画像形成が可能であってもよい。
【００２４】
また，本形態のプリンタドライバ４０は，印刷データを送信する前に，用紙に印刷される画像イメージのデータであるプレビューデータを生成し，そのプレビューデータを表示するプレビュー機能を有している。また，本形態のプリンタドライバ４０は，プレビュー機能を有効にするか否かの設定を行う機能を有している。
【００２５】
具体的に，本形態のプリンタドライバ４０は，プレビューデータを表示する場合，印刷データをプリンタ２に送信する前に，プレビューア４２を起動する。そして，プレビューア４２のプレビュー画面にプレビューデータを表示させる。一方，プレビューデータを表示しない場合には，プレビューア４２を起動することなく，印刷データをプリンタ２に送信する。プリンタドライバ４０の詳細については後述する。
【００２６】
なお，本明細書におけるプレビュー機能は，アプリケーションプログラム６１が具備している機能ではなく，前述したようにプリンタドライバ４０が具備する機能である。２ｉｎ１等の集約印刷やウォータマークの付与等の加工は，プリンタドライバ４０が印刷データを生成する際に行うこともあり，プリンタドライバ４０が行う加工はアプリケーションプログラム６１によるプレビューでは反映されない。一方，プリンタドライバ４０によるプレビューは，プリンタドライバ４０が行う加工を反映したプレビューデータを表示できる。そのため，プリンタドライバ４０によるプレビューは，アプリケーションプログラム６１によるプレビューと比較して，用紙に印刷される画像イメージをより正確に表示できる利点がある。
【００２７】
［プリンタドライバの構成］
続いて，プリンタドライバ４０の構成について，図２を参照しつつ説明する。なお，ＰＣ１には，オペレーティングシステム（ＯＳ）５０として，Microsoft Windows（登録商標）が組み込まれているものとする。
【００２８】
プリンタドライバ４０は，印刷ジョブの各種設定に関するユーザ入力を可能にするユーザインターフェースドライバ４１と，印刷イメージを表示部１６に表示するプレビューア４２と，印刷用のデータである印刷データの生成と，プレビュー用のデータであるプレビューデータの生成とを行うプリンタグラフィックスドライバ４３とを有している。
【００２９】
具体的に，ユーザインターフェースドライバ４１は，図３に示すような印刷の際の各種の属性をユーザに設定させる印刷設定画面４１１を提供する。印刷設定画面４１１では，用紙サイズ，用紙種類，印刷品質，印刷向き等の，一般的な印刷設定の他，印刷プレビューを表示するか否かの設定を行うことが可能である。
【００３０】
印刷プレビューを表示する設定がチェックされた場合（以下，チェックされた場合を「ＯＮ」とし，チェックされていない場合を「ＯＦＦ」とする）には，プリンタドライバ４０は印刷データをプリンタ２に送信する前にプレビューア４２を起動し，そのプレビュー画面にプレビューデータを表示させる。そして，プレビュー画面にて印刷するか否かの指示を受け付け，印刷する指示である印刷指示が入力された場合にはプレビューア４２からプリンタ２に印刷データを送信する。一方，印刷プレビューを表示する設定がＯＦＦの場合には，プレビューア４２を起動することなく，印刷データをプリンタ２に送信する。
【００３１】
また，ユーザインターフェースドライバ４１は，印刷プレビューを表示する設定がＯＮの場合に，プレビューア４２を起動する機能を有している。プレビューア４２の起動タイミングについては後述する。
【００３２】
プレビューア４２は，図４に示すようなプレビュー画面４２０を表示する。プレビュー画面４２０は，１ページ分（用紙１面分に相当）のプレビューデータを表示するイメージ領域４２１と，各ページを印刷対象とするか否かを設定するページ選択チェックボックス群４２２と，印刷対象となったページの印刷指示を受け付ける印刷実行ボタン４２３と，印刷ジョブを中止するキャンセルボタン４２４と，ページ選択チェックボックス群４２２に表示されている全ページを印刷対象に設定する全ページチェックボタン４２５と，次のページのプレビューデータをイメージ領域４２１に表示する指示を受け付ける次ページボタン４２６と，前のページのプレビューデータをイメージ領域４２１に表示する指示を受け付ける前ページボタン４２７とを有している。
【００３３】
ページ選択チェックボックス群４２２中，イメージ領域４２１に表示中のページ番号には，下線が表示される。これにより，ユーザは，イメージ領域４２１に表示中のページ番号を把握できる。また，ページ選択チェックボックス群４２２には，プレビューデータが生成された数分のチェックボックスが表示され，ユーザは，印刷ジョブを構成する総ページ数を把握できる。また，全ページチェックボタン４２５が押下されると，ページ選択チェックボックス群４２２に表示されている各ページのチェックボックスが全てチェックされた状態になる。印刷実行ボタン４２３あるいはキャンセルボタン４２４が押下されると，プレビューア４２が終了する。
【００３４】
プリンタグラフィックスドライバ４３は，印刷対象となる画像データの加工処理や，加工処理が反映された画像データに基づく，物理用紙単位（両面印刷の場合はさらに用紙面単位）のプレビューデータの生成処理や，加工処理が反映された画像データに基づく，物理用紙単位の印刷データの生成処理を行う。加工処理としては，例えば，ウォータマーク，ヘッダー，フッター等の合成，拡大，縮小等の倍率変更，画像回転，２ｉｎ１，４ｉｎ１等の集約が該当する。
【００３５】
プレビューデータのファイル形式は，プレビューア４２で表示できるファイル形式であればよく，本形態ではビットマップ形式のファイルを圧縮した圧縮ファイル（例えばＪＰＥＧファイル）とする。なお，プレビューデータのファイル形式としては，非圧縮のビットマップファイルであってもよい。また，印刷データのファイル形式は，プリンタ２で印刷できるファイル形式であればよく，本形態ではＰＤＬファイルとする。
【００３６】
［プリンタの構成］
続いて，プリンタ２の構成について，図５を参照しつつ簡単に説明する。実施の形態のプリンタ２は，印刷データに基づく画像を形成し，用紙にその画像を印刷するプロセス部２０と，印刷前の用紙を収容する給紙カセット３１と，印刷後の用紙を載置する排紙トレイ３２と，給紙カセット３１から用紙を１枚ずつピックする給紙ローラ３５と，用紙をプロセス部２０に搬送するレジストローラ３６と，用紙を排紙トレイ３２に排出する排紙ローラ３７とを有している。この他，用紙経路には，幾つもの用紙搬送ローラが設けられている。
【００３７】
また，プリンタ２内には，底部に位置する給紙カセット３１に収容された用紙を，給紙ローラ３５，レジストローラ３６を経由して，プロセス部２０に案内する略Ｕ字形状の給紙経路２１と，プロセス部２０から，排紙ローラ３７を介して排紙トレイ３２へ案内する略Ｕ字状の排紙経路２２とが設けられ，給紙経路２１と排紙経路２２とで略Ｓ字形状の印刷経路２４（図５中の一点鎖線）が設けられている。
【００３８】
本形態のプリンタ２は，給紙カセット３１に載置されている用紙を１枚ずつ給紙経路２１に取り込み，その用紙をプロセス部２０に搬送し，その用紙に画像を印刷する。そして，印刷後の用紙を，排紙経路２２を経由して排紙ローラ３７に案内し，排紙ローラ３７によって排紙トレイ３２に排出する。
【００３９】
また，プリンタ２内には，両面印刷を行うための搬送機構が設けられている。すなわち，プリンタ１００内には，一方の面に印刷が行われた用紙の，その裏面にも印刷が行われるように，用紙の表裏を反転してプロセス部２０に再搬送するための反転経路２３（図５中の二点鎖線）が設けられている。
【００４０】
反転経路２３は，プロセス部２０よりも用紙の搬送方向の下流であって排紙ローラ３７よりも上流に位置する分岐点２５で，排紙経路２２から分岐している。そして，反転経路２３は，分岐点２５からプロセス部２０と給紙カセット３１との間に形成され，給紙経路２１中，給紙ローラ３５よりも下流であってレジストローラ３６よりも上流に位置する合流点２６で，印刷経路２４と合流している。すなわち，プリンタ２内には，用紙経路として，印刷経路２４と反転経路２３とが存在する。
【００４１】
具体的に，プリンタ２による両面印刷では，次のような手順で用紙を搬送する。まず，給紙された用紙を，給紙経路２１を介してプロセス部２０に案内し，当該用紙の１面目である裏面に印刷する。その後，裏面の印刷が完了した用紙を，排紙経路２２を介して排紙ローラ３７まで搬入する。用紙後端が分岐点２５を通過した後，排紙ローラ３７がその用紙を挟持した状態で一旦停止する。その後，排紙ローラ３７の回転方向を切り換えて用紙の搬送方向を逆転する。そして，搬送方向が逆転した用紙を，分岐点２５を経由して反転経路２３に搬入する。その後，当該用紙を，合流点２６を経由して，プロセス部２０よりも上流側で給紙経路２１に戻す。これにより，用紙の表裏が反転したことになる。その後，２面目である表面に印刷し，表面の印刷が完了した用紙，すなわち両面印刷が完了した用紙を，排紙ローラ３７を介して排紙する。
【００４２】
プリンタ２による両面印刷では，前述したように裏面の印刷済みの用紙の搬送方向が，排紙ローラ３７によって１８０度変更される。すなわち，裏面で先端あった用紙の一辺は，表面では後端になる。そのため，裏面と表面とでは反対向きの画像を印刷しなければ，用紙１枚分の表裏の画像の向きが揃わない。そこで，プリンタ２は，用紙１枚分の表裏の画像の向きを揃えるため，裏面に相当する偶数ページの画像の向きを逆向きにして印刷を行う。
【００４３】
ただし，両面印刷では，綴じ部および印刷方向（ポートレート，ランドスケープ）の設定によっては，用紙１枚分の表裏の画像の向きを揃えずに，互いに逆向きの画像を印刷する場合もある。図６は，綴じ部および印刷方向の，設定別の印刷イメージを示している。（Ａ）は，長辺綴じのポートレート印刷の印刷イメージを示している。この場合は，用紙１枚分の表裏の画像の向きを揃える必要が有り，画像反転が必要となる。（Ｂ）は，短辺綴じのランドスケープ印刷の印刷イメージを示している。この場合も，用紙１枚分の表裏の画像の向きを揃える必要が有り，画像反転が必要となる。一方，（Ｃ）は，短辺綴じのポートレート印刷の印刷イメージを示している。この場合は，用紙１枚分の表裏の画像の向きが反対であり，画像反転が不要となる。（Ｄ）は，長辺綴じのランドスケープ印刷の印刷イメージを示している。この場合も，用紙１枚分の表裏の画像の向きが反対であり，画像反転が不要となる。
【００４４】
［印刷手順］
続いて，本形態のプリントシステム１００の印刷手順について説明する。本形態のプリントシステム１００では，前述したようにプレビュー表示を行って印刷を行う方法（印刷プレビュー方式）と，プレビュー表示を行わずに印刷を行う方法（直接印刷方式）とがある。そこで，これらを分けて説明する。なお，プリントシステム１００では，ＲＡＷスプール形式にて印刷を行う。
【００４５】
［直接印刷方式］
始めに，プレビュー表示を行わずに印刷を行う直接印刷方式について，図７のブロック図を参照しつつ説明する。なお，図７中，ＧＤＩ５１が２つ存在しているが，これは説明の便宜を図ったものであり，実際には同じモジュールである。
【００４６】
ＧＤＩ５１は，プリンタやディスプレイ等の出力デバイスの制御を行うモジュールであり，ＯＳ５０の一部として提供される。ＧＤＩ５１は，アプリケーションプログラム６１からの命令を受け付け，その命令をデバイスドライバ（本形態ではプリンタドライバ４０）が解釈できるデータ（本形態ではビットマップデータ）に変換してデバイスドライバに受け渡す。
【００４７】
プリントプロセッサ５３は，印刷データをプリンタ２に出力する機能や，印刷データの生成をプリンタドライバ４０に指示する機能を有するモジュールであり，ＧＤＩ５１と同じくＯＳ５０の一部として提供される。
【００４８】
印刷を行う際には，先ず，アプリケーションプログラム６１がユーザからの印刷指示を受け付け，印刷開始通知を出力する。そして，ＯＳ５０の一部であるＧＤＩ５１がアプリケーションプログラム６１からその印刷開始通知を受け付け，アプリケーションプログラム６１から画像データの取得を開始する。
【００４９】
ＧＤＩ５１は，画像データの取得を開始すると，当該画像データをビットマップデータに変換し，さらにプリンタグラフィックドライバ４３に対して描画命令を行う。プリンタグラフィックドライバ４３は，描画命令を受け付けると，ＧＤＩ５１から変換後の画像データを取得し，その画像データに基づいてプリンタ２用の印刷データを生成する。また，印刷データの生成の際，必要に応じて画像データに画像反転等の加工を行う。印刷データの生成後は，ＧＤＩ５１に生成終了を応答する。ＧＤＩ５１は，生成された印刷データをＯＳ５０が用意したＲＡＷスプールファイル５２に格納する。
【００５０】
印刷データがＲＡＷスプールファイル５２に格納されると，プリントプロセッサ５３が起動され，ＲＡＷスプールファイル５２に格納されている印刷データをプリンタ２に送信する。印刷データを受信したプリンタ２は，その印刷データに基づいて印刷を行う。
【００５１】
［印刷プレビュー方式］
続いて，印刷プレビュー方式について，図８のブロックを参照しつつ説明する。なお，図８中にも，ＧＤＩ５１が２つ存在しているが，これも説明の便宜をはかったものであり，実際にはそれぞれ同じモジュールである。
【００５２】
印刷プレビューを行う場合には，先ず，アプリケーションプログラム６１がユーザからの印刷指示を受け付け，印刷開始通知を出力する。そして，ＧＤＩ５１がアプリケーションプログラム６１から印刷開始通知を受け付ける。
【００５３】
ＧＤＩ５１は，印刷開始通知の受け付けた後，アプリケーションプログラム６１から画像データを取得する。そして，ＧＤＩ５１は，取得した画像データをビットマップデータに変換し，さらにプリンタグラフィックスドライバ４３に対して描画命令を出力する。ＧＤＩ５１は，描画命令を出力した後は，プリンタグラフィックスドライバ４３が応答するまで待機する。
【００５４】
プリンタグラフィックスドライバ４３は，描画命令を受け付けると，ＧＤＩ５１が変換した画像データを取得し，必要に応じてその画像データに画像回転等の加工を行い，さらに画像データに基づいて，プレビューア４２用のプレビューデータ（本形態ではＪＰＥＧデータ）と，プリンタ２用の印刷データ（本形態ではＰＤＬデータ）とを生成する。すなわち，画像データから，プレビューデータと印刷データとの２種類のデータを生成する。印刷データは，印刷データファイル４５に格納され，プレビューデータは，プレビューデータファイル４６に格納される。また，印刷データファイル４５およびプレビューデータファイル４６には，ページ番号と各ページのデータの格納場所とが関連付けられた情報が記憶される。印刷データファイル４５およびプレビューデータファイル４６は，プリンタドライバ４０が用意するファイルであって，ＯＳ５０が用意するＲＡＷスプールファイル５２とは異なる。プリンタグラフィックスドライバ４３は，プレビューデータおよび印刷データの生成が完了すると，終了をＧＤＩ５１に応答する。
【００５５】
プリンタドライバ４０は，上述のような物理用紙単位（両面印刷の場合はさらに用紙面単位）のプレビューデータおよび印刷データの生成を，画像データを受け付ける度に行い，最終ページの画像データの処理が完了するまで繰り返す。
【００５６】
アプリケーションプログラム６１が最終ページの画像データの受け渡しを完了させると，印刷終了通知を出力する。ＧＤＩ５１は，アプリケーションプログラム６１から印刷終了通知を受け付けると，ユーザインターフェースドライバ４１に印刷終了イベントを発行する。
【００５７】
ユーザインターフェースドライバ４１は，印刷終了イベントを受け付けると，プレビューア４２を起動する。さらに，ユーザインターフェースドライバ４１は，プレビューア４２に対し，起動後あるいは起動と同時に，プリンタグラフィックスドライバ４３が生成した全プレビューデータをプレビューデータファイル４６から読み出させ，先頭ページのプレビューデータをイメージ領域４２１に表示させる。
【００５８】
その後，プレビューア４２は，ユーザからの，印刷指示あるいはキャンセル指示を受け付ける。プレビューア４２は，ユーザからの印刷指示を受け付けると，印刷データファイル４５に格納されている印刷データの中から，ページ選択チェックボックス群４２２にて印刷対象として選択されているページに対応する印刷データを印刷データファイル４５から読み出し，プリンタ２に送信する。つまり，印刷プレビューを表示する設定がＯＮの場合には，プレビューア４２からの指示によって，印刷データファイル４５に格納された印刷データがプリンタ２に送信される。
【００５９】
なお，印刷プレビューを表示する場合であっても，ＲＡＷスプール形式を利用することには変わりないことから，ＯＳ５０はＲＡＷスプールファイル５２を作成する。ただし，このＲＡＷスプールファイル５２には印刷データは格納されない。そのため，結果としてＲＡＷスプールファイル５２から印刷データは送信されない。
【００６０】
［印刷処理（第１の形態）］
続いて，前述した印刷手順を実現するＰＣ１の印刷処理について，図９のフローチャートを参照しつつ説明する。図９は，ＰＣ１がプリンタドライバ４０やＯＳ５０を利用して実現する手順を示しており，アプリケーションプログラム６１を介して印刷対象の画像データの受け付けを開始したことを契機にＣＰＵ１１によって実行される。
【００６１】
印刷処理では，先ず，アプリケーションプログラム６１から画像データを１ページ単位で取得する（Ｓ１０１，取得処理の一例）。具体的にＳ１０１では，アプリケーションプログラム６１からＯＳ５０が取得した画像データをＧＤＩ５１によってビットマップデータ（ＢＭＰデータ）に変換し，変換後のＢＭＰデータをＧＤＩ５１からプリンタドライバ４０のプリンタグラフィックスドライバ４３に引き渡す。言い換えると，Ｓ１０１では，プリンタドライバ４０が印刷対象の画像のＢＭＰデータを取得する。
【００６２】
次に，画像反転が必要か否かを決定するＸフラグおよびＹフラグをＯＦＦにする（Ｓ１０２）。Ｘフラグは，画像の幅方向の反転が必要か否かを示すものであり，Ｙフラグは，画像の高さ方向の反転が必要か否かを示すものである。幅方向の反転と高さ方向の反転とを実行することで，１８０度の回転が可能になる。ＸフラグおよびＹフラグは，ＯＮとＯＦＦの状態があり，ＯＮは画像反転が必要なことを意味し，ＯＦＦは画像反転が不要なことを意味する。このＸフラグおよびＹフラグは，プリンタグラフィックドライバ４３が有している。
【００６３】
次に，画像の反転が必要な両面印刷が設定されているか否かを判断する（Ｓ１０３）。反転が必要か否かは，図６に示したように綴じ部および印刷方向の設定内容によって決定される。
【００６４】
反転が必要な両面印刷が設定されている場合には（Ｓ１０３：ＹＥＳ），処理対象ページが用紙の裏面に印刷されるページか否かを判断する（Ｓ１１１）。プリンタ２では，偶数ページが裏面に印刷されるページとなる。裏面に印刷されるページであれば（Ｓ１１１：ＹＥＳ），画像の反転が必要となるため，ＸフラグおよびＹフラグをＯＮに変更する（Ｓ１１２）。表面に印刷されるページであれば（Ｓ１１１：ＮＯ），画像の反転が不要となるため，ＸフラグおよびＹフラグを変更しない。
【００６５】
Ｓ１１２の後，あるいは表面に印刷されるページである場合（Ｓ１１１：ＮＯ），あるいは反転が必要な両面印刷が設定されていない場合には（Ｓ１０３：ＮＯ），印刷データおよびプレビューデータをプリンタグラフィックスドライバ４３にて生成するデータ生成処理を実行する（Ｓ１０４）。
【００６６】
図１０は，Ｓ１０４のデータ生成処理の詳細手順を示している。データ生成処理では，先ず，印刷プレビューを表示する設定がＯＮか否かを判断する（Ｓ１５１）。印刷プレビューを表示する設定がＯＦＦの場合（Ｓ１５１：ＮＯ），すなわちプレビュー表示を行わない場合には，プレビューデータを生成することなく，Ｓ１５２に移行する。
【００６７】
プレビューを表示する設定がＯＮの場合（Ｓ１５１：ＹＥＳ），プレビューデータの生成用に，Ｓ１０１で取得したＢＭＰデータと，現在のＸフラグおよびＹフラグの状態をコピーする（Ｓ１６１）。
【００６８】
Ｓ１６１の後，反転が必要な両面印刷が設定されているか否かを判断する（Ｓ１６２）。反転が必要な両面印刷が設定されている場合には（Ｓ１６２：ＹＥＳ），処理対象ページが用紙の裏面に印刷されるページか否かを判断する（Ｓ１６３）。裏面に印刷されるページについては，反転画像の印刷データが生成される。そのため，プレビューデータを同じように反転画像にしてしまうと，ユーザは印刷結果を認識し難い。そこで，裏面に印刷されるページの場合には（Ｓ１６３：ＹＥＳ），Ｓ１６１でコピーしたＸフラグおよびＹフラグをＯＦＦに変更する（Ｓ１６４）。すなわち，各フラグの状態を元に戻す。一方，表面に印刷されるページについては，非反転画像の印刷データが生成される。そのため，Ｓ１６１でコピーしたＸフラグおよびＹフラグを変更しない。
【００６９】
Ｓ１６４の後，あるいは表面に印刷されるページである場合（Ｓ１６３：ＮＯ），あるいは反転が必要な両面印刷が設定されていない場合には（Ｓ１６２：ＮＯ），Ｓ１６１でコピーしたＸフラグおよびＹフラグに従って，Ｓ１６１でコピーしたＢＭＰデータからプレビューデータを生成する（Ｓ１６５，プレビューデータ生成処理の一例）。
【００７０】
Ｓ１６５の後，あるいは印刷プレビューを表示する設定がＯＦＦの場合（Ｓ１５１：ＮＯ），反転が必要な両面印刷が設定されているか否かを判断する（Ｓ１５２）。反転が必要な両面印刷が設定されている場合には（Ｓ１５２：ＹＥＳ），処理対象ページが用紙の裏面に印刷されるページか否かを判断する（Ｓ１７１）。
【００７１】
裏面に印刷されるページの画像データは，１８０度回転させる必要があるが，必ずしも回転処理の全てをＰＣ１で行う必要はない。すなわち，プリンタ２で回転処理の一部が可能であれば，プリンタ２での処理の方がＰＣ１での処理と比較して高速であるため，プリンタ２にその回転処理の一部を行わせる方が好ましい。
【００７２】
そこで，裏面に印刷されるページ，すなわち画像反転が必要なページであれば（Ｓ１７１：ＹＥＳ），印刷データの送信先のプリンタ（本形態ではプリンタ２）の，回転処理の実行能力を取得する（Ｓ１７２）。本形態では，画像の幅方向の回転処理の能力および画像の高さ方向の回転処理の能力を，それぞれ取得する。回転処理の実行能力は，送信先のプリンタに直接問い合わせてもよいし，プリンタドライバ４０が実行能力を機種ごとに記憶するデータベースを有し，そこから参照してもよい。
【００７３】
Ｓ１７２の後は，送信先のプリンタ（本形態ではプリンタ２）で実行可能な回転処理に対応するフラグをＯＦＦに変更する（Ｓ１７３）。すなわち，送信先のプリンタで実行可能な回転処理については，送信先のプリンタに実行させ，ＰＣ１での実行を回避する。なお，Ｓ１７３で変更されるフラグは，Ｓ１６１でコピーされたフラグではなく，オリジナルのフラグである。
【００７４】
Ｓ１７３の後，あるいは表面に印刷されるページである場合（Ｓ１７１：ＮＯ），あるいは反転が必要な両面印刷が設定されていない場合には（Ｓ１５２：ＮＯ），オリジナルのＸフラグおよびＹフラグに従って，オリジナルのＢＭＰデータから印刷データを生成する（Ｓ１５３，印刷データ生成処理の一例）。
【００７５】
これにより，例えば，プリンタ２に回転処理能力がなく，両面印刷設定として長辺綴じのポートレート印刷が設定されている場合には，印刷データが１８０度反転後の画像データに基づくものになる。また，例えば，プリンタ２に画像の幅方向の回転処理能力があって画像の高さ方向の回転処理能力がなく，両面印刷設定として長辺綴じのポートレート印刷が設定されている場合には，印刷データが画像の高さ方向のみ反転した画像データに基づくものになる。
【００７６】
Ｓ１５３の後は，生成された印刷データを，送信順序を記憶する送信リストに登録する（Ｓ１５４）。なお，Ｓ１５４の時点では，印刷データは送信されない。Ｓ１５４の後は，データ生成処理を終了する。
【００７７】
図９の説明に戻り，Ｓ１０４のデータ生成処理の完了後は，全ページ分の処理が完了したか否かを判断する（Ｓ１０５）。全ページ分の処理が完了していない場合には（Ｓ１０５：ＮＯ），Ｓ１０１に戻り，未処理のページについてＳ１０１以降の処理を繰り返す。
【００７８】
全ページ分の処理が完了している場合には（Ｓ１０５：ＹＥＳ），印刷プレビューを表示する設定がＯＮか否かを判断する（Ｓ１０６）。印刷プレビューを表示する設定がＯＮの場合には（Ｓ１０６：ＹＥＳ），プレビューア４２を起動し，Ｓ１０４にて生成されたプレビューデータをプレビュー画面４２０に表示させる（Ｓ１２１，表示処理の一例）。
【００７９】
Ｓ１２１の後は，ユーザからの印刷指示があったか否か，すなわちプレビュー画面４２０の印刷実行ボタン４２３が押下されたか否かを判断する（Ｓ１２２）。ユーザからの印刷指示を受けておらず，キャンセルボタン４２４の押下を受けた場合には（Ｓ１２２：ＮＯ），印刷処理を終了する。ユーザからの印刷指示があった場合には（Ｓ１２２：ＹＥＳ），プレビューア４２を終了し，印刷対象として選択されていない印刷データを送信リストから除外する（Ｓ１２３）。
【００８０】
Ｓ１２３の後は，プリンタドライバ４０が，送信リストに登録されている印刷データを，登録順に１ページずつプリンタ２に送信する（Ｓ１２４）。全ての印刷データの送信が完了した後は，印刷処理を終了する。なお，印刷指示を受ける前にキャンセル指示があった場合には，Ｓ１２３に移行することなく，印刷処理を終了する。
【００８１】
また，印刷プレビューを表示する設定がＯＦＦの場合には（Ｓ１０６：ＮＯ），プリンタドライバ４０が，送信リストに登録されている印刷データを，登録順に１ページずつＲＡＷスプールファイル５２に登録し，ＯＳ５０が，ＲＡＷスプールファイル５２に登録された印刷データをプリンタ２に送信する（Ｓ１０７）。全ての印刷データの送信が完了した後は，印刷処理を終了する。
【００８２】
本形態によれば，反転画像の印刷データを生成する場合，プレビューデータについては画像反転の必要有無を記憶するＸフラグおよびＹフラグの状態を再度変更して元に戻すことから，反転前の画像に基づいて生成される。例えば，図１１に示すように，反転が必要な両面印刷設定がなされた４ページ分の原稿（図１１の（Ａ））を有する印刷ジョブでは，印刷データ（図１１の（Ｂ））は，２ページ目と４ページ目とが反転画像になるが，プレビューデータ（図１１の（Ｃ））は，全ページが非反転画像になる。そのため，プレビュー画面４２０には反転前の画像が表示されるため，ユーザにとっては印刷結果を認識し易くなる。
【００８３】
［印刷処理（第２の形態）］
続いて，印刷処理の第２の形態について説明する。本形態では，送信先のプリンタの空きメモリ容量が不足している場合に，ページ順序を入れ替えて印刷データを送信する。この点，ページ順を変更しない第１の形態と異なる。なお，具体的に第２の形態の印刷処理では，Ｓ１０４のデータ生成処理が第１の形態と異なり，他の処理は第１の形態と同じである。そのため，データ生成処理について，図１２のフローチャートを参照しつつ説明する。また，第２の形態のデータ生成処理において，第１の形態と同じ処理については，同じ符号を付して説明を省略する。
【００８４】
第２の形態のデータ生成処理では，Ｓ１５３までの処理が第１の形態と同じである。そして，Ｓ１５３での印刷データの生成後，送信先のプリンタの空きメモリ容量が所定量以上有るか否かを判断する（Ｓ２５３）。例えば，送信先をプリンタ２とする場合，奇数ページと偶数ページとで印刷順が入れ替わるため，プリンタ２で印刷順を入れ替えようとすると，２ページ分の印刷データを確保できるメモリ容量が必要となる。そのため，２ページ分の印刷データを確保できるメモリ容量が所定量となる。送信先のプリンタの空きメモリ容量は，送信先のプリンタに直接問い合わせてもよいし，プリンタドライバ４０が機種ごとに確保可能なメモリ容量の最大値を記憶するデータベースを有し，そこから参照してもよい。送信先のプリンタの空きメモリ容量が所定量以上有る場合には（Ｓ２５３：ＹＥＳ），Ｓ１５４に移行し，第１の形態と同様の処理を実行する。
【００８５】
一方，送信先のプリンタの空きメモリ容量が所定量未満の場合には（Ｓ２５３：ＮＯ），プリンタ側で印刷順を入れ替えることができない。そのため，印刷順をＰＣ１側で入れ替える必要がある。そこで，処理対象ページが用紙の裏面に印刷されるページか否かを判断する（Ｓ２８１）。
【００８６】
処理対象ページが用紙の表面に印刷されるページ，すなわち後に印刷されるページの場合（Ｓ２８１：ＮＯ），表面に印刷される印刷データを送信リストに登録せず，印刷データをバッファに一時的に保存する（Ｓ２９１）。Ｓ２９１の後は，データ生成処理を終了する。
【００８７】
一方，処理対象ページが用紙の裏面に印刷されるページ，すなわち先に印刷されるページの場合（Ｓ２８１：ＹＥＳ），先ず，裏面に印刷される印刷データを送信リストに登録する（Ｓ２８２）。その後，Ｓ２９１にてバッファに保存された表面の印刷データを送信リストに登録する（Ｓ２８３）。これにより，先に生成された印刷データと後に生成された印刷データの送信順が入れ替わる。例えば４ページ分の印刷データであれば，１，２，３，４の順が，２，１，４，３に入れ替わる。Ｓ２８３の後は，データ生成処理を終了する。
【００８８】
このように，送信先のプリンタのメモリの空き容量が，印刷順の入れ替えに必要なページ分の印刷データを記憶できる所定量に満たない場合に，ＰＣ１が印刷データの送信順を入れ替えることで，印刷順を入れ替えることができる。そのため，そのような小容量のプリンタであっても両面印刷を実現できる。一方，プレビューでは，ページ順で表示する方が，印刷結果により近いプレビューを表示する上で好ましい。そのため，プレビューデータについては順序を入れ替えず，プレビューア４２での表示順は変更しない。
【００８９】
以上詳細に説明したように実施の形態のＰＣ１では，両面印刷を行う際，画像データの向きを変更するか否かを決定する。そして，画像データの向きを変更する場合には，画像の向きを変更した印刷データを生成する。さらに，画像の向きを変更して印刷データを生成する場合には，変更前の画像イメージに戻るように画像データの向き（実施の形態ではＸフラグおよびＹフラグの状態）を再度変更してプレビューデータを生成する。これにより，プレビュー表示される画像の向きが揃えられる。そのため，ユーザが印刷結果を認識し易くなる。
【００９０】
なお，本実施の形態は単なる例示にすぎず，本発明を何ら限定するものではない。したがって本発明は当然に，その要旨を逸脱しない範囲内で種々の改良，変形が可能である。例えば，印刷装置としてはプリンタに限るものではなく，コピー機，ＦＡＸ，あるいは印刷機能を有する複合機等であってもよい。また，情報処理装置としてはＰＣに限るものではなく，ワークステーション，スマートフォン，ＰＤＡ等であってもよい。
【００９１】
また，実施の形態では，プレビューア４２をプリンタドライバ４０に含めているが，プレビューデータを表示することに特化すれば，プレビューアはプリンタドライバ４０専用のモジュールである必要はなく，プレビューデータを読み出すことが可能なモジュールであればよい。例えば，プレビューデータのファイル形式がビットマップファイルであれば，ＯＳ５０が提供するビューアプログラムを起動し，そのビューアプログラムにプレビューデータを表示させてもよい。
【００９２】
また，実施の形態のプレビューア４２は，１ページ単位でプレビューデータを表示しているが，複数ページの一覧表示ができるように構成してもよい。また，プレビューデータの拡大表示あるいは縮小表示ができるように構成してもよい。
【００９３】
また，実施の形態では，ＲＡＷスプール形式で印刷を行っているが，これに限るものではない。例えば，ＥＭＦ（Enhanced Metafile）スプール形式で印刷を行ってもよい。
【００９４】
また，実施の形態では，プレビューデータをビットマップあるいはその圧縮ファイルとしているが，これに限るものではない。例えば，ＸＭＬファイルやＰＤＦファイルであってもよい。
【００９５】
また，実施の形態では，先に画像を反転させるか否かを判断し，その結果をＸフラグおよびＹフラグに記憶し，プレビューデータあるいは印刷データを生成する際にそれらのフラグの内容を反映させているが，これに限るものではない。すなわち，先にプレビューデータあるいは印刷データを生成し，後に画像を反転させるか否かを判断し，その判断結果に応じてプレビューデータあるいは印刷データの内容を反転させてもよい。
【００９６】
また，実施の形態では，送信先のプリンタの回転処理の実行能力を取得し，当該プリンタで実行可能な回転処理については，プリンタドライバ４０で実行していないが，送信先のプリンタの能力に関係なく，プリンタドライバ４０で全ての回転処理を完了させてもよい。この場合，Ｓ１５２およびＳ１７１〜Ｓ１７３の処理は不要となる。また，画像を反転させるか否かを記憶するフラグについても，画像の幅方向，画像の高さ方向に分ける必要はなく，１つのフラグで対応できる。
【００９７】
また，実施の形態に開示されている処理は，単一のＣＰＵ，複数のＣＰＵ，ＡＳＩＣなどのハードウェア，またはそれらの組み合わせで実行されてもよい。また，実施の形態に開示されている処理は，その処理を実行するためのプログラムを記録した記録媒体，または方法等の種々の態様で実現することができる。
【符号の説明】
【００９８】
１      パーソナルコンピュータ
２      プリンタ
４０    プリンタドライバ
４２    プレビューア
４５    印刷データファイル
４６    プレビューデータファイル
５０    ＯＳ
６１    アプリケーションプログラム
【図１】
2014063253.tif 000003
【図２】
2014063253.tif 000004
【図３】
2014063253.tif 000005
【図４】
2014063253.tif 000006
【図５】
2014063253.tif 000007
【図６】
2014063253.tif 000008
【図７】
2014063253.tif 000009
【図８】
2014063253.tif 000010
【図９】
2014063253.tif 000011
【図１０】
2014063253.tif 000012
【図１１】
2014063253.tif 000013
【図１２】
2014063253.tif 000014