(57)【要約】【課題】文書データに関連付けられている改ページを禁止する改ページ禁止情報を利用した適切な改ページ処理を行うことを可能にする。【解決手段】改ページ可能位置ポインタｐｐを設け、改ページを禁止する改ペー禁止情報（ＡＡ、ＩＡ、ＢＡ）に基づいて、ページの上から順に改ページ可能位置を見つける。そして、下マージンを越えると、改ページ可能位置ポインタｐｐの内容に基づいて改ページ位置を決定する。【選択図】　　　　図１１
2004021383.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語によって記述された文書データをページ上に配置する配置手段と、
前記文書データに関連付けられている改ページを禁止する改ページ禁止情報に基づいて、改ページ可能位置を検出する検出手段と、
前記検出手段によって検出された前記改ページ可能位置を記憶する記憶手段と、
前記記憶手段に記憶された前記改ページ可能位置に基づいてページの上限と下限との間に属する前記改ページ可能位置を改ページ位置として決定する決定手段と、
を備えたことを特徴とする印刷制御装置。
【請求項２】
ページの下限に近い改ページ可能位置が前記検出手段によって検出されると、前記記憶手段に記憶されている前記改ページ可能位置を更新する更新手段をさらに備えたことを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記決定手段は、改ページが必要になった時点で前記記憶手段に前記改ページ可能位置が記憶されていない場合には、前記改ページが必要になった直前の位置を前記改ページ位置に決定することを特徴とする請求項１又は請求項２に記載の印刷制御装置。
【請求項４】
前記文書データは、文字列によって構成される文字列データであって、少なくとも左端と右端とを特定した左右配置領域に従ってページ上の位置が決められるとともに、
前記配置手段は、前記文字列データをページ上に配置する際に、当該文字列データの前記左右配置領域を越える文字列データを改行した次の行に配置させ、
前記検出手段は、前記改ページ禁止情報及び前記配置手段による文字列データの配置結果に基づいて、改ページ可能位置を検出することを特徴とする請求項１乃至請求項３のいずれか１項に記載の印刷制御装置。
【請求項５】
前記文書データは、少なくとも上端と下端とを特定した上下配置領域に従ってページ上の位置が決められるとともに、
前記改ページ禁止情報は、前記上下配置領域の上方で改ページを禁止するものと、前記上下配置領域内で改ページを禁止するものと、前記上下配置領域における下方で改ページを禁止するものと、であることを特徴とする請求項１乃至請求項４のいずれか１項に記載の印刷制御装置。
【請求項６】
前記改ページ可能位置を前記記憶手段に記憶する際に該改ページ可能位置に優先度を付与する付与手段をさらに備え、
前記決定手段は、前記記憶手段に複数の前記改ページ可能位置が複数記憶されている場合は、前記付与手段により付与された優先度に基づいて改ページ位置を決定することを特徴とする請求項１に記載の印刷制御装置。
【請求項７】
ページ記述言語によって記述された文書データをページ上に配置する配置手段と、
前記文書データに関連付けられている改ページを禁止する改ページ禁止情報に基づいて、改ページ可能位置を検出する検出手段と、
前記検出手段によって検出された前記改ページ可能位置を記憶する記憶手段と、
前記記憶手段に記憶された前記改ページ可能位置に基づいてページの上限と下限との間に属する前記改ページ可能位置を改ページ位置として決定する決定手段と、
前記決定手段により決定された改ページ位置に基づいて改ページを行いつつ印刷を行う印刷手段と、
を備えたことを特徴とする印刷装置。
【請求項８】
コンピュータを、
ページ記述言語によって記述された文書データをページ上に配置する配置手段と、
前記文書データに関連付けられている改ページを禁止する改ページ禁止情報に基づいて、改ページ可能位置を検出する検出手段と、
前記検出手段によって検出された前記改ページ可能位置を記憶する記憶手段と、
前記記憶手段に記憶された前記改ページ可能位置に基づいてページの上限と下限との間に属する前記改ページ可能位置を改ページ位置として決定する決定手段と、
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、改ページ位置を決定する印刷制御装置、印刷装置、及びプログラムに関する。
【０００２】
【従来の技術】
従来、ＷｅｂページのレイアウトはＨＴＭＬ（Ｈｙｐｅｒ　Ｔｅｘｔ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）を用いて記述され、ＨＴＭＬにはレイアウトに関する仕様が大量に取り込まれるようになった。しかし、これは、文書の論理構造を記述するという本来のＨＴＭＬの目的に反する。このため、文書の視覚的構造を規定する枠組みとしてＣＳＳ（Ｃａｓｃａｄｉｎｇ　Ｓｔｙｌｅ　Ｓｈｅｅｔ：詳しくは、ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ＲＥＣ−ＣＳＳ２参照。）が新たに策定された。ＣＳＳを使用すると、フォントや文字の大きさ、文字飾り、行間などの見栄えに関する情報を文書本体及び文書の論理構造を記述したＨＴＭＬから切り離すことができ、ユーザが複数のレイアウトから適当なものを選択することができるようになる。
【０００３】
【発明が解決しようとする課題】
このＣＳＳには、改ページを禁止するコマンドが規定されている。このコマンドとして、文書の前での改ページを禁止するコマンド（Ｂｅｆｏｒｅ　Ａｖｏｉｄ：ＢＡ）、文書内部での改ページを禁止するコマンド（Ｉｎｓｉｄｅ　Ａｖｏｉｄ：ＩＡ）、文書の後での改ページを禁止するコマンド（Ａｆｔｅｒ　Ａｖｏｉｄ：ＡＡ）が規定されている。発明者らは、このような改ページを禁止するコマンドを利用して改ページを行う技術を見つけるに至っていない。
【０００４】
本発明は、文書データに関連付けられている改ページを禁止する改ページ禁止情報を利用した適切な改ページ処理を行うことが可能な印刷制御装置、印刷装置、及びプログラムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
請求項１に記載の印刷制御装置は、ページ記述言語によって記述された文書データをページ上に配置する配置手段と、前記文書データに関連付けられている改ページを禁止する改ページ禁止情報に基づいて、改ページ可能位置を検出する検出手段と、前記検出手段によって検出された前記改ページ可能位置を記憶する記憶手段と、前記記憶手段に記憶された前記改ページ可能位置に基づいてページの上限と下限との間に属する前記改ページ可能位置を改ページ位置として決定する決定手段と、を備えたことを特徴とする。
【０００６】
請求項７に記載の印刷装置は、ページ記述言語によって記述された文書データをページ上に配置する配置手段と、前記文書データに関連付けられている改ページを禁止する改ページ禁止情報に基づいて、改ページ可能位置を検出する検出手段と、前記検出手段によって検出された前記改ページ可能位置を記憶する記憶手段と、前記記憶手段に記憶された前記改ページ可能位置に基づいてページの上限と下限との間に属する前記改ページ可能位置を改ページ位置として決定する決定手段と、前記決定手段により決定された改ページ位置に基づいて改ページを行いつつ印刷を行う印刷手段と、を備えたことを特徴とする。
【０００７】
請求項８に記載のプログラムは、コンピュータを、ページ記述言語によって記述された文書データをページ上に配置する配置手段と、前記文書データに関連付けられている改ページを禁止する改ページ禁止情報に基づいて、改ページ可能位置を検出する検出手段と、前記検出手段によって検出された前記改ページ可能位置を記憶する記憶手段と、前記記憶手段に記憶された前記改ページ可能位置に基づいてページの上限と下限との間に属する前記改ページ可能位置を改ページ位置として決定する決定手段と、して機能させることを特徴とする。
【０００８】
請求項１、請求項７、請求項８によると、改ページを禁止する改ページ禁止情報に基づいて改ページ可能位置を検出し、検出した改ページ可能位置から改ページ位置を決定するため、改ページ禁止情報を利用した適切な改ページ処理を行なうことが可能になる。
【０００９】
請求項２に記載の印刷制御装置は、ページの下限に近い改ページ可能位置が前記検出手段によって検出されると、前記記憶手段に記憶されている前記改ページ可能位置を更新する更新手段をさらに備えたことを特徴とする。
【００１０】
請求項２によると、記憶手段にはページの下限に近い改ページ可能位置のみが更新されつつ記憶されるので、記憶手段は１つの改ページ可能位置を記憶できれば足り、記憶手段の容量が小さくてよい。
【００１１】
請求項３に記載の印刷制御装置は、前記決定手段は、改ページが必要になった時点で前記記憶手段に前記改ページ可能位置が記憶されていない場合には、前記改ページが必要になった直前の位置を前記改ページ位置に決定することを特徴とする。
【００１２】
請求項３によると、例えば、文書データによっては改ページ可能位置が見つからない場合があるが、このような場合であっても改ページが必要になった直前を改ページ位置にするため、いつまでも印刷が完了しなかったり、白紙（印刷がされていない用紙）が出力され続けたりすることを防ぐことが可能になる。
【００１３】
請求項４に記載の印刷制御装置は、前記文書データは、文字列によって構成される文字列データであって、少なくとも左端と右端とを特定した左右配置領域に従ってページ上の位置が決められるとともに、前記配置手段は、前記文字列データをページ上に配置する際に、当該文字列データの前記左右配置領域を越える文字列データを改行した次の行に配置させ、前記検出手段は、前記改ページ禁止情報及び前記配置手段による文字列データの配置結果に基づいて、改ページ可能位置を検出することを特徴とする。
【００１４】
請求項４によると、改ページ禁止情報と文字列データの配置結果とから改ページ可能位置を検出しているため、文字列の長さによって左右配置領域の右端で自動的に改行されて縦（高さ）方向の印字領域が増加する場合であっても適切な改ページ可能位置を検出することが可能になる。
【００１５】
請求項５に記載の印刷制御装置は、前記文書データは、少なくとも上端と下端とを特定した上下配置領域に従ってページ上の位置が決められるとともに、前記改ページ禁止情報は、前記上下配置領域の上方で改ページを禁止するものと、前記上下配置領域内で改ページを禁止するものと、前記上下配置領域における下方で改ページを禁止するものと、であることを特徴とする。
【００１６】
請求項５によると、例えば、ＣＳＳの規格に対応したものとなり、汎用性が高いものとなる。
【００１７】
請求項６に記載の印刷制御装置は、前記改ページ可能位置を前記記憶手段に記憶する際に該改ページ可能位置に優先度を付与する付与手段をさらに備え、前記決定手段は、前記記憶手段に複数の前記改ページ可能位置が複数記憶されている場合は、前記付与手段により付与された優先度に基づいて改ページ位置を決定することを特徴とする。
【００１８】
請求項６によると、改ページ可能位置が複数ある場合には優先度に基づいて改ページ位置を決定するため、より適切な改ページ可能位置で改ページ処理を行うことが可能になる。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態に係る印刷装置について図面を参照しつつ説明する。
【００２０】
まず、印刷装置を含むネットワークシステムについて図１及び図２を参照しつつ説明する。図１は、ネットワークシステムのシステム構成の一例を示す図である。図２は、図１の装置の一部の装置構成の一例を示す図である。
【００２１】
図１に一例を示すネットワークシステム１は、２台のプリンタ２と、２台のコンピュータ３と、１台のファックス４と、及び１台のルータ５とを備えており、夫々ＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）７に接続されている。このネットワークシステム１の各装置はルータ５を介してサーバ６とデータの送受信を行うことが可能である。
【００２２】
図１のプリンタ２は、図２に示すように、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、印字部１４と、操作パネル１５と、ＮＶＲＡＭ１６と、インターフェース（Ｉ／Ｆ）１７とを備えている。
【００２３】
ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１１は、各種演算及び処理を行うものであって、中央演算処理装置として機能する。本実施の形態におけるＣＰＵ１１は、印刷時などに改ページする位置を決定するための改ページ位置決定処理（図３〜図８）を実行する。この改ページ位置決定処理の概略を説明する。ＣＰＵ１１は、コンピュータ３から送られてくるＨＴＭＬ（ページ記述言語の一つ）によって記述された文書データを、ＮＶＲＡＭ１６に記憶されたＨＴＭＬ解析プログラムによって解析し、この解析によって得られるインターフェースデータ（図９参照）に基づいて文書データを左端と右端とが特定された左右配置領域及び上端と下端とが特定された上下配置領域に収まるように配置する（配置手段）。そして、ＣＰＵ１１は、この左右配置領域及び上下配置領域によって特定されるブロックを順に配置する過程で、インターフェースデータに含まれるコマンドｐａｇｅ−ｂｒｅａｋに基づいて改ページ可能位置を検出する（検出手段）。続いて、ＣＰＵ１１は、この検出した改ページ可能位置をＲＡＭ１３に格納される改ページ可能位置ポインタｐｐに設定する。ＣＰＵ１１は、新たに改ページ可能位置が検出された場合には、改ページ可能位置ポインタｐｐの内容を新たに検出された改ページ位置に更新する（更新手段）。そして、ＣＰＵ１１は、改ページが必要になると、改ページ可能位置ポインタｐｐが示す改ページ可能位置に基づいて改ページ位置に決定する（決定手段）。尚、ＣＰＵ１１の動作の詳細については、図３〜図８のフローチャートを参照しつつ説明する。
【００２４】
ここで、前述のインターフェースデータとは、ＨＴＭＬコードを、処理が容易となるよう内部処理形式に変換したものであり、ＨＴＭＬと一対一に対応し、同様の内容をもつものであって、このインターフェースデータについて図９を参照しつつ簡単に説明する。図９は、インターフェースデータを説明するための説明図である。図９（ａ）は、ＨＴＭＬコードの一例であり、これに対応するインターフェースデータが図９（ｂ）に一例を示されるものである。図９（ｂ）に一例を示すインターフェースデータ中のデータＢＤ１が図９（ｃ）の印刷媒体中ブロックＢＲ１に対応し、図９（ｂ）中データＢＤ２が図９（ｃ）中ブロックＢＲ２に対応し、図９（ｂ）中データＢＤ３が図９（ｃ）中ブロックＢＲ３に対応する。ブロックＢＲ２はブロックＢＲ３の親（上位）のブロックである。
【００２５】
図９に一例を示すインターフェースデータ中のｐａｇｅ−ｂｒｅａｋの部分には、改ページに関するコマンドｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅ：ＡＵＴＯ、ｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅ：ＡＶＯＩＤ、ｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅ：ＡＬＷＡＹＳ、ｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒ：ＡＵＴＯ、ｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒ：ＡＶＯＩＤ、ｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒ：ＡＬＷＡＹＳ、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅ：ＡＵＴＯ、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅ：ＡＶＯＩＤなどが適宜設定されている。ここで、ＡＶＯＩＤは改ページの禁止を意味し、ＡＬＷＡＹＳは強制的な改ページを意味し、ＡＵＴＯはそれ以外（改ページを行うことができること）を意味している。また、ｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅは、ブロックの開始前の箇所での改ページに関することを意味し、ｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒはブロックの終了後の箇所での改ページに関することを意味し、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅはブロック内部での改ページに関することを意味している。また、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅについては、親（上位）のブロックに関する設定が子（下位）のブロックに継承されるという特徴を有しており、例えば、図９（ｃ）に示す親（上位）のブロックであるブロックＢＲ２にて、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅ：ＡＶＯＩＤが設定されると、子（下位）のブロックであるブロックＢＲ３についても、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅ：ＡＶＯＩＤが設定されたことになる。この継承については、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅだけであり、ｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅやｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒは継承されない。尚、ＡＬＷＡＹＳは強制的に改ページを行わせるものであって、改ページを禁止するコマンドから改ページ位置を決定する処理に直接関係しないため、動作フローなどではＡＬＷＡＹＳを考慮しない内容になっている。
【００２６】
例えば、コマンドｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅ：ＡＶＯＩＤは、ブロック前での改ページを禁止するコマンド（Ｂｅｆｏｒｅ　Ａｖｏｉｄ：ＢＡ）である。コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅ：ＡＶＯＩＤは、ブロック内部での改ページを禁止するコマンド（Ｉｎｓｉｄｅ　Ａｖｏｉｄ：ＩＡ）である。コマンドｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒ：ＡＶＯＩＤは、ブロック後での改ページを禁止するコマンド（Ａｆｔｅｒ　Ａｖｏｉｄ：ＡＡ）である。
【００２７】
ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）１２は、読み出し専用の記憶装置であって、プリンタ２の主記憶装置の一部を構成するものである。このＲＯＭ１２には、システムプログラムなど、各種プログラムが格納されている。
【００２８】
ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１３は、読み出し・書き込み可能な揮発性記憶装置であって、ＲＯＭ１２と同様にプリンタ２の主記憶装置の一部を構成するものである。ＲＡＭ１３には、データ処理の中間結果を格納するためのワークエリアなどがある。このＲＡＭ１３には、改ページ可能位置を指す改ページ可能位置ポインタｐｐの内容が格納されている。また、ＲＡＭ１３には、直前の改ページ情報ｌａｓｔ−ｐｂの内容が格納される。
【００２９】
印字部１４は、モノクロあるいはカラーによる文字または画像の印刷機能を提供するものである。印字部１４は、コンピュータ３から送られてくるインターフェースデータの内容を改ページ位置決定処理（図３〜図８）によって決定された改ページ位置に基づいて印刷媒体に出力する。
【００３０】
操作パネル１５は、ディスプレイなどにより情報を出力して表示する表示装置と、外部からの入力操作を行う入力装置とを備えている。表示装置は、プリンタ２の操作などに関する各種情報の表示に用いられる。例えば、液晶表示器やプラズマ表示器などにより構成され、表示面に入力装置としての操作部を構成するタッチパネルなどを備えるものである。
【００３１】
ＮＶＲＡＭ（Ｎｏｎ　Ｖｏｌａｔｉｌｅ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）１６は、読み出し・書き込み可能であって、電源オフ時にも記憶したデータが消去されずに記憶し続けることが可能な記憶装置である。このＮＶＲＡＭ１６には、印刷時などに改ページする位置を決定するための改ページ位置決定処理（図３から図８）をプリンタ２に実行させるためのプログラム、コンピュータ３から送られてくるＨＴＭＬを解析してインターフェースデータを生成する処理を実行するためのＨＴＭＬ解析プログラム、インターフェースデータに基づいてレイアウト処理を実行するためのレイアウトプログラム、レイアウト処理された結果に基づいてレンダリング処理を実行するためのレンダリングプログラムなどが格納されている。また、ＮＶＲＡＭ１６には、操作パネル１５や、ＬＡＮ７を介して接続されたコンピュータ３の表示部２６に表示する表示情報（ＷＥＢページ）などが格納されている。尚、ＮＶＲＡＭ１６には、製造品のシリアル番号なども記憶されている。
【００３２】
インターフェース１７は、プリンタ２をＬＡＮ７に接続し、プリンタ２とＬＡＮ７の先に接続されているコンピュータ３などの各装置との間の通信を可能にするものである。
【００３３】
図１のコンピュータ３は、図２に示すように、ＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、ＨＤＤ２４と、操作部２５と、表示部２６と、インターフェース２７とを備えている。コンピュータ３は、図９に一例を示したインターフェースデータをプリンタ２に送信などする。
【００３４】
ＣＰＵ２１は、各種演算及び処理を行うものであって、中央演算処理装置として機能する。
【００３５】
ＲＯＭ２２は、読み出し専用の記憶装置であって、コンピュータ３の主記憶装置の一部を構成するものである。このＲＯＭ２２には、システムプログラムなど、各種プログラムが格納されている。ＲＡＭ２３は、読み出し・書き込み可能な揮発性記憶装置であって、ＲＯＭ２２と同様にコンピュータ３の主記憶装置の一部を構成するものである。そして、ＲＡＭ２３には、データ処理の中間結果を格納するためのワークエリアなどがある。ＨＤＤ（Ｈａｒｄ　Ｄｉｓｋ　Ｄｒｉｖｅ）２４は、読み出し・書き込み可能な記憶装置（ハードディスク）及びその読取装置である。
【００３６】
操作部２５は、コンピュータ３の入力装置を構成するものである。この操作部２５は、所定数の入力キーを並べてなるキーボードやマウスなどのポインティングデバイスなどで構成されている。表示部２６は、ディスプレイなどにより情報を出力して表示する表示装置であり、例えば、液晶表示器やプラズマ表示器などにより構成される。尚、液晶表示器には、ＳＴＮ方式やＤＳＴＮ方式などの単純マトリックス方式のものや、ＴＦＴなどのアクティブマトリックス方式のものなどがある。
【００３７】
インターフェース２７は、コンピュータ３をＬＡＮ７に接続し、コンピュータ３とＬＡＮ７の先に接続されているプリンタ２などの各装置との間の通信を可能にするものである。
【００３８】
図１のサーバ６は、図２に示すように、ＣＰＵ３１と、ＲＯＭ３２と、ＲＡＭ３３と、ＨＤＤ３４と、インターフェース３５とを備えている。
【００３９】
ＣＰＵ３１は、各種演算及び処理を行うものであって、中央演算処理装置として機能する。ＲＯＭ３２は、読み出し専用の記憶装置であって、サーバ６の主記憶装置の一部を構成するものである。このＲＯＭ３２には、システムプログラムなど、各種プログラムが格納されている。ＲＡＭ３３は、読み出し・書き込み可能な揮発性記憶装置であって、ＲＯＭ３２と同様にサーバ６の主記憶装置の一部を構成するものである。そして、ＲＡＭ３３には、データ処理の中間結果を格納するためのワークエリアなどがある。ＨＤＤ３４は、読み出し・書き込み可能な記憶装置（ハードディスク）及びその読取装置である。インターフェース３５は、サーバ６をインターネットに接続し、サーバ６とインターネットの先に接続されているプリンタ２などの各装置との間の通信を可能にするものである。
【００４０】
次に、印刷時などに改ページする位置を決定するための改ページ位置決定処理について図３を参照しつつ説明する。図３は、改ページ位置決定処理のメインフローを示すフローチャートである。
【００４１】
ステップＳ１０１において、プリンタ２のＣＰＵ１１は、ＲＡＭ１３に格納されている改ページ可能位置ポインタｐｐの内容をＮＵＬＬに、改ページ情報ｌａｓｔ−ｐｂの内容をＡＶＯＩＤに初期設定する。このように初期設定するのは、最初のページが白紙になるのを防止するためである。
【００４２】
ステップＳ１０２において、プリンタ２のＣＰＵ１１は、コンピュータ３から送信されたＨＴＭＬに対応するインターフェースデータ（図９（ｂ）参照）が入力されているか否かを判定する。インターフェースデータが入力されていると判定された場合には（Ｓ１０２：ＹＥＳ）、ステップＳ１０３の処理へ移行する。一方、インターフェースデータが入力されていないと判定された場合には（Ｓ１０２：ＮＯ）、ステップＳ１１０の処理へ移行する。
【００４３】
ステップＳ１０３において、プリンタ２のＣＰＵ１１は、処理されることになるインターフェースデータがブロック開始（図９（ｂ）参照）に関するものであるか否かを判定する。ブロック開始に関するものであると判定された場合には（Ｓ１０３：ＹＥＳ）、ステップＳ１０４の処理へ移行して、ステップＳ１０４において、プリンタ２のＣＰＵ１１は、図４のフローチャートを参照して後述するブロック開始処理を行う。一方、ブロック開始に関するものでないと判定された場合には（Ｓ１０３：ＮＯ）、ステップＳ１０５の処理へ移行する。
【００４４】
ステップＳ１０５において、プリンタ２のＣＰＵ１１は、処理されることになるインターフェースデータがテキスト（図９（ｂ）参照）に関するものであるか否かを判定する。テキストに関するものであると判定された場合には（Ｓ１０５：ＹＥＳ）、ステップＳ１０６の処理へ移行して、ステップＳ１０６において、プリンタ２のＣＰＵ１１は、図６のフローチャートを参照して後述するテキスト処理を行う。一方、テキストに関するものでないと判定された場合には（Ｓ１０５：ＮＯ）、ステップＳ１０７の処理へ移行する。
【００４５】
ステップＳ１０７において、プリンタ２のＣＰＵ１１は、処理されることになるインターフェースデータがイメージに関するものであるか否かを判定する。イメージに関するものであると判定された場合には（Ｓ１０７：ＹＥＳ）、ステップＳ１０８の処理へ移行して、ステップＳ１０８において、プリンタ２のＣＰＵ１１は、図７のフローチャートを参照して後述するイメージ処理を行う。一方、イメージに関するものでないと判定された場合には（Ｓ１０７：ＮＯ）、ステップＳ１０９の処理へ移行して、ステップＳ１０９において、プリンタ２のＣＰＵ１１は、図５のフローチャートを参照して後述するブロック終了処理を行う。
【００４６】
上記のブロック開始処理（ステップＳ１０４）、テキスト処理（ステップＳ１０６）、イメージ処理（ステップＳ１０８）、ブロック終了処理（ステップＳ１０９）の各処理の終了後、ステップＳ１０２の処理へ戻る。
【００４７】
ステップＳ１１０において、プリンタ２のＣＰＵ１１は、印刷媒体に出力されていないデータが有るか否かを判定する。出力されていないデータがあると判定された場合には（Ｓ１１０：ＹＥＳ）、ステップＳ１１１の処理へ移行して、ステップＳ１１１において、ＣＰＵ１１は、出力されていないデータを印刷媒体に出力して（ページの最後までページ出力して）、改ページ位置決定処理を終了する。一方、出力されていないデータがないと判定された場合には（Ｓ１１０：ＮＯ）、改ページ位置決定処理を終了する。
【００４８】
以下、図３のフローチャート中のブロック開始処理（Ｓ１０４）について図４を参照しつつ説明する。図４は、ブロック開始処理の動作フローを示すフローチャートである。
【００４９】
ステップＳ２０１において、プリンタ２のＣＰＵ１１は、コマンドｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅがＡＶＯＩＤ（改ページ禁止）であるか否かを判定する。ＡＶＯＩＤであると判定された場合には（Ｓ２０１：ＹＥＳ）、ステップＳ２０２の処理へ移行し、ステップＳ２０２において、プリンタ２のＣＰＵ１１は改ページ情報ｌａｓｔ−ｐｂの内容をＡＶＯＩＤにし、ステップＳ２０３の処理へ移行する。一方、ＡＶＯＩＤでないと判定された場合には（Ｓ２０１：ＮＯ）、ステップＳ２０３の処理へ移行する。
【００５０】
ステップＳ２０３において、プリンタ２のＣＰＵ１１は、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、親（上位）のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯであるか否かを判定する。改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、親（上位）のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯであると判定された場合には（Ｓ２０３：ＹＥＳ）、ステップＳ２０４の処理へ移行する。一方、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）、又は、親のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）と判定された場合には（Ｓ２０３：ＮＯ）、ブロック開始処理を終了する。尚、処理の対象となっているブロックに親（上位）のブロックがない場合には、親（上位）のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅはＡＵＴＯであるとしてステップＳ２０３の判定が行われる。
【００５１】
ステップＳ２０４において、プリンタ２のＣＰＵ１１は、改ページ可能位置ポインタｐｐの内容を今の行（次にテキストやイメージが配置されることになる行）に更新し、ブロック開始処理を終了する。
【００５２】
ここで、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）場合に改ページ可能位置ポインタｐｐの値を更新しない（ステップＳ２０４に相当する処理を行わない）のは次のようなことなどを考慮したことによる。例えば、対象となっているブロック（対象ブロック）の一つ前のブロック（対象前ブロック）のコマンドｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒがＡＶＯＩＤであれば対象前ブロックの後での改ページが禁止されているため、対象ブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅがＡＵＴＯであっても対象ブロックの前（対象前ブロックの後）で改ページが行われないようにするためである。
【００５３】
また、親（上位）のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）場合に改ページ可能位置ポインタｐｐの値を更新しない（ステップＳ２０４に相当する処理を行わない）のは次のようなことなどを考慮したものである。例えば、対象となっているブロック（対象ブロック）の親（上位）のブロック（上位ブロック）のコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＶＯＩＤであれば上位ブロック内での改ページが禁止されているため、対象ブロックのコマンドｐａｇｅ−ｂｒｅａｋの内容にかかわらず上位ブロック内で改ページが行われないようにするためである。
【００５４】
以下、図３のフローチャート中のブロック終了処理（Ｓ１０９）について図５を参照しつつ説明する。図５は、ブロック終了処理の動作フローを示すフローチャートである。
【００５５】
ステップＳ２２１において、プリンタ２のＣＰＵ１１は、行の先頭であるか否かを判定する。行の先頭であると判定された場合には（Ｓ２２１：ＹＥＳ）、ステップＳ２２３の処理へ移行する。一方、行の先頭でないと判定された場合には（Ｓ２２１：ＮＯ）、ステップＳ２２２の処理へ移行する。但し、図８の改行処理のステップＳ２９７の処理の後や最初の行の場合に、行の先頭であると判定される。また、図６のテキスト処理のステップＳ２５３の処理の後や図７のイメージ処理のステップＳ２７７の処理の後の場合に、行の先頭でないと判定される。つまり、改行後、テキストやイメージが追加されるまでが、行の先頭と判定されることになる。
【００５６】
ステップＳ２２２において、プリンタ２のＣＰＵ１１は、改行を行い、ステップＳ２２３の処理へ移行する。このステップＳ２２２の処理は、ブロックの最後は改行で終えなければならないために行われる処理である。
【００５７】
ステップＳ２２３において、プリンタ２のＣＰＵ１１は、コマンドｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒがＡＶＯＩＤであるか否かを判定する。ＡＶＯＩＤであると判定された場合には（Ｓ２２３：ＹＥＳ）、ステップＳ２２４の処理へ移行し、ステップＳ２２４において、プリンタ２のＣＰＵ１１は改ページ情報ｌａｓｔ−ｐｂをＡＶＯＩＤに更新し、ブロック終了処理を終了する。一方、ＡＶＯＩＤでないと判定された場合には（Ｓ２２３：ＮＯ）、ブロック終了処理を終了する。ステップＳ２２４の処理は、例えば、対象となっているブロックの次のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅがＡＵＴＯであっても、対象となっているブロックの後で改ページされないようにするためである。
【００５８】
以下、図３のフローチャート中のテキスト処理（Ｓ１０６）について図６を参照しつつ説明する。図６は、テキスト処理の動作フローを示すフローチャートである。
【００５９】
ステップＳ２５１において、プリンタ２のＣＰＵ１１は、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、テキストが含まれるブロックやそのブロックの親（上位）のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯで、かつ、行の先頭であるか否かを判定する。改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯで、かつ、行の先頭であると判定された場合には（Ｓ２５１：ＹＥＳ）、ステップＳ２５２の処理へ移行する。一方、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）、行の先頭でない、の何れかであると判定された場合には（Ｓ２５１：ＮＯ）、ステップＳ２５３の処理へ移行する。
【００６０】
ステップＳ２５２において、プリンタ２のＣＰＵ１１は、改ページ可能位置ポインタｐｐを今の行に設定し、ステップＳ２５３の処理へ移行する。
【００６１】
ここで、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）場合に改ページ可能位置ポインタｐｐの値を更新しない（ステップＳ２５２に相当する処理を行わない）のは、直前に処理されたものの後での改ページが禁止されているのでそこでの改ページが行われないようにするためである。また、ブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）場合に改ページ可能位置ポインタｐｐの値を更新しない（ステップＳ２５２に相当する処理を行わない）のは、ブロック内での改ページが禁止されているのでブロック内での改ページが行われないようにするためである。
【００６２】
ステップＳ２５３において、プリンタ２のＣＰＵ１１は、テキストを追加してテキストのレイアウトを行う。ステップＳ２５４において、プリンタ２のＣＰＵ１１は、改ページ情報ｌａｓｔ−ｐｂの内容をＡＵＴＯに設定する。
【００６３】
ステップＳ２５５において、プリンタ２のＣＰＵ１１は、ステップＳ２５３で追加されたテキストが右マージン（少なくとも左端と右端とが特定されたテキスト（文字列）が配置されるテキスト配置領域の右端）を超えるか否かを判定する。右マージンを超えると判定された場合には（Ｓ２５５：ＹＥＳ）、ステップ２５６の処理へ移行する。一方、右マージンを越えないと判定された場合には（Ｓ２５５：ＮＯ）、テキスト処理を終了する。
【００６４】
ステップＳ２５６において、プリンタ２のＣＰＵ１１は、右マージンの左側の空白から右のテキストを切り出す。ステップＳ２５７において、プリンタ２のＣＰＵ１１は、図８のフローチャート参照しつつ後述する改行処理を行い、ステップＳ２５１の処理へ戻る。
【００６５】
以下、図３のフローチャート中のイメージ処理（Ｓ１０８）について図７を参照しつつ説明する。図７は、イメージ処理の動作フローを示すフローチャートである。
【００６６】
ステップＳ２７１において、プリンタ２のＣＰＵ１１は、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、イメージが含まれるブロックやそのブロックの親（上位）のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯで、かつ、行の先頭であるか否かを判定する。改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯで、かつ行の先頭であると判定された場合には（Ｓ２７１：ＹＥＳ）、ステップＳ２７２の処理へ移行する。一方、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）、行の先頭でない、のいずれかであると判定された場合には（Ｓ２７１：ＮＯ）、ステップＳ２７３の処理へ移行する。
【００６７】
ステップＳ２７２において、プリンタ２のＣＰＵ１１は、改ページ可能位置ポインタｐｐを今の行に更新し、ステップＳ２７３の処理へ移行する。
【００６８】
ここで、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）場合に改ページ可能位置ポインタｐｐの値を更新しない（ステップＳ２７２に相当する処理を行わない）のは、直前に処理されたものの下での改ページが禁止されていることになるのでそこでの改ページが行われないようにするためである。また、ブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）場合に改ページ可能位置ポインタｐｐの値を更新しない（ステップＳ２７２に相当する処理を行わない）のは、ブロック内での改ページが禁止されているので、ブロック内での改ページが行われないようにするためである。
【００６９】
ステップＳ２７３において、プリンタ２のＣＰＵ１１は、改ページ情報ｌａｓｔ−ｐｂの内容をＡＵＴＯに設定する。
【００７０】
ステップＳ２７４において、プリンタ２のＣＰＵ１１は、イメージが右マージンを超えるか否かを判定する。右マージンを超えると判定された場合には（Ｓ２７４：ＹＥＳ）、ステップ２７５の処理へ移行する。一方、右マージンを越えないと判定された場合には（Ｓ２７４：ＮＯ）、ステップＳ２７７の処理へ移行する。
【００７１】
ステップＳ２７５において、プリンタ２のＣＰＵ１１は、行の先頭であるか否かを判定する。行の先頭であると判定された場合には（Ｓ２７５：ＹＥＳ）、ステップＳ２７７の処理へ移行する。一方、行の先頭でないと判定された場合には（Ｓ２７５：ＮＯ）、ステップＳ２７６の処理へ移行する。
【００７２】
ステップＳ２７６において、プリンタ２のＣＰＵ１１は、図８のフローチャート参照しつつ後述する改行処理を行い、ステップＳ２７１の処理へ戻る。
【００７３】
ステップＳ２７７において、プリンタ２のＣＰＵ１１は、イメージを追加してイメージのレイアウトを行い、イメージ処理を終了する。
【００７４】
以下、図６、図７のフローチャート中の改行処理（Ｓ２５７、Ｓ２７６）について図８を参照しつつ説明する。図８は、改行処理の動作フローを示すフローチャートである。
【００７５】
ステップＳ２９１において、プリンタ２のＣＰＵ１１は、行の下端が下マージンを超えるか否かを判定する。行の下端が下マージンを超えると判定された場合には（Ｓ２９１：ＹＥＳ）、ステップＳ２９２の処理へ移行する。一方、行の下端が下マージンを越えないと判定された場合には（Ｓ２９１：ＮＯ）、ステップＳ２９７の処理へ移行する。
【００７６】
ステップＳ２９２において、プリンタ２のＣＰＵ１１は、改ページ可能位置ポインタｐｐにＮＵＬＬが設定されているか否かを判定する。改ページ可能位置ポインタｐｐにＮＵＬＬが設定されていると判定された場合には（Ｓ２９２：ＹＥＳ）、ステップＳ２９３の処理へ移行する。一方、改ページ位置ポインタｐｐにＮＵＬＬ以外が設定されている場合には、つまり、改ページ位置ポインタｐｐに改ページ位置が設定されている場合には（Ｓ２９２：ＮＯ）、ステップＳ２９４の処理へ移行する。
【００７７】
ステップＳ２９３において、改ページ可能位置を見つけることができなかったので、プリンタ２のＣＰＵ１１は、下マージンを越えた行（今の行）の直前を改ページ位置に決定し、決定した位置（下マージンを超えた行の直前）までの内容を印刷媒体に出力する処理を行い、ステップＳ２９５の処理へ移行する。このステップＳ２９３の処理によって、下マージンを越えた行の直前までの内容が印字部１４から印刷媒体に出力される。
【００７８】
ステップＳ２９４において、改ページ可能位置を見つけることができたので、プリンタ２のＣＰＵ１１は、改ページ可能位置ポインタｐｐに設定されている行（改ページ可能位置）の直前を改ページ位置に決定し、決定した位置の直前までの内容を印刷媒体に出力する処理を行い、ステップＳ２９５の処理へ移行する。このステップＳ２９３の処理によって改ページ可能位置ポインタｐｐに設定されている行の直前までの内容が印字部１４から出力される。
【００７９】
ステップＳ２９５において、プリンタ２のＣＰＵ１１は、ステップＳ２９３およびステップＳ２９４の何れかの処理で印刷媒体に出力された以降のデータを次ページの上に移行させる処理を行う。改ページ可能位置ポインタｐｐがＮＵＬＬの場合、図１０（ｂ）に一例を示すように、下マージンを超えた行を次ページの上にシフトさせる。改ページ可能位置ポインタｐｐに改ページ可能位置が設定されている場合、図１０（ａ）に一例を示すように、改ページ可能位置ポインタｐｐに設定されている行以下の内容を次ページの上にシフトさせる。
【００８０】
ステップＳ２９６において、プリンタ２のＣＰＵ１１は、印刷時に次ページが空白にならないように、改ページ可能位置ポインタｐｐにＮＵＬＬを設定し、ステップＳ２９７の処理へ移行する。
【００８１】
ステップＳ２９７において、プリンタ２のＣＰＵ１１は、処理の対象となっている行の下の行に新しい行を作成し、改行処理を終了する。
【００８２】
ここで、上記の改ページ位置決定処理の一例について図１１を参照しつつ簡単にまとめる。図１１は、改ページ位置決定処理の一例を説明するための説明図である。但し、図中にＢＡ、ＡＡ、ＩＡが記述されている部分においてのみ改ページを禁止するコマンドがある場合である。
【００８３】
まず、改ページ可能位置ポインタｐｐがＮＵＬＬに、改ページ情報ｌａｓｔ−ｐｂがＡＶＯＩＤ（Ｓ１０１）に初期設定される。インターフェースデータのブロック開始が入力され（Ｓ１０２：ＹＥＳ、Ｓ１０３：ＹＥＳ）、コマンドｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅがＡＶＯＩＤでなく（Ｓ２０１：ＮＯ）、改ページ情報ｌａｓｔ−ｐｂがＡＶＯＩＤである（Ｓ２０３：ＮＯ）ため、改ページ可能位置ポインタｐｐはＮＵＬＬで、改ページ情報ｌａｓｔ−ｐｂはＡＶＯＩＤである（ともに初期設定時の内容）。
【００８４】
次に、インターフェースデータのテキストが入力される（Ｓ１０２：ＹＥＳ、Ｓ１０３：ＮＯ、Ｓ１０５：ＹＥＳ）。改ページ情報ｌａｓｔ−ｐｂがＡＶＯＩＤである（Ｓ２５１：ＮＯ）ので、テキストを追加して、改ページ情報ｌａｓｔ−ｐｂをＡＵＴＯにする（Ｓ２５３、Ｓ２５４）。テキストが右マージを超える（Ｓ２５５：ＹＥＳ）が、下端が下マージンを超えない（Ｓ２９１：ＮＯ）ので、新しい行を作成する（Ｓ２９７）。今の行（新しい行）では、ステップＳ２５１の全ての条件を充たすので、改ページ可能位置ポインタｐｐを今の行（新しい行）にする（テキストの２行目：図１１中Ａ）。そして、テキストを追加して、改ページ情報ｌａｓｔ−ｐｂをＡＵＴＯにする（Ｓ２５３、Ｓ２５４）。テキストが右マージを超える（Ｓ２５５：ＹＥＳ）が、下端が下マージンを超えない（Ｓ２９１：ＮＯ）ので、新しい行を作成する（Ｓ２９７）。今の行（新しい行）では、ステップＳ２５１の全ての条件を充たすので、改ページ可能位置ポインタｐｐを今の行（新しい行）にする（テキストの３行目：図１１中Ｂ）。
【００８５】
インターフェースデータのブロック終了が入力され（Ｓ１０２：ＹＥＳ、Ｓ１０３：ＮＯ、Ｓ１０５：ＮＯ、Ｓ１０７：ＮＯ）、コマンドｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒがＡＶＯＩＤでない（Ｓ２２３：ＮＯ）ため、改ページ情報ｌａｓｔ−ｐｂをそのままにする（ＡＵＴＯ）。
【００８６】
インターフェースデータのブロック開始が入力され（Ｓ１０２：ＹＥＳ、Ｓ１０３：ＹＥＳ）、コマンドｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅがＡＶＯＩＤである（Ｓ２０１：ＹＥＳ）ので、改ページ情報ｌａｓｔ−ｐｂの内容をＡＶＯＩＤにし（Ｓ２０２）、改ページ情報ｌａｓｔ−ｐｂがＡＶＯＩＤである（Ｓ２０３：ＮＯ）ため、改ページ可能位置ポインタｐｐが更新されない。
【００８７】
次に、インターフェースデータのテキストが入力される（Ｓ１０２：ＹＥＳ、Ｓ１０３：ＮＯ、Ｓ１０５：ＹＥＳ）。改ページ情報ｌａｓｔ−ｐｂがＡＶＯＩＤである（Ｓ２５１：ＮＯ）ので、テキストを追加して、改ページ情報ｌａｓｔ−ｐｂをＡＵＴＯにする（Ｓ２５３、Ｓ２５４）。テキストが右マージを超える（Ｓ２５５：ＹＥＳ）が、下端が下マージンを超えない（Ｓ２９１：ＮＯ）ので、新しい行を作成する（Ｓ２９７）。今の行（新しい行）では、ステップＳ２５１の全ての条件を充たすので、改ページ可能位置ポインタｐｐを今の行（新しい行）にする（テキストの２行目：図１１中Ｃ）。そして、テキストを追加して、改ページ情報ｌａｓｔ−ｐｂをＡＵＴＯにする（Ｓ２５３、Ｓ２５４）。テキストが右マージを超える（Ｓ２５５：ＹＥＳ）が、下端が下マージンを超えない（Ｓ２９１：ＮＯ）ので、新しい行を作成する（Ｓ２９７）。今の行（新しい行）では、ステップＳ２５１の全ての条件を充たすので、改ページ可能位置ポインタｐｐを今の行（新しい行）にする（テキストの３行目：図１１中Ｄ）。
【００８８】
インターフェースデータのブロック終了が入力され（Ｓ１０２：ＹＥＳ、Ｓ１０３：ＮＯ、Ｓ１０５：ＮＯ、Ｓ１０７：ＮＯ）、コマンドｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒがＡＶＯＩＤである（Ｓ２２３：ＹＥＳ）ため、改ページ情報ｌａｓｔ−ｐｂをＡＶＯＩＤにする。
【００８９】
この後、改ページ可能位置ポインタｐｐの内容が変更されることなく、下端が下マージンを超えると（Ｓ２９１：ＹＥＳ）、改ページ可能位置ポインタｐｐがＮＵＬＬでない（Ｓ２９２：ＮＯ）ため、改ページ可能位置ポインタｐｐの行（図１１中Ｄ）の直前を改ページ位置に決定し、その直前までの内容をページ出力する（Ｓ２９４）。
【００９０】
上述した改ページ位置決定処理によれば、ページの上端から下端に向かって、改ページを禁止するコマンド（ｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅ：ＡＶＯＩＤ、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅ：ＡＶＯＩＤ、ｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒ：ＡＶＯＩＤ）を利用して改ページ可能位置を見つけつつ改ページ可能位置ポインタｐｐを設定／更新する。そして、改ページが必要になると改ページ可能位置ポインタｐｐに設定されている行の直前を改ページ位置に決定している。このため、適切な位置で改ページを行う改ページ処理を実現することができる。
【００９１】
また、改ページ可能位置を見つける度に改ページ可能位置ポインタｐｐの内容を更新しているので、必要なメモリ容量が少なくてすむ。
【００９２】
さらに、改ページ可能位置を見つけることができなかった場合には、下マージンを超える行の直前を改ページ位置に決定しているため、いつまでも印刷が完了しなかったり、白紙（印刷がされていない用紙）が出力され続けたりすることを防ぐことが可能になる。
【００９３】
さらに、改ページを禁止するコマンドとテキストの配置結果とを考慮して改ページ可能位置を検出しているため、テキストの長さによって左右配置領域の右端で自動的にテキストが改行されて縦（高さ）方向の印字領域が増加する場合であっても適切な改ページ可能位置を検出することが可能になる。
【００９４】
改ページを禁止するコマンドがＣＳＳの規格に沿ったものとなっているため、汎用性が高いものとなっている。
【００９５】
次に、上述した実施の形態における改ページ位置決定処理の第１の変形例について図面を参照しつつ説明する。但し、第１の変形例については、実施の形態と異なるところを中心に説明する。
【００９６】
第１の変形例おけるＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１１は、印刷時などに改ページする位置を決定するための改ページ位置決定処理（図３、図５、図１２〜図１５）を実行する。この改ページ決定処理においては、改ページ可能位置ポインタｐｐに改ページ可能位置を格納する代わりに、改ページ可能な行にマークをつけ、その行とマークを関連付けてＲＡＭ１３に格納する。そして、改ページが必要になるとつけたＲＡＭ１３に格納されているマークに基づいて改ページ位置を決定するものである。尚、改ページ位置決定処理（図３、図５、図１２〜図１５）をプリンタ２に実行させるプログラムがＮＶＲＡＭ１６に格納されている。
【００９７】
プリンタ２のＣＰＵ１１は、上述した実施の形態における改ページ位置決定処理と同様のメイン処理（図３）を実行する。但し、改ページ可能位置ポインタｐｐを利用しないため、メイン処理のステップＳ１０１で改ページ可能位置ポインタｐｐをＮＵＬＬに設定する処理を行わない。また、第１の変形例におけるブロック終了処理は上述したブロック終了処理（図５）と実質的に同様である。
【００９８】
次に、第１の変形例におけるブロック開始処理について図１２を参照しつつ説明する。図１２は、ブロック開始処理の動作フローを示すフローチャートである。
【００９９】
ステップＳ３０１において、プリンタ２のＣＰＵ１１は、ステップＳ２０１と実質的に同様の処理を行う。そして、コマンドｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅがＡＶＯＩＤであると判定された場合には（Ｓ３０１：ＹＥＳ）、ステップＳ３０２の処理へ移行し、ステップＳ３０２において、改ページ情報ｌａｓｔ−ｐｂの内容をＡＶＯＩＤにして、ステップＳ３０３の処理へ移行する。一方、ＡＶＯＩＤでないと判定された場合には（Ｓ３０１：ＮＯ）、ステップＳ３０３の処理へ移行する。
【０１００】
ステップＳ３０３において、プリンタ２のＣＰＵ１１は、ステップＳ２０３と実質的に同様の処理を行う。そして、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、親（上位）のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯであると判定された場合には（Ｓ３０３：ＹＥＳ）、ステップＳ３０４の処理へ移行する。一方、改ページ情報ｌａｓｔ−ｐｂがＡＵＴＯでない（ＡＶＯＩＤである）、又は、親のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）と判定された場合には（Ｓ３０３：ＮＯ）、ブロック開始処理を終了する。
【０１０１】
ステップＳ３０４において、プリンタ２のＣＰＵ１１は、対象となる今の行（次に配置されることになる行）に改ページ可能であることを示すマークを設定し、ブロック開始処理を終了する。
【０１０２】
次に、第１の変形例におけるテキスト処理について図１３を参照しつつ説明する。図１３は、テキスト処理の動作フローを示すフローチャートである。
【０１０３】
ステップＳ３５１において、プリンタ２のＣＰＵ１１は、ステップＳ２５１と実質的に同様の処理を行う。そして、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯで、かつ、行の先頭であると判定された場合には（Ｓ３５１：ＹＥＳ）、ステップＳ３５２の処理へ移行する。一方、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）、行の先頭でない、の何れかであると判定された場合には（Ｓ３５１：ＮＯ）、ステップＳ３５３の処理へ移行する。
【０１０４】
ステップＳ３５２において、プリンタ２のＣＰＵ１１は、対象となっている行（例えば、改行処理で新たに作成される行（図１５：Ｓ３９６参照））に改ページ可能であることを示すマークを設定し、ステップＳ３５３の処理へ移行する。
【０１０５】
ステップＳ３５３、３５４の夫々において、プリンタ２のＣＰＵ１１は、ステップＳ２５３、ステップＳ２５４と実質的に同様の処理を行う。
【０１０６】
ステップＳ３５５において、プリンタ２のＣＰＵ１１は、ステップＳ２５５と実質的に同様の処理を行う。そして、右マージンを超えると判定された場合には（Ｓ３５５：ＹＥＳ）、ステップ３５６の処理へ移行する。一方、右マージンを越えないと判定された場合には（Ｓ３５５：ＮＯ）、テキスト処理を終了する。
【０１０７】
ステップＳ３５６において、プリンタ２のＣＰＵ１１は、ステップＳ２５６と実質的に同様の処理を行う。ステップＳ２５７において、プリンタ２のＣＰＵ１１は、図１５のフローチャート参照しつつ後述する改行処理を行い、ステップＳ３５１の処理へ戻る。
【０１０８】
次に、第１の変形例におけるイメージ処理について図１４を参照しつつ説明する。図１４は、イメージ処理の動作フローを示すフローチャートである。
【０１０９】
ステップＳ３７１において、プリンタ２のＣＰＵ１１は、ステップＳ２７１と実質的に同様の処理を行う。そして、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯで、かつ行の先頭であると判定された場合には（Ｓ３７１：ＹＥＳ）、ステップＳ３７２の処理へ移行する。一方、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）、行の先頭でない、のいずれかであると判定された場合には（Ｓ３７１：ＮＯ）、ステップＳ３７３の処理へ移行する。
【０１１０】
ステップＳ３７２において、プリンタ２のＣＰＵ１１は、対象となる行（例えば、後述する改行処理で新たに作成される行（図１５：Ｓ３９６参照））に改ページ可能であることを示すマークを設定し、ステップＳ３７３の処理へ移行する。
【０１１１】
ステップＳ３７３において、プリンタ２のＣＰＵ１１は、ステップＳ２７３と実質的に同様の処理を行う。
【０１１２】
ステップＳ３７４において、プリンタ２のＣＰＵ１１は、ステップＳ２７４と実質的に同様の処理を行う。そして、右マージンを超えると判定された場合には（Ｓ３７４：ＹＥＳ）、ステップＳ３７５の処理へ移行する。一方、右マージンを越えないと判定された場合には（Ｓ３７４：ＮＯ）、ステップＳ３７７の処理へ移行する。
【０１１３】
ステップＳ３７５において、プリンタ２のＣＰＵ１１は、ステップＳ２７５と実質的に同様の処理を行う。そして、行の先頭であると判定された場合には（Ｓ３７５：ＹＥＳ）、ステップＳ３７７の処理へ移行する。一方、行の先頭でないと判定された場合には（Ｓ３７５：ＮＯ）、ステップＳ３７６の処理へ移行する。
【０１１４】
ステップＳ３７６において、プリンタ２のＣＰＵ１１は、図１５のフローチャート参照しつつ後述する改行処理を行い、ステップＳ３７１の処理へ戻る。
【０１１５】
ステップＳ３７７において、プリンタ２のＣＰＵ１１は、ステップＳ２７７と実質的に同様の処理を行い、イメージ処理を終了する。
【０１１６】
次に、第１の変形例における改行処理について図１５を参照しつつ説明する。図１５は、改行処理の動作フローを示すフローチャートである。
【０１１７】
ステップＳ３９１において、プリンタ２のＣＰＵ１１は、ステップＳ２９１と実質的に同様の処理を行う。そして、行の下端が下マージンを超えると判定された場合には（Ｓ３９１：ＹＥＳ）、ステップＳ３９２の処理へ移行する。一方、行の下端が下マージンを越えないと判定された場合には（Ｓ３９１：ＮＯ）、ステップＳ３９６の処理へ移行する。
【０１１８】
ステップＳ３９２において、プリンタ２のＣＰＵ１１は、改ページ可能であることを示すマークが設定された行があるか否かを判定する。改ページが可能であることを示すマークが設定された行があると判定された場合には（Ｓ３９２：ＹＥＳ）、ステップＳ３９４の処理へ移行する。一方、改ページ可能でることを示すマークが付された行がないと判定された場合には（Ｓ３９２：ＮＯ）、ステップＳ３９３の処理へ移行する。
【０１１９】
ステップＳ３９３において、改ページ可能位置がなかったので、プリンタ２のＣＰＵ１１は、下マージンを越えた行（今の行）の直前を改ページ位置に決定し、決定した位置（下マージンを超えた行の直前）までの内容を印刷媒体に出力する処理を行い、ステップＳ３９５の処理へ移行する。このステップＳ３９３の処理によって、下マージンを越えた行の直前までの内容が印字部１４から印刷媒体に出力される。
【０１２０】
ステップＳ３９４において、改ページ可能位置を見つけることができたので、プリンタ２のＣＰＵ１１は、ページの最も下端側にある改ページが可能であることを示すマークを付された行の直前を改ページ位置に決定し、決定した位置の直前までの内容を印刷媒体に出力する処理を行い、ステップＳ３９５の処理へ移行する。このステップＳ３９３の処理によって、ページの最も下端側にある改ページが可能であることを示すマークを付された行の直前までの内容が印刷媒体から出力される。
【０１２１】
ステップＳ３９５において、プリンタ２のＣＰＵ１１は、ステップＳ２９５と実質的に同様の処理を行って、ステップＳ３９３およびステップＳ３９４の何れかの処理で印刷媒体に出力された以降のデータを次ページの上に移行させる処理を行う。
【０１２２】
ステップＳ３９６において、プリンタ２のＣＰＵ１１は、ステップＳ２９７と実質的に同様の処理を行う。ステップＳ３９７において、プリンタ２のＣＰＵ１１は、ステップＳ３９６で作成された行に設定されるマークをクリアし（改ページ可能であることを示すマーク以外のものにし）、改行処理を終了する。
【０１２３】
上述した第１の変形例における改ページ位置決定処理によれば、ページの上端から下端に向かって、改ページを禁止するコマンド（ｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅ：ＡＶＯＩＤ、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅ：ＡＶＯＩＤ、ｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒ：ＡＶＯＩＤ）を利用して、改ページ可能位置を見つけつつ改ページ可能であることを示すマークを行に設定し、行とマークとを関連付けてＲＡＭ１３に格納する。そして、ＲＡＭ１３に格納されている改ページ可能であることを示すマークに基づいてページの最も下端側にある改ページ可能であることを示すマークを付された行を見つけ出し、その行の直前を改ページ位置に決定している。このため、適切な位置で改ページを行う改ページ処理を実現することができる。
【０１２４】
さらに、改ページ可能位置を見つけることができなかった場合には、下端の下マージンを超える直前の行を改ページ位置に決定しているため、いつまでも印刷が完了しなかったり、白紙（印刷がされていない用紙）が出力され続けたりすることを防ぐことが可能になる。
【０１２５】
次に、上述した実施の形態における改ページ位置決定処理の第２の変形例について図面を参照しつつ説明する。但し、第２の変形例については、実施の形態と異なるところを中心に説明する。
【０１２６】
第２の変形例おけるＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１１は、印刷時などに改ページする位置を決定するための改ページ位置決定処理（図３、図１６〜図２０）を実行する。この改ページ決定処理においては、改ページ可能位置ポインタｐｐに改ページ可能位置を格納する代わりに、改ページ可能な行にネストレベルの値（優先度に対応）を持つマークをつけ（付与手段）、その行とネストレベルとを関連付けてＲＡＭ１３に格納する。改ページが必要になるとＲＡＭ１３に格納されているネストレベルに基づいて改ページ位置を決定するものである。尚、改ページ位置決定処理（図３、図１６〜図２０）をプリンタ２に実行させるプログラムがＮＶＲＡＭ１６に格納されている。
【０１２７】
プリンタ２のＣＰＵ１１は、上述した実施の形態における改ページ位置決定処理と同様のメイン処理（図３）を実行する。但し、改ページ可能位置ポインタｐｐを利用しないため、メイン処理のステップＳ１０１で改ページ可能位置ポインタｐｐをＮＵＬＬに設定する処理を行わない。
【０１２８】
次に、第２の変形例におけるブロック開始処理について図１６を参照しつつ説明する。図１６は、ブロック開始処理の動作フローを示すフローチャートである。
【０１２９】
ステップＳ４０１において、プリンタ２のＣＰＵ１１は、ネストレベルＮＬを１インクリメントする（ＮＬ←ＮＬ＋１）。このステップＳ４０１の処理によって、例えば、最上位のブロック（第１ブロック）のネストレベルＮＬは１になり、第１ブロックに含まれる次のブロック（第２ブロック）のネストレベルＮＬは２になり、第２ブロックに含まれるブロック（第３ブロック）のネストレベルＮＬは３になる。この場合、ネストレベルＮＬの値が１、２、３、…となるに従って改ページを行う優先度が低くなる。
【０１３０】
ステップＳ４０２において、プリンタ２のＣＰＵ１１は、ステップＳ２０１と実質的に同様の処理を行う。そして、コマンドｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅがＡＶＯＩＤであると判定された場合には（Ｓ４０２：ＹＥＳ）、ステップＳ４０３の処理へ移行し、ステップＳ４０３において、改ページ情報ｌａｓｔ−ｐｂの内容をＡＶＯＩＤにし、ステップＳ４０４の処理へ移行する。一方、ＡＶＯＩＤでないと判定された場合には（Ｓ４０２：ＮＯ）、ステップＳ４０４の処理へ移行する。
【０１３１】
ステップＳ４０４において、プリンタ２のＣＰＵ１１は、ステップＳ２０３と実質的に同様の処理を行う。そして、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、親（上位）のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯであると判定された場合には（Ｓ４０４：ＹＥＳ）、ステップＳ４０５の処理へ移行する。一方、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）、又は、親のブロックのコマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）と判定された場合には（Ｓ４０４：ＮＯ）、ブロック開始処理を終了する。
【０１３２】
ステップＳ４０５において、プリンタ２のＣＰＵ１１は、対象となる今の行（次に配置されることになる行）にステップＳ４０１で１インクリメントされたネストレベルＮＬの値をもつマークを設定し、ブロック開始処理を終了する。このマークに付与されたネクストレベルＮＬの値が改ページを行う位置を決定する優先順位（優先度）となり、値が小さいものが優先順位が高い、つまり優先して改ページが行われることになる。
【０１３３】
次に、第２の変形例におけるブロック終了処理について図１７を参照しつつ説明する。図１７は、ブロック終了処理の動作フローを示すフローチャートである。
【０１３４】
ステップＳ４２１において、プリンタ２のＣＰＵ１１は、ステップＳ２２１と実質的に同様の処理を行う。そして、行の先頭であると判定された場合には（Ｓ４２１：ＹＥＳ）、ステップＳ４２３の処理へ移行する。一方、行の先頭でないと判定された場合には（Ｓ４２１：ＮＯ）、ステップＳ４２２の処理へ移行する。
【０１３５】
ステップＳ４２２において、プリンタ２のＣＰＵ１１は、ステップＳ２２２と実質的に同様の処理を行い、ステップＳ４２３の処理へ移行する。
【０１３６】
ステップＳ４２３において、プリンタ２のＣＰＵ１１は、ステップＳ２２３と実質的に同様の処理を行う。そして、コマンドｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒがＡＶＯＩＤであると判定された場合には（Ｓ４２３：ＹＥＳ）、ステップＳ４２４の処理へ移行し、ステップＳ４２４において、ステップＳ２２４と実質的に同様の処理を行い、ステップＳ４２５の処理に移行する。一方、ＡＶＯＩＤでないと判定された場合には（Ｓ４２３：ＮＯ）、ステップ４２５の処理へ移行する。
【０１３７】
ステップＳ４２５において、プリンタ２のＣＰＵ１１は、現在処理が行われているブロックから抜け出すので、ネクストレベルＮＬを１デクリメントする（ＮＬ←ＮＬ−１）。
【０１３８】
次に、第２の変形例におけるテキスト処理について図１８を参照しつつ説明する。図１８は、テキスト処理の動作フローを示すフローチャートである。
【０１３９】
ステップＳ４５１において、プリンタ２のＣＰＵ１１は、ステップＳ２５１と実質的に同様の処理を行う。そして、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯで、かつ、行の先頭であると判定された場合には（Ｓ４５１：ＹＥＳ）、ステップＳ４５２の処理へ移行する。一方、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）、行の先頭でない、のいずれかであると判定された場合には（Ｓ４５１：ＮＯ）、ステップＳ４５３の処理へ移行する。
【０１４０】
ステップＳ４５２において、プリンタ２のＣＰＵ１１は、対象となる行（例えば、後述する改行処理で新たに作成される行（図２０：Ｓ４９６参照））にネストレベルＮＬの値をもつマークを設定し、ステップＳ４５３の処理へ移行する。
【０１４１】
ステップＳ４５３、４５４の夫々において、プリンタ２のＣＰＵ１１は、ステップＳ２５３、ステップＳ２５４と実質的に同様の処理を行う。
【０１４２】
ステップＳ４５５において、プリンタ２のＣＰＵ１１は、ステップＳ２５５と実質的に同様の処理を行う。そして、右マージンを超えると判定された場合には（Ｓ４５５：ＹＥＳ）、ステップ４５６の処理へ移行する。一方、右マージンを越えないと判定された場合には（Ｓ４５５：ＮＯ）、テキスト処理を終了する。
【０１４３】
ステップＳ４５６において、プリンタ２のＣＰＵ１１は、ステップＳ２５６と実質的に同様の処理を行い、ステップＳ２５７において、プリンタ２のＣＰＵ１１は、図２０のフローチャート参照しつつ後述する改行処理を行い、ステップＳ４５１の処理へ戻る。
【０１４４】
次に、第２の変形例におけるイメージ処理について図１９を参照しつつ説明する。図１９は、イメージ処理の動作フローを示すフローチャートである。
【０１４５】
ステップＳ４７１において、プリンタ２のＣＰＵ１１は、ステップＳ２７１と実質的に同様の処理を行う。そして、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯで、かつ、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯで、かつ、行の先頭であると判定された場合には（Ｓ４７１：ＹＥＳ）、ステップＳ４７２の処理へ移行する。一方、改ページ情報ｌａｓｔ−ｐｂの内容がＡＵＴＯでない（ＡＶＯＩＤである）、コマンドｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅがＡＵＴＯでない（ＡＶＯＩＤである）、行の先頭でない、のいずれかであると判定された場合には（Ｓ４７１：ＮＯ）、ステップＳ４７３の処理へ移行する。
【０１４６】
ステップＳ４７２において、プリンタ２のＣＰＵ１１は、対象となる行（例えば、後述する改行処理で新たに作成される行（図２０：Ｓ４９６参照））にネストレベルＮＬの値をもつマークを設定し、ステップＳ４７３の処理へ移行する。
【０１４７】
ステップＳ４７３において、プリンタ２のＣＰＵ１１は、ステップＳ２７３と実質的に同様の処理を行う。
【０１４８】
ステップＳ４７４において、プリンタ２のＣＰＵ１１は、ステップＳ２７４と実質的に同様の処理を行う。そして、右マージンを超えると判定された場合には（Ｓ４７４：ＹＥＳ）、ステップＳ４７５の処理へ移行する。一方、右マージンを越えないと判定された場合には（Ｓ４７４：ＮＯ）、ステップＳ４７７の処理へ移行する。
【０１４９】
ステップＳ４７５において、プリンタ２のＣＰＵ１１は、ステップＳ２７５と実質的に同様の処理を行う。そして、行の先頭であると判定された場合には（Ｓ４７５：ＹＥＳ）、ステップＳ４７７の処理へ移行する。一方、行の先頭でないと判定された場合には（Ｓ４７５：ＮＯ）、ステップＳ４７６の処理へ移行する。
【０１５０】
ステップＳ４７６において、プリンタ２のＣＰＵ１１は、図２０のフローチャート参照しつつ後述する改行処理を行い、ステップＳ４７１の処理へ戻る。
【０１５１】
ステップＳ４７７において、プリンタ２のＣＰＵ１１は、ステップＳ２７７と実質的に同様の処理を行い、イメージ処理を終了する。
【０１５２】
次に、第２の変形例における改行処理について図２０を参照しつつ説明する。図２０は、改行処理の動作フローを示すフローチャートである。
【０１５３】
ステップＳ４９１において、プリンタ２のＣＰＵ１１は、ステップＳ２９１と実質的に同様の処理を行う。そして、行の下端が下マージンを超えると判定された場合には（Ｓ４９１：ＹＥＳ）、ステップＳ４９２の処理へ移行する。一方、行の下端が下マージンを越えないと判定された場合には（Ｓ４９１：ＮＯ）、ステップＳ４９６の処理へ移行する。
【０１５４】
ステップＳ４９２において、プリンタ２のＣＰＵ１１は、改ページ可能であることを示すネストレベルＮＬの値が設定されたマークを持つ行があるか否かを判定する。改ページが可能であることを示すマークを持つ行があると判定された場合には（Ｓ４９２：ＹＥＳ）、ステップＳ４９４の処理へ移行する。一方、改ページが可能であることを示すマークを持つ行がないと判定された場合には（Ｓ４９２：ＮＯ）、ステップＳ４９３の処理へ移行する。
【０１５５】
ステップＳ４９３において、改ページ可能位置がなかったので、プリンタ２のＣＰＵ１１は、下マージンを越えた行（今の行）の直前を改ページ位置に決定し、決定した位置（下マージンを超えた行の直前）までの内容を印刷媒体に出力する処理を行い、ステップＳ４９５の処理へ移行する。このステップＳ４９３の処理によって、下マージンを越えた行の直前までの内容が印字部１４から印刷媒体に出力される。
【０１５６】
ステップＳ４９４において、改ページ可能位置があったので、プリンタ２のＣＰＵ１１は、最もマークの値（ネストレベルの値）が小さい、つまり、優先度が最も高いものであって、ページの最も下端側にあるものの行の直前を改ページ位置に決定し、決定された行の直前までの内容を印刷媒体に出力する処理を行い、ステップＳ４９５の処理へ移行する。このステップＳ４９４の処理によって、ページの最も下端側にある優先度が最も高い行の直前までの内容が印字部１４から印刷媒体に出力される。
【０１５７】
ステップＳ４９５において、プリンタ２のＣＰＵ１１は、ステップＳ４９３およびステップＳ４９４の何れかの処理で印刷媒体に出力された以降のデータを次ページの上に移行させる処理を行う。
【０１５８】
ステップＳ４９６において、プリンタ２のＣＰＵ１１は、ステップＳ２９７と実質的に同様の処理を行う。ステップＳ４９７において、プリンタ２のＣＰＵ１１は、ステップＳ３９７と実質的に同様の処理を行って、改行処理を終了する。
【０１５９】
上述した改ページ位置決定処理によれば、改ページを禁止するコマンド（ｐａｇｅ−ｂｒｅａｋ−ｂｅｆｏｒｅ：ＡＶＯＩＤ、ｐａｇｅ−ｂｒｅａｋ−ｉｎｓｉｄｅ：ＡＶＯＩＤ、ｐａｇｅ−ｂｒｅａｋ−ａｆｔｅｒ：ＡＶＯＩＤ）を利用して、改ページ可能位置を見つけつつ、改ページ可能であることを示すマーク（ネストレベルの値を持つ）を行に設定し、行とネストレベルの値を持つマークとを関連付けてＲＡＭ１３に格納する。そして、改ページが必要になると、ＲＡＭ１３に格納されているマークに基づいて、最も優先度が高く、且つ、ページの下端に最も近い行を見つけて、その行の直前を改ページ位置に決定している。このため、適切な位置で改ページを行う改ページ処理を実現することができる。また、優先度（ネストレベルの値に対応）を考慮して改ページ位置を決定しているため、できるだけ上位のブロックが同一の印刷媒体に出力され、出力内容が見やすいものになる。
【０１６０】
さらに、改ページ可能位置を見つけることができなかった場合には、下端の下マージンを超える直前の行を改ページ位置に決定しているため、いつまでも印刷が完了しなかったり、白紙（印刷がされていない用紙）が出力され続けたりすることを防ぐことが可能になる。
【０１６１】
以上本発明の好適な実施の形態について説明したが、本発明は上述の実施の形態に限られるものではなく、特許請求の範囲に記載した限りにおいて様々な設計変更が可能なものである。例えば、改ページを禁止する改ページ禁止情報（実施の形態ではＡＶＯＩＤ）を利用して、改ページ可能位置を検出し、その検出結果を利用して改ページ可能位置を決定するものであればよい。また、上述した改ページを禁止する改ページ禁止情報として、上述したもの（ＣＳＳの規格に沿ったもの）以外であっても良い。さらに、改ページ位置決定処理（実施の形態に関するもの、第１の変形例に関するもの、第２の変形例に関するもの）をプリンタに実行させるためのプログラムをＣＤ−ＲＯＭなどの記録媒体に記録して、ＣＤ−ＲＯＭに記憶されたそれらのプログラムを使用するようにしてもよい。
【０１６２】
【発明の効果】
請求項１、請求項７、請求項８によると、改ページを禁止する改ページ禁止情報に基づいて改ページ可能位置を検出し、検出した改ページ可能位置から改ページ位置を決定するため、改ページ禁止情報を利用した適切な改ページ処理を行なうことが可能になる。
【０１６３】
請求項２によると、記憶手段にはページの下限に近い改ページ可能位置のみが更新されつつ記憶されるので、記憶手段は１つの改ページ可能位置を記憶できれば足り、記憶手段の容量が小さくてよい。
【０１６４】
請求項３によると、例えば、文書データによっては改ページ可能位置が見つからない場合があるが、このような場合であっても改ページが必要になった直前を改ページ位置にするため、いつまでも印刷が完了しなかったり、白紙（印刷がされていない用紙）が出力され続けたりすることを防ぐことが可能になる。
【０１６５】
請求項４によると、改ページ禁止情報と文字列データの配置結果とから改ページ可能位置を検出しているため、文字列の長さによって左右配置領域の右端で自動的に改行されて縦（高さ）方向の印字領域が増加する場合であっても適切な改ページ可能位置を検出することが可能になる。
【０１６６】
請求項５によると、例えば、ＣＳＳの規格に対応したものとなり、汎用性が高いものとなる。
【０１６７】
請求項６によると、改ページ可能位置が複数ある場合には優先度に基づいて改ページ位置を決定するため、より適切な改ページ可能位置で改ページ処理を行うことが可能になる。
【図面の簡単な説明】
【図１】第１の実施の形態におけるネットワークシステムのシステム構成の一例を示す図である。
【図２】図１の装置の一部の装置構成の一例を示す図である。
【図３】実施の形態における改ページ位置決定処理のメインフローを示すフローチャートである。
【図４】実施の形態におけるブロック開始処理の動作フローを示すフローチャートである。
【図５】実施の形態におけるブロック終了処理の動作フローを示すフローチャートである。
【図６】実施の形態におけるテキスト処理の動作フローを示すフローチャートである。
【図７】実施の形態におけるイメージ処理の動作フローを示すフローチャートである。
【図８】実施の形態における改行処理の動作フローを示すフローチャートである。
【図９】インターフェースデータを説明するための説明図である。
【図１０】次ページへのデータのシフトを説明するための説明図である。
【図１１】改ページ位置決定処理の一例を説明するための説明図である。
【図１２】第１の変形例におけるブロック開始処理の動作フローを示すフローチャートである。
【図１３】第１の変形例におけるテキスト処理の動作フローを示すフローチャートである。
【図１４】第１の変形例におけるイメージ処理の動作フローを示すフローチャートである。
【図１５】第１の変形例における改行処理の動作フローを示すフローチャートである。
【図１６】第２の変形例におけるブロック開始処理の動作フローを示すフローチャートである。
【図１７】第２の変形例におけるブロック終了処理の動作フローを示すフローチャートである。
【図１８】第２の変形例におけるテキスト処理の動作フローを示すフローチャートである。
【図１９】第２の変形例におけるイメージ処理の動作フローを示すフローチャートである。
【図２０】第２の変形例における改行処理の動作フローを示すフローチャートである。
【符号の説明】
１　ネットワークシステム
２　プリンタ
３　コンピュータ
４　ファックス
５　ルータ
６　サーバ
７　ＬＡＮ
１１　ＣＰＵ
１２　ＲＯＭ
１３　ＲＡＭ
１４　印字部
１５　操作パネル
１６　ＮＶＲＡＭ
１７　インターフェース
２１　ＣＰＵ
２２　ＲＯＭ
２３　ＲＡＭ
２４　ＨＤＤ
２５　操作部
２６　表示部
２７　インターフェース
３１　ＣＰＵ
３２　ＲＯＭ
３３　ＲＡＭ
３４　ＨＤＤ
３５　インターフェース
【図１】
2004021383.tif 000003
【図２】
2004021383.tif 000004
【図３】
2004021383.tif 000005
【図４】
2004021383.tif 000006
【図５】
2004021383.tif 000007
【図６】
2004021383.tif 000008
【図７】
2004021383.tif 000009
【図８】
2004021383.tif 000010
【図９】
2004021383.tif 000011
【図１０】
2004021383.tif 000012
【図１１】
2004021383.tif 000013
【図１２】
2004021383.tif 000014
【図１３】
2004021383.tif 000015
【図１４】
2004021383.tif 000016
【図１５】
2004021383.tif 000017
【図１６】
2004021383.tif 000018
【図１７】
2004021383.tif 000019
【図１８】
2004021383.tif 000020
【図１９】
2004021383.tif 000021
【図２０】
2004021383.tif 000022