(57)【要約】【課題】出力領域に適したレイアウトを行なう。【解決手段】キーボード１０５が操作されて出力用紙サイズが設定されたとき、設定された出力用紙サイズから各ブロックのブロックサイズを決定する。そして、この決定されたブロックサイズに基づき出力領域のサイズとフォントのサイズを決定し、決定された出力領域のサイズとフォントのサイズに基づき、出力領域のサイズとフォントのサイズを変倍する。【選択図】　　　　図２
2004118465.tif 000002
【特許請求の範囲】
【請求項１】
レイアウトがあいまいなドキュメントフォーマットのファイルから、レイアウトの確定したドキュメントフォーマットのファイルに変換して印刷する文書印刷システムにおいて、
出力用紙サイズを設定するための設定手段と、
該設定手段により設定された出力用紙サイズから各ブロックのブロックサイズを決定する第１決定手段と、
該第１決定手段により決定されたブロックサイズに基づき出力領域のサイズとフォントのサイズを決定する第２決定手段と、
該第２決定手段により決定された出力領域のサイズとフォントのサイズに基づき出力領域のサイズとフォントのサイズを変倍する変倍手段と
を有することを特徴とする文書印刷システム。
【請求項２】
請求項１において、前記変倍手段は、
前記第２決定手段により決定された出力領域とフォントサイズの拡大縮小率を決定する倍率決定手段と、
該倍率決定手段により決定された拡大縮小率に基づいて前記各ブロックのフォントサイズを計算する計算手段と、
該計算手段により計算されたフォントサイズのうちの最小のフォントサイズが予め定めたフォントサイズより大きいか否かを判定する判定手段と、
該判定手段により前記最小のフォントサイズが前記予め定めたフォントサイズより小さいと判定された場合に、各ブロックを予め定めた最小のフォントサイズまで拡大する拡大手段と
を有することを特徴とする文書印刷システム。
【請求項３】
請求項１において、予め定めたフォントを代替え書体に置換する書体置換手段を有することを特徴とする文書印刷システム。
【請求項４】
請求項３において、前記書体置換手段は、明朝体をゴシック体に置換することを特徴とする文書印刷システム。
【請求項５】
レイアウトがあいまいなドキュメントフォーマットのファイルから、レイアウトの確定したドキュメントフォーマットのファイルに変換して印刷する文書印刷方法において、
出力用紙サイズが設定されたとき、設定された出力用紙サイズから各ブロックのブロックサイズを決定する第１決定ステップと、
該第１決定ステップにより決定されたブロックサイズに基づき出力領域のサイズとフォントのサイズを決定する第２決定ステップと、
該第２決定ステップにより決定された出力領域のサイズとフォントのサイズに基づき出力領域のサイズとフォントのサイズを変倍する変倍ステップと
を有することを特徴とする文書印刷方法。
【請求項６】
請求項５において、前記変倍ステップは、
前記第２決定ステップにより決定された出力領域とフォントサイズの拡大縮小率を決定する倍率決定ステップと、
該倍率決定ステップにより決定された拡大縮小率に基づいて前記各ブロックのフォントサイズを計算する計算ステップと、
該計算ステップにより計算されたフォントサイズのうちの最小のフォントサイズが予め定めたフォントサイズより大きいか否かを判定する判定ステップと、
該判定ステップにより前記最小のフォントサイズが前記予め定めたフォントサイズより小さいと判定された場合に、各ブロックを予め定めた最小のフォントサイズまで拡大する拡大ステップと
を有することを特徴とする文書印刷方法。
【請求項７】
請求項５において、予め定めたフォントを代替え書体に置換する書体置換ステップを有することを特徴とする文書印刷方法。
【請求項８】
請求項７において、前記書体置換ステップは、明朝体をゴシック体に置換することを特徴とする文書印刷方法。
【請求項９】
レイアウトがあいまいなドキュメントフォーマットのファイルから、レイアウトの確定したドキュメントフォーマットのファイルに変換して印刷するプログラムであって、
出力用紙サイズが設定されたとき、設定された出力用紙サイズから各ブロックのブロックサイズを決定する第１決定手順と、
該第１決定手順により決定されたブロックサイズに基づき出力領域のサイズとフォントのサイズを決定する第２決定手順と、
該第２決定手順により決定された出力領域のサイズとフォントのサイズに基づき出力領域のサイズとフォントのサイズを変倍する変倍手順と
をコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１０】
請求項９において、前記変倍手順が、
前記第２決定手順により決定された出力領域とフォントサイズの拡大縮小率を決定する倍率決定手順と、
該倍率決定手順により決定された拡大縮小率に基づいて前記各ブロックのフォントサイズを計算する計算手順と、
該計算手順により計算されたフォントサイズのうちの最小のフォントサイズが予め定めたフォントサイズより大きいか否かを判定する判定手順と、
該判定手順により前記最小のフォントサイズが前記予め定めたフォントサイズより小さいと判定された場合に、各ブロックを予め定めた最小のフォントサイズまで拡大する拡大手順と
を有するプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１１】
請求項９において、予め定めたフォントを代替え書体に置換する書体置換手順を有するプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１２】
請求項１１において、前記書体置換手順が、明朝体をゴシック体に置換するプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文書を印刷する文書印刷システムおよび方法に関する。
【０００２】
【従来の技術】
ＨＴＭＬのデータには出力時の用紙サイズや解像度等は意識せずに作成されている場合が多い。そして、ＨＴＭＬ（Ｈｙｐｅｒ　Ｔｅｘｔ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）ファイルの内容もＩｎｔｅｒｎｅｔ　Ｅｘｐｌｏｒｅｒ（登録商標）やＮｅｔｓｃａｐｅ　Ｎａｖｉｇａｔｏｒ（登録商標）等で領域の大きさが変更された場合に、変更された領域に合わせてレイアウトも変化できるように相対座標値や割合で定義されている場合が多い。また、構造化記述言語で記述された文書データを物理ページにレイアウトする際に、前記文書データから特定データとして最小文字サイズを検出し、該検出された特定データをレイアウトするための変倍率を算出し、前記文書データに対して、物理ページへのレイアウトが可能となるように前記変倍率に基づく変換を施していた。（たとえば、特許文献１参照）
【０００３】
【特許文献１】
特開２００２−９１９４６号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、このようなＨＴＭＬファイルは出力用紙サイズを意識して作成されていないため、期待したものと出力のサイズが異なって、例えば、出力用紙の用紙サイズに収まらず、領域をオーバして印刷されたり、領域に収めようとすると、文字が小さくなってしまって読めなくなってしまったり等の問題点があった。
【０００５】
そこで、本発明の目的は、上記問題点を解決し、出力領域に適したレイアウトを行なうことができ、どのような書体指定がされた文書でも小さいサイズのときに見やすくレイアウトすることができる文書印刷システムおよび方法を提供することにある。
【０００６】
【課題を解決するための手段】
請求項１の発明は、レイアウトがあいまいなドキュメントフォーマットのファイルから、レイアウトの確定したドキュメントフォーマットのファイルに変換して印刷する文書印刷システムにおいて、出力用紙サイズを設定するための設定手段と、該設定手段により設定された出力用紙サイズから各ブロックのブロックサイズを決定する第１決定手段と、該第１決定手段により決定されたブロックサイズに基づき出力領域のサイズとフォントのサイズを決定する第２決定手段と、該第２決定手段により決定された出力領域のサイズとフォントのサイズに基づき出力領域のサイズとフォントのサイズを変倍する変倍手段と有することを特徴とする。
【０００７】
請求項１において、変倍手段は、第２決定手段により決定された出力領域とフォントサイズの拡大縮小率を決定する倍率決定手段と、該倍率決定手段により決定された拡大縮小率に基づいて各ブロックのフォントサイズを計算する計算手段と、該計算手段により計算されたフォントサイズのうちの最小のフォントサイズが予め定めたフォントサイズより大きいか否かを判定する判定手段と、該判定手段により最小のフォントサイズが予め定めたフォントサイズより小さいと判定された場合に、各ブロックを予め定めた最小のフォントサイズまで拡大する拡大手段とを有することができる。
【０００８】
請求項１において、予め定めたフォントを代替え書体に置換する書体置換手段を有することができる。
【０００９】
請求項３において、書体置換手段は、明朝体をゴシック体に置換することができる。
【００１０】
請求項５の発明は、レイアウトがあいまいなドキュメントフォーマットのファイルから、レイアウトの確定したドキュメントフォーマットのファイルに変換して印刷する文書印刷方法において、出力用紙サイズが設定されたとき、設定された出力用紙サイズから各ブロックのブロックサイズを決定する第１決定ステップと、該第１決定ステップにより決定されたブロックサイズに基づき出力領域のサイズとフォントのサイズを決定する第２決定ステップと、該第２決定ステップにより決定された出力領域のサイズとフォントのサイズに基づき出力領域のサイズとフォントのサイズを変倍する変倍ステップとを有することを特徴とする。
【００１１】
請求項５において、変倍ステップは、第２決定ステップにより決定された出力領域とフォントサイズの拡大縮小率を決定する倍率決定ステップと、該倍率決定ステップにより決定された拡大縮小率に基づいて各ブロックのフォントサイズを計算する計算ステップと、該計算ステップにより計算されたフォントサイズのうちの最小のフォントサイズが予め定めたフォントサイズより大きいか否かを判定する判定ステップと、該判定ステップにより最小のフォントサイズが予め定めたフォントサイズより小さいと判定された場合に、各ブロックを予め定めた最小のフォントサイズまで拡大する拡大ステップとを有することができる。
【００１２】
請求項５において、予め定めたフォントを代替え書体に置換する書体置換ステップを有することができる。
【００１３】
請求項７において、書体置換ステップは、明朝体をゴシック体に置換することができる。
【００１４】
請求項９のコンピュータ読み取り可能な記憶媒体に記憶したプログラムは、レイアウトがあいまいなドキュメントフォーマットのファイルから、レイアウトの確定したドキュメントフォーマットのファイルに変換して印刷するプログラムであって、出力用紙サイズが設定されたとき、設定された出力用紙サイズから各ブロックのブロックサイズを決定する第１決定手順と、該第１決定手順により決定されたブロックサイズに基づき出力領域のサイズとフォントのサイズを決定する第２決定手順と、該第２決定手順により決定された出力領域のサイズとフォントのサイズに基づき出力領域のサイズとフォントのサイズを変倍する変倍手順とをコンピュータに実行させる。
【００１５】
請求項９において、変倍手順は、第２決定手順により決定された出力領域とフォントサイズの拡大縮小率を決定する倍率決定手順と、該倍率決定手順により決定された拡大縮小率に基づいて各ブロックのフォントサイズを計算する計算手順と、該計算手順により計算されたフォントサイズのうちの最小のフォントサイズが予め定めたフォントサイズより大きいか否かを判定する判定手順と、該判定手順により最小のフォントサイズが予め定めたフォントサイズより小さいと判定された場合に、各ブロックを予め定めた最小のフォントサイズまで拡大する拡大手順とを有することができる。
【００１６】
請求項９において、予め定めたフォントを代替え書体に置換する書体置換手順を有することができる。
【００１７】
請求項１１において、書体置換手順は、明朝体をゴシック体に置換することができる。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１９】
図１は本発明の一実施の形態を示す。これは、文書印刷システムの例である。この文書印刷システムは、複数台のパーソナルコンピュータ（以下「クライアントパソコン」という。）３，４と、１台のファイルサーバ１と、１台のＷｅｂサーバ２と、少なくとも１台のＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）データを処理できるプリンタ５とが、ネットワーク７を介して相互に接続してある。
【００２０】
プリンタ５には、携帯情報端末のようなモバイル端末６が、直接、ＩｒＤＡ、ＲＳ−２３２Ｃやセントロニクスなどを通して、ネットワーク７に接続せずに、接続してある。
【００２１】
なお、クライアントパソコン３，４に代えて、ワードプロセッサ、ワークステーション、携帯情報端末等の情報処理装置を接続することも可能である。
【００２２】
クライアントパソコン３，４およびファイルサーバ１は、複数種のフォントにかかるフォントデータ群やＷｅｂのデータや画像データ等が格納されている。
【００２３】
モバイル端末６、またはクライアントパソコン３もしくは４から、プリンタ５に対して、印刷したいＷｅｂのＵＲＬや印刷部数等の印刷要求を出し、プリンタ５からＷｅｂサーバにファイル要求を出し、Ｗｅｂサーバは必要な文書データやフォントデータ等をファイルサーバより集めて、プリンタ５に転送し、プリンタ５はその転送されたデータを展開することによって印刷する。
【００２４】
図２は図１のクライアントパソコン３，４、ファイルサーバ１、及びＷｅｂサーバ２の概略構成を示すブロック図である。図２において、１０１はＣＰＵ（ｃｅｎｔｒａｌ　ｐｒｏｃｅｓｓｉｎｇ　ｕｎｉｔ）であり、装置全体の制御及び演算処理等を行う。１０２はＲＯＭ（ｒｅａｄ　ｏｎｌｙ　ｍｅｍｏｒｙ）であり、システム起動プログラム、基本Ｉ／Ｏプログラム、及び文字コードをビットパターンに変換するための文字パターンデータ（フォントデータ）等を記憶している。１０３はＲＡＭ（ｒａｎｄｏｍ　ａｃｃｅｓｓ　ｍｅｍｏｒｙ）であり、ＣＰＵ１０１の演算に使用するデータや演算結果、表示のために文字コードから変換された文字パターンデータ列等を一時記憶する。
【００２５】
１０４はキーボード制御部（ＫＢＣ）であり、キーボード（ＫＢ）１０５よりキー入力データ（文字コードや制御コード）を受け取り、ＣＰＵ１０１へ伝達する。１０６はディスプレイ制御部（ＣＲＴＣ）であり、ＲＡＭ１０３に格納された文字パターンデータ列を読み出し、ＣＲＴ１０７に転送する。１０７はディスプレイ装置（ＣＲＴ）であり、ＣＲＴＣ１０６より文字パターンデータ列を受け取り、表示画面に表示する。
【００２６】
１０８はディスク制御部（ＤＫＣ）であり、外部記憶装置１０９に対するアクセス制御を行う。１０９はフロッピー（登録商標）ディスク装置（ＦＤ）、ハードディスク装置（ＨＤ）、又はＣＤ−ＲＯＭ等の外部記憶装置である。ＨＤには、文字パターンデータ（フォントデータ）やフォントデータを読み出してビットマップデータに変換する文字展開処理プログラム等が記憶してある。ＦＤ又はＣＤ−ＲＯＭ等の外部記憶装置から、アプリケーションプログラム及び関連データが供給される。
【００２７】
１１０はネットワーク制御部（ＮＴＣ）であり、ネットワーク装置（ＮＴ）１１１の動作を制御する。１１２はシステムバスであり、上述の構成要素間のデータ転送を行う。
【００２８】
図３は図２のＲＡＭ１０３のメモリマップを示す。基本Ｉ／Ｏプログラムは、ＲＯＭ１０２内のシステム起動プログラムによりＲＡＭ１０３に読み込まれる。また、外部記憶装置１０９としてのＦＤ又はＣＤ−ＲＯＭから、アプリケーションプログラム及び関連データを、一旦、ＨＤへインストールした状態で電源がＯＮされたときに、ＨＤからＲＡＭ１０３にロードすることにより、実行することが可能となる。なお、ＨＤへインストールせずに、直接、ＦＤ又はＣＤ−ＲＯＭからＲＡＭ１０３にロードして実行することも可能である。なお、ファイルサーバ１では、後述のプリンタ情報テーブルが関連データの領域に形成されている。
【００２９】
図４は図１のプリンタ５の構成を示すブロック図である。プリンタ５は、レーザビームプリンタ、バブルジェット（登録商標）プリンタ、又は熱転写プリンタ等のいずれのタイプでもよいが、ＸＭＬ形式のデータを処理できる能力を有している。
【００３０】
プリンタ５は、ＣＰＵ２１１と、ＲＯＭ２１２と、ＲＡＭ２１３と、プリンタコントローラ（ＰＲＴＣ）２１５と、プリンタエンジン（ＰＲＴ）２１９と、ディスクコントローラ（ＤＫＣ）２１６と、ハードディスク装置（ＨＤ）２１７と、ネットワークコントローラ（ＮＴＣ）２２０と、ネットワーク装置（ＮＴ）２１８とが、システムバス２１４を介して、相互に接続してある。
【００３１】
なお、ＤＫＣ２１７およびＨＤ２１８はプリンタの種類によっては存在しない場合もある。
【００３２】
ＣＰＵ２１１は装置全体を制御するものであって、ＲＡＭ２１３をワークエリア等として利用しながら、ＲＯＭ２１２に格納されたプログラムに従って、印刷に必要な各種の処理を実行する。システムバス２１４は上記各構成要素間でデータ及び制御信号を授受するための通路である。なお、ＲＯＭ２１２には、文字パターンデータ（フォントデータ）等が格納されている。ＲＡＭ２１３またはＨＤ２１８には、Ｗｅｂサーバ２へ要求した文書データ、イメージデータ、又はフォントデータ等がＷｅｂサーバ２からダウンロードされ格納される。
【００３３】
ＣＰＵ２１１は、Ｗｅｂサーバ２から供給された文書データ、イメージデータあるいはフォントデータを、ＲＯＭ２１２内にあるプログラムに従って文字パターンデータや画像データ（ビットマップデータ）を生成し、プリンタコントローラ２１５内の印刷バッファに展開する。プリンタコントローラ２１５は、ビットマップデータに基づいて生成した印刷コントロール信号をプリンタエンジン２１９に出力する。
【００３４】
ネットワークコントローラ２２０は、ネットワーク７を介してクライアントパソコン３、４やファイルサーバ１との間でデータ送受信を行う際のネットワーク装置（ＮＴ）２１８の動作を制御するものである。
【００３５】
図９はファイルの変換の流れを示す。本処理の流れは、ホスト側の処理とプリンタ側の処理に分かれていて、ホスト側の処理は図１のＷｅｂサーバ２上で行なわれたり、クライアントパソコン３または４で処理されたりする。まず、ファイルサーバよりＸＭＬ形式で保存されたドキュメント又はＨＴＭＬ形式で保存されたドキュメントを読み込み、それを一旦ＸＨＴＭＬ（Ｅｘｔｅｎｓｉｂｌｅ　Ｈｙｐｅｒ　Ｔｅｘｔ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）の形式のデータに変換する。そして、そこから、図５に示すフローチャートに従って出力用紙サイズや解像度に従って適切なレイアウトを行なうＳＶＧ（Ｓｃａｌａｂｌｅ　Ｖｅｃｔｏｒ　Ｇｒａｐｈｉｃ）に変換を行なう。
【００３６】
なお、ＸＨＴＭＬおよびＳＶＧの内容については、Ｗ３Ｃのテクニカルレポートに記載されている。基本的にＸＨＴＭＬは、ＨＴＭＬの文法をＸＭＬ形式に従って拡張したものであり、表示向きである。一方、ＳＶＧはＰＳ（Ｐｏｓｔ　Ｓｃｒｉｐｔ）等のページ記述の文法に似たものであり、ＸＭＬ拡張されたものであり、出力フォーマットに適している。したがって、ＨＴＭＬやＸＭＬの文書データを一旦ＸＨＴＭＬに変換し、さらにそこで出力用紙サイズや解像度を得て、ＳＶＧ形式のデータに変換し、それをＳＶＧが解釈できるプリンタへＳＶＧファイルで転送するのである。そうすることによって、ＸＭＬやＨＴＭＬでかかれた文書データを適切にレイアウトして出力することが可能となる。
【００３７】
図５は図２のＲＯＭ１０２にストアされる制御プログラムであって、ＸＨＴＭＬ形式の文書データからＳＶＧ形式の文書データに変換する制御プログラムの一例を示すフローチャートである。ステップＳ５０１にて、変換元となるＸＨＴＭＬ形式のデータの中から、まず変換の基準となるフォントサイズを求める。基準となるフォントサイズは、ＸＨＴＭＬのファイルでは特に指定されていない。したがって、各ブラウザが独自に基準フォントサイズを定めていることが多いが、ここでは出力用紙への基準フォントサイズとして１０ポイント又は１０．５ポイント等の値を定める。また、ＸＨＴＭＬドキュメントの中に基準フォントサイズが記入してあるような場合にはその値を基準フォントサイズとして定める。
【００３８】
ステップＳ５０２にて、ＸＨＴＭＬドキュメント全体をチェックして、テーブルの属性がないかどうかを調べる。テーブルの属性がない場合には、所定の出力したい用紙や画面のサイズの横領域が各ＸＨＴＭＬ要素であるタグの横領域の基準となるサイズとなる。テーブルの属性が存在する場合には、各テーブルの内容を比較する。例えば、ＸＨＴＭＬの＜ＴＡＢＬＥ＞の要素にｗｉｄｔｈの属性が合った場合には、その値がテーブルの幅の値となるので、その値が最大のものを選択する。＜ＴＡＢＬＥ＞の要素にｗｉｄｔｈの属性がない場合には出力領域の横領域がそのテーブルの横領域となる。
【００３９】
ステップＳ５０３にて、ステップＳ５０２で得られたテーブルの最大値から出力領域の拡大縮小率を計算する。計算方法は出力領域の横領域と、ステップＳ５０２で求めたテーブルの最大横領域との比率から求めることができる。つまり、拡大縮小率＝（出力領域の横領域）／（テーブルの最大横領域）となる。
【００４０】
そして、ステップＳ５０４以降において、各要素の配置および要素内の文字の配置位置等の計算を行なう。
【００４１】
ステップＳ５０４にて、まず対象となる要素がテーブル要素なのか、テキスト要素なのか、イメージ要素なのかの判定を行なう。テーブル要素としては、＜ＴＡＢＬＥ＞、＜ＴＲ＞、＜ＴＨ＞、＜ＴＤ＞、＜ＣＡＰＴＩＯＮ＞、＜ＴＨＥＡＤ＞、＜ＴＦＯＯＴ＞、＜ＴＢＯＤＹ＞等がある。テキスト要素としては、＜Ｈ１＞￣＜Ｈ６＞、＜Ｐ＞、＜Ｑ＞、＜ＢＬＯＣＫＱＵＯＴＥ＞、＜ＥＭ＞、＜ＳＴＲＯＮＧ＞、＜ＳＵＰ＞、＜ＳＵＢ＞等がある。そして、イメージ要素としては、＜ＩＭＧ＞、＜ＭＡＰ＞、＜ＡＲＥＡ＞、＜ＯＢＪＥＣＴ＞、＜ＡＰＰＬＥＴ＞等がある。それぞれの要素の意味については、ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｈｔｍｌ１／　に記載されているＸＨＴＭＬの仕様や、ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｈｔｍｌ４０／　に記載されているＨＴＭＬの仕様を参照されたい。
【００４２】
そして、ステップＳ５０４にて、対象となる要素がテーブルの要素であれば、ステップＳ５０５へ進み、ステップＳ５０５にて、テーブル内の配置を行なう。ここでの処理の詳細は後で図６のフローチャートを参照して説明する。
【００４３】
ステップＳ５０４にて、テキストの要素と判定した場合には、ステップＳ５０６へ進み、ステップＳ５０６にて、テキストの要素内にある個々の文字に対する配置位置を決定する。
【００４４】
テキスト領域はブロック要素とインライン要素とに分かれ、ブロック要素としては、＜Ｈ１＞〜＜Ｈ６＞、＜Ｐ＞要素等があり、インライン要素としては、＜ＥＭ＞、＜ＳＴＲＯＮＧ＞等がある。このインライン要素はブロック要素の子要素として、文章中のある文字列を強調したり、色を変えたりするときに使用される。
【００４５】
テキストのブロック要素の配置方法としては、まずテキスト領域の横領域を決定する。ここではテキスト要素の親要素の横領域がテキスト領域の横領域ということになる。例えば、親要素が＜ＸＨＴＭＬ＞であれば、それが最上位要素ということになるので、出力すべき用紙や画面のサイズの横領域がテキスト領域の横領域として設定される。
【００４６】
文字の大きさに関しては、Ｗ３Ｃの仕様であるＣＳＳのプロパティで指定されている場合には、その値に対して、特に文字のサイズを指定していない場合には、ステップＳ５０１で求めた標準の文字サイズに対して、ステップＳ５０３で求めた拡大縮小率をかけた値を文字サイズの大きさとする。このとき決定された文字サイズの大きさは、ステップＳ５１０で予め設定された最小サイズより大きい値に設定されているかどうかをチェックするので、保存しておく。
【００４７】
そして、決定された文字サイズで文字を１文字ずつ配置していき、横領域を越えるところで文字の折り返しを行ない、次の行の先頭から続きを配置していく。
【００４８】
そして、すべての文字を配置し終わったときに、そのときの行数とフォントサイズから領域の高さを計算する。このとき、行間の大きさはＣＳＳのプロパティで指定されている場合には、それに従い、特に指定がない場合には、文字の高さに対してある一定の値を標準として、その行間の値を設定する。
【００４９】
また、テキストのインライン要素の配置方法としては、インラインに指定された文字列の１つ前の文字の配置位置の終了点を基準点とし、そこから要素で指定された文字種や文字サイズで各文字のピッチ情報に従って配置していく。
【００５０】
他方、ステップＳ５０４にて、イメージの要素であると判定した場合には、ステップＳ５０７へ進む。ステップＳ５０７にて、イメージ要素の領域の決定と配置位置の決定の処理を行なう。イメージ領域の大きさの決定方法は、イメージ領域の大きさがＸＨＴＭＬドキュメントの中で指定してある大きさに対して、ステップＳ５０３で求めた拡大縮小率をかけた領域の大きさになる。
【００５１】
そして、ステップＳ５０８において、ステップＳ５０５から５０７までで求めた各要素の内容をＳＶＧデータに変換する。このとき、テキストの要素は＜ｔｓｐａｎ＞にイメージ要素は＜ｉｍａｇｅ＞に変換される。例えば、図１１に示すようなレイアウトのデータは、図１０に示すようなＸＨＴＭＬのドキュメントで表され、それをＳＶＧで表現すると、図１２に示すようになる。
【００５２】
ステップＳ５０９にて、すべての要素に対してステップＳ５０５からステップＳ５０７までの処理が終了したかどうかをチェックし、まだ処理が終了していない場合には、ステップＳ５０４へ戻って、各要素の配置位置の計算を行なう。すべての要素に対して処理が終了していれば、ステップＳ５１０へ進む。
【００５３】
ステップＳ５１０にて、各要素の中の配置およびフォントサイズの計算が行なわれた結果を見て、出力すべきフォントの大きさの最小値をチェックする。そして、予め設定されたフォントサイズより小さいフォントサイズのデータが存在する場合には、印刷しても小さすぎて見ることができないので、全体領域を大きくする処理を行なう。この処理の詳細は、後程、図７のフローチャートを参照して詳細に説明する。
【００５４】
ステップＳ５１０において最小フォントサイズ以上にセットされた場合でも、線幅が太い書体等では黒くつぶれてしまったり、又は筆書系では、字形が複雑で判別がつかなかったりする場合がある。
【００５５】
そこで、ステップＳ５１１では、書体およびサイズに応じて、読みやすい書体に変換し、近い書体でより読みやすい出力を行なう。そうすることによって、ステップＳ５１０における最小値よりも小さな値をとることが可能となる。
【００５６】
具体的には、図１３に示すように、明朝体Ｗ３、明朝体Ｗ５、明朝体Ｗ７、ゴシック体Ｗ３、ゴシック体Ｗ５、ゴシック体Ｗ７、行書体、楷書体のデータがシステムにあったとする。
【００５７】
明朝体Ｗ３を例にとると、４ポイント以上の場合は、明朝体Ｗ３のデータで十分判別できるので、そのままの書体を使う。しかし、４ポイント未満になると、明朝体特有の「打ち込み」や「うろこ」の部分が判別の妨げとなって読みづらくなるので、ゴシック体Ｗ３のデータに置き換える。
【００５８】
明朝体Ｗ５の場合は、５ポイント以上であれば、そのまま明朝体Ｗ５を使う。そして、４ポイント以上５ポイント未満の場合は、線幅の太さが認識の妨げとなるため、明朝体Ｗ３に置き換える。そして、４ポイント未満の場合には、明朝体Ｗ３でも認識しづらくなるので、ゴシック体Ｗ３に置き換える。
【００５９】
明朝体Ｗ７の場合も同様に、５ポイント以上の場合は明朝体Ｗ７を使い、４ポイント以上５ポイント未満の場合は明朝体Ｗ３に置換え、４ポイント未満の場合はゴシック体Ｗ３に置き換える。
【００６０】
以上のようにして、文字が小さくなったときでも、まずは書体として認識できるように置き換えを行ない、さらに小さくなった場合には、最も認識できる文字に置き換えるようにすることによって、ステップＳ５１０で求める最小のポイントサイズをできる限り小さくすることが可能となる。
【００６１】
そして、ステップＳ５１２にて、すべての要素の配置位置が計算された後、ドキュメント全体を＜ｓｖｇ＞と＜／ｓｖｇ＞で囲み、必要に応じてスタイルシートを＜ｓｔｙｌｅ＞要素で定義してｓｖｇドキュメントの作成を終了する。
【００６２】
図６はテーブルの内容の配置位置の計算を行なうステップＳ５０５（図５）をより詳細に示すフローチャートである。ステップＳ６０１にてテーブル内の各セルの横領域の計算を行なう。このときの計算方法は、＜ＴＲ＞要素で囲まれる各セルの領域の大きさを合計して、親要素であるテーブル要素の横領域を各セルの割合に応じて割り当てる。例えば、ＸＨＴＭＬのドキュメント内のあるテーブルの子要素としてセルが３つあり、それぞれのセルの横領域が、セル１が１０、セル２が２０、セル３が１０で、親要素のテーブルの横領域が１００である場合、セル１の横領域は１００×（１０／４０）＝２５、同様に、セル２の横領域は５０、セル３の横領域は２５となる。
【００６３】
ステップＳ６０２にて、各セルの内容をチェックする各セルの内容としては、さらにテーブルになっている場合、テキストになっている場合、又はイメージになっている場合がある。
【００６４】
そして、それぞれの判定方法は、ステップＳ５０４で述べた方法と同様に、＜ＴＡＢＬＥ＞、＜ＴＲ＞、＜ＴＨ＞、＜ＴＤ＞、＜ＣＡＰＴＩＯＮ＞、＜ＴＨＥＡＤ＞、＜ＴＦＯＯＴ＞、＜ＴＢＯＤＹ＞等の要素であれば、テーブル要素と判定し、ステップＳ６０７に進み、拡大縮小率を再計算して、ステップＳ６０１に戻り、テーブル要素の処理を行なう。
【００６５】
他方、＜Ｈ１＞〜＜Ｈ６＞、＜Ｐ＞、＜Ｑ＞、＜ＢＬＯＣＫＱＵＯＴＥ＞、＜ＥＭ＞、＜ＳＴＲＯＮＧ＞、＜ＳＵＰ＞、＜ＳＵＢ＞等の要素であれば、テキスト要素と判定し、ステップＳ６０３へ進み、他方、＜ＩＭＧ＞、＜ＭＡＰ＞、＜ＡＲＥＡ＞、＜ＯＢＪＥＣＴ＞、＜ＡＰＰＬＥＴ＞等の要素であれば、イメージと判定し、ステップＳ６０６へ進む。
【００６６】
ステップＳ６０３からステップＳ６０５までは、テキストの要素であると判定された場合であり、テキスト要素内にある個々の文字に対する配置位置の決定を行なう。
【００６７】
テキスト領域のうちブロック要素とインライン要素に分かれるが、ブロック要素としては、＜Ｈ１＞〜＜Ｈ６＞、＜Ｐ＞要素等がある。インライン要素としては、＜ＥＭ＞、＜ＳＴＲＯＮＧ＞等がある。インライン要素はブロック要素の子要素として文章中のある文字列を強調したり、色を変えたりするときに使用される。
【００６８】
テキストのブロック要素の配置方法としては、まずテキスト領域の横領域を取り込む。ここではステップＳ６０１で決定したセルの横領域がここで対象となるテキストの横領域となる。
【００６９】
ステップＳ６０３にて文字の大きさに関して、Ｗ３Ｃの仕様であるＣＳＳのプロパティで指定されている場合には、その値に対して、特に文字のサイズを指定していない場合には、ステップＳ５０１で求めた標準の文字サイズに対して、ステップＳ５０３又はステップＳ６０７で求めた拡大縮小率をかけた値を文字サイズの大きさとする。
【００７０】
そして、このとき決定された文字サイズの大きさは、ステップＳ５１０で予め設定された最小サイズより大きい値に設定されているかどうかをチェックするので、保存しておく。
【００７１】
そして、ステップＳ６０４において決定された文字サイズで文字を１文字ずつ配置していき、横領域を越えるところで文字の折り返しを行ない、次の行の先頭から続きを配置していく。また、テキストのインライン要素の配置方法としては、インラインに指定された文字列の一つ前の文字の配置位置の終了点を基準点とし、そこから要素で指定された文字種や文字サイズで各文字のピッチ情報に従って配置していく。
【００７２】
そして、すべての文字を配置し終わったとき、ステップＳ６０５において行数とフォントサイズから領域の高さを計算する。このとき行間の大きさは、ＣＳＳのプロパティで指定されている場合には、それに従い、特に指定がない場合には、文字の高さに対してある一定の値を標準として、その行間の値を設定する。
【００７３】
他方、ステップＳ６０２にてイメージの要素であると判定した場合には、ステップＳ６０６にて、イメージ要素の領域の決定と配置位置の決定の処理を行なう。イメージ領域の大きさの決定方法は、イメージ領域の大きさがＸＨＴＭＬドキュメントの中で指定してある大きさの縦横比を、ステップＳ６０１で求めたセルの横領域に適用して高さを求める。
【００７４】
他方、ステップＳ６０２にて、セルの中にさらにテーブルの要素があると判定された場合には、ステップＳ６０７にて、対象となるテーブルの親要素となるセルの大きさはステップＳ６０１で求めてあるので、その大きさに収まるようにテーブルのサイズを変換する必要がある。拡大縮小率は、拡大縮小率＝（親要素のテーブルの拡大縮小率）×（テーブルの横サイズ）÷（親要素のセルの横幅）、から得られる。
【００７５】
ステップＳ６０８にて、さらに処理すべきセルが存在するかどうかをチェックし、セルが存在する場合には、ステップＳ６０２へ戻って同様の処理を行ない、セルが存在しない場合には、処理を終了する。
【００７６】
図７はフォントサイズの最小値チェックとそれに応じた各ブロックのレイアウトの再設定処理を行なうステップＳ５０８（図５）をより詳細に示すフローチャートである。ステップＳ７０１にて、ステップＳ５０１で求めた基準フォントサイズと、ステップＳ５０３又はステップＳ６０７で求めた各ブロックの拡大縮小率を基に、各ブロックの基準フォントサイズの大きさを求める。これら基準フォントサイズの大きさは、基準フォントサイズの大きさ＝（基準フォントサイズ）×（拡大縮小率）、から求められる。
【００７７】
そして、ステップＳ７０２にて、ステップＳ７０１で計算された各ブロックの基準フォントサイズの大きさの値を比較して、最も小さいフォントサイズの値を抽出する。ステップＳ７０３にて、予め設定された基準フォントサイズの最小値と、ステップＳ７０２で抽出された最小フォントサイズとを比較する。ステップＳ７０２で抽出された最小フォントサイズが、基準フォントサイズの最小値よりも大きい場合には特に処理をする必要がないので、ここで処理を終了する。
【００７８】
他方、ステップＳ７０２で抽出された最小フォントサイズが基準フォントサイズの最小値よりも小さい場合には、出力フォントが小さくなり過ぎて、印刷してもフォントが読めない等の弊害が出てしまい、基準フォントサイズの最小値まで拡大する必要があるので、ステップＳ７０４へ進む。
【００７９】
ステップＳ７０４にて、ステップＳ７０２で求めた最小フォントサイズを基準フォントサイズの最小値まで拡大する拡大倍率計算を行なって、拡大倍率を求める。ステップＳ７０５にて、ステップＳ７０５で求めた拡大倍率を、全てのブロックのフォントサイズ、配置位置座標値、領域の幅や高さ等に乗算して、全体領域を広げる処理を行なう。
【００８０】
そうすることによって、指定出力用紙サイズに無理やり縮小して文字がつぶれてしまっていたようなドキュメントも、図８に示すように、複数ページに広げることが可能となる。そして、プリンタ側では、広げられた領域が複数ページに分割されて出力されることになる。
【００８１】
【発明の効果】
以上説明したように、本発明によれば、上記のように構成したので、出力領域に適したレイアウトを行なうことができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態を示すブロック図である。
【図２】図１のクライアントパソコン３，４、ファイルサーバ１、及びＷｅｂサーバ２の概略構成を示すブロック図である。
【図３】図２のＲＡＭ１０３のメモリマップを示す図である。
【図４】図１のプリンタ５の構成を示すブロック図である。
【図５】図２のＲＯＭ１０２にストアされる制御プログラムであって、ＸＨＴＭＬ形式の文書データからＳＶＧ形式の文書データに変換する制御プログラムの一例を示すフローチャートである。
【図６】テーブルの内容の配置位置の計算を行なうステップＳ５０５（図５）をより詳細に示すフローチャートである。
【図７】フォントサイズの最小値チェックとそれに応じた各ブロックのレイアウトの再設定処理を行なうステップＳ５０８（図５）をより詳細に示すフローチャートである。
【図８】フォントサイズを拡大した例を示す図である。
【図９】ファイルの変換の流れを示す図である。
【図１０】ＸＨＴＭＬのドキュメントの内容の一例を示す図である。
【図１１】ドキュメントを表示したイメージ図である。
【図１２】ＳＶＧのドキュメントの内容の一例を示す図である。
【図１３】書体の置換えの対応関係をテーブルにして示す図である。
【符号の説明】
１　ファイルサーバ
２　Ｗｅｂサーバ
３，４　パーソナルコンピュータ
５　プリンタ
６　モバイル端末
１０１，２１１　ＣＰＵ
１０２，２１２　ＲＯＭ
１０３，２１３　ＲＡＭ
１０４　キーボード制御部
１０５　キーボード
１０６　ディスプレイ制御部
１０７　ディスプレイ装置
１０８　ディスク制御部
１０９　記憶装置
１１０　ネットワーク制御部
１１１，２１８　ネットワーク装置
２１５　プリンタコントローラ
２１６　ディスクコントローラ
２１７　ハードディスク装置
２１９　プリンタエンジン
２２０　ネットワークコントローラ
【図１】
2004118465.tif 000003
【図２】
2004118465.tif 000004
【図３】
2004118465.tif 000005
【図４】
2004118465.tif 000006
【図５】
2004118465.tif 000007
【図６】
2004118465.tif 000008
【図７】
2004118465.tif 000009
【図８】
2004118465.tif 000010
【図９】
2004118465.tif 000011
【図１０】
2004118465.tif 000012
【図１１】
2004118465.tif 000013
【図１２】
2004118465.tif 000014
【図１３】
2004118465.tif 000015