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