説明

印刷制御装置、印刷制御方法、及びコンピュータプログラム

【課題】 面付け済みの印刷データの印刷を、プリンタドライバを使って適切に行えるようにする。
【解決手段】 アプリケーション201で面付け済みの印刷データの各物理ページにおける論理ページの配置の体裁である面付け済み体裁を設定する。また、文書データの出力に係る属性である印刷出力属性を設定する。そして、プリンタドライバ203は、面付け済み体裁と、印刷出力属性との少なくとも1つが予め設定されている条件を満足している場合に、面付け済みの印刷データを論理ページの単位で分割する。そして、プリンタドライバ203は、分割した論理ページを、面付け済み体裁に基づく順序で並び替える。システムスプーラ204は、並び替えた論理ページに基づいて、プリンタ150が認識可能な制御コマンドを生成し、プリンタ150に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷制御装置、印刷制御方法、及びコンピュータプログラムに関し、特に、アプリケーションプログラムで面付け済みの印刷データを印刷するために用いて好適なものである。
【背景技術】
【0002】
従来、プリンタを使って小冊子やカタログのような印刷物を簡易的に作成する場合、予め製本面付けを行った文書データを作成して、両面印刷する。そして、人の手によって印刷物の真ん中でステイプルして(サドルステッチを行った)印刷物を2つ折りにしていた。製本面付けとは、2つ折りにした状態で文書のページが正しい順序に見えるように面付けすることである。現在では、製品マニュアルやカタログを、PDF(Portable Document Format)データとして、メーカーのWebサイトからダウンロードすることが可能である。また、このようなデータとして、製本面付け済みのデータも見られる。一方、文書の印刷だけでなくステイプルまで可能な複合周辺機器が一般的になっている。また、印刷の後処理としてサドルステッチや2つ折りが可能な複合周辺機器も普及してきている。以前からプリンタドライバには、1ページにNページ分の画像を面付けするNup面付けの機能が備わっていたが、製本面付けをする機能も備わってきている。プリンタドライバの印刷設定で製本面付けの機能を設定して印刷することにより、製本面付けされていない文書データでも、プリンタドライバによって製本面付けした印刷をすることが可能である。更に、複合周辺機器の機能を使うことによって簡易に文書を製本することができる。
【0003】
しかし、Nup面付け済みの文書データや製本面付け済みの文書データを、プリンタドライバを使って印刷する場合、プリンタドライバは面付け済みの物理的なページしか認識していない。このため、論理的なページでの印刷やプレビューができないという問題があった。また、プリンタドライバの種々の機能を使うことができなかったり、望ましい形で印刷できなかったりする場合があった。例えば、ページ番号を付加する機能を使うと、論理ページではなく、物理ページにページ番号が付加される。特に、製本面付け済みの文書データにページ番号を付加すると、ページ番号が意味のない数字になったり、描画位置がページ番号の折り目の上になったりして、役に立たない。
そこで、特許文献1には、紙をスキャンしたイメージデータから、面付け体裁に従って論理ページの画像を取得して、論理ページ順にバインドした書類ファイルを生成する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−13799号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1に記載の技術では、入力データの面付け体裁を指定すると常に論理ページ単位で入力データを分割してしまうという問題があった。プリンタドライバ自身にも製本面付けやNup面付けの機能があり、出力の印刷設定によっては、入力データを論理ページ単位で分割せずにそのまま使うことが可能である。そのまま使える場合に論理ページ単位で印刷データを分割すると、処理速度が遅くなるだけでなく、出力データのサイズが大きくなる。
本発明は、このような問題点に鑑みてなされたものであり、面付け済みの印刷データの印刷を、プリンタドライバを使って適切に行えるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本発明の印刷制御装置は、アプリケーションプログラムで面付け済みの印刷データを、プリンタドライバを用いて処理する印刷制御装置であって、前記面付け済みの印刷データの各物理ページにおける論理ページの配置を示す面付け済み体裁と、前記面付け済みの印刷データの出力に係る属性である印刷出力属性との少なくとも何れかが、予め設定されている分割条件を満足するか否かを判定する判定手段と、前記判定手段により、前記面付け済み体裁と前記印刷出力属性との少なくとも何れかが、前記分割条件を満足すると判定された場合に、前記面付け済みの印刷データを、論理ページの単位で分割する分割手段と、前記分割手段により分割された論理ページを、前記面付け済み体裁に基づく順序で並び替える並び替え手段と、を有し、前記判定手段により、前記面付け済み体裁と前記印刷出力属性との少なくとも何れかが、前記分割条件を満足しないと判定された場合には、前記面付け済みの印刷データを、論理ページの単位で分割しないようにすることを特徴とする。
【発明の効果】
【0007】
本発明によれば、面付け済み体裁と印刷出力属性との少なくとも何れかが分割条件を満足する場合に、面付け済みの印刷データを論理ページの単位で分割し、分割した論理ページを、面付け済み体裁に基づく順序で並び替えるようにした。したがって、面付け済みの印刷データを、必要に応じて、プリンタドライバによって論理ページの単位で分割し、並び替えることができる。よって、面付け済みの印刷データの印刷を、プリンタドライバを使って適切に行うことができる。
【図面の簡単な説明】
【0008】
【図1】印刷制御システムの構成を示す図である。
【図2】ホストコンピュータにおける印刷処理のための構成を示す図である。
【図3】プリンタドライバの機能的な構成を示す図である。
【図4】左とじの製本面付けの場合の論理ページの並べ替えを説明する図である。
【図5】4up面付けで右方向並べの場合の論理ページの並べ替えを説明する図である。
【図6】レイアウト関連の印刷設定画面を示す図である。
【図7】面付け済み体裁設定画面を示す図である。
【図8】基本印刷設定画面を示す図である。
【図9】製本設定画面を示す図である。
【図10】左とじ製本の場合の面付け方法を説明する図である。
【図11】4up面付けで右方向並べの場合の面付け方法を説明する図である。
【図12】プレビュー画面を示す図である。
【図13】面付け済み文書印刷処理を説明するフローチャートである。
【図14】ステップS1305の詳細を説明するフローチャートである。
【図15】XPSデータの加工処理を概念的に説明する図である。
【図16】製本面付けを行う場合の、論理ページが配置される領域を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本発明の一実施形態を説明する。
まず、実施形態を適用可能な画像形成システムについて説明する。
図1は、印刷制御を行う情報処理装置と画像形成装置とが相互に通信可能な印刷制御システムの構成の一例を示す図である。本実施形態では、オペレーティングシステム(以下OSと称する)として、マイクロソフト社のWindows(登録商標)のXPS(XML Paper Specification)プリンティングシステムを用いた場合を例に挙げて説明する。
尚、特に断らない限り、本発明の機能が実行されるのであれば、機器の構成に係わらず本発明を適用できることは言うまでもない。画像形成システムは、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであってもよい。
【0010】
図1において、ホストコンピュータ100は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備える。
更に、システムバス4に接続される各デバイスをCPU1が総括的に制御する。また、ROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるOS等を記憶する。本実施形態では、前述の通り、OSが、マイクロソフト社のWindows(登録商標)である場合を例に挙げて説明する。
【0011】
ROM3のフォント用ROMあるいは外部メモリ11には、文書処理の際に使用するフォントデータ等が記憶される。ROM3のデータ用ROMあるいは外部メモリ11には、文書処理等を行う際に使用する各種データが記憶される。
RAM2は、CPU1の主メモリや、ワークエリア等として機能する。キーボードI/F5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。
ディスプレイI/F6は、ディスプレイ10の表示を制御する。外部メモリI/F7は、ハードディスク(HD)、フレキシブルディスク(FD)等の外部メモリ11とのアクセスを制御する。外部メモリ11には、ブートプログラム、各種アプリケーションプログラム(以下アプリケーションと称する)、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等が記憶される。
【0012】
プリンタI/F8は、所定の双方向性のインターフェース22を介してプリンタ150に接続するためのものであり、プリンタ150との通信制御処理を実行する。
尚、CPU1は、例えば、RAM2に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、ディスプレイ10上でのWYSIWYGを可能としている。
また、CPU1は、ディスプレイ10に表示される不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは、アプリケーションで作成した情報を印刷する際、当該情報に対する設定を行うためのユーザインタフェースをディスプレイ10上で開くための操作を行う。そして、ユーザは、プリンタ150の設定や、印刷モードの選択等を行う。この際、ユーザは、プリンタドライバが提供するユーザインタフェースを介して、各種の印刷処理方法の設定を行うことができる。
【0013】
プリンタ150において、プリンタCPU(CPU)12は、ROM14のプログラム用ROMあるいは外部メモリ21に記憶された制御プログラム等に基づき、印刷部I/F17を介して印刷部(プリンタエンジン)19に出力情報としての画像信号を出力する。
ROM14のプログラムROMには、CPU12の制御プログラム等が記憶される。ROM14のフォント用ROMには、前記出力情報を生成する際に使用するフォントデータ等が記憶される。プリンタ150が、ハードディスク(HD)やフレキシブルディスク(FD)、ICカード等の外部メモリ21を備えていないプリンタである場合には、ホストコンピュータ100上で利用される情報等が、ROM14のデータ用ROMに記憶される。
【0014】
CPU12は、入力部16を介してホストコンピュータ100との双方向の通信処理が可能であり、プリンタ150内の情報等をホストコンピュータ100に通知することが可能である。ここで、プリンタ150内の情報には、印刷部(プリンタエンジン)19のステータスや、ネットワーク設定情報や、デバイス名や、リソース名等が含まれる。
RAM13は、CPU12の主メモリや、ワークエリア等として機能する。図示しない増設ポートに接続されるオプションRAMにより、メモリ容量を拡張することができるようにプリンタ150が構成されている。
尚、RAM13は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。外部メモリ21は、外部メモリI/F18によりアクセスが制御される。外部メモリ21は、オプションとして接続され、フォントデータ、エミュレーションプログラム等を記憶する。
【0015】
図2は、図1に示したホストコンピュータ100における印刷処理のための構成の一例を示す図である。アプリケーション201、グラフィックエンジン202、プリンタドライバ203、及びシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在する。これらは、OSやそのモジュールを利用するモジュールによってRAM2にロードされて実行されるプログラムモジュールである。
また、アプリケーション201及びプリンタドライバ203は、外部メモリ11や不図示のCD−ROM等の可搬型の記憶媒体、あるいは不図示のネットワークを経由してホストコンピュータ100と相互に接続されているHD等の記憶媒体に保存することができる。そして、外部メモリ11に保存されているアプリケーション201はRAM2にロードされて実行される。このアプリケーション201からプリンタ150に対して印刷を行う際には、アプリケーション201と同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用する。
【0016】
グラフィックエンジン202は、プリンタ150等の印刷装置毎に用意されたプリンタドライバ203を外部メモリ11からRAM2にロードし、アプリケーション201の出力をプリンタドライバ203に設定する。また、グラフィックエンジン202は、アプリケーション201から、印刷設定もしくは印刷用データを受け取り、プリンタドライバ203へ印刷データとして出力する。プリンタドライバ203のグラフィックコンポーネント205は、グラフィックエンジン202から印刷データを受け取る。そして、グラフィックコンポーネント205は、受け取った印刷データを、プリンタ150が認識可能なプリンタ制御コマンド、例えばPDL(Page Description Language)に変換する。プリンタ制御コマンドは、OSによってRAM2にロードされたシステムスプーラ204を経てインターフェース22経由でプリンタ150へ印刷ジョブとして出力される仕組みとなっている。プリンタドライバ203のUIコンポーネント206は、グラフィックエンジン202から印刷設定を受け取り、当該印刷設定の表示、変更等を行い、グラフィックエンジン202を通してアプリケーション201に返却する。
【0017】
XPSプリンティングシステムでは、プリンタドライバ203は、XPSデータを印刷データとして受け取る。XPSデータは文書データとしての利用も可能なXMLベースのデータフォーマットである。文書構造は、"Fixed Document Sequence(以下、FDSと称する)"、"Fixed Document(以下、FDと称する)"、"Fixed Page(以下、FPと称する)"の3階層のツリー構造をとる。ここで、FDSは、ジョブを表し、FDは、ドキュメントを表し、FPは、ページを表す。FPは、更に、複数の描画オブジェクトから構成される。
【0018】
XPSデータでは、Path(図形)、Glyphs(文字)、Canvas(グループ)の3種類の描画オブジェクトがある。Canvasは、複数の描画オブジェクトを論理的に纏めたり、後述のResourceを参照したりするための親オブジェクトとして用いる。描画オブジェクトは、それぞれの描画の種類に応じた複数の属性を持っている。当該属性には、描画に影響する属性も、描画に影響しない属性も含まれており、必須ではない属性もある。Resourceへの参照も属性で実現している。イメージ、フォント、サムネイル等はResourceであり、1つのResourceを複数の描画オブジェクトから参照することが可能である。更に、複数の描画オブジェクトを纏めて1つのResource Dictionaryとして定義することができる。Fixed PageもしくはCanvasからResource Dictionaryを参照することにより、描画オブジェクトを共通化することが可能である。複数のResource Dictionaryを定義することが可能である。また、描画オブジェクト以外にも描画ブラシ等をResource Dictionaryに定義することが可能である。
【0019】
また、XPSデータは、Print Ticket(以下、PTと称する)という印刷設定を内部に持つことができる。GDIプリンティングシステムの印刷設定であるDEVMODEでは全ての属性を一度に設定し、必要に応じてジョブの途中でDEVMODE全体を切り替える。これに対し、PTでは、ジョブ/ドキュメント/ページの単位で一部の印刷設定のみの指定が可能である。
【0020】
図3は、本実施形態の画像形成システムにおけるプリンタドライバ203の機能的な構成の一例を示す図である。
ページ分割部301は、グラフィックエンジン202から印刷データであるXPSデータを受け取り、必要ならばXPSデータのページを論理ページ単位に分割して、論理ページ順に並び替える。以下、アプリケーション201で面付け済みのページを物理ページと称し、物理ページに面付けされているページを論理ページと称し、N番目のページをページN(Nは正の整数)と称する。
【0021】
図4は、面付け済み体裁が、左とじの製本面付けである場合の論理ページの並べ替えの一例を説明する図である。製本面付けの場合、2つの論理ページが面付けされた物理ページが偶数ページあり、それらの物理ページを両面印刷して2つ折りすると正しい順になるように、論理ページが物理ページに面付けされている。例えば、図4に示す、4物理ページの左とじ製本面付けの場合、最初の物理ページ(1p)の左の論理ページと右の論理ページは、それぞれ論理ページ8(最後の論理ページ)と論理ページ1(最初の論理ページ)である。ページ分割部301は、物理ページを半分に分割し、順序を図4の下段に示すように並び替える。
【0022】
図5は、面付け済み体裁が、4up面付けで右方向並べの場合の論理ページの並べ替えの一例を説明する図である。ページ分割部301は、物理ページを4分割し、論理ページを図5の下段に示すように並び替える。ページ分割部301が物理ページを論理ページ単位に分割したり論理ページ順を認識したりするために、UIコンポーネント206は、印刷データがどのように面付けされているかを、面付け済み体裁として設定する。面付け済み体裁の設定は、面付け済み体裁306としてXPSデータに付随するPTに含まれる。
【0023】
図6は、プリンタドライバ203のレイアウト関連の印刷設定画面の一例を示す図である。この印刷設定画面600で面付け済み体裁のチェックボックス602をONにすると、詳細ボタン604が有効になる。詳細ボタン604を押すと面付け済み体裁設定画面が開く。
図7は、面付け済み体裁設定画面の一例を示す図である。ユーザは、面付けの体裁として製本面付けを指定するのであれば、面付け済み体裁設定画面700で、ラジオボタン701aを選択し、Nup面付けを指定するのであれば、ラジオボタン701bを選択する。更に、製本面付けを指定する場合、ユーザは、とじ方向のプルダウンメニュー702で、左とじなのか、右とじなのかを選択する。Nup面付けを指定する場合、ユーザは、1つの物理ページに面付けした論理ページの数と、論理ページの面付け順とを、ページレイアウト選択ペイン703で選択する。
【0024】
例えば、4upで右方向並べの場合、ユーザは、ページレイアウト選択ペイン703の左から2番目のアイコンを選択する。面付け済み体裁設定画面700で、OKボタン704がユーザによって押されると、ページ分割部301は、面付け済み体裁設定画面700に対して行われた設定を確定して面付け済み体裁設定画面700を閉じる。キャンセルボタン705がユーザによって押されると、ページ分割部301は、面付け済み体裁設定画面700に対して行われた設定を無効にして面付け済み体裁設定画面700を閉じる。
面付けなし(1in1)を指定する場合、ユーザは、印刷設定画面600の面付け済み体裁のチェックボックス602をOFFにする。印刷設定画面600でOKボタン609がユーザによって押されると、ページ分割部301は、印刷設定画面600に対して行われた設定を確定して印刷設定画面600を閉じる。キャンセルボタン610がユーザによって押されると、ページ分割部301は、印刷設定画面600に対して行われた設定を無効にして印刷設定画面600を閉じる。
【0025】
レイアウト部302は、印刷出力属性307に従ってXPSデータを加工して、論理ページを面付けしたり、ウォーターマークの描画を付加したりする。UIコンポーネント206は、印刷データをどのように加工するのかを印刷出力属性として設定する。印刷出力属性の設定は、印刷出力属性307としてXPSデータに付随するPTに含まれる。図6に示すレイアウト関連の印刷設定画面600でユーザが製本のチェックボックス601をONにすると、詳細ボタン603が有効になる。ユーザが詳細ボタン603を押すと製本設定画面が開く。
【0026】
図9は、製本設定画面の一例を示す図である。ユーザは、プリンタドライバ203で論理ページを面付けするならば、製本設定画面900のラジオボタン901aを選択し、デバイス(プリンタ150)で論理ページを面付けするならば、ラジオボタン901bを選択する。更に、ユーザは、とじ方向のプルダウンメニュー902でとじ方向を設定し、とじしろのプルダウンメニュー903でとじしろを設定する。また、ユーザが分冊製本のチェックボックス904をONにすると、分冊して製本することができる。印刷枚数が中綴じ上限枚数よりも多いと製本できないため、中綴じ上限枚数よりも少ない枚数の複数の冊子に分割し、それらを合わせることにより1つの冊子にすることができる。自動分冊のラジオボタン905aがONの場合には、プリンタ150の中綴じ上限枚数毎に製本がなされ、手動分冊の905bがONの場合には、枚数指定ペイン906でユーザによって指定した枚数毎に製本がなされる。
【0027】
図10は、印刷設定が、左とじ製本の場合の面付け方法の一例を説明する図である。印刷設定が左とじ製本を行う場合には、論理ページを製本面付けして、両面印刷と中綴じ2つ折りと、を行う。製本設定画面900でOKボタン907がユーザによって押されると、レイアウト部302は、製本設定画面900に対して行われた設定を確定して製本設定画面900を閉じる。キャンセルボタン908がユーザによって押されると、レイアウト部302は、製本設定画面900に対して行われた設定を無効にして製本設定画面900を閉じる。
【0028】
図8は、プリンタドライバ203の基本印刷設定画面の一例を示す図である。基本印刷設定画面800においてユーザが、ページ集約のチェックボックス801をONにすると、ページ集約の種類の選択ペイン802が有効になる。ユーザは、1つの物理ページに面付けする論理ページ数と論理ページの面付け順とを、ページ集約の種類の選択ペイン802で選択する。基本印刷設定画面800で、OKボタン804がユーザによって押されると、ページ分割部301は、基本印刷設定画面800に対して行われた設定を確定して基本印刷設定画面800を閉じる。キャンセルボタン805がユーザによって押されると、ページ分割部301は、基本印刷設定画面800に対して行われた設定を無効にして基本印刷設定画面800を閉じる。
【0029】
図11は、印刷設定が、4up面付けで右方向並べの場合の面付け方法の一例を説明する図である。4upにする場合には、4つの論理ページを縮小し、縮小した論理ページを1つの物理ページに順に並べる。また、ユーザは、レイアウト関連の印刷設定画面600で、スタンプのチェックボックス605をONにしてスタンプ名のプルダウンメニュー606でスタンプ名を選択することができる。また、ユーザは、ページ枠のチェックボックス607をONにしてページ枠の種類のプルダウンメニュー608でページ枠の種類を選択することができる。このようにしてスタンプ名やページ枠の種類が選択されると、スタンプやページ枠の描画を論理ページに付加することができる。
【0030】
レンダリング部303は、レイアウト部302が生成したXPSデータをプリンタ150が認識可能な制御コマンドに変換して、システムスプーラ204に送出する。
印刷出力属性307に印刷前にプレビューする設定がなされていると、ページ分割部301は、プレビュー部304を起動する。ユーザが、基本印刷設定画面800の印刷前プレビューのラジオボタン803をONにすると、印刷出力属性307で印刷前にプレビューする設定がなされる。プレビュー部304は、その内部にプレビュー用レイアウト部305を持ち、レイアウト部302と同様にXPSデータを加工してディスプレイ10に表示する。
【0031】
図12は、プレビュー画面の一例を示す図である。プレビュー画面1200のドキュメントリスト1201には、印刷前プレビューのラジオボタン803がONになっている場合に、印刷した文書の一覧が表示される。プレビューペイン1202には、ドキュメントリスト1201に表示された一覧の中からユーザによって選択された文書のプレビュー画像が表示される。更に、ユーザが、編集ペイン1203や編集メニュー1204を操作すると、プレビュー用レイアウト部305は、ドキュメントリスト1201で選択された文書のXPSデータの印刷出力属性307を変更することが可能である。また、ユーザが、ドキュメントリスト1201で複数の文書を選択して、編集ペイン1203や編集メニュー1204で結合コマンドを実行すると、プレビュー部304は、複数のXPSデータを1つのXPSデータに結合することが可能である。プレビュー部304が加工したXPSデータは、グラフィックエンジン202に再度投入されることにより、印刷することが可能である。
【0032】
図13は、プリンタドライバ203の面付け済み文書印刷処理の一例を説明するフローチャートである。
まず、ページ分割部301は、印刷データ(XPSデータ)を取得する(ステップS1301)。
次に、ページ分割部301は、XPSデータが内部に持つPTに含まれる面付け済み体裁306と印刷出力属性307とを取得する(ステップS1302、S1303)。
次に、ページ分割部301は、面付け済み体裁306と印刷出力属性307の値(内容)から、XPSデータを論理ページ単位で分割する必要があるか否かを判定する(ステップS1304)。XPSデータを論理ページ単位で分割する必要があるのは、例えば、次の(1)〜(4)の少なくとも1つに該当する場合である。
(1)印刷出力属性307に、印刷前にプレビューする設定がなされている場合。
(2)印刷出力属性307に、スタンプやページ枠の付加等のページ修飾の設定がなされている場合。
(3)面付け済み体裁306が、製本面付けであり、且つ、以下の(3−1)〜(3−6)の少なくとも何れか1つを満たす場合。
(3−1)印刷出力属性307に、製本印刷の設定がなされていない。
(3−2)面付け済み体裁306のとじ方向の設定が、印刷出力属性307の設定と異なる。
(3−3)印刷出力属性307に設定されている製本印刷がデバイス製本である。
(3−4)印刷出力属性307に設定されている製本印刷の詳細設定が分冊印刷である。
(3−5)印刷出力属性307に設定されている製本印刷のとじしろが0でない。
(3−6)印刷出力属性307に、ページ番号やページ枠の付加の設定がなされている。
(4)面付け済み体裁306が、2up以上のNup面付けであり、且つ、以下の(4−1)〜(4−3)の少なくとも何れか1つを満たす場合。
(4−1)印刷出力属性307に、2up以上のNup面付けが設定されていない。
(4−2)面付け済み体裁306が、2upであり、印刷出力属性307に設定されているNup面付けのNが奇数である。
(4−3)面付け済み体裁306が、4up以上であり、印刷出力属性307に設定されているがNup面付けのNが、面付け済み体裁306の値と同じではない。
【0033】
ステップS1304の判定の結果、XPSデータを論理ページ単位で分割する必要がある場合、ページ分割部301は、XPSデータの各ページを論理ページ単位で分割するページ分割処理(ステップS1305)を行う。次に、ページ分割部301は、分割された論理ページの順序を正しい順序に変更する論理ページ順序変更処理を行う(ステップS1306)。ステップS1305のページ分割処理と、ステップS1306の論理ページ順序変更処理については後で詳細に説明する。
一方、ステップS1304の判定の結果、XPSデータを論理ページ単位で分割する必要がない場合には、ステップS1305とS1306を省略し、ステップS1301で取得したXPSデータのページをそのまま論理ページとする。
【0034】
次に、ページ分割部301は、印刷出力属性307に、印刷前にプレビューする設定がなされているか否かを判定する(ステップS1307)。この判定及び結果、印刷前にプレビューする設定がなされていない場合、ページ分割部301は、XPSデータをレイアウト部302に渡す。一方、印刷前にプレビューする設定がなされている場合、ページ分割部301は、プレビュー部304を起動してXPSデータをプレビュー部304に渡す(ステップS1313)。
【0035】
ページ分割部301からXPSデータが渡されると、レイアウト部302は、印刷出力属性307に、Nup印刷もしくは製本印刷が設定されているか否か(面付けを行うか否か)を判定する(ステップS1308)。この判定の結果、印刷出力属性307に、Nup印刷もしくは製本印刷が設定されている場合、レイアウト部302は、XPSデータの論理ページを、Nup面付けもしくは製本面付けする(ステップS1309)。そして、後述するステップS1310に進む。
【0036】
一方、印刷出力属性307に、Nup印刷もしくは製本印刷が設定されておらず、印刷出力属性307に、通常の1up印刷が設定されている場合、ステップS1309を省略してステップS1310に進む。そして、レイアウト部302は、印刷出力属性307に、ページ番号やページ枠の設定がなされていれば、当該設定に対応する修飾描画データをXPSデータに付加する(ステップS1310)。レイアウト部302によるXPSデータの加工が終わったら、XPSデータをレンダリング部303に渡す。
レンダリング部303は、XPSデータをPDLデータに変換し(ステップS1311)、システムスプーラ204にスプールする(ステップS1312)。システムスプーラ204は、プリンタ150へPDLデータを送出する。
【0037】
図14は、図13のステップS1305のページ分割処理の詳細を説明するフローチャートである。また、図15は、ステップS1305のページ分割処理と、ステップS1306の論理ページ順序変更処理でのXPSデータの加工処理の一例を概念的に説明する図である。
図14において、まず、ページ分割部301は、XPSデータの1つの物理ページのデータを取得する(ステップS1401)。図15に示す例では、このステップS1401で取得される物理ページのデータがデータ1501である。
次に、ページ分割部301は、面付け済み体裁306から、1物理ページに含まれる論理ページの数N(Nは正の整数)を求める(ステップS1402)。次に、ページ分割部301は、各論理ページ1〜Nの物理ページに対する領域(各論理ページ1〜Nが配置される物理ページの領域)を求めてRAM2のワークエリアに格納する(ステップS1403)。面付け済み体裁306が製本面付けならば、1物理ページに含まれる論理ページの数Nは2となり、Nup面付けならば、1物理ページに含まれる論理ページの数Nは、ページレイアウト選択ペイン703で選択された論理ページの数となる。
【0038】
図16は、A4用紙に製本面付け(論理ページの数Nは2)を行う場合の、論理ページが配置される領域の一例を示す図である。論理ページ1の領域は、座標(0,0)−(148.5,210)で定められる長方形の領域であり、論理ページ2の領域は、座標(148.5,0)−(297,210)で定められる長方形の領域である。
図14の説明に戻り、ページ分割部301は、各物理ページに対応する論理ページ1〜NをXPSデータに追加する(ステップS1404)。この時点では、XPSデータに追加した論理ページの描画オブジェクトは空であり、この後、物理ページの各印刷命令を、当該物理ページに関係する論理ページにコピーして追加していく。
【0039】
次に、ページ分割部301は、物理ページの印刷命令を取得する(S1405)。XPSデータでは、印刷命令は描画オブジェクト(Path、Glyphs、Canvas)と、それ以外の要素(ResourceやPT等)と、に分けられる。そして、ページ分割部301は、論理ページを識別する変数i=1〜Nに対して、以下のステップS1406〜S1412の処理を行う。
まず、ページ分割部301は、論理ページを識別する変数iに「1」を設定する。
次に、ページ分割部301は、物理ページの印刷命令が描画オブジェクトであるか否かを判定する(ステップS1407)。この判定の結果、物理ページの印刷命令が描画オブジェクトであれば、ページ分割部301は、当該描画オブジェクトの描画領域が論理ページiの領域に少しでも入っているか否かを判定する(ステップS1408)。
【0040】
この判定の結果、描画オブジェクトの描画領域が論理ページiの領域に少しでも入っていれば、ページ分割部301は、当該描画オブジェクトを論理ページiにコピーする。このとき、ページ分割部301は、当該描画オブジェクトの各座標を論理ページiの原点からの相対座標にして、当該描画オブジェクトの座標を調整する(ステップS1409)。そして、ページ分割部301は、描画オブジェクトを論理ページiに追加する(ステップS1410)。例えば、図16において、論理ページ2に、座標(180,140)−(280,190)で定まる長方形が入る場合、この長方形の左上の座標を、論理ページ2の原点(左上点)の座標(148.5,0)分差し引いて(31.5,190)とする。
【0041】
一方、ステップS1407の判定の結果、物理ページの印刷命令が描画オブジェクト以外であれば、ステップS1408、S1409を省略してステップS1410に進み、ページ分割部301は、印刷命令を論理ページiにコピーして追加する。図15に示す例では、ステップS1404で、物理ページに論理ページ1〜Nが追加され、ステップS1410で、印刷命令が当該印刷命令に関連する論理ページに追加されたデータがデータ1502である。
【0042】
そして、ページ分割部301は、論理ページを識別する変数iに「1」を加算する(ステップS1411)。次に、ページ分割部301は、論理ページを識別する変数iがNを超えたか(i>Nを満たすか)否かを判定する。この判定の結果、論理ページを識別する変数iがNを超えていない場合には、ステップS1407に戻り、論理ページを識別する変数iがNを超えるまで、ステップS1407〜S1412の処理を繰り返し行う。
論理ページを識別する変数iがNを超えると、ページ分割部301は、物理ページの描画命令に対する処理が終了したか否かを判定する(ステップS1413)。この判定の結果、物理ページの描画命令に対する処理が終了していない場合には、ステップS1405に戻り、物理ページの描画命令に対する処理が終了するまで、ステップS1405〜S1413の処理を繰り返し行う。
以上のステップS1405〜1413の処理によって、複数の論理ページの領域に跨って位置する描画オブジェクトはそれら複数の論理ページに追加されるが、描画抜けや重なりの間違いがなくなる。しかし、このようにすると、論理ページのページ領域外に描画オブジェクトが位置することになる。このため、ページ分割部301は、各論理ページ1〜Nにページ領域のクリップオブジェクトを追加する(ステップS1414)。XPSデータでは、ページ領域のサイズのClip属性を付けたPathを追加すればよい。これにより、論理ページにおいて、描画オブジェクトの一部分が配置されるページ領域に、当該描画オブジェクトの一部分が表示され、当該描画オブジェクトの残りの部分が表示されないようにすることができる。以上のようにして論理ページ1〜Nの作成が完了したら、ページ分割部301は、元となった物理ページを削除する(ステップS1415)。図15に示す例では、ステップS1415によって元の物理ページが削除されたデータがデータ1503である。これにより、XPSデータは、論理ページ1〜Nの単位で分割される。
次に、ページ分割部301は、全ての物理ページに対する処理が終了したか否かを判定する(ステップS1416)。この判定の結果、全ての物理ページに対する処理が終了していない場合には、ステップS1401に戻って次の物理ページに対する処理を実行し、全ての物理ページに対する処理が終了するまで、ステップS1401〜S1416の処理を繰り返し行う。
【0043】
図13のステップS1306の論理ページ順序変更処理では、ステップS1305によって分割された論理ページの論理的な順序を面付け済み体裁306から求める。例えば、物理ページの数N(Nは偶数)の製本面付けの場合、物理ページiの左の論理ページをi−1、右の論理ページをi−2とすると、左とじ製本面付け済みデータを論理ページ順にするには、以下の順に論理ページの順序を並び変えればよい。
1−2、2−1、・・・(N−1)−2、N−1、N−2、(N−1)−1、・・・、2−2、1−1
また、右とじ製本面付け済みデータを論理ページ順にするには、以下の順に論理ページを並び変えればよい。
1−1、2−2、・・・、(N−1)−1、N−2、N−1、(N−1)−2、・・・、2−1、1−2
図15に示す例では、ステップS1306で論理ページの順序が変更されたデータがデータ1504となる。
【0044】
以上のように本実施形態では、アプリケーション201で面付け済みの印刷データの各物理ページにおける論理ページの配置を示す面付け済み体裁を、チェックボックス602、ラジオボタン701の少なくとも1つをONしてユーザが設定する。また、印刷データの出力に係る属性である印刷出力属性を、チェックボックス601。605、607、801、803の少なくとも1つをONしてユーザが設定する。そして、プリンタドライバ203は、面付け済み体裁と、印刷出力属性との少なくとも1つが予め設定されている分割条件(前述した(1)〜(4)を参照)を満足している場合に、面付け済みの印刷データを論理ページの単位で分割する。このとき、条件に応じて、面付け済み体裁と印刷出力属性とを比較する。そして、プリンタドライバ203は、分割した論理ページを、面付け済み体裁に基づく順序で並び替える。システムスプーラ204は、並び替えた論理ページに基づいて、プリンタ150が認識可能な制御コマンドを生成し、プリンタ150に出力する。したがって、不必要に処理速度が遅くなったり、プリンタ150に出力するデータのサイズが大きくなったりすることなく、プリンタドライバ203の機能をフルに使って面付け済み文書を印刷することができる。
【0045】
また、本実施形態では、面付け済みの印刷データを論理ページの単位で分割するに際し、物理ページにある描画オブジェクトの描画領域が論理ページのページ領域に少しでも入っていると、当該物理データを当該論理ページに追加する。そして、当該ページ領域に対する当該描画オブジェクトのクリップ領域を当該論理ページに追加する。したがって、論理ページをまたがる描画オブジェクトがあっても、描画オブジェクトが欠落してしまうことを防止することができると共に、描画オブジェクトが他の論理ページ等にはみ出してしまうことを防止することができる。
【0046】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0047】
(その他の実施例)
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)が当該コンピュータプログラムを読み出して実行する。

【特許請求の範囲】
【請求項1】
アプリケーションプログラムで面付け済みの印刷データを、プリンタドライバを用いて処理する印刷制御装置であって、
前記面付け済みの印刷データの各物理ページにおける論理ページの配置を示す面付け済み体裁と、前記面付け済みの印刷データの出力に係る属性である印刷出力属性との少なくとも何れかが、予め設定されている分割条件を満足するか否かを判定する判定手段と、
前記判定手段により、前記面付け済み体裁と前記印刷出力属性との少なくとも何れかが、前記分割条件を満足すると判定された場合に、前記面付け済みの印刷データを、論理ページの単位で分割する分割手段と、
前記分割手段により分割された論理ページを、前記面付け済み体裁に基づく順序で並び替える並び替え手段と、を有し、
前記判定手段により、前記面付け済み体裁と前記印刷出力属性との少なくとも何れかが、前記分割条件を満足しないと判定された場合には、前記面付け済みの印刷データを、論理ページの単位で分割しないようにすることを特徴とする印刷制御装置。
【請求項2】
前記分割手段は、前記面付け済みの印刷データの物理ページにある描画オブジェクトの描画領域が論理ページのページ領域に入っていると、当該描画オブジェクトを当該論理ページに追加する手段と、
前記論理ページのページ領域のクリップ領域を当該論理ページに追加する手段と、を更に有することを特徴とする請求項1に記載の印刷制御装置。
【請求項3】
前記判定手段は、前記面付け済み体裁と、前記印刷出力属性とを比較した結果に基づいて、前記面付け済み体裁と前記印刷出力属性とが、前記分割条件を満足するか否かを判定することを特徴とする請求項1又は2に記載の印刷制御装置。
【請求項4】
前記印刷出力属性に基づいて、前記並び替え手段により並び替えられた論理ページを加工する加工手段を更に有することを特徴とする請求項1〜3の何れか1項に記載の印刷制御装置。
【請求項5】
アプリケーションプログラムで面付け済みの印刷データを、プリンタドライバを用いて処理する印刷制御方法であって、
前記面付け済みの印刷データの各物理ページにおける論理ページの配置を示す面付け済み体裁と、前記面付け済みの印刷データの出力に係る属性である印刷出力属性との少なくとも何れかが、予め設定されている分割条件を満足するか否かを判定する判定工程と、
前記判定工程により、前記面付け済み体裁と前記印刷出力属性との少なくとも何れかが、前記分割条件を満足すると判定された場合に、前記面付け済みの印刷データを、論理ページの単位で分割する分割工程と、
前記分割工程により分割された論理ページを、前記面付け済み体裁に基づく順序で並び替える並び替え工程と、を有し、
前記判定工程により、前記面付け済み体裁と前記印刷出力属性との少なくとも何れかが、前記分割条件を満足しないと判定された場合には、前記面付け済みの印刷データを、論理ページの単位で分割しないようにすることを特徴とする印刷制御方法。
【請求項6】
前記分割工程は、前記面付け済みの印刷データの物理ページにある描画オブジェクトの描画領域が論理ページのページ領域に入っていると、当該描画オブジェクトを当該論理ページに追加する工程と、
前記論理ページのページ領域のクリップ領域を当該論理ページに追加する工程と、を更に有することを特徴とする請求項5に記載の印刷制御方法。
【請求項7】
前記判定工程は、前記面付け済み体裁と、前記印刷出力属性とを比較した結果に基づいて、前記面付け済み体裁と前記印刷出力属性とが、前記分割条件を満足するか否かを判定することを特徴とする請求項5又は6に記載の印刷制御方法。
【請求項8】
前記印刷出力属性に基づいて、前記並び替え工程により並び替えられた論理ページを加工する加工工程を更に有することを特徴とする請求項5〜7の何れか1項に記載の印刷制御方法。
【請求項9】
請求項5〜8の何れか1項に記載の印刷制御方法の各工程をコンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2012−113356(P2012−113356A)
【公開日】平成24年6月14日(2012.6.14)
【国際特許分類】
【出願番号】特願2010−259409(P2010−259409)
【出願日】平成22年11月19日(2010.11.19)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】