(57)【要約】【課題】  絵や図などのオブジェクトを削除しても、ユーザにとって所望のレイアウトで印刷を実行させること。【解決手段】  記憶された描画コマンドをテキストと図・イメージに分類わけして、図・イメージとして分類された描画コマンドがあった場合、描画コマンドに含まれる座標値に基づき、印刷可能領域を領域分割する（Ｓ５０２）。そして、分割された前記領域ごとに、テキストとして分類された描画コマンドを取得し、当該取得した前記テキストとして分類された描画コマンドを描画コマンドに含まれる座標値に基づいて並び替えする（Ｓ５０４，Ｓ５０５）。そして、並び替えられた前記テキストとして分類された描画コマンドに含まれるテキストデータを取得し、前記テキストデータを結合する。そして、結合した前記テキストデータで描画コマンドを生成し、前記描画コマンドに基づいてプリンタ出力する（Ｓ５０６）ことを特徴とする。【選択図】図５
2008165440.tif 000002
【特許請求の範囲】
【請求項１】
印刷時に生成される描画コマンドを一時記憶する記憶手段と、
記憶した前記描画コマンドをテキストと図・イメージに分類わけする分類わけ手段と、
前記図・イメージとして分類された描画コマンドがあった場合、描画コマンドに含まれる座標値に基づき、印刷可能領域を領域分割する分割手段と、
分割された前記領域ごとに、テキストとして分類された描画コマンドを取得する描画コマンド取得手段と、
取得した前記テキストとして分類された描画コマンドを描画コマンドに含まれる座標値に基づいて並び替えする並び替え手段と、
並び替えた前記テキストとして分類された描画コマンドに含まれるテキストデータを取得するテキストデータ取得手段と、
取得した前記テキストデータを結合する結合手段と、
結合した前記テキストデータで描画コマンドを生成する生成手段と、
生成された前記描画コマンドに基づいてプリンタ出力する出力手段と、
を備えることを特徴とする印刷制御装置。
【請求項２】
前記テキストとして分類された描画コマンドに関するフォント及びフォントサイズを取得するフォント情報取得手段と、
取得した前記フォント及びフォントサイズに基づいて、前記結合するテキストデータのフォント及びフォントサイズを決定する決定手段と、
を備えることを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記分割手段は、前記図・イメージとして分類された描画コマンドに含まれる座標値のＹ座標により印刷可能領域を分割することを特徴とする請求項１または２に記載の印刷制御装置。
【請求項４】
前記分割手段は、前記Ｙ座標により分割された領域のうち、前記図・イメージとして分類された描画コマンドのある領域は当該描画領域のＸ座標にもとづいて分割することを特徴とする請求項３に記載の印刷制御装置。
【請求項５】
結合された前記テキストデータが１ページ内におさまるかを判断する判断手段とを備え、
前記結合手段は、前記判断手段で１ページ内におさまらない場合に１ページにおさまる範囲でテキストデータを結合することを特徴とする請求項１乃至４のいずれか１項に記載の印刷制御装置。
【請求項６】
前記生成手段は、改ページ制御可能なコマンドを生成することを特徴とし、
前記出力手段は、生成された前記描画コマンドの出力後に前記改ページ制御可能なコマンドを出力することを特徴とする請求項５に記載の印刷制御装置。
【請求項７】
印刷時に生成される描画コマンドを一時記憶する印刷制御装置における印刷制御方法であって、
記憶された前記描画コマンドをテキストと図・イメージに分類わけする分類わけステップと、
前記図・イメージとして分類された描画コマンドがあった場合、描画コマンドに含まれる座標値に基づき、印刷可能領域を領域分割する分割ステップと、
分割された前記領域ごとに、テキストとして分類された描画コマンドを取得し、当該取得した前記テキストとして分類された描画コマンドを描画コマンドに含まれる座標値に基づいて並び替えする並び替えステップと、
並び替えられた前記テキストとして分類された描画コマンドに含まれるテキストデータを取得し、前記テキストデータを結合する結合ステップと、
結合した前記テキストデータで描画コマンドを生成し、前記描画コマンドに基づいてプリンタ出力する出力ステップと、
を備えることを特徴とする印刷制御方法。
【請求項８】
請求項１乃至６のいずれかに記載された印刷制御装置としてコンピュータを機能させるための、請求項７に記載の印刷制御方法をコンピュータに実行させるためのプログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置および印刷制御方法およびプログラムに関し、特に印刷データのレイアウト変更を行う印刷制御装置および印刷制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、文書作成ソフトウエアで作成したデータやＷｅｂページを印刷する際に絵や図を削除し、文字を詰めるようにレイアウト変更することで低いランニングコストでの印刷出力を行うことが開示されている。（例えば、特許文献１）
【特許文献１】特開２００６−２６８３２０
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の絵や図を削除し、文字を詰めてレイアウト変更する方法では、例えば、絵や図などのオブジェクトの左右がテキストで挟まれているレイアウトの場合、単純に絵や図などのオブジェクトを削除してしまうと文章構成が崩れてしまい、ユーザにとって所望のレイアウトにならず印刷がされてしまう課題があった。
【０００４】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、絵や図などのオブジェクトを削除しても、ユーザにとって所望のレイアウトで印刷を実行させる仕組を提供することである。
【課題を解決するための手段】
【０００５】
本発明は、印刷時に生成される描画コマンドを一時記憶する記憶手段と、記憶した前記描画コマンドをテキストと図・イメージに分類わけする分類わけ手段と、前記図・イメージとして分類された描画コマンドがあった場合、描画コマンドに含まれる座標値に基づき、印刷可能領域を領域分割する分割手段と、分割された前記領域ごとに、テキストとして分類された描画コマンドを取得する描画コマンド取得手段と、取得した前記テキストとして分類された描画コマンドを描画コマンドに含まれる座標値に基づいて並び替えする並び替え手段と、並び替えた前記テキストとして分類された描画コマンドに含まれるテキストデータを取得するテキストデータ取得手段と、取得した前記テキストデータを結合する結合手段と、結合した前記テキストデータで描画コマンドを生成する生成手段と、生成された前記描画コマンドに基づいてプリンタ出力する出力手段とを有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、絵や図などのオブジェクトを削除しても、ユーザにとって所望のレイアウトで印刷を実行させることができる等の効果を奏する。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【０００８】
図１は、本発明の一実施形態を示す印刷システムの構成を示す図である。
【０００９】
印刷システムは、複数のホストコンピュータ３０００、プリンタ１５００、及びプリントサーバコンピュータ４０００を有し、これらはネットワーク３０１を介して互いに接続されている。
【００１０】
ネットワーク３０１に接続されたホストコンピュータ３０００の通信Ｉ／Ｆコントローラ１０８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００１１】
プリンタ１５００は、セントロニクスやＵＳＢ等のローカルインタフェース３０２を介してプリントサーバコンピュータ４０００と接続されて該プリントサーバ４０００を介してネットワーク３０１に接続される形態であってもよく、ネットワーク３０１に直接接続される形態であってもよい。ネットワーク３０１に直接接続されたプリンタ１５００の入力部１１８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００１２】
ホストコンピュータ３０００は、プリントサーバコンピュータ４０００を介してネットワーク３０１に接続されたプリンタ１５００に印刷ジョブを送信する場合、まず、プリントサブシステム２０４を介して、プリントサーバコンピュータ４０００へ印刷ジョブを送信する。プリントサーバコンピュータ４０００は、ホストコンピュータ３０００から送信されてきた印刷ジョブを、プリントサーバコンピュータ４０００上の不図示のプリントサブシステムを介して、プリンタ１５００に送信する。
【００１３】
また、ホストコンピュータ３０００は、ネットワーク３０１に直接接続されたプリンタ１５００に印刷ジョブを送信する場合、プリントサブシステム２０４を介して、プリンタ１５００に直接印刷ジョブを送信する。
【００１４】
図２は、図１に示した印刷システムのホストコンピュータ３０００、及びプリンタ１５００のハードウエア構成を示すブロック図である。
【００１５】
ホストコンピュータ３０００は、ＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、入力コントローラ（入力Ｃ）１０５と、ビデオコントローラ（ＶＣ）１０６と、メモリコントローラ（ＭＣ）１０７と、通信インターフェースコントローラ（通信Ｉ／ＦＣ）１０８と、キーボード（ＫＢ）１０９と、ＣＲＴディスプレイ（ＣＲＴ）１１０と、外部メモリ１１１とを備える。
【００１６】
ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、入力Ｃ１０５、ＶＣ１０６、ＭＣ１０７、及び通信Ｉ／ＦＣ１０８は、システムバス１０４を介して互いに接続されている。
【００１７】
ＲＯＭ１０３又は外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Basic Input／Output System）、オペレーティングシステムプログラム（以下、「ＯＳ」という。）、及び後述する各処理を実行するために必要な各種プログラム等が記憶されている。
【００１８】
本実施の形態で使用するＯＳは、例えば、マイクロソフト社製のウィンドウズＸＰ（登録商標）を想定するが、これに限られるものではない。
【００１９】
ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＡＭ１０２にロードして、プログラムを実行することで各種動作を実現する。
【００２０】
入力コントローラ（入力Ｃ）１０５は、キーボード（ＫＢ）１０９や不図示のマウス等のポインティングデバイスからの入力を制御する。
【００２１】
ビデオコントローラ（ＶＣ）１０６は、ＣＲＴディスプレイ（ＣＲＴ）１１０等の表示器への表示を制御する。尚、表示器はＣＲＴに限られるものではなく、液晶ディスプレイであっても構わない。
【００２２】
メモリコントローラ（ＭＣ）１０７は、外部メモリ１１１へのアクセスを制御する。
【００２３】
外部メモリ１１１は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、及び各種データ等を記憶し、ハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）、又はＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等から構成される。
【００２４】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）１０８は、ネットワークを介した外部機器との接続・通信を制御する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信や、データ転送経路１２１を介してプリンタ１５００との間でデータ送受信等が可能である。
【００２５】
ＣＰＵ１０１は、例えば、ＲＡＭ１０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ１１０に表示情報を表示する。また、ＣＰＵ１０１は、ＣＲＴ１１０にマウスカーソル等を表示することにより、ユーザによる指示を可能にする。
【００２６】
プリンタ１５００は、ＣＰＵ１１２と、ＲＡＭ１１９と、フォントＲＯＭ１１３ａと、プログラムＲＯＭ１１３ｂと、データＲＯＭ１１３ｃと、入力部１１８と、印刷部インターフェース（印刷部Ｉ／Ｆ）１１６と、印刷部１１７と、操作部１５０１と、メモリコントローラ（ＭＣ）１２０と、外部メモリ１１４とを備える。ＣＰＵ１１２、ＲＡＭ１１９、ＲＯＭ１１３、入力部１１８、印刷部Ｉ／Ｆ１１６、操作部１５０１と、ＭＣ１２０は、システムバス１１５を介して互いに接続されている。
【００２７】
プリンタＣＰＵ１１２は、プログラムＲＯＭ１１３ｂ又は外部メモリ１１４に記憶された制御プログラム等に基づいて、印刷部Ｉ／Ｆ１１６を介して印刷部（プリンタエンジン）１１７に出力情報としての画像信号を出力する。
【００２８】
プログラムＲＯＭ１１３ｂには、ＣＰＵ１１２の制御プログラム等が記憶される。フォントＲＯＭ１１３ａには、上記出力情報を生成する際に使用するフォントデータ等が記憶される。データＲＯＭ１１３ｃには、プリンタ１５００がハードディスク等の外部メモリ１１４を有していない場合には、ホストコンピュータ３０００上で利用される情報等が記憶される。
【００２９】
ＣＰＵ１１２は、入力部１１８を介してホストコンピュータ３０００との通信処理を行い、プリンタ１５００内の情報等をホストコンピュータ３０００に通知することができる。
【００３０】
ＲＡＭ１１９はＣＰＵ１１２の主メモリであり、ワークエリア等として機能する。また、ＲＡＭ１１９は、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。尚、ＲＡＭ１１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等にも用いられる。
【００３１】
メモリコントローラ（ＭＣ）１２０は、外部メモリ１１４へのアクセスを制御する。外部メモリ１１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶し、ハードディスク（ＨＤ）、ＩＣカード等で構成される。
【００３２】
操作部１５０１は、操作のためのスイッチ及びＬＥＤ表示器等が配されている操作パネルである。尚、プリンタ１５００が備える外部メモリ１１４は、１個に限られるものではなく、少なくとも１個以上であれば複数であってもよい。また、プリンタ１５００は、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されてもよい。更に、プリンタ１５００は、操作部１５０１により設定されたプリンタモード設定情報を記憶するＮＶＲＡＭを有していてもよい。
【００３３】
本実施の形態では、プリンタ１５００がサポートするページ記述言語（以下、「ＰＤＬ」という。）は、LBP Image Processing System（以下、「ＬＩＰＳ」という。）等の比較的に高度なＰＤＬであると想定しているが、これに限られるものではない。
【００３４】
本発明を実現するための印刷制御プログラム（以下、「プリンタドライバ」という。）は外部メモリ１１１に記録されており、必要に応じてＲＡＭ１０２にロードされることによりＣＰＵ１０１によって実行される。プリンタドライバが用いる定義ファイル及び各種情報テーブルは外部メモリ１１１に格納されている。尚、上記印刷システムの構成は一例であり、用途や目的に応じて様々な構成例があることは云うまでもない。例えば、本発明は、単体の機器に適用されてもよく、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等のネットワークを介して接続された複数の機器からなるシステムに適用されてもよい。
【００３５】
図３は、図１におけるホストコンピュータ３０００のソフトウエア構成を示すブロック図である。
【００３６】
図２において、ホストコンピュータ３０００は、アプリケーションプログラム（以下、「アプリケーション」という。）２０１と、グラフィックスエンジン２０２と、プリンタドライバ２０３と、プリントサブシステム２０４とを備え、これらは、それぞれ外部メモリ１１１にファイルとして保存されたプログラムモジュールである。これらのモジュールは、ＯＳやそのモジュールを利用するモジュールによってＲＡＭ１０２にロードされて実行される。
【００３７】
アプリケーション２０１及びプリンタドライバ２０３は、ＦＤ、不図示のＣＤ−ＲＯＭ等の外部メモリ１１１から、又はネットワーク３０１（図１）を介して接続された外部機器から、ハードディスク（ＨＤ）等の外部メモリ１１１に追加される。
【００３８】
外部メモリ１１１に保存されているアプリケーション２０１は、ＣＰＵ１０１によってＲＡＭ１０２にロードされて実行される。このアプリケーション２０１からプリンタ１５００に対して印刷を行わせる際には、同様にＣＰＵ１０１によってＲＡＭ１０２にロードされて実行されるグラフィックスエンジン２０２を利用して出力（描画）を行う。
【００３９】
グラフィックスエンジン２０２は、印刷装置毎に用意されたプリンタドライバ２０３を起動する。これにより、プリンタドライバ２０３は、ＣＰＵ１０１によって外部メモリ１１１からＲＡＭ１０２にロードさせて実行される。
【００４０】
グラフィックスエンジン２０２は、このプリンタドライバ２０３を用いて、アプリケーション２０１から出力された印字命令や描画命令をＰＤＬによるプリンタ制御命令に変換する。
【００４１】
プリンタドライバ２０３により変換されたプリンタ制御コマンドは、プリントサブシステム２０４を経由して、データ転送経路１２１を介してプリンタ１５００に出力される。
【００４２】
プリントサブシステム２０４は、ＯＳによって起動されて、ＣＰＵ１０１によって外部メモリ１１１からＲＡＭ１０２にロードされて実行されるものであり、印刷ジョブのスケジューリング、ホストコンピュータ３０００とプリンタ１５００との接続制御、及びプリンタ１５００のステータスの管理を行う。
【００４３】
尚、プリンタドライバ２０３は、前述した、アプリケーション２０１から出力された印字命令や描画命令をプリンタ制御命令に変換し、プリント出力に反映されるようプリンタに指示する機能に加えて、プリンタドライバ２０３やプリンタ１５００が有する機能を制御するための設定を行う機能（以下、「ユーザインタフェース（ＵＩ）」という。）、その設定を記憶する機能、プリンタドライバ２０３やプリンタ１５００が有する機能の情報をアプリケーション２０１やＯＳに提供する機能、ＵＩで設定された機能がプリンタ１５００の有する機能である場合にプリンタ制御命令を生成する機能、及び、ＵＩで設定された機能がプリンタドライバ２０３独自で行う機能である場合にその機能を実現する機能等を有する。
【００４４】
図４は、図１のホストコンピュータ３０００によって実行される印刷制御処理の基本的な流れを示す図である。
【００４５】
図４において、アプリケーション２０１は、直接プリンタドライバ２０３と情報の送受信を行うのではなく、ＯＳが有するグラフィックスエンジン２０２を介してプリンタドライバ２０３と情報の送受信を行う。
【００４６】
グラフィックスエンジン２０２は、アプリケーション２０１から指示を受け、プリンタドライバ２０３に対して指示を行う。
【００４７】
まず、アプリケーション２０１は、片面／両面印刷設定や部数設定等の印刷設定情報をＲＡＭ１０２に確保されたメモリを介してグラフィックスエンジン２０２に通知し、プリンタドライバ２０３は、グラフィックスエンジン２０２より、その印刷設定情報と、その印刷設定情報に基づいてプリンタドライバ２０３が印刷処理を行う上で必要な情報（プリンタドライバ情報）を格納するためにＲＡＭ１０２上に確保されたメモリ領域の初期化要求とを受信する（ステップＳ４０１）。これにより、プリンタドライバ２０３は、プリンタドライバ情報を保持するメモリ領域を確保し、印刷設定情報に従ってそのメモリ領域を初期化する。
【００４８】
プリンタドライバ２０３は、プリンタドライバ２０３が参照するプリンタドライバ情報を保持するメモリ領域の初期化要求の受信により必要な処理を完了すると、ステップＳ４０１で受信した印刷設定情報に応じたプリンタドライバ２０３の印刷能力情報をグラフィックスエンジン２０２に通知する。
【００４９】
アプリケーション２０１は、グラフィックスエンジン２０２より、最終的にプリンタ１５００に送信される印刷ジョブとその印刷ジョブに反映させる印刷設定情報とを関連付けるために必要なハンドル値を取得する（ステップＳ４０２）。
【００５０】
次に、アプリケーション２０１が、印刷の開始要求をグラフィックスエンジン２０２に行うと、プリンタドライバ２０３は、グラフィックスエンジン２０２より印刷開始要求を受信する（ステップＳ４０３）。
【００５１】
これにより、プリンタドライバ２０３は、プリンタ１５００が印刷を開始するために必要なＰＤＬによるプリンタ制御命令を生成する。尚、プリンタ制御命令を生成する処理は、最初のページ（１ページ目）の印刷処理が開始された時点、即ち、アプリケーションからの最初のページの描画指示を受信した時点で行ってもよい。
【００５２】
アプリケーション２０１は、文字やイメージ等の描画オブジェクトの描画を実現するための描画指示をグラフィックスエンジン２０２に対して行うと、プリンタドライバ２０３は、その描画指示をグラフィックスエンジン２０２より受信する（ステップＳ４０４）。
【００５３】
これにより、プリンタドライバ２０３は、指定された描画オブジェクトや改ページ、更には印刷設定情報を途中で変更するための要求等を含む描画指示を反映したプリンタ制御命令を適宜生成し、生成したプリンタ制御命令をプリンタ１５００に出力する。尚、印刷するページ数はアプリケーション２０１からの指定に因る。
【００５４】
次に、アプリケーション２０１が、印刷終了要求をグラフィックスエンジン２０２に行うと、プリンタドライバ２０３は、グラフィックスエンジン２０２より印刷終了要求を受信する（ステップＳ４０５）。これにより、プリンタドライバ２０３は、プリンタ１５００が印刷終了に必要なプリンタ制御命令を生成し、プリンタ制御命令の生成処理を終了する。
【００５５】
次に、アプリケーション２０１は、ステップＳ４０２で取得したハンドル値の破棄要求をグラフィックスエンジン２０２に通知し、プリンタドライバ２０３は、グラフィックスエンジン２０２より、メモリ領域格納されたプリンタドライバ情報の破棄要求を受信する。これにより、プリンタドライバ２０３は、上記プリンタドライバ情報の破棄処理を行う（ステップＳ４０６）。
【００５６】
上記ステップＳ４０３〜Ｓ４０５の処理により、プリンタ１５００に送信される１つの印刷ジョブが生成される。
【００５７】
尚、本発明は、プリンタドライバ２０３が印刷開始要求を受け付けた際の処理で実行される。
【００５８】
以下、図５〜図７を参照して、本発明の処理について説明する。
【００５９】
図５は、本発明における処理手順の一例を示すフローチャートであり、本フローチャートはプリンタドライバ内のプログラムで実行される。尚、ＣＰＵ１０１が外部メモリ１１１に格納されるプリンタドライバプログラムをＲＡＭ１０２に読み出して実行することにより実現される。
【００６０】
以下、図５のフローチャートの説明を開始する。尚、本実施形態では横書きの文書を印刷した際の処理で説明するが、縦書きの文書でも適用可能である。この場合、後述するエリア情報（図１０）のＸ座標とＹ座標を逆にし、改行ポイントをＹ座標とするように構成する。
【００６１】
まず、ステップＳ５０１では、プリンタドライバがグラフィックエンジン２０２から受け取った描画命令をプリンタドライバで管理される記憶領域にスプールする。
【００６２】
尚、本処理を実行する前に、テキストのみ印刷をするか否かを決定するための設定をプリンタドライバで実施する。より詳細にはプリンタドライバのプロパティから図８の画面を表示し、設定するものとする。
【００６３】
また、本処理が実行される前に、例えば図９の９０１のような文書が文書作成アプリケーションで作成されており、この文書に対して印刷実行がなされている。この文書作成アプリケーションは図３の２０１に該当し、印刷処理は上述の図３および図４の説明で明らかであろう。
【００６４】
ステップＳ５０２では、記憶領域から描画命令を抽出する。抽出方法としては、描画命令のコマンドの種類（例えば、TextOutやBitBlt等）を予め登録しておき、それぞれのコマンドを分類わけしておく。分類わけとしてはテキストデータ、絵・図データ、その他の３種類とする。この分類ごとにスプールしたコマンドをリスト化して保持する。リストで保持する場合、描画する情報（テキストであれば文字データ・フォント・フォントサイズ、絵や図であれば、絵や図のデータ）と描画の開始座標をコマンドごとに記憶している。（以下、テキストデータ群のコマンドをテキストコマンド、図・絵データ群のコマンドを図・絵コマンドとする。）
【００６５】
ステップＳ５０３では、図８のプリンタドライバのユーザインタフェースで設定された情報を取得し、２段組モードでの印刷をするか否かを判断する。２段組モードで印刷する際にはＳ５０４へ、２段組モードで印刷しない場合はＳ５０５へ処理が移る。尚、２段組モードとは、図９の９０１のようなデータがあった場合、文章構成が「Ａ〜Ａ」→「Ｂ〜Ｂ」→「Ｃ〜Ｃ」→「Ｄ〜Ｄ」→「Ｅ〜Ｅ」→「Ｆ〜Ｆ」→「Ｇ〜Ｇ」となるような文章で、特に「Ｂ〜Ｂ」→「Ｃ〜Ｃ」→「Ｄ〜Ｄ」→「Ｅ〜Ｅ」→「Ｆ〜Ｆ」の構成をいう。より詳細には図等でテキスト（文章）エリアが分割され、この分割された一方のエリア内でテキスト（文章）が連続で入力される、またこのエリアを超えた場合に他方のエリアにテキストが入力され、全体として意味を成す一連の文章とすることのできる構成（レイアウト）である。
本実施の形態では２段組のみを説明するが３段組などの段組であっても良い。３段組とは図等が２つある状態を意味する。
【００６６】
ステップＳ５０４では、２段組モードでのコマンドのソートを行う。２段組モードでのコマンドのソートについては図６において後述する。
【００６７】
尚、本ステップが実行される場合は図８において１３０２、１３０４、１３０５が選択された場合である。
【００６８】
ステップＳ５０５では、テキストデータとしてグループ化したテキストコマンドの座標値（左上の座標値、ＬｅｆｔとＴｏｐ）に基づいてソートを行う。具体的には座標値が小さい順にソートする。
【００６９】
ステップＳ５０６では、ソートしたテキストコマンドの出力（印刷指示）を行う。
【００７０】
次に、図６を用いて、図５のステップＳ５０４の処理を説明する。
【００７１】
ステップＳ６０１では、Ｓ５０２で分類した図・絵データの図・絵コマンドを検索する。
【００７２】
ステップＳ６０２では、Ｓ６０１で検索した結果、図・絵コマンドがあるか否かを判断し、図・絵データがあればＳ６０３に処理が移り、図・絵コマンドがなければＳ５０２へ処理が移る。
【００７３】
ステップＳ６０３では、検索された図・絵コマンドの座標値を取得し、この座標値に基づきエリアを定義する。この定義は図１０のエリア情報として保持する。
【００７４】
より詳細には、まず初めに、図・絵コマンドがあった場合に、この図・絵コマンドの座標値より上のエリア情報を定義する。この定義した情報が図１０の１００１となる。次に取得した図・絵コマンドの座標値（Ｌｅｆｔ，Ｔｏｐ，ｒｉｇｈｔ，ｂｏｔｔｏｍ）からエリア情報を定義する。この定義した情報が図１０の１００２となる。さらに再度図・絵コマンドを取得できれば同じ処理を繰り返し、図・絵コマンドが取得できなければ、前に定義したエリアの座標値と座標値の最大値に基づいてエリア情報を定義する。この定義した情報が図１０の１００３となる。尚、本実施の形態ではＹ座標の最大値を６７７４としている。このエリア情報の最大値は印刷時にプリンタドライバで算出される印刷可能領域から算出された座標値であるものとする。
【００７５】
ステップＳ６０４では、Ｓ６０３で定義したエリア情報の改行（分割）ポイント（テキストグループエリアのＸ座標最大値）を設定する。この改行ポイントは後述するテキストグループエリアを決定する際に使用される値で、図・絵コマンドの座標値（Ｌｅｆｔ，Ｔｏｐ，ｒｉｇｈｔ，ｂｏｔｔｏｍ）から定義したエリア情報（図１０の１００２）については、Ｘ座標の最大値（本実施の形態では、４７２０）と図・絵コマンドのＸ座標の中間座標（本実施の形態では、２０００）とする。
尚、中間座標でなく図・絵コマンドの一番左のＸ座標（Ｌｅｆｔ）又は一番右のＸ座標（ｒｉｇｈｔ）と座標値としても良い。また、図・絵コマンドがないエリアの改行ポイントはＸ座標の最大値（本実施の形態では、４７２０）となる。図が１つの場合には改行ポイントは２つとなり、後述するＳ６０５で領域が２つに分割される。つまり、図が２つになれば改行ポイントは３つになり、領域が３つに分割される。つまり、図の数によって分割される領域の個数が決まる。
【００７６】
尚、図１０のエリア情報のイメージは図９の９０２となる。
【００７７】
ステップＳ６０５では、Ｓ６０３及びＳ６０４で定義したエリア情報からテキストグループ領域リストを生成する。図１０から図１１の情報が生成される。尚、本実施の形態では、ＸＹ座標の最小値を０としているため、図１０のエリア情報の最小値が１であっても、テキストグループ領域の最小値は０としている。図１１のテキストグループ領域リストのイメージは図９の９０３となる。
【００７８】
ステップＳ６０６では、テキストグループ領域リストからテキストグループ領域の座標値を取得する。
【００７９】
ステップＳ６０７では、Ｓ６０６で取得した座標値に基づき、この座標値内のテキストコマンドをすべて取得する。
【００８０】
ステップＳ６０８では、Ｓ６０７で取得したすべてのテキストコマンドの描画座標値に基づいてソートし、記憶する。ソート順としては、座標値の小さい順とする。尚、ソートされたテキストコマンドは、文書構成順、本実施の形態では、図９の９０３のテキストグループ領域１・２・３・４順に並べられている。
【００８１】
ステップＳ６０９では、すべてのテキストグループ領域について、テキストコマンドを取得し、ソートを行ったかを判断する。すべての領域に対して処理が行われた場合、終了とし、他に処理する領域がある場合にはＳ６０６へ処理が移る。
【００８２】
次に、図７を用いて、図５のステップＳ５０６の処理を説明する。
【００８３】
ステップＳ７０１では、Ｓ５０４又はＳ５０５でソートされたテキストコマンドからフォント及びフォントサイズを取得する。
【００８４】
ステップＳ７０２では、Ｓ７０１で取得したフォント及びフォントサイズをそれぞれカウントし、頻度を算出する。
【００８５】
ステップＳ７０３では、算出された頻度に基づき、頻度が最大のフォント及びフォントサイズを取得する。尚、本実施形態では、頻度に基づいてフォント、フォントサイズを取得するようにしたが、図８等のプリンタドライバの画面でフォント、フォントサイズを指定させるように構成しても良い。
【００８６】
ステップＳ７０４では、ソートされたテキストコマンドのテキストデータを抽出し、このテキストデータを結合する。尚、結合はテキストコマンド一つずつ行う。尚、テキストコマンドが１つしかない場合には結合されず出力されるものとする。また、結合されたコマンドについては削除されるため残るテキストコマンドを取得し順次結合処理を行うように構成する。
【００８７】
ステップＳ７０５では、結合したテキストデータが１ページ内におさまるか否かを判断する。より詳細には、Ｓ７０３で決定したフォント・フォントサイズ、行間から印字領域を算出し、この算出された印字領域と印字可能領域を比較し判断する。尚、印字可能領域は、プリンタドライバが余白等から印刷の際に算出したものを使用する。
【００８８】
１ページ内に結合データがおさまらない場合には、直近で結合したテキストデータを削除し、このテキストデータでテキストコマンドを生成し、Ｓ７０３で決定したフォント・フォントサイズで出力することを定義したコマンドを送信するとともに、プリンタへこのテキストコマンドを出力する（ステップＳ７０６）。この場合次に出力されるコマンドが次ページから印刷されるように、次に生成されるコマンドを出力する際に改ページを行う制御コマンドともに出力する。尚、出力されたテキストコマンドや制御コマンドは、ＰＤＬによるプリンタ制御命令に変換し、プリンタへ出力される。
【００８９】
尚、この改ページを行う制御コマンドは次のコマンドの前に出力すればよく、結合されたテキストデータで生成したテキストコマンドを出力した直後に生成し、出力するように構成しても良い。
【００９０】
１ページ内に結合テキストデータがおさまる場合には、更に結合を行うためＳ７０７、Ｓ７０４へ処理が移る。
【００９１】
ステップＳ７０７では、最後のテキストコマンドまで結合したかを判断し、最後のテキストコマンドのテキストデータまで結合した際には、結合されたテキストデータでテキストコマンドを生成し、プリンタへこのテキストコマンドを出力する（ステップＳ７０８）。最後まで結合が終了していない場合にはＳ７０４へ処理が移り、更に結合を行う。尚、出力されたテキストコマンドは、ＰＤＬによるプリンタ制御命令に変換し、プリンタへ出力される。
【００９２】
尚、上述した図５〜７のフローチャートを実行するプログラムはホストコンピュータ３０００の外部メモリ１１１内に記憶されるプリンタドライバ内で実行されるものであるが、これに限るものではない。
【００９３】
以上、説明したように、本実施形態によれば、図や絵などで文章が左右に分けて配置される文書で、図や絵などを印刷しないで極力余白を減らして印刷する場合、文章構成（文脈）を損ねることなく詰めて印刷をすることができる。
【００９４】
また、文書作成ソフトなどで作成されたデータを印刷する際に、テキストデータのみを抽出し、テキストデータを配置しなおす（印刷データのレイアウト変更）ので無駄な余白を省き、印刷を実行することが可能となる。
【００９５】
特に、文章だけを読みたい場合（図は必要としない場合）など、印刷を実行すると不要な図面まで印刷されてしまい、トナーやインクなどを多く消費してしまうが、本発明では図面を印刷せずテキストのみを印刷するのでこの無駄も解消することができる。また、テキストデータを詰め、レイアウト変更して印刷するので印刷ページ数も削減でき、印刷用紙の削減にもつながるといった効果がある。
【００９６】
以上、一実施形態について示したが、本発明は例えば、装置、方法、プログラム、もしくは記憶媒体等としての実施態様をとることが可能である。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施形態の印刷システムの構成を示す図である。
【図２】本発明の実施形態の印刷システムのホストコンピュータ、及びプリンタのハードウエア構成を示すブロック図である。
【図３】本発明の実施形態のホストコンピュータのソフトウエア構成を示すブロック図である。
【図４】本発明の実施形態のホストコンピュータによって実行される印刷制御処理の基本的な流れを示す図である。
【図５】メインの動作となるフローチャート図である。
【図６】図５に示したステップＳ５０４の詳細手順を示すフローチャートである。
【図７】図５に示したステップＳ５０６の詳細手順を示すフローチャーである。
【図８】２段組モードを実行する際のプリンタドライバ画面である。
【図９】本発明による段組文章を表したイメージ図である。
【図１０】本発明によるエリア情報のリストを表した表である。
【図１１】本発明によるテキストグループ領域リストを表した表である。
【符号の説明】
【００９８】
３０００  ホストコンピュータ
１５００  プリンタ
２０３  プリンタドライバ
１１１  外部メモリ
【図１】
2008165440.tif 000003
【図２】
2008165440.tif 000004
【図３】
2008165440.tif 000005
【図４】
2008165440.tif 000006
【図５】
2008165440.tif 000007
【図６】
2008165440.tif 000008
【図７】
2008165440.tif 000009
【図８】
2008165440.tif 000010
【図９】
2008165440.tif 000011
【図１０】
2008165440.tif 000012
【図１１】
2008165440.tif 000013