(57)【要約】【課題】  高品位にレイアウトされた印刷を行なうことのできるプリンタを提供する。【解決手段】  入力Ｉ／Ｆ１１を介して取得された印刷対象であるＸＭＬ文書データは、ＸＳＬ−ＦＯ変換部１２においてＸＳＬ−ＦＯ文書に変換される。そして、その解析結果に応じて、印刷モード入力部１７において、プリンタエンジン部２１の属性情報が取得され、レイアウト部１５において、その属性情報が用いられてレイアウトが決定される。【選択図】        図１
2005092426.tif 000002
【特許請求の範囲】
【請求項１】
印刷対象であるＸＭＬ（Extensible Markup Language）形式の文書データを取得する文書データ取得手段と、
プリンタエンジンの属性情報を取得する属性情報取得手段と、
前記属性情報に基づいて、前記文書データのレイアウトを決定するレイアウト決定手段と、
前記レイアウトに基づいて、前記文書データの内容を個別のページに割付け、レイアウトを行なうレイアウト手段と、
前記レイアウトされた文書データからプリンタジョブを生成するプリンタジョブ生成手段と、
前記プリンタジョブを前記プリンタエンジンで印刷させるよう制御するプリンタ制御手段とを備える、プリンタ。
【請求項２】
前記ＸＭＬ形式の文書データをＸＳＬ−ＦＯ（Extensible Stylesheet Language Formatting Objects）形式の文書データに変換するＸＳＬ−ＦＯ変換手段と、
前記ＸＳＬ−ＦＯ形式の文書データを解析するＸＳＬ−ＦＯ解析手段とをさらに備え、
前記レイアウト決定手段は、前記属性情報と、前記解析結果とに基づいて前記レイアウトを決定する、請求項１に記載のプリンタ。
【請求項３】
前記決定されたレイアウトに応じて、前記プリンタエンジンで用いられる固有のフォントのフォント情報を取得するプリンタ内蔵フォント取得手段をさらに備え、
前記レイアウト手段は、前記取得されたフォント情報を用いて前記文書データのレイアウトを行なう、請求項１に記載のプリンタ。
【請求項４】
前記属性情報取得手段は、印刷枚数の制限である属性情報を取得し、
前記プリンタジョブ生成手段は、前記印刷枚数の制限を満たすように前記生成したプリンタジョブを分割する、請求項１に記載のプリンタ。
【請求項５】
プリンタジョブを生成する処理をコンピュータに実行させるプログラムであって、
印刷対象であるＸＭＬ（Extensible Markup Language）形式の文書データを取得する文書データ取得ステップと、
プリンタエンジンの属性情報を取得する属性情報取得ステップと、
前記属性情報に基づいて、前記文書データのレイアウトを決定するレイアウト決定ステップと、
前記レイアウトに基づいて、前記文書データの内容を個別のページに割付け、レイアウトを行なうレイアウトステップと、
前記レイアウトされた文書データからプリンタジョブを生成するプリンタジョブ生成ステップとを実行させる、プリンタジョブ生成プログラム。
【請求項６】
前記ＸＭＬ形式の文書データをＸＳＬ−ＦＯ（Extensible Stylesheet Language Formatting Objects）形式の文書データに変換するＸＳＬ−ＦＯ変換ステップと、
前記ＸＳＬ−ＦＯ形式の文書データを解析するＸＳＬ−ＦＯ解析ステップとをさらに実行させ、
前記レイアウト決定ステップは、前記属性情報と、前記解析結果とに基づいて前記レイアウトを決定する、請求項５に記載のプリンタジョブ生成プログラム。
【請求項７】
前記決定されたレイアウトに応じて、前記プリンタエンジンで用いられる固有のフォントのフォント情報を取得するプリンタ内蔵フォント取得ステップをさらに実行させ、
前記レイアウトステップは、前記取得されたフォント情報を用いて前記文書データのレイアウトを行なう、請求項５に記載のプリンタジョブ生成プログラム。
【請求項８】
前記属性情報取得ステップは、印刷枚数の制限である属性情報を取得し、
前記プリンタジョブ生成ステップは、前記印刷枚数の制限を満たすように前記生成したプリンタジョブを分割する、請求項５に記載のプリンタジョブ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はプリンタおよびプリンタジョブ生成プログラムに関し、特に、高品位にレイアウトされた印刷を行なうことのできるプリンタおよびプリンタジョブ生成プログラムに関する。
【背景技術】
【０００２】
インターネットなどのネットワークの普及に伴い、共通のデータフォーマットとしてのＸＭＬ（Extensible Markup Language）の利用が拡大している。ＸＭＬは特定の表示媒体に依存しない汎用的なデータ形式であり、ＸＭＬ形式で表現されたデータは、各種の表示媒体での利用が可能であるという利点がある。
【０００３】
ＸＭＬ形式の文書（以下、ＸＭＬ文書と省略して記載する）を用紙などにプリントする方法としては、まず、フォントの種類や文字の大きさ、色、行間の幅、および修飾など、ＸＭＬ文書の見栄えに関する情報をまとめた、ＸＭＬ文書の雛形であるＸＳＬＴ（Extensible Stylesheet Transformations）などを用いて、ＸＭＬ文書をＸＳＬ−ＦＯ（Extensible Stylesheet Language Formatting Objects）形式のタグを含む形式のデータの文書（以下、ＸＳＬ−ＦＯ文書と省略して記載する）に変換する。その後、ＸＳＬ−ＦＯ文書を、ＸＳＬ−ＦＯ形式のデータからプリンタ向けのページ記述データに自動変換するＸＳＬ−ＦＯプロセッサに入力する。ＸＳＬ−ＦＯ文書は該プロセッサでプリンタ向けのページ記述データに自動変換されて、プリンタに転送され、該プリンタで印刷可能となる。
【０００４】
図７を用いて、ＸＳＬ−ＦＯプロセッサを利用してＸＭＬ文書を用紙にプリントする従来の処理の流れを説明する。
【０００５】
図７を参照して、始めに、ＸＳＬＴプロセッサ１００１は、上に説明された文書の雛形であるスタイルシートを参照して、入力されたＸＭＬ文書をＸＳＬ−ＦＯ文書に変換する。変換されたＸＳＬ−ＦＯ文書は、ＸＳＬ−ＦＯプロセッサ１００２において印刷用ページ記述データに変換されて、プリンタドライバ１００３に入力される。
【０００６】
プリンタドライバ１００３は、ＸＳＬ−ＦＯプロセッサ１００２から入力された印刷用ページ記述データをプリンタ１００４に固有のデータに変換し、プリンタ１００４に対して出力する。ここで、プリンタドライバ１００３に対して用紙サイズ、給紙段、両面印刷、ステープルなどの指定を行なうことで、プリンタ１００４の動作モードを変更することが可能である。
【０００７】
また、特許文献１には、ＸＭＬ形式のデータなどのＭＬ（Markup Language）ソースのファイルから、ディスプレイに表示するための表示データを生成し、該表示データからプリンタで印刷するためのプリントデータを生成することで、良好な印字結果を得ることができるデータ処理システムが開示されている。
【特許文献１】特開２０００−３３０９０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、図７に示されるＸＳＬ−ＦＯプロセッサを利用してＸＭＬ文書を用紙にプリントする従来の処理では、プリンタドライバ１００３、およびプリンタ１００４において動作モードを変更した場合、ページへのレイアウトが適切ではない場合があった。
【０００９】
たとえば、プリンタ１００４にレイアウト時に想定したサイズと同じサイズの用紙が装備されていない場合、不適切な余白が発生したり、画像が欠けたりする場合がある。
【００１０】
また、プリンタ１００４が独自の内蔵フォントを備え、その内蔵フォントを用いて印刷を行なった場合、内蔵フォントの該フォントが占めるスペースの大きさを定義した情報などのフォント情報であるメトリクスは、レイアウト時に想定されたフォントのメトリクスとは異なるために、改行や、文字間の余白などが不適切となる場合がある。
【００１１】
また、プリンタ１００４において縮小変倍処理を行なった場合、印刷された文字が非常に小さくなり、文字が読めなくなる場合があるという問題がある。
【００１２】
また、プリンタ１００４において拡大変倍処理を行なった場合、印刷された文字が不必要に大きくなる場合があるという問題もある。
【００１３】
また、特許文献１に開示されているデータ処理システムでは、ディスプレイで表示するための表示データを経由してプリントデータを生成するので、データ処理システムにおける処理はＸＭＬ文書の特徴であるデバイス非依存性を十分に生かせておらず、プリンタに適したレイアウトを行なう点で制限があるという問題があった。
【００１４】
本発明はこれらの問題に鑑みてなされたものであって、プリンタの能力や状態に適したレイアウト処理を行なって、見やすく、価値の高い印刷を行なうことのできるプリンタおよびプリンタジョブ生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明のある局面に従うと、プリンタは、印刷対象であるＸＭＬ（Extensible Markup Language）形式の文書データを取得する文書データ取得手段と、プリンタエンジンの属性情報を取得する属性情報取得手段と、属性情報に基づいて、文書データのレイアウトを決定するレイアウト決定手段と、レイアウトに基づいて、文書データの内容を個別のページに割付け、レイアウトを行なうレイアウト手段と、レイアウトされた文書データからプリンタジョブを生成するプリンタジョブ生成手段と、プリンタジョブをプリンタエンジンで印刷させるよう制御するプリンタ制御手段とを備える。
【００１６】
また、プリンタは、ＸＭＬ形式の文書データをＸＳＬ−ＦＯ（Extensible Stylesheet Language Formatting Objects）形式の文書データに変換するＸＳＬ−ＦＯ変換手段と、ＸＳＬ−ＦＯ形式の文書データを解析するＸＳＬ−ＦＯ解析手段とをさらに備え、レイアウト決定手段は、属性情報と、解析結果とに基づいてレイアウトを決定することが好ましい。
【００１７】
また、プリンタは、決定されたレイアウトに応じて、プリンタエンジンで用いられる固有のフォントのフォント情報を取得するプリンタ内蔵フォント取得手段をさらに備え、レイアウト手段は、取得されたフォント情報を用いて文書データのレイアウトを行なうことが好ましい。
【００１８】
また、属性情報取得手段は、印刷枚数の制限である属性情報を取得し、プリンタジョブ生成手段は、印刷枚数の制限を満たすように生成したプリンタジョブを分割することが好ましい。
【００１９】
本発明の他の局面に従うと、プリンタジョブ生成プログラムは、プリンタジョブを生成する処理をコンピュータに実行させるプログラムであって、印刷対象であるＸＭＬ形式の文書データを取得する文書データ取得ステップと、プリンタエンジンの属性情報を取得する属性情報取得ステップと、属性情報に基づいて、文書データのレイアウトを決定するレイアウト決定ステップと、レイアウトに基づいて、文書データの内容を個別のページに割付け、レイアウトを行なうレイアウトステップと、レイアウトされた文書データからプリンタジョブを生成するプリンタジョブ生成ステップとを実行させる。
【００２０】
また、プリンタジョブ生成プログラムは、ＸＭＬ形式の文書データをＸＳＬ−ＦＯ形式の文書データに変換するＸＳＬ−ＦＯ変換ステップと、ＸＳＬ−ＦＯ形式の文書データを解析するＸＳＬ−ＦＯ解析ステップとをさらに実行させ、レイアウト決定ステップは、属性情報と、解析結果とに基づいてレイアウトを決定することが好ましい。
【００２１】
また、プリンタジョブ生成プログラムは、決定されたレイアウトに応じて、プリンタエンジンで用いられる固有のフォントのフォント情報を取得するプリンタ内蔵フォント取得ステップをさらに実行させ、レイアウトステップは、取得されたフォント情報を用いて文書データのレイアウトを行なうことが好ましい。
【００２２】
また、属性情報取得ステップは、印刷枚数の制限である属性情報を取得し、プリンタジョブ生成ステップは、印刷枚数の制限を満たすように生成したプリンタジョブを分割することが好ましい。
【発明を実施するための最良の形態】
【００２３】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００２４】
図１は、本実施の形態にかかるプリンタ１００の構成の具体例を示す図である。本実施の形態にかかるプリンタ１００は、ネットワークに接続されたプリントシステムにおいて用いられるプリンタであって、ネットワークを介して外部のサーバと接続されている。
【００２５】
図１を参照して、本実施の形態にかかるプリンタ１００の構成は、ＸＭＬ（Extensible Markup Language）プリント制御部１とプリンタ部２とに大分される。
【００２６】
ＸＭＬプリント制御部１は、外部のサーバからＸＭＬ文書を取得し、プリンタジョブを生成する。また、プリンタ部２からプリンタエンジンの仕様や状態などのプリンタエンジンの属性情報を取得する。そして、ＸＭＬプリント制御部１は、生成したプリンタジョブをプリンタ部２に対して出力する。プリンタ部２は、ＸＭＬプリント制御部１から入力されたプリンタジョブを、該プリンタジョブの情報にしたがって用紙上に画像を形成し、出力トレイ上に排紙する。なお、以下の実施の形態においては、ＸＭＬプリント制御部１が外部のサーバからＸＭＬ文書を取得するものとするが、プリンタ１００に備えられる記憶装置に記憶されているＸＭＬ文書を読出して用いる場合も同様である。
【００２７】
ＸＭＬプリント制御部１は、ネットワークを介して外部のサーバと接続される入力Ｉ／Ｆ（インタフェース）１１と、ＸＳＬ−ＦＯ（Extensible Stylesheet Language Formatting Objects）変換部１２と、スタイルシート管理部１３と、ＸＳＬ−ＦＯ解析部１４と、レイアウト部１５と、プリンタジョブ生成部１６と、印刷モード入力部１７と、フォトメトリクスデータ記憶部１８と、プリンタ内蔵フォントダウンロード部１９とを含んで構成される。
【００２８】
また、プリンタ部２は、プリンタ制御部２０と、プリンタエンジン部２１と、操作パネルなどから構成される操作部２２とを含んで構成される。
【００２９】
プリンタ部２に含まれる操作部２２は、ユーザから、印刷に関するパネル操作を受付けて、操作パネル設定情報を入力Ｉ／Ｆ１１と印刷モード入力部１７とに対して出力する。具体的には、印刷に関するパネル操作は、取得するＸＭＬ文書へのアクセス情報であるＵＲＬ（Uniform Resource Locators）の指定や印刷モードに関する指定などを行なう操作である。
【００３０】
入力Ｉ／Ｆ１１は、操作部１０から入力された操作パネル設定情報に含まれるアクセス情報に基づいて、ネットワークを介して該当するサーバにアクセスし、該当するＸＭＬ文書を取得する。そして、取得したＸＭＬ文書を、ＸＳＬ−ＦＯ変換部１２に対して出力する。
【００３１】
スタイルシート管理部１３は、Ｗ３Ｃ（Ｒ）勧告のＸＭＬ文書の雛形であるＸＳＬＴ（Extensible Stylesheet Transformations）にしたがったスタイルシート（ＸＳＬＴスタイルシートというものとする）を記憶する。
【００３２】
ＸＳＬ−ＦＯ変換部１２は、入力Ｉ／Ｆ１１から入力されたＸＭＬ文書のヘッダ部の記述を参照して用いるＸＳＬＴスタイルシートを決定し、スタイルシート管理部１３に記憶されているＸＳＬＴスタイルシートから該当するＸＳＬＴスタイルシートを抽出する。ＸＳＬ−ＦＯ変換部１２は、入力Ｉ／Ｆ１１から入力されたＸＭＬ文書を、抽出したＸＳＬＴスタイルシートを用いてＸＳＬ−ＦＯ形式のデータであるＸＳＬ−ＦＯ文書に変換し、ＸＳＬ−ＦＯ解析部１４に対して出力する。
【００３３】
なお、入力Ｉ／Ｆ１１から入力されたＸＭＬ文書がすでにＸＳＬ−ＦＯ文書である場合には、ＸＳＬ−ＦＯ変換部１２は、入力Ｉ／Ｆ１１から入力されたＸＭＬ文書をそのままＸＳＬ−ＦＯ解析部１４に対して出力する。
【００３４】
また、ＸＭＬ文書がＸＳＬ−ＦＯ形式のタグである印刷用タグを含むＸＳＬ−ＦＯ文書であるか否かの判定方法は、本発明において限定されず、従来より用いられている種々の方法を採用することができる。
【００３５】
ＸＳＬ−ＦＯ解析部１４は、ＸＳＬ−ＦＯ変換部１２から入力された、テキストデータであるＸＳＬ−ＦＯ文書の構造を解析し、ＸＳＬ−ＦＯ文書と、ＸＳＬ−ＦＯ文書のツリー構造の解析結果とを、レイアウト部１５と印刷モード入力部１７とに対して出力する。ＸＳＬ−ＦＯ文書のツリー構造については、後に具体例を挙げて説明する。
【００３６】
プリンタ内蔵フォントダウンロード部１９は、プリンタ部２から、プリンタ部２が内蔵するフォントについての、各文字の構成要素であるグリフの幅、高さなどのフォント情報を取得し、フォントメトリクスデータ記憶部１８に対して出力する。フォントメトリクスデータ記憶部１８は、プリンタ内蔵フォントダウンロード部１９から入力されたフォント情報を記憶する。
【００３７】
レイアウト部１５は、ＸＳＬ−ＦＯ解析部１４から入力された解析結果に基づいて、ＸＳＬ−ＦＯ文書に含まれる文書の内容を個別のページに割付け、レイアウトを行なう。その際、レイアウト部１５は、フォトメトリクスデータ記憶部１８を参照して、必要なフォント情報を取得する。そして、レイアウト部１５は、レイアウト結果を印刷モード入力部１７に対して出力し、印刷モード入力部１７に対して印刷モードを要求する。
【００３８】
印刷モード入力部１７は、レイアウト部１５からの要求に応じて、プリンタ制御部２０からプリンタエンジン部２１の仕様および状態などの属性情報を取得する。そして、印刷モード入力部１７は、プリンタ制御部２０から取得したプリンタ部２に関する情報、レイアウト部１５から入力されたレイアウト結果、ＸＳＬ−ＦＯ解析部１４から入力された解析結果に含まれる印刷モードに関する情報、および／または操作部２２から入力された操作パネル設定情報に含まれる印刷モードに関する情報に基づいて、該ＸＭＬ文書を印刷する際の印刷モードの詳細を決定し、決定した印刷モードの情報のうち、レイアウト処理に用いられる情報をレイアウト部１５に応答する。また、決定した印刷モードの情報のうち、プリンタ部２の制御に用いられる情報を、プリンタジョブ言語（ＰＪＬ：Printer Job Language）で表わされたジョブ記述データ（以下、ＰＪＬデータという）に変換し、後に説明するプリンタジョブ生成部１６から出力されるプリンタジョブに含ませてプリンタ制御部２０に対して出力する。
【００３９】
具体的には、レイアウト部１５から用紙サイズ情報が要求された場合、印刷モード入力部１７は、ＸＳＬ−ＦＯ解析部１４から入力された解析結果より印刷モードに関する情報、または操作部２２から入力された操作パネル設定情報からユーザの希望する給紙トレイ（より具体的にはカセット、手差しトレイなど）や用紙サイズの情報を取得する。
【００４０】
ユーザから給紙トレイが指定された場合は、レイアウト部１５は、さらに、指定された給紙トレイ内にセットされた用紙の用紙サイズ情報を、プリンタ制御部２０から取得する。指定された給紙トレイが存在しないか、指定された給紙トレイ内に用紙がセットされていない場合、レイアウト部１５は、代替の給紙トレイを自動選択した後、その給紙トレイ内にセットされた用紙の用紙サイズ情報を、プリンタ制御部２０から取得する。代替の給紙トレイを自動選択する方法としては、給紙トレイ内にセットされた用紙サイズが、ＸＳＬ−ＦＯ解析部１４から入力された解析結果に含まれる用紙サイズに一致する給紙トレイの中で、給紙に必要な時間が最小の給紙トレイを選択する方法が好ましい。
【００４１】
また、ユーザから用紙サイズが指定された場合は、レイアウト部１５は、さらに、プリンタ制御部２０から利用可能なすべての給紙トレイの情報を取得し、その中から指定された用紙サイズと一致するサイズの用紙が内部にセットされている給紙トレイを自動選択して、その給紙トレイ内にセットされた用紙の用紙サイズ情報を取得する。指定された用紙サイズと一致するサイズの用紙が内部にセットされている給紙トレイが存在しない場合、レイアウト部１５は、給紙トレイ内にセットされた用紙サイズが指定された用紙サイズに最も近い給紙トレイを選択し、その給紙トレイ内にセットされた用紙の用紙サイズ情報を、プリンタ制御部２０から取得する。
【００４２】
印刷モード入力部１７において取得された用紙サイズ情報などの、印刷モードの情報のうちのレイアウト処理に用いられる情報は、レイアウト部１５に応答され、レイアウト部１５は、印刷モード入力部１７から取得した印刷モードの情報を用いて、ＸＳＬ−ＦＯ文書に対して、該ＸＳＬ−ＦＯ文書をページにレイアウトする処理であるレイアウト処理を行なう。なお、レイアウト部１５におけるレイアウト処理については、後に詳細に説明する。そして、レイアウト部１５は、レイアウト処理結果をプリンタジョブ生成部１６に対して出力する。
【００４３】
また、印刷モード入力部１７において選択された給紙トレイの情報などの、印刷モードの情報のうちのプリンタ部２の制御に用いられる情報は、ＰＪＬデータに変換され、プリンタジョブ生成部１６から出力されるプリンタジョブに含まれてプリンタ制御部２０に対して出力される。
【００４４】
プリンタジョブ生成部１６は、レイアウト部１５から入力されたレイアウト処理結果を、対応するプリンタ部２が解釈可能なページ記述言語（ＰＤＬ：Page Description Language）で表わされたデータ（以下、ＰＤＬデータという）と、ＰＪＬデータとに変換する。そして、プリンタジョブ生成部１６は、変換したデータを含むプリンタジョブを、プリンタ部２のプリンタ制御部２０に転送する。
【００４５】
プリンタ制御部２０は、入力されたプリントジョブに含まれるＰＪＬデータにしたがってプリンタエンジン部２１を制御する。プリンタエンジン部２１は、プリンタ制御部２０に制御されることで、プリントジョブに含まれるＰＤＬデータにしたがって用紙上に画像を形成し、トレイ上に排紙する。
【００４６】
さらに、上述のＸＳＬ−ＦＯ変換部１２は、変換して、ＸＳＬ−ＦＯ解析部１４に対して出力するＸＳＬ−ＦＯ文書に、印刷モードの指定情報を含めてもよい。具体的には、ＸＳＬ−ＦＯ変換部１２は、ＸＭＬ文書をＸＳＬ−ＦＯ形式のデータに変換する際に、印刷モードを指定する情報を含むＸＳＬＴスタイルシートを用いることで、ＸＭＬ文書を、印刷モードが拡張的に付加されたＸＳＬ−ＦＯ文書に変換してＸＳＬ−ＦＯ解析部１４に対して出力することができる。具体的に、図２に、印刷モードが拡張的に付加されたＸＳＬ−ＦＯ文書の構成の具体例を示す。
【００４７】
図２に示されるＸＳＬ−ＦＯ文書は、＜ｒｏｏｔ＞と＜／ｒｏｏｔ＞とで挟まれる要素（ＲＯＯＴ要素）を最上位の要素とし、＜ページシーケンス＞と＜／ページシーケンス＞とで挟まれる要素（ページシーケンス要素）、＜レイアウトセット＞と＜／レイアウトセット＞とで挟まれる要素（レイアウトセット要素）、および＜印刷モードセット＞と＜／印刷モードセット＞とで挟まれる要素（印刷モードセット要素）をその下位の要素とするツリー構造である。
【００４８】
ページシーケンス要素はＸＭＬ文書の内容を含む要素であり、１つ以上の＜ｆｌｏｗ＞と＜／ｆｌｏｗ＞とで挟まれる要素（ＦＬＯＷ要素）を含んで構成される。さらに、各ＦＬＯＷ要素は、文書の表示、各章、および補足の文書データを含む。また、各ＦＬＯＷ要素は、属性であるレイアウトＩＤを含み、レイアウトＩＤによって、後述するレイアウトセット要素に含まれるページマスタ要素が指定される。ＦＬＯＷ要素内のデータは、各々、レイアウトＩＤによって指定されるページマスタ要素の内容が示すページレイアウトにしたがって、印刷データに変換される。
【００４９】
レイアウトセット要素は、１つ以上の＜ページマスタ＞と＜／ページマスタ＞とで挟まれる要素（ページマスタ要素）を含んで構成される。ページマスタ要素は、印刷ページ上への内容のレイアウト方法を指定する要素である。具体的には、ページの縦横サイズ、余白、段組指定、および縦書き／横書きなどを指定する要素である。ページマスタ要素は、属性であるページマスタＩＤを含み、ページマスタＩＤによって、後述する印刷モードセット要素に含まれる印刷モード要素が指定される。ＦＬＯＷ要素内のデータは、各々、レイアウトＩＤによって指定されるページマスタ要素の、ページマスタＩＤによって指定される印刷モード要素の内容が示す印刷モードにしたがって、印刷される。
【００５０】
印刷モードセット要素は、１つ以上の＜印刷モード＞と＜／印刷モード＞とで挟まれる要素（印刷モード要素）を含んで構成される。印刷モード要素は、印刷モードのパラメータを指定する要素である。具体的には、印刷部数、給紙トレイ、排紙（出力）トレイ、およびレイアウトなどを指定する各パラメータを含む要素である。
【００５１】
ＸＳＬ−ＦＯ変換部１２が、ＸＭＬ文書を、図２に示されるような印刷モードが拡張的に付加されたＸＳＬ−ＦＯ文書に変換することで、該ＸＳＬ−ＦＯ文書はＸＳＬ−ＦＯ解析部１４においてそのツリー構造が解析された後、レイアウト部１５において、ページシーケンス要素とレイアウトセット要素とを用いてレイアウト処理が実行され、そのレイアウト処理結果がプリンタジョブ生成部１６に渡されてＰＤＬデータに変換される。また、印刷モード入力部１７において、印刷モードセット要素がＰＪＬデータに変換される。
【００５２】
図３は、本実施の形態にかかるプリンタ１００のＸＭＬプリント制御部１における処理を示すフローチャートである。図３のフローチャートに示される処理は、ＸＭＬプリント制御部１を構成するＣＰＵ（Central Processing Unit）（不図示）が、メモリ（不図示）に記憶されるプログラムを読出し、図１に示される各部を制御することで実現される。
【００５３】
図３を参照して、始めに、入力Ｉ／Ｆ１１が所定の外部サーバにアクセスしてＸＭＬ文書を取得することで、ＸＭＬ文書が入力Ｉ／Ｆ１１を介してプリンタ１００に入力される（Ｓ１０１）。
【００５４】
次に、ステップＳ１０１で入力されたＸＭＬ文書のヘッダ部の記述が参照されて、ＸＳＬ−ＦＯ形式に変換するときに用いられるスタイルシートが決定され（Ｓ１０３）、スタイルシート管理部１３より取得される。そして、ステップＳ１０３で決定されたスタイルシートが適応されて、ステップＳ１０１で入力されたＸＭＬ文書がＸＳＬ−ＦＯ形式のデータに変換されて、ＸＳＬ−ＦＯ文書が生成される（Ｓ１０５）。ここで生成されるＸＳＬ−ＦＯ文書の構造の具体例が、図２に示される。
【００５５】
次に、レイアウト部１５において、ステップＳ１０５で生成されたＸＳＬ−ＦＯ文書の内容が参照されて、レイアウト処理を行なうために必要な、プリンタエンジン部２１の仕様および状態など属性情報が収集され、印刷モード入力部１７に対して印刷モードが要求される（Ｓ１０７）。ここでは、ＸＳＬ−ＦＯ文書の内容のうち、具体的には、図２に示されたページシーケンス要素およびレイアウトセット要素が参照される。
【００５６】
ステップＳ１０７での要求に応じて、印刷モード入力部１７では、ＸＳＬ−ＦＯ文書の内容、ＸＳＬ−ＦＯ文書のうちの印刷モードに関する部分（印刷モードセット要素）、およびプリンタ２から取得される情報が参照されて、印刷モードが決定される（Ｓ１０９）。
【００５７】
ステップＳ１０９で決定された印刷モードの情報のうち、レイアウト処理に用いられる情報はレイアウト部１５に返送される（Ｓ１１１）。レイアウト部１５では、ステップＳ１１１で返送された情報と、必要に応じて、操作部２２でのパネル操作で指定された印刷モードに関する情報とに基づいて、レイアウト処理に必要な情報が決定され、フォントメトリクスデータ記憶部１８に記憶される該当するフォントメトリクスデータが参照されて、ステップＳ１０５で生成されたＸＳＬ−ＦＯ文書に対するレイアウト処理が実行される（Ｓ１１３）。なお、ステップＳ１１３でのレイアウト処理については、後にサブルーチンを挙げて説明する。
【００５８】
そして、ステップＳ１１３でのレイアウト処理の結果と、ステップＳ１０９で決定された印刷モードの情報のうちのプリンタ部２の制御に用いられる情報とは、ＰＤＬデータおよびＰＪＬデータに変換されて、プリンタ部２に出力される（Ｓ１１５）。
【００５９】
以上が、本実施の形態にかかるプリンタ１００のＸＭＬプリント制御部１における処理である。そして、ステップＳ１１５でプリンタ部２に出力されたＰＤＬデータおよびＰＪＬデータを含むプリンタジョブは、プリンタ部２において印刷される。
【００６０】
さらに、上述のステップＳ１１３において、レイアウト部１５で実行される、印刷モード入力部１７で決定された印刷モード情報を利用したレイアウト処理について、具体的に説明する。
【００６１】
レイアウト部１５は、レイアウト処理において、ＸＳＬ−ＦＯ文書に含まれるページマスタ要素の情報にしたがってページを生成する。そして、生成したページに、ＸＳＬ−ＦＯ文書に含まれるＦＬＯＷ要素の内容を順に割当てる。
【００６２】
具体的には、レイアウト部１５は、ＦＬＯＷ要素の内容である各文字に対応した、各文字の構成要素であるグリフを決定し、決定したグリフを、ライティング方向に配列して行を構成する。また、グリフ間に、適当なスペースを挿入する。ＦＬＯＷ要素の内容である各文字からなる文書が、英文のように文字列（ワード）単位を含む場合、文字列間に該当するグリフ間に挿入されるスペースは、文字列にあるグリフ間に挿入されるスペースよりも幅広く設定される。
【００６３】
また、レイアウト部１５は、構成された行が所定の行幅を超える場合は、改行処理を行なって、新しい行を構成する。新しい行は、前の行との行間が一定になるように設定される。また、次の行がページ高さを超える位置に構成される場合は、レイアウト部１５は、新たなページを生成し、生成された新たなページの先頭行に、次の文字に対応したグリフを割当てる。また、該ページに段組が指定されている場合には、次の段の先頭行にそのグリフを割当てる。
【００６４】
なお、このようにして構成されるレイアウトの具体例を図４に示す。図４においては、２段組が指定されたページのレイアウトの具体例が示される。
【００６５】
ところで、ＸＳＬ−ＦＯ文書においてはページサイズを正確に指定することが可能であるが、ページサイズを指定する記述を省略することや、ページサイズを「自動」に設定することが可能である。そこで、次に、ページサイズを指定する記述が省略されていたり、ページサイズが「自動」に設定されていたりする場合のステップＳ１１３のレイアウト処理を、図５に示すサブルーチンと、具体例とを用いて説明する。ステップＳ１１３のレイアウト処理は、主にレイアウト部１５における処理である。
【００６６】
図５を参照して、始めに、ステップＳ１０９で決定された印刷モードの情報のうちのレイアウト処理に用いられる情報が参照されて、ＸＳＬ−ＦＯ文書においてページサイズが指定されているか否かが判定される（Ｓ２０１）。
【００６７】
ステップＳ２０１の判定の結果、ＸＳＬ−ＦＯ文書においてページサイズを指定する記述が省略されているときや、ページサイズが「自動」に設定されているときなどの、ページサイズが指定されていない場合（Ｓ２０１でＹＥＳ）、プリンタ部２の給紙トレイ内にセットされている用紙の用紙サイズが、ページサイズに設定される（Ｓ２０３）。なお、印刷を行なう用紙の用紙サイズは、印刷モード入力部１７において決定される。
【００６８】
一方、ステップＳ２０１の判定の結果、ＸＳＬ−ＦＯ文書においてページサイズが指定されている場合（Ｓ２０１でＮＯ）、ステップＳ２０３の処理をスキップし、処理をステップＳ２０５へ移行する。
【００６９】
次に、レイアウト部１５は、ページサイズの幅が所定のサイズよりも大きい場合には段組を行なう。そして、その１行に配置される文字数が規定の文字数よりも多いか否かが判定される（Ｓ２０５）。ここでの規定の文字数は、ページサイズや文字サイズなどに応じて規定される文字数であって、予め図示されない記憶部に、ページサイズや文字サイズなどと対応付けられて格納されているしきい値である。
【００７０】
ステップＳ２０５の判定の結果、１行に配置される文字数が規定の文字数よりも多い場合（Ｓ２０５でＹＥＳ）、１行に配置される文字数が規定の文字数よりも小さくなるまで段組数を増やす（Ｓ２０７）。この、段組数の決定方法としては、たとえば、行幅／フォントサイズで得られる１行に配置される文字数が、規定の文字数以下になるまで段組数を増やす方法が挙げられる。このようにして段組数を増やすことで、１ページあたりの文字数を増やした結果１行あたりの文字数が多くなり、ユーザが読み難いレイアウトになってしまうことを防ぐ効果がある。
【００７１】
なお、ページサイズの幅に応じて段組数を増やすステップＳ２０７での処理に替えて、ページサイズの幅に応じてフォントサイズを変更する処理を行なってもよい。この場合、ページサイズに応じて文字が大きくなり、読みやすくなるという効果がある。
【００７２】
一方、ステップＳ２０５の判定の結果、１行に配置される文字数が規定の文字数以内である場合（Ｓ２０５でＮＯ）、ステップＳ２０７の処理をスキップし、処理をステップＳ２０９へ移行する。
【００７３】
また、レイアウト処理を行なう際に使用するフォントサイズを、操作部２２でのパネル操作で指定することも考えられる。そこで、次に、操作部１０から入力された操作パネル設定情報に、フォントに関する指定が含まれるか否かが判定される（Ｓ２０９）。
【００７４】
ステップＳ２０９の判定の結果、操作部１０から入力された操作パネル設定情報にフォントに関する指定が含まれる場合（Ｓ２０９でＹＥＳ）、たとえば、操作部２２から「大きい文字サイズ」ボタンが押されたことが操作パネル設定情報として印刷モード入力部１７に入力されると、レイアウト部１５は、該指定に応じてフォントサイズを調整し（Ｓ２１１）、たとえば、指定されたフォントの１．５倍のフォントサイズでレイアウト処理を行なうことなどが考えられる。この場合、プリンタ部２の操作部２２でパネル操作操作を行なっているユーザが、文字サイズを変更できるという利便性が得られる。
【００７５】
一方、ステップＳ２０９の判定の結果、操作部１０から入力された操作パネル設定情報にフォントに関する指定が含まれない場合（Ｓ２０９でＮＯ）、ステップＳ２１１の処理をスキップし、処理をステップＳ２１３へ移行する。
【００７６】
次に、操作部１０から入力された操作パネル設定情報に、プリントオプションとして、拡大や縮小を行なって印刷する指定が含まれるか否かが判定される（Ｓ２１３）。
【００７７】
ステップＳ２１３の判定の結果、操作部１０から入力された操作パネル設定情報に拡大や縮小を行なって印刷する指定が含まれる場合（Ｓ２１３でＹＥＳ）、レイアウト部１５は、その指定に応じてフォントサイズを調整する（Ｓ２１５）。
【００７８】
たとえば、操作部２２でのパネル操作で、印刷モードとして縮小印刷が指定された場合、レイアウトされたページのイメージを単に縮小すると小さいサイズのフォントが見え難くなるという問題がある。このため、ステップＳ２１３で印刷モードとして縮小印刷が指定されたことが判定されると、ステップＳ２１５において、レイアウト部１５は、一定のサイズ以下のフォントを、所定サイズに固定するフォントサイズの調整を行なう。このフォントサイズを固定する所定サイズは、縮小率に応じて決定されるサイズであって、縮小効果が大きいほど大きなサイズであることが好ましい。
【００７９】
一方、ステップＳ２１３の判定の結果、操作部１０から入力された操作パネル設定情報に拡大や縮小を行なって印刷する指定が含まれない場合（Ｓ２１３でＮＯ）、ステップＳ２１５の処理をスキップし、処理をステップＳ２１７へ移行する。
【００８０】
プリンタ部２は専用の内蔵フォントを備える場合があり、この内蔵フォントを使用することで印刷速度を高速化できるなどのメリットがある。そこで、レイアウト部１５は、操作部１０から入力された操作パネル設定情報に、プリンタ部２が内蔵するフォントを使用して印刷する指定が含まれるか否かを判定する（Ｓ２１７）。
【００８１】
これらの内蔵フォントは、独自のメトリクスを備える。そのため、ステップＳ２１７の判定の結果、操作部１０から入力された操作パネル設定情報にプリンタ部２が内蔵するフォントを使用して印刷する指定が含まれる場合（Ｓ２１７でＹＥＳ）、このメトリクスをプリンタ部２からプリンタ内蔵フォントダウンロード部１９でダウンロードして取得し、フォントメトリクスデータ記憶部１８に格納する（Ｓ２１９）。このようにすることで、レイアウト部１５では、プリンタ部２の内蔵フォントに応じた適切なレイアウト処理を行なうことできる。
【００８２】
一方、ステップＳ２１７の判定の結果、操作部１０から入力された操作パネル設定情報にプリンタ部２が内蔵するフォントを使用して印刷する指定が含まれない場合（Ｓ２１７でＮＯ）、ステップＳ２１９の処理をスキップする。
【００８３】
以上でステップＳ１１３のレイアウト処理を終了し、処理を図３に示されるメインルーチンに戻す。
【００８４】
さらに、上述の処理に加えて、レイアウト処理において以下の処理を行なうこともできる。
【００８５】
すなわち、印刷モードには、１枚の用紙に複数のページを印刷することが可能な両面印刷、２ｉｎ１、および４ｉｎ１などのモードがある。通常、ＸＭＬ文書は、章、節などの複数の大きなまとまりを持つ。このような大きなまとまりとまとまりとの間に適切な白ページ（ブランクページ）を挿入することで、まとまりの最初を各用紙の表の面の最初のページとして割当てることが可能になる。そこで、レイアウト部１５は、ステップＳ１０９で決定された印刷モードの情報のうちのレイアウト処理に用いられる情報を参照して、１枚の用紙に複数のページを印刷する印刷モードが指定されているか否かを判定する。
【００８６】
その判定の結果、１枚の用紙に複数のページを印刷する印刷モードが指定されている場合、レイアウト部１５は、プリンタジョブ生成部１６に対して、ＸＳＬ−ＦＯ文書のＦＬＯＷ要素とＦＬＯＷ要素との間に改ページのコマンドを挿入してプリンタ部２へ送信するように、指示する。または、プリンタジョブ生成部１６に改ページのコマンドを送信させる替わりに、レイアウト部１５は、適当な数の白ページを生成してもよい。
【００８７】
具体的に、ＦＬＯＷ要素を含むＸＳＬ−ＦＯ文書のレイアウト例を図６に示す。図６に示されるＸＳＬ−ＦＯ文書は、第１のＦＬＯＷ要素〜第３のＦＬＯＷ要素の３つのＦＬＯＷ要素を含んで構成され、その印刷モードは２ｉｎ１である。
【００８８】
図６を参照して、レイアウト部１５がレイアウト処理を行なって、第１のＦＬＯＷ要素から第１〜第３ページを生成し、第２のＦＬＯＷ要素から第１ページを生成し、第２のＦＬＯＷ要素から第１ページを生成するとすると、レイアウト部１５は、さらに、第１のＦＬＯＷ要素から生成された第１〜第３ページを、１枚目の用紙の表の面から裏の面にかけて配置した後、改ページ、または白ページを挿入して、第２のＦＬＯＷ要素から生成された第１ページを、２枚目の用紙の表の面に配置する。同様に、その後、改ページ、または白ページを挿入して、第３のＦＬＯＷ要素から生成された第１ページを、３枚目の用紙の表の面に配置する。このようにすることで、ＦＬＯＷ要素の先頭を常に用紙の表の面の先頭に印刷することができる。
【００８９】
さらに、ユーザは、ＦＬＯＷ要素に章、節などの有意義な大きな単位の内容を割当てることで、それらの内容を用紙の表の面の第１ページに印刷させることが可能になり、文書単位を反映した見易いページ構成の印刷物を得ることができる。
【００９０】
また、印刷された用紙が排紙されるトレイを、操作部２２でのパネル操作で指定することも考えられる。プリンタ部２のトレイには、ステイプル機能が付加されたトレイなど、出力枚数に上限があるトレイもある。そこで、レイアウト部１５は、操作部１０から入力された操作パネル設定情報において、出力先としてそのような出力枚数に上限があるトレイが指定されているか否かを判定する。
【００９１】
その判定の結果、操作部１０から入力された操作パネル設定情報に、出力先として出力枚数に上限があるトレイが指定されている場合、レイアウト部１５は、印刷モード入力部１７を介してプリンタ制御部２０から該トレイの出力枚数の上限を取得し、プリンタジョブ生成部１６に対して、上限枚数以下になるようプリントジョブを分割するように、指示する。このように、１つのプリントジョブを分割して複数のプリントジョブにできることで、出力先に指定されたトレイの出力枚数の上限を超える大きなＸＭＬ文書であっても、印刷可能になる。
【００９２】
本実施の形態にかかるプリンタ１００で以上のような処理が実行されることで、ネットワーク上のサーバなどからＸＭＬ文書を取得し、スタイルシートに設定された印刷モードや、プリンタ部２から操作入力された設定や、プリンタエンジン部２１の仕様や状態などの属性情報を利用したレイアウト処理が実現できる。この結果、高品位にレイアウトされたＸＭＬ文書の、用紙への印刷が可能になるという利点がある。
【００９３】
さらに、上述のプリンタ１００のＸＭＬプリント制御部１において行なわれるレイアウト方法を、プログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００９４】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【００９５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００９６】
【図１】本実施の形態にかかるプリンタ１００の構成の具体例を示す図である。
【図２】印刷モードが拡張的に付加されたＸＳＬ−ＦＯ文書の構成の具体例を示す図である。
【図３】本実施の形態にかかるプリンタ１００のＸＭＬプリント制御部１における処理を示すフローチャートである。
【図４】レイアウトの具体例を示す図である。
【図５】ステップＳ１１３のレイアウト処理を示すフローチャートである。
【図６】ＦＬＯＷ要素を含むＸＳＬ−ＦＯ文書のレイアウトの具体例を示す図である。
【図７】ＸＳＬ−ＦＯプロセッサを利用してＸＭＬ文書を用紙にプリントする従来の処理の流れを説明する図である。
【符号の説明】
【００９７】
１  ＸＭＬプリント制御部、２  プリンタ部、１１  入力Ｉ／Ｆ、１２  ＸＳＬ−ＦＯ変換部、１３  スタイルシート管理部、１４  ＸＳＬ−ＦＯ解析部、１５  レイアウト部、１６  プリンタジョブ生成部、１７  印刷モード入力部、１８  フォトメトリクスデータ記憶部、１９  プリンタ内蔵フォントダウンロード部、２０  プリンタ制御部、２１  プリンタエンジン部、２２  操作部、１００，１００４  プリンタ、１００１  ＸＳＬＴプロセッサ、１００２  ＸＳＬ−ＦＯプロセッサ、１００３  プリンタドライバ。
【図１】
2005092426.tif 000003
【図２】
2005092426.tif 000004
【図３】
2005092426.tif 000005
【図４】
2005092426.tif 000006
【図５】
2005092426.tif 000007
【図６】
2005092426.tif 000008
【図７】
2005092426.tif 000009