(57)【要約】【課題】リンク情報で関連付けた複数のテキストを印刷するための操作が煩わしかった。【解決手段】上位階層のテキストを選択する上位階層テキスト選択手段１２と、上位階層テキスト選択手段１２により選択された上位階層のテキストに含まれるリンク情報が選択された場合、そのリンク情報に対応した下位階層のテキストを選択する下位階層テキスト選択手段１３と、上位階層テキスト選択手段１２により選択された上位階層のテキストと下位階層テキスト選択手段１３により選択された下位階層のテキストとを合成するとともに、このテキスト合成に際して、上位階層のテキストに含まれるリンク情報の位置に下位階層のテキストを挿入するか、上位階層のテキストの後ろに下位階層のテキストを追加することにより、上位階層のテキストと下位階層のテキストとを合成する合成手段１５と、その合成テキストを印刷する印刷手段とを備えたテキスト印刷システム。【選択図】図５
2005071393.tif 000002
【特許請求の範囲】
【請求項１】
印刷すべき上位階層のテキストを選択するための上位階層テキスト選択手段と、
前記上位階層テキスト選択手段により選択された上位階層のテキストに含まれるリンク情報が選択された場合に、そのリンク情報に対応した下位階層のテキストを選択する下位階層テキスト選択手段と、
前記上位階層テキスト選択手段により選択された上位階層のテキストと前記下位階層テキスト選択手段により選択された下位階層のテキストとを合成するテキスト合成手段と、
前記テキスト合成手段により合成されたテキストを印刷する印刷手段とを備え、
前記テキスト合成手段は、前記上位階層のテキストに含まれる前記リンク情報の位置に前記下位階層のテキストを挿入するか、前記上位階層のテキストの後ろに前記下位階層のテキストを追加することにより、前記上位階層のテキストと前記下位階層のテキストとを合成する
ことを特徴とするテキスト印刷システム。
【請求項２】
前記合成手段は、前記リンク情報に対応した下位階層のテキスト全てを合成する
ことを特徴とする請求項１記載のテキスト印刷システム。
【請求項３】
請求項１記載のテキスト印刷システムにおいてさらに、
前記合成手段により合成されたテキストの識別情報を記憶する合成済テキスト記憶手段を有し、
前記合成手段は、前記合成済テキスト記憶手段に記憶された前記識別情報に対応するテキストを合成対象から除外する
ことを特徴とするテキスト印刷システム。
【請求項４】
印刷すべき上位階層のテキストを選択するための上位階層テキスト選択処理と、
前記上位階層テキスト選択処理により選択された上位階層のテキストに含まれるリンク情報が選択された場合に、そのリンク情報に対応した下位階層のテキストを選択する下位階層テキスト選択処理と、
前記上位階層テキスト選択処理により選択された上位階層のテキストと前記下位階層テキスト選択処理により選択された下位階層のテキストとを合成するテキスト合成処理と、
前記テキスト合成処理により合成されたテキストを印刷する印刷処理とを備え、
前記テキスト合成処理においては、前記上位階層のテキストに含まれる前記リンク情報の位置に前記下位階層のテキストを挿入するか、前記上位階層のテキストの後ろに前記下位階層のテキストを追加することにより、前記上位階層のテキストと前記下位階層のテキストとを合成する
ことを特徴とするテキスト印刷方法。
【請求項５】
印刷すべき上位階層のテキストを選択するための上位階層テキスト選択手段と、
前記上位階層テキスト選択手段により選択された上位階層のテキストに含まれるリンク情報が選択された場合に、そのリンク情報に対応した下位階層のテキストを選択する下位階層テキスト選択手段と、
前記上位階層テキスト選択手段により選択された上位階層のテキストと前記下位階層テキスト選択手段により選択された下位階層のテキストとを合成するとともに、当該テキスト合成に際して、前記上位階層のテキストに含まれる前記リンク情報の位置に前記下位階層のテキストを挿入するか、前記上位階層のテキストの後ろに前記下位階層のテキストを追加することにより、前記上位階層のテキストと前記下位階層のテキストとを合成するテキスト合成手段と、
前記テキスト合成手段により合成されたテキストの印刷情報を印刷手段に出力する出力手段と
を備えることを特徴とするテキスト処理システム。
【請求項６】
印刷すべき上位階層のテキストを選択するための上位階層テキスト選択処理と、
前記上位階層テキスト選択処理により選択された上位階層のテキストに含まれるリンク情報が選択された場合に、そのリンク情報に対応した下位階層のテキストを選択する下位階層テキスト選択処理と、
前記上位階層テキスト選択処理により選択された上位階層のテキストと前記下位階層テキスト選択処理により選択された下位階層のテキストとを合成するとともに、当該テキスト合成に際して、前記上位階層のテキストに含まれる前記リンク情報の位置に前記下位階層のテキストを挿入するか、前記上位階層のテキストの後ろに前記下位階層のテキストを追加することにより、前記上位階層のテキストと前記下位階層のテキストとを合成するテキスト合成処理と、
前記テキスト合成処理により合成されたテキストの印刷情報を印刷手段に出力する出力処理と
を備えることを特徴とするテキスト処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各々のテキストに含まれるリンク情報によって関連付けられた複数のテキストを印刷する際に用いて好適なテキスト印刷システム、テキスト印刷方法、テキスト処理システム及びテキスト処理方法に関する。
【背景技術】
【０００２】
従来より、相互に関連付けられたテキスト（例えばハイパーテキスト）を印刷可能なテキスト印刷システムにおいては、任意の階層のテキストを印刷するにあたり、その印刷対象となるテキストをウインドウに表示しつつ、印刷実行を指示することで、一階層のテキストが印刷処理されるようになっている。最近では、テキスト印刷に関するオペレータ側の要求として、印刷すべき上位階層のテキストだけでなく、その上位階層のテキストに含まれるリンク情報にて関連付けられた下位階層のテキストも一緒に印刷したいという要求がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら従来のテキスト印刷システムでは、印刷すべきテキストをウインドウに表示した状態でないと、印刷の指示が行えないため、リンク情報にて関連付けられた下位階層のテキストを印刷する場合は、その下位階層のテキストをいちいちウインドウに表示してから印刷を指示しなければならなかった。そのため、テキスト印刷に関わる同様の操作を何度も繰り返す必要があり、オペレータの操作が非常に煩わしいものとなっていた。
【課題を解決するための手段】
【０００４】
本発明に係るテキスト印刷システムは、印刷すべき上位階層のテキストを選択するための上位階層テキスト選択手段と、前記上位階層テキスト選択手段により選択された上位階層のテキストに含まれるリンク情報が選択された場合に、そのリンク情報に対応した下位階層のテキストを選択する下位階層テキスト選択手段と、前記上位階層テキスト選択手段により選択された上位階層のテキストと前記下位階層テキスト選択手段により選択された下位階層のテキストとを合成するテキスト合成手段と、前記テキスト合成手段により合成されたテキストを印刷する印刷手段とを備え、前記テキスト合成手段は、前記上位階層のテキストに含まれる前記リンク情報の位置に前記下位階層のテキストを挿入するか、前記上位階層のテキストの後ろに前記下位階層のテキストを追加することにより、前記上位階層のテキストと前記下位階層のテキストとを合成するものである。
【０００５】
本発明に係るテキスト印刷システムにおいては、印刷すべき上位階層のテキストが上位階層テキスト選択手段を介して選択されると、その上位階層のテキストに含まれるリンク情報に対応した下位階層のテキストが下位階層テキスト選択手段により選択される。また、こうして選択された上位階層及び下位階層のテキストは合成手段により合成された後、印刷手段によって印刷される。また、合成手段によるテキスト合成に際しては、上位階層のテキストに含まれるリンク情報の位置に下位階層のテキストを挿入するか、上位階層のテキストの後ろに下位階層のテキストを追加することにより、上位階層のテキストと下位階層のテキストとが合成される。を合成する
これにより、リンク情報にて関連付けられた下位階層のテキストをいちいちウインドウ上に表示しなくても、上位階層のテキストとこれに関連した下位階層のテキストとを一度の操作で印刷処理することが可能となる。
【発明の効果】
【０００６】
本発明によれば、リンク情報にて関連付けられた下位階層のテキストをいちいちウインドウ上に表示しなくても、上位階層のテキストとこれに関連した下位階層のテキストとを一度の操作で印刷処理することができる。これにより、リンク情報にて関連付けられた複数のテキストを印刷する場合、従来のように下位階層のテキストをいちいちウインドウ上に表示しなくても済むようになるため、オペレータの操作を大幅に簡素化することができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の具体的な実施の形態について図面を参照しつつ詳細に説明する。
【０００８】
図１は本発明が適用されるテキスト印刷システムの概略構成図である。先ず、図１（ａ）においては、パーソナルコンピュータ等からなるコンピュータ装置１にケーブルを介してプリンタ装置２が接続されている。このうち、コンピュータ装置１の制御系の構成を図１（ｂ）に示す。同図において、ＣＰＵ（中央処理装置）３は、ＲＡＭ（ランダムアクセス・メモリ）４またはＲＯＭ（リードオンリー・メモリ）５に格納された制御プログラムに従って処理動作を行い、テキスト印刷システム全体の処理動作を制御するものである。さらに詳述すると、ＣＰＵ３は、電源投入時にＲＯＭ５に格納されている制御プログラムに従って処理動作を実行し、これによってハードディスク制御部６を介して、ハードディスク中の初期化コマンド・ファイルを読み込む。さらに、読み込んだコマンド・ファイルを実行することにより、ハードディスク中の制御プログラムをＲＡＭ４中に読み込み、その読み込んだ制御プログラムに従って各種の処理動作を実行する。
【０００９】
ＣＲＴ／ＫＢ制御部７は、コンピュータ装置１の本体部分に接続されたディスプレイ装置、キーボード装置、ポイント・デバイス装置（マウス、トラック・ボール等）を制御するもので、これはＲＡＭ４中に読み込まれた制御プログラムに従って制御される。ネットワーク制御部８は、ネットワークへのデータの送受信を行うもので、これもＲＡＭ４中に読み込まれた制御プログラムに従って制御される。プリンタ・インタフェース制御部９は、プリンタ装置２へのデータの出力を行うもので、これもまたＲＡＭ４中に読み込まれた制御プログラムに従って制御される。
【００１０】
図２はコンピュータ装置１によって処理されるテキストの概念図である。図２においては、複数の階層からなるテキストＴ１〜Ｔ５が、各々のテキストに含まれる文字列にて関連付けられている。さらに詳述すると、テキストＴ１の下位階層のテキストがテキストＴ２に相当し、このテキストＴ２の下位階層のテキストがテキストＴ３に相当し、さらにテキストＴ３の下位階層のテキストがテキストＴ４及びＴ５に相当する。また、テキストＴ１に含まれる文字列：Ｓａｍｐｌｅや、テキストＴ２に含まれる文字列：ＡＡＡ及びＢＢＢ、さらにテキストＴ３に含まれる文字列：ＸＸＸ及びＹＹＹが、下位階層のテキストへのリンクが施された文字列、つまりリンク情報に相当するものであり、これらのリンク情報によって複数のテキストＴ１〜Ｔ５が関連付けられている。なお、ここでは、各々のテキストに含まれる文字列にリンクを設定するようにしたが、これ以外にも、例えばアイコンやイメージ等にリンクを設定することも可能である。
【００１１】
ここで、図３にテキストＴ２の原テキスト、即ちテキストＴ２の内容を表現した記述言語を示し、図４にテキストＴ２をコンピュータ装置１のウインドウ上に表示した例を示す。先ず図３に示す原テキストにおいて、<h1>Title:Sample</h1> は、Title:Sampleをヘッダ文字列としてウインドウ上に表示することを表し、<p> は改行を表している。また、<a href=″aaa.html″>AAA</a>は、文字列ＡＡＡをウインドウ上に表示し、この文字列ＡＡＡがファイルaaa.htmlにリンクされていることを表している。ちなみに、図例の場合は、文字列ＡＡＡが下線付きで表示され、この文字列（領域）がマウス等でクリックされると、上述したファイルaaa.htmlが読み出されて、リンク先のテキストＴ３がウインドウ上に表示されるようになっている。この点は、<a href=″bbb.html″>BBB</a>についても同様である。
【００１２】
次いで、上述したテキストＴ１〜Ｔ５を印刷する場合の処理手順について説明する。このテキスト印刷のための処理は、上記制御プログラムを実行するＣＰＵ３によって行われるものであり、そのための機能ブロック図を図５に示す。図５において、テキスト表示手段１０は、装置本体に接続されたディスプレイ装置に文書表示ウインドウ（図４参照）を表示するとともに、テキスト読み出し手段１１により作業領域中に読み出した任意のテキストを、ディスプレイ用のビットマップデータに変換して、上述した文書表示ウインドウ中に表示するものである。上位階層テキスト選択手段１２は、印刷すべき上位階層のテキストを選択するためのもので、例えば、文書表示ウインドウのオープン・ボタンがクリックされた場合にテキスト表示手段１０から呼び出され、テキスト読み出し手段１１が読み出すテキストのファイル名をオペレータが指定できるようにする。このとき、オペレータによりハードディスクのデバイス名が指定された場合は、テキスト読み出し手段１１が、上述したハードディスク制御部６を介して、指定のハードディスク装置からテキストを読み出す。また、オペレータによりネットワーク・デバイスのファイル名が指定された場合は、テキスト読み出し手段１１が、ネットワーク制御部８を介して、ネットワーク上の他のコンピュータ装置（サーバ等）から送信されたテキストを読み出す。
【００１３】
下位階層テキスト選択手段１３は、上述した上位階層テキスト選択手段１２により選択された上位階層のテキストに含まれるリンク情報（本例ではリンクが設定された文字列）に対応した下位階層のテキストを選択するもので、例えば、ウインドウ中に表示しているテキストの他のテキストへのリンクが存在する文字列を選択することで、これにリンクしている下位階層のテキストを印刷対象とする旨をオペレータ側で指定できるようになっている。作業領域中テキスト変更手段１４は、作業領域中のテキストに含まれる文字列が選択された場合、その原テキストのリンクが記述された部分を変更するものである。
【００１４】
合成手段１５は、上位階層テキスト選択手段１２により選択された上位階層のテキストと下位階層テキスト選択手段１３により選択された下位階層のテキストとを合成するもので、例えば、下位階層テキスト選択手段１３により選択されたテキストを適宜作業領域に読み出しながら、そのテキストの内容をプリンタ出力用のビットマップに変換する。出力手段１６は、上記合成手段１５により合成されたテキストの印刷情報を出力するもので、例えば、合成手段１５にて合成されたテキストのビットマップを印刷情報とし、これを上記プリンタ・インタフェース制御部９を介してプリンタ装置２に出力する。合成済テキスト記憶手段１７は、上記合成手段１５によって合成されたテキストの識別情報（後述）を記憶するものである。
【００１５】
次に、印刷対象となる下位階層のテキストを選択する際の操作手順について図６を参照しつつ説明する。先ず、図６（ａ）に示すように、印刷すべき上位階層のテキスト、例えばテキストＴ２を上位階層テキスト選択手段１２により選択し、この選択したテキストＴ２をウインドウ上に表示した状態で、文書表示ウインドウの印刷ボタンを選択する。これにより、図６（ｂ）に示すように、印刷用のプルダウン・メニューが表示されるため、そのプルダウン・メニューの中から「次の階層を選択」または「以下の階層を選択」を選択する。ここで、「次の階層を選択」または「以下の階層を選択」を選択すると、図６（ｃ）に示すようにカーソルの形状が変化するため、これをディスプレイ上で確認したのち、リンクが施された文字列、つまり下線付きの文字列ＡＡＡを選択する。これにより図６（ｄ）に示すように、選択された文字列ＡＡＡの下線が実線表示から破線表示に変更され、この時点で下位階層のテキストの選択操作が完了する。
【００１６】
続いて、上記選択操作におけるコンピュータ装置１の内部処理につき、図７のフローチャートを参照しつつ説明する。先ず、文書表示ウインドウの印刷ボタンが選択された場合は、これに応じてウインドウ中にプルダウン・メニューを表示する（ステップＳ１）。次に、プルダウン・メニューの中から「次の階層を選択」または「以下の階層を選択」が選択されたか否かを判定し（ステップＳ２）、いずれか一方が選択された場合はカーソル形状を変更する（ステップＳ３）。次いで、マウス等のポイント・デバイス装置がクリックされるのを待ち（ステップＳ４）、クリックされた時点でそのクリック座標を取得する（ステップＳ５）。
【００１７】
次に、先程取得したクリック座標が、リンクが施された文字列（図６中の文字列：ＡＡＡ）の表示範囲であるか否かを判定する（ステップＳ６）。ここで、先に取得したクリック座標が文字列の表示範囲であれば、作業領域中の原テキストを変更したのち（ステップＳ７）、リンクが施された文字列の下線（実線）を消去して破線を描画する（ステップＳ８）。これに対し、先に取得したクリック座標が文字列の表示範囲外であれば、その時点で処理を終了する。なお、ステップＳ１にて表示されたプルダウン・メニューの中から「次の階層を選択」または「以下の階層を選択」が選択されなかった場合はステップＳ２からステップＳ９に移行し、そこで今度はプルダウン・メニューの中から「印刷実行」が選択されたか否かを判定する。ここで、「印刷実行」が選択された場合は印刷のための処理Ａに進み、「印刷実行」が選択されなかった場合、例えばプルダウン・メニューの枠外が選択された場合は、その時点で処理を終了する。
【００１８】
ここで、作業領域中テキスト変更手段１４による原テキストの変更例を図８に示す。図８（ａ）は、上述したプルダウン・メニューの中から「次の階層を選択」が選択された場合のテキスト変更例を示しており、この例ではタグ<a href …> がタグ<a href-print …> に変更されている。一方、図８（ｂ）は、プルダウン・メニューの中から「以下の階層を選択」が選択された場合のテキスト変更例を示しており、この例ではタグ<a href …> がタグ<a href-print-recursive …> に変更されている。
【００１９】
続いて、上述のごとく選択したテキストを印刷する際の操作手順につき図９を参照しつつ説明する。先ず、図９（ａ）に示すように、ディスプレイ上に表示された文書表示ウインドウの印刷ボタンを選択する。これにより図９（ｂ）に示すように、先程と同様のプルダウン・メニューが表示されるため、そのプルダウン・メニューの中から「印刷実行」を選択する。そうすると図９（ｃ）に示すように、印刷モード指定サブ・ウインドウが表示されるため、実際に印刷処理を実行する場合は上記印刷モード指定サブ・ウインドウの中から「挿入」または「追加」を選択し、印刷処理を取り消す場合は「取消」を選択する。
【００２０】
図１０は上述した操作手順に従って実際にテキストを印刷した場合の印刷結果を示す模式図である。このうち、図１０（ａ）は「次の階層を選択」で下位階層のテキストが選択され且つ印刷モードとして「挿入」が選択された場合の印刷結果を示し、図１０（ｂ）は「以下の階層を選択」で下位階層のテキストが選択され且つ印刷モードとして「挿入」が選択された場合の印刷結果を示している。一方、図１０（ｃ）は「次の階層を選択」で下位階層のテキストが選択され且つ印刷モードとして「追加」が選択された場合の印刷結果を示し、図１０（ｄ）は「以下の階層を選択」で下位階層のテキストが選択され且つ印刷モードとして「追加」が選択された場合の印刷結果を示している。
【００２１】
ここで、印刷モードとして「挿入」が選択された場合の、合成手段１５によるテキストの合成処理につき、図１１のフローチャートに従って説明する。先ず、「挿入」モードでの処理にあたっては、レベルの値を０（零）に設定する（ステップＳ１１）。このレベルは、実際に描画を行っているテキストの階層を示すもので、最上位の階層の描画を行っているときはレベルの値が０となる。  次に、レベル＝０で描画されるテキスト、すなわち印刷すべき上位階層のテキスト（本例ではテキストＴ２）を作業領域に読み込む（ステップＳ１２）。次いで、作業領域内のテキストＴ２の描画が終了したか否かを判定しつつ、作業領域内のテキスト内容に従って描画メモリに描画する（ステップＳ１３，Ｓ１４）。さらに、上記レベルの値が０であるか否かを判定しつつ、「次の階層を選択」または「以下の階層を選択」で選択されたリンク文字列が存在するか否か、つまり原テキストのタグが<a href-print …> または<a href-print-recursive …> になっているか否かを判定する（ステップＳ１５，Ｓ１６）。
【００２２】
こうして作業領域中の上位階層のテキストＴ２を描画している間（レベル＝０の間）に、上記選択されたリンク文字列（本例では文字列ＡＡＡ）を発見すると（ステップＳ１６でＹｅｓ）、そのリンク文字列ＡＡＡの次の行を戻り位置として記憶する（ステップＳ１７）。次いで、先に発見したリンク文字列が「以下の階層を選択」で選択されたもの（タグが<a href-print-recursive …> ）であれば、再帰印刷フラグを真(TRUE)に設定し（ステップＳ１９）、「次の階層を選択」で選択されたもの（タグが<a href-print …> ）であれば、再帰印刷フラグを偽(FALSE) に設定する（ステップＳ２０）。その後、レベルの値をインクリメント（＋１）したのち（ステップＳ２１）、上記ステップＳ１２に戻る。
【００２３】
こうしてレベルが加算されてステップＳ１２に戻ると、レベル＝１で描画されるテキスト、つまり文字列ＡＡＡにて関連付けられた下位階層のテキスト（本例ではＴ３）を新たな作業領域に読み込んだのち（ステップＳ１２）、上記同様に作業領域内のテキストＴ３の描画が終了したか否かを判定しつつ、作業領域内のテキスト内容に従って描画メモリに描画する（ステップＳ１３，Ｓ１４）。以後、下位階層のテキストＴ３を描画している間（レベル＝１の間）に、リンクが施された文字列（本例では文字列ＸＸＸ）を発見すると（ステップＳ２２でＹｅｓ）、再帰印刷フラグが真(TRUE)に設定されているか否かを判定する（ステップＳ２３）。
【００２４】
ここで、再帰印刷フラグが偽(FALSE) に設定されていた場合、つまり「次の階層を選択」で選択されていた場合は、そのままステップＳ１３に戻ってテキストＴ３の描画を継続する。そして、テキストＴ３の描画が終了すると（ステップＳ１３でＹｅｓ）、その作業領域内のテキストＴ３を廃棄する（ステップＳ２５）。続いて、記憶した戻り位置があるか否かを判定し（ステップＳ２６）、戻り位置がある場合はその戻り位置、つまり古い作業領域中に処理を戻す（ステップＳ２７）。この時点では、テキストＴ２の文字列ＡＡＡの次の行が戻り位置として記憶されているため、その位置に処理を戻す。さらに、レベルの値をディクリメント（−１）したのち（ステップＳ２８）、テキストＴ２の文字列ＡＡＡの次の行から描画を再開する。
【００２５】
その後、テキストＴ２の描画が終了すると（ステップＳ１３でＹｅｓ）、上記同様に当該作業領域内のテキストＴ２を廃棄したのち（ステップＳ２５）、再度、記憶した戻り位置があるか否かを判定する（ステップＳ２６）。この時点では、既にテキストＴ２の文字列ＡＡＡの次の行が戻り位置として取り出されているため、記憶した戻り位置がないと判断し、その時点で、「挿入」モードにおける、「次の階層を選択」が選択された場合の一連のテキスト合成処理を終える。
【００２６】
一方、上記ステップＳ２３において再帰印刷フラグが真(TRUE)に設定されていた場合、つまり「以下の階層を選択」で選択されていた場合は、そのリンク文字列の次の行、つまりテキストＴ３の文字列ＸＸＸの次の行を戻り位置として記憶したのち（ステップＳ２４）、レベルの値をインクリメントする（ステップＳ２１）。これにより、レベルの値は“２”に設定される。こうしてレベルの値が“２”に設定されると、それまで描画していたテキストＴ３の下位階層のテキスト、つまり文字列ＸＸＸにて関連付けられたテキストＴ４を新たな作業領域に読み込み、そのテキスト内容に従って描画を行う。そして、テキストＴ４の描画が終了すると（ステップＳ１３でＹｅｓ）、その作業領域内のテキストＴ４を廃棄する（ステップＳ２５）。
【００２７】
続いて、記憶した戻り位置があるか否かを判定し（ステップＳ２６）、戻り位置がある場合はその戻り位置に処理を戻す（ステップＳ２７）。この時点では、テキストＴ２の文字列ＡＡＡの次の行と、テキストＴ３の文字列ＸＸＸの次の行といった二つの戻り位置が記憶されているが、ここでは後に記憶された方の戻り位置、つまりテキストＴ３の文字列ＸＸＸの次の行に処理を戻す。さらに、レベルの値をディクリメント（−１）したのち（ステップＳ２８）、テキストＴ３の文字列ＸＸＸの次の行から描画を再開する。
【００２８】
こうしてテキストＴ３の描画を再開すると、その後、再びリンクが施された文字列（本例では文字列ＹＹＹ）を発見することになる（ステップＳ２２でＹｅｓ）。このとき、再帰印刷フラグは真(TRUE)に設定されていることから、そのリンク文字列の次の行、つまりテキストＴ３の文字列ＹＹＹの次の行を戻り位置として記憶したのち（ステップＳ２４）、上記同様にレベルの値をインクリメントする（ステップＳ２１）。これにより、レベルの値は再び“２”に設定される。こうしてレベルの値が“２”に設定されている間は、それまで描画していたテキストＴ３の下位階層のテキスト、つまり文字列ＹＹＹにて関連付けられた下位階層のテキストＴ５を新たな作業領域に読み込み、そのテキスト内容に従って描画を行う。そして、テキストＴ５の描画が終了すると（ステップＳ１３でＹｅｓ）、その作業領域内のテキストＴ５を廃棄する（ステップＳ２５）。
【００２９】
続いて、記憶した戻り位置があるか否かを判定し（ステップＳ２６）、戻り位置がある場合はその戻り位置に処理を戻す（ステップＳ２７）。この時点では、テキストＴ２の文字列ＡＡＡの次の行と、テキストＴ３の文字列ＹＹＹの次の行といった二つの戻り位置が記憶されているが、ここでは上記同様に、後に記憶された方の戻り位置、つまりテキストＴ３の文字列ＹＹＹの次の行に処理を戻す。さらに、レベルの値をディクリメント（−１）したのち（ステップＳ２８）、テキストＴ３の文字列ＹＹＹの次の行から描画を再開する。
【００３０】
その後、テキストＴ３の描画が終了すると（ステップＳ１３でＹｅｓ）、上記同様に当該作業領域内のテキストＴ３を廃棄したのち（ステップＳ２５）、記憶した戻り位置があるか否かを判定し（ステップＳ２６）、戻り位置がある場合はその戻り位置に処理を戻す（ステップＳ２７）。この時点では、テキストＴ２の文字列ＡＡＡの次の行だけが戻り位置として記憶されているため、その位置に処理を戻す。さらに、レベルの値をディクリメント（−１）したのち（ステップＳ２８）、テキストＴ２の文字列ＡＡＡの次の行から描画を再開する。
【００３１】
その後、テキストＴ２の描画が終了すると（ステップＳ１３でＹｅｓ）、上記同様に当該作業領域内のテキストＴ２を廃棄したのち（ステップＳ２５）、記憶した戻り位置があるか否かの判定を行う（ステップＳ２６）。この時点では、既にテキストＴ２の文字列ＡＡＡの次の行が戻り位置として取り出されているため、記憶した戻り位置がないと判断し、その時点で、「挿入」モードにおける、「以下の階層を選択」が選択された場合の一連のテキスト合成処理を終える。
【００３２】
次に、印刷モードとして「追加」が選択された場合の、合成手段１５によるテキストの合成処理につき、図１２のフローチャートに従って説明する。先ず、「追加」モードでの処理にあたっては、レベルの値を０（零）に設定する（ステップＳ３１）。このレベルは、上記「挿入」モードの場合と同様、実際に描画を行っているテキストの階層を示すもので、最上位の階層の描画を行っているときはレベルの値が０となる。次に、レベル＝０で描画されるテキスト、すなわち印刷すべき上位階層のテキスト（本例ではテキストＴ２）を作業領域に読み込む（ステップＳ３２）。次いで、作業領域内のテキストの描画が終了したか否かを判定しつつ、作業領域内のテキスト内容に従って描画メモリに描画する（ステップＳ３３，Ｓ３４）。さらに、上記レベルの値が０であるか否かを判定しつつ、「次の階層を選択」または「以下の階層を選択」で選択されたリンク文字列が存在するか否か、つまり原テキストのタグが<a href-print …> または<a href-print-recursive …> になっているか否かを判定する（ステップＳ３５，Ｓ３６）。
【００３３】
こうして作業領域中の上位階層のテキストＴ２を描画している間（レベル＝０の間）に、上記選択されたリンク文字列（本例では文字列ＡＡＡ）を発見すると（ステップＳ３６でＹｅｓ）、そのリンク文字列ＡＡＡを記憶する（ステップＳ３７）。次いで、先に発見したリンク文字列ＡＡＡが「以下の階層を選択」で選択されたものであれば、再帰印刷フラグを真(TRUE)に設定し（ステップＳ３９）、「次の階層を選択」で選択されたものであれば、再帰印刷フラグを偽(FALSE) に設定して（ステップＳ４０）、ステップＳ３３に戻る。
【００３４】
その後、テキストＴ２の描画が終了すると（ステップＳ３３でＹｅｓ）、レベルの値が“０”であるか否かを判定し（ステップＳ４１）、レベルの値が“０”でない場合は当該レベルの値を“１”に設定する（ステップＳ４２）。続いて、記憶したリンク文字列があるか否かを判定し（ステップＳ４３）、リンク文字列がある場合はこれを取り出す。この時点では、文字列ＡＡＡだけしか記憶されていないため、その文字列ＡＡＡを取り出すことになるが、複数のリンク文字列が記憶されている場合には、先頭（先に記憶された方）のリンク文字列を抽出して取り出す。
【００３５】
次いで、先に取り出したリンク文字列ＡＡＡにて関連付けられた下位階層のテキストＴ３を新たな作業領域に読み込んだのち（ステップＳ３２）、上記同様に作業領域内のテキストＴ３の描画が終了したか否かを判定しつつ、作業領域内のテキスト内容に従って描画メモリに描画する（ステップＳ３３，Ｓ３４）。以後、下位階層のテキストＴ３を描画している間に、リンクが施された文字列（本例では文字列ＸＸＸ）を発見すると（ステップＳ４５でＹｅｓ）、再帰印刷フラグが真(TRUE)に設定されているか否かを判定する（ステップＳ４６）。
【００３６】
ここで、再帰印刷フラグが偽(FALSE) に設定されていた場合、つまり「次の階層を選択」で選択されていた場合は、そのままステップＳ３３に戻ってテキストＴ３の描画を継続する。そして、テキストＴ３の描画が終了すると（ステップＳ３３でＹｅｓ）、再び、記憶したリンク文字列があるか否かを判定する（ステップＳ４３）。この時点では、既にリンク文字列ＡＡＡが取り出されているため、記憶したリンク文字列がないと判断し、その時点で、「追加」モードにおける、「次の階層を選択」が選択された場合の一連のテキスト合成処理を抜ける。
【００３７】
一方、上記ステップＳ４６において再帰印刷フラグが真(TRUE)に設定されていた場合、つまり「以下の階層を選択」で選択されていた場合は、上記ステップＳ４５で発見したリンク文字列ＸＸＸを記憶し（ステップＳ４７）、テキストＴ３の描画を継続する。このテキストＴ３の描画を行っている間に、再びリンク文字列（本例では文字列ＹＹＹ）を発見した場合は、そのリンク文字列ＹＹＹについても順次記憶しておく。その後、テキストＴ３の描画が終了すると（ステップＳ３３でＹｅｓ）、上記同様に記憶したリンク文字列があるか否かを判定する（ステップＳ４３）。この時点では、文字列ＸＸＸと文字列ＹＹＹといった二つのリンク文字列が記憶されているため、上述のごとく先頭の（先に記憶された方の）文字列ＸＸＸを取り出す（ステップＳ４４）。続いて、先に取り出した文字列ＸＸＸにて関連付けられた下位階層のテキストＴ４を作業領域に読み込んだのち（ステップＳ３２）、上記同様に作業領域内のテキストＴ４の描画が終了したか否かを判定しつつ、作業領域内のテキスト内容に従って描画メモリに描画する（ステップＳ３３，Ｓ３４）。
【００３８】
その後、テキストＴ４の描画が終了すると（ステップＳ３３でＹｅｓ）、再び、記憶したリンク文字列があるか否かを判定する（ステップＳ４３）。この時点では、既に文字列ＸＸＸが取り出されていることから、文字列ＹＹＹだけしか記憶されていないため、その文字列ＹＹＹを取り出す（ステップＳ４４）。さらに、取り出したリンク文字列ＹＹＹにて関連付けられた下位階層のテキストＴ５を新たな作業領域に読み込んだのち（ステップＳ３２）、上記同様に作業領域内のテキストＴ５の描画が終了したか否かを判定しつつ、作業領域内のテキスト内容に従って描画メモリに描画する（ステップＳ３３，Ｓ３４）。そして、テキストＴ５の描画が終了すると、再度、記憶したリンク文字列があるか否かを判定する（ステップＳ４３）。この時点では、既に文字列ＸＸＸと文字列ＹＹＹの両方が取り出されているため、記憶したリンク文字列がないと判断し、その時点で、「追加」モードにおける、「以下の階層を選択」が選択された場合の一連のテキスト合成処理を抜ける。
【００３９】
こうして合成手段１５により合成されたテキストの印刷情報（ビットマップ）は、出力手段１６によってプリンタ装置２に出力される。これによりプリンタ装置２では、コンピュータ装置１の出力手段１６から出力されたテキストの印刷情報に従って所定の印刷処理を実行する。
【００４０】
その結果、「挿入」モードにおいて「次の階層を選択」でテキストを合成した場合は、先の図１０（ａ）に示したように、テキストＴ２の文字列ＡＡＡの後に、該文字列ＡＡＡにて関連付けられた下位階層のテキストＴ３が挿入されたかたちで合成テキストが印刷される。また、同じ「挿入」モードでも「以下の階層を選択」でテキストを合成した場合は、先の図１０（ｂ）に示したように、テキストＴ２の文字列ＡＡＡの後に、該文字列ＡＡＡにて関連付けられた下位階層のテキストＴ３が挿入されるとともに、そのテキストＴ３の文字列ＸＸＸの後には、該文字列ＸＸＸにて関連付けられた下位階層のテキストＴ４が、またテキストＴ３の文字列ＹＹＹの後には、該文字列ＹＹＹにて関連付けられた下位階層のテキストＴ５がそれぞれ挿入されたかたちで合成テキストが印刷される。
【００４１】
一方、「追加」モードにおいて「次の階層を選択」でテキストを合成した場合は、先の図１０（ｃ）に示したように、テキストＴ２の後ろに、該テキストＴ２に含まれる文字列ＡＡＡにて関連付けられた下位階層のテキストＴ３が追加されたかたちで合成テキストが印刷される。また、同じ「追加」モードでも「以下の階層を選択」でテキストを合成した場合は、先の図１０（ｄ）に示すように、テキストＴ２の後ろに、該テキストＴ２に含まれる文字列ＡＡＡにて関連付けられた下位階層のテキストＴ３が追加されるとともに、そのテキストＴ３の後ろに、該テキストＴ３に含まれる文字列ＸＸＸおよび文字列ＹＹＹにて関連付けられた下位階層のテキストＴ４，Ｔ５が順に追加されたかたちで合成テキストが印刷される。
【００４２】
ここで、「以下の階層を選択」でテキストの合成処理を行う場合、一つの階層のテキスト中にリンクが施された同一の文字列（リンク情報）が複数存在すると、同じ内容のテキストが重複して印刷される虞れがある。また、任意の階層のテキスト中にそれよりも上位階層のテキストにリンクする文字列（リンク情報）が存在すると、上述したテキストの合成処理が無限ループになってしまう虞れもある。
【００４３】
そこで本実施形態においては、上述した二つの不都合を解消すべく、以下のような手段を採用することとした。すなわち、合成手段１５によって合成されたテキストの識別情報を記憶する合成済テキスト記憶手段１７を付加し、この合成済テキスト記憶手段１７に記憶された上記識別情報に対応するテキストについては、合成手段１５がその合成対象から除外することとした。
【００４４】
例えば、「挿入」モードでのテキスト合成処理においては、リンクが施された文字列を発見した際に、その文字列を合成済テキストの識別情報として合成済テキスト記憶手段１７に記憶しておく。そして、その後の処理中に、リンクが施された文字列を発見した場合は、その発見した文字列と同一の文字列が合成済テキスト記憶手段１７に記憶されていないかどうかを確認し、記憶されていない場合に限り、その文字列の次の行を戻り位置として記憶する。一方、「追加」モードでのテキスト合成処理においても、リンクが施された文字列を発見した際に、その文字列を合成済テキストの識別情報として合成済テキスト記憶手段１７に記憶しておく。そして、その後の処理中に、リンクが施された文字列を発見した場合は、その発見した文字列と同一の文字列が合成済テキスト記憶手段１７に記憶されていないかどうかを確認し、記憶されていない場合に限り、その文字列を記憶する。
【００４５】
これにより、一度のテキスト合成処理に際して、合成手段１５により合成されたテキストについては、繰り返し合成されることを阻止できることから、上述したように一つの階層のテキスト中にリンクが施された同一の文字列（リンク情報）が複数存在する場合や、任意の階層のテキスト中にそれよりも上位階層のテキストにリンクする文字列（リンク情報）が存在する場合でも、同じ内容のテキストが重複して印刷されてしまったり、テキストの合成処理が無限ループになってしまうことがなくなる。
【００４６】
なお、上記他の実施形態においては、最上位階層のテキストに含まれるリンク情報のみを抽出するようにしたが、さらにそれよりも下位階層のテキストに含まれるリンク情報をも抽出することで、上記一連の処理を再帰的に行うことも可能である。また、本発明に係るテキスト印刷システムは、ハイパーテキストを印刷するものに限らず、所定のリンク情報で関連付けられたハイパーテキスト以外のテキストを印刷する場合においても同様に適用することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明が適用されるテキスト印刷システムの概略構成図である。
【図２】テキストの概念図である。
【図３】テキストの記述言語を示す図である。
【図４】テキストの表示例を示す図である。
【図５】テキスト印刷のための機能ブロック図である。
【図６】テキストを選択する際の操作手順を説明する図である。
【図７】テキスト選択操作における装置内部の処理を説明するフローチャートである。
【図８】原テキストの変更例を示す図である。
【図９】テキストを印刷する際の操作手順を説明する図である。
【図１０】印刷結果の一例を示す模式図である。
【図１１】「挿入」モードにおけるテキスト合成処理を説明するフローチャートである。
【図１２】「追加」モードにおけるテキスト合成処理を説明するフローチャートである。
【符号の説明】
【００４８】
１…コンピュータ装置、２…プリンタ装置（印刷手段）、１２…上位階層テキスト選択手段、１３…下位階層テキスト選択手段、１５…合成手段、１６…出力手段、１７…合成済テキスト記憶手段
【図１】
2005071393.tif 000003
【図２】
2005071393.tif 000004
【図３】
2005071393.tif 000005
【図４】
2005071393.tif 000006
【図５】
2005071393.tif 000007
【図６】
2005071393.tif 000008
【図７】
2005071393.tif 000009
【図８】
2005071393.tif 000010
【図９】
2005071393.tif 000011
【図１０】
2005071393.tif 000012
【図１１】
2005071393.tif 000013
【図１２】
2005071393.tif 000014