(57)【要約】      （修正有）【課題】テキストデータに読み手の読み進める順序が複数ある場合、見やすく表示する方法を提供する。【解決手段】テキストデータに読み進める順序が複数ある場合に、読み進める順序に沿ってサブテキストデータを表示するデータを作成する管理計算機であって、管理計算機は、サブテキストデータ及び文字列から、テキストデータを読み進める順序を抽出するテキストデータ取得部と、サブテキストデータ及び文字列を処理ノードとする第１の処理ノード情報を読み進める順序毎に管理する処理ノード計算部と、第１の処理ノード情報から、読み進める順序を分岐させる分岐処理ノードの分岐ノード情報を抽出し、第１の処理ノード情報及び分岐ノード情報から読み進める順序に沿ってサブテキストデータを表示する第２の処理ノード情報を作成する処理ノード整理部と、第２の処理ノード情報にページの割り付けを行うページ割付部とを有する。【選択図】図１
2014085978.tif 000002
【特許請求の範囲】
【請求項１】
テキストデータが複数のサブテキストデータから構成され、
前記サブテキストデータには次に読むサブテキストデータを指定する文字列が含まれ、
読み手が前記テキストデータを読み進める順序が複数ある場合に、読み進める順序に沿って前記サブテキストデータを表示するためのデータを作成する出力データ作成装置であって、
前記出力データ作成装置は、
前記サブテキストデータ及び前記文字列から、読み手が前記テキストデータを読み進める順序を抽出するテキストデータ取得部と、
前記サブテキストデータ及び前記文字列を処理ノードとする第１の処理ノード情報を読み進める順序毎に管理する処理ノード計算部と、
前記第１の処理ノード情報から、読み進める順序を分岐させる分岐処理ノードの分岐ノード情報を抽出し、前記第１の処理ノード情報及び前記分岐ノード情報から読み進める順序に沿って前記サブテキストデータを表示するための第２の処理ノード情報を作成する処理ノード整理部と、
を有することを特徴とする出力データ作成装置。
【請求項２】
テキストデータが複数のサブテキストデータから構成され、前記サブテキストデータには次に読むサブテキストデータを指定する文字列が含まれ、読み手が前記テキストデータを読み進める順序が複数ある場合に、計算機が読み進める順序に沿って前記サブテキストデータを表示するためのデータを作成する出力データ作成方法であって、
前記計算機は、
前記サブテキストデータ及び前記文字列から、読み手が前記テキストデータを読み進める順序を抽出し、
前記サブテキストデータ及び前記文字列を処理ノードとする第１の処理ノード情報を読み進める順序毎に管理し、
前記第１の処理ノード情報から、読み進める順序を分岐させる分岐処理ノードの分岐ノード情報を抽出し、前記第１の処理ノード情報及び前記分岐ノード情報から読み進める順序に沿って前記サブテキストデータを表示するための第２の処理ノード情報を作成する
ことを特徴とする出力データ作成方法。
【請求項３】
テキストデータが複数のサブテキストデータから構成され、前記サブテキストデータには次に読むサブテキストデータを指定する文字列が含まれ、読み手が前記テキストデータを読み進める順序が複数ある場合に、計算機に、読み進める順序に沿って前記サブテキストデータを表示させるためのプログラムであって、
前記サブテキストデータ及び前記文字列から、読み手が前記テキストデータを読み進める順序を抽出させる機能と、
前記サブテキストデータ及び前記文字列を処理ノードとする第１の処理ノード情報を読み進める順序毎に管理させる機能と、
前記第１の処理ノード情報から、読み進める順序を分岐させる分岐処理ノードの分岐ノード情報を抽出し、前記第１の処理ノード情報及び前記分岐ノード情報から読み進める順序に沿って前記サブテキストデータを表示するための第２の処理ノード情報を作成させる機能と
を実現させることを特徴とする出力データ作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力データ作成装置、出力データ作成方法及び出力データ作成プログラムに関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２００４−１８５４８９号公報（特許文献１）がある。特許文献１には、印刷フォーマットを属性として有する原稿データを処理する文書処理において、原稿データの各ノードに属性を持たせてツリー構造で保持し、片面印刷か両面印刷かの印刷方法の指定を全体だけではなく各ノードに属性を持たせることにより、無駄な処理を排除し、各ノードの処理ごとに印刷方法の切り替えをデバイスに対して指示することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１８５４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１には、テキストデータに読み手の読み進める順序が複数ある場合に、テキストデータを１つの出力データとして見やすく表示する方法については記載がない。
【課題を解決するための手段】
【０００５】
本発明の代表的な一形態によれば、テキストデータが複数のサブテキストデータから構成され、前記サブテキストデータには次に読むサブテキストデータを指定する文字列が含まれ、読み手が前記テキストデータを読み進める順序が複数ある場合に、読み進める順序に沿って前記サブテキストデータを表示するためのデータを作成するデータ管理計算機であって、前記データ管理計算機は、前記サブテキストデータ及び前記文字列から、読み手が前記テキストデータを読み進める順序を抽出するテキストデータ取得部と、前記サブテキストデータ及び前記文字列を処理ノードとする第１の処理ノード情報を読み進める順序毎に管理する処理ノード計算部と、前記第１の処理ノード情報から、読み進める順序を分岐させる分岐処理ノードの分岐ノード情報を抽出し、前記第１の処理ノード情報及び前記分岐ノード情報から読み進める順序に沿って前記サブテキストデータを表示するための第２の処理ノード情報を作成する処理ノード整理部と、前記第２の処理ノード情報にページの割り付けを行うページ割付部とを有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、テキストデータに読み手の読み進める順序が複数ある場合、テキストデータを読み進める順序に沿って、１つの出力データとして見やすく表示することができる。
【図面の簡単な説明】
【０００７】
【図１】本願発明を適用した一実施形態である出力データ作成装置の構成例を示す機能ブロック図の一例を示す図である。
【図２】本発明を適用した実施形態における文書の一例を示した図である。
【図３】本発明を適用した実施形態における文書を読み進める順序をフローチャートで示した図である。
【図４】本発明を適用した実施形態におけるノード情報テーブルのデータ構成の一例を示す図である。
【図５】本発明を適用した実施形態における経路情報テーブルのデータ構成の一例を示す図である。
【図６】本発明を適用した実施形態におけるループ経路情報テーブルのデータ構成の一例を示す図である。
【図７】本発明を適用した実施形態における印刷ノード情報テーブルのデータ構成の一例を示す図である。
【図８】本発明を適用した実施形態における印刷経路情報テーブルのデータ構成の一例を示す図である。
【図９】本発明を適用した実施形態における印刷ページテーブルのデータ構成の一例を示す図である。
【図１０】本発明を適用した実施形態における割付数を２としたときの印刷ページテーブルのデータ構成の一例を示す図である。
【図１１】本発明を適用した実施形態における文書情報取得処理の流れを示すフローチャートである。
【図１２】本発明を適用した実施形態における印刷出力データ作成処理の流れを示すフローチャートである。
【図１３】本発明を適用した実施形態における経路情報テーブルの一例を示す図である。
【図１４】本発明を適用した実施形態における経路情報取得処理の流れを示すフローチャートである。
【図１５】本発明を適用した実施形態における経路情報整理処理の流れを示すフローチャートである。
【図１６】本発明を適用した実施形態におけるループ経路マージ処理の流れを示すフローチャートである。
【図１７】本発明を適用した実施形態におけるノードマージ処理の流れを示すフローチャートである。
【図１８】本発明を適用した実施形態における印刷ページ割付処理の流れを示すフローチャートである。
【図１９】本発明を適用した実施形態における印刷ページテーブル生成処理の流れを示すフローチャートである。
【図２０】本発明を適用した実施形態における印刷データ登録処理の流れを示すフローチャートである。
【図２１】本発明を適用した実施形態における割付数１としたときの印刷出力結果の一例を示す図である。
【図２２】本発明を適用した実施形態における割付数２としたときの印刷出力結果の一例を示す図である。
【発明を実施するための形態】
【０００８】
本実施形態における出力データ作成装置１０１の処理概要を説明する。
本実施形態で出力データを作成する文書は、文章を読み進める順序を指示する文字列（以下、「指示文章」という。）を文書内に有する文書を想定している。文章を読み進める順序は、文書の文章構造に相当する。本実施形態では文章構造をフローチャートで示し、指示文書は文章構造内の分岐点として表現される。
文書の文章構造を示すフローチャートは、例えば図３に示す３０１〜３０４で示されるノードや、各ノードをつなぐ矢印付きの結線で示される。各ノードは、処理プロセスや処理内容を示している。ノードには、以下の種類がある。
なお、本実施形態では、文章を読み進める順序を「経路」といい、各経路のノードの情報を「経路情報」という。
【０００９】
本発明は、文章構造を示すフローチャートを探索して文書の経路情報を取得し、出力データを作成する。さらに、取得した出力データを用いて、文章を読み進める順序にそった見やすい印刷ページの割付を行う。
【００１０】
[印刷出力データ作成装置の構成]
図１は、本実施形態における出力データ作成装置１０１の構成例を示す機能ブロック図である。出力データ作成装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０２、メモリ部１０３、フローチャート格納ＤＢ部１１３及び入出力部１１５から構成される。
ＣＰＵ１０２は、印刷出力データ作成装置１０１全体の制御および演算を行う。
メモリ部１０３上には、経路情報テーブル１０８、ループ経路情報テーブル１０９、印刷ノード情報テーブル１１０、印刷経路情報テーブル１１１、印刷ページテーブル１１２、プログラムの文書情報取得部１２０、印刷情報取得部１０４、経路情報計算部１０５、印刷ページ割付部１０６及び印刷データ出力部１０７が読み込まれる。なお、これらのプログラムは、ＣＰＵ１０２が、例えば印刷出力データ作成装置１０１のフローチャート格納ＤＢ部１１３に記憶されたプログラムをメモリ部１０３に展開することで実行される。
【００１１】
フローチャート格納ＤＢ部１１３は、フラッシュメモリやハードディスク等の記憶手段からなり、フローのノード情報テーブル１１４を記憶する。
入出力部１１５は、出力インタフェース１１６及び入力インタフェース１１７を備える。入出力部１１５は、入力インタフェース１１７を介して、マウスやキーボード等の入力装置１１９からユーザの入力を受け付ける。入出力部１１５は、出力インタフェース１１６を介して、印刷出力データ作成装置１０１の処理結果である出力データを、印刷装置１１８のプリンタ等に送信する。
【００１２】
文書情報取得部１２０は、ユーザによる入力装置１１９の操作により、入出力部１１５を介して文書を受け付ける。そして、受け付けた文書をフローのノード情報テーブル１１４に変換し、フローチャート格納ＤＢ部１１３に格納する。
印刷情報取得部１０４は、ユーザによる入力装置１１９の操作により、入出力部１１５を介して印刷要求、印刷対象の文書の情報、印刷用紙サイズ情報及び印刷用紙１ページに印刷する文書のページ数（以下、「割付数」という。）の入力を受け付ける。入力を受け付けた後、印刷対象の文書に対応するフローのノード情報テーブル１１４を取得する。次いで、フローのノード情報テーブル１１４を、経路情報計算部１０５に、印刷用紙サイズ情報及び割付数を印刷ページ割付部１０６に出力する。
【００１３】
経路情報計算部１０５は、フローのノード情報テーブル１１４に登録されている始点から終点までの全ノードを探索し、経路情報テーブル１０８を生成する。そして、経路情報テーブル１０８内にループを示す経路（以下、「ループ経路」という。）の情報が存在するか否かを判定する。ループ経路情報が存在する場合、経路情報テーブル１０８からループ経路情報を抜き出してループ経路情報テーブル１０９を生成する。そして、ループ経路情報テーブル１０９とループ経路を含まない経路の経路情報テーブル１０８との経路情報を比較し、同一のノードを持つ経路の情報をマージする。図５は、経路情報テーブル１０８の詳細を示し、図６は、ループ経路情報テーブル１０９の詳細を示す。
【００１４】
印刷ページ割付部１０６は、印刷情報取得部１０４及び経路情報計算部１０５から出力された情報を元に、印刷ノード情報テーブル１１０、印刷経路情報テーブル１１１及び印刷ページテーブル１１２を生成し、単一経路上に存在するノードが持つガイドを紙の両面に印刷しないよう、両面印刷のページ割付を決定する。図７に、印刷ノード情報テーブル１１０を示し、図８は印刷経路情報テーブル１１１を示す。図９は、印刷ページテーブル１１２を示す。
【００１５】
印刷データ出力部１０７は、印刷ページテーブル１１２に格納された印刷情報を取得し、必要に応じて白紙ページを挿入する。そして、入出力部１１５を介して、印刷装置１１８にその印刷情報を出力し、印刷装置１１８に印刷させる。
【００１６】
図２は、本実施形態における文書の一例を示した図である。文書は、章単位の文章２０１、文書の分岐を示す文章２０２及び文書の終了を示す文章２０３を含む文章から構成される。章単位の文章２０１は、文書内に章として構成される文章部分である。文書の分岐を示す文章２０２は、次に読む文章の候補が複数存在することを示す。文書の終了を示す文章２０３は、次に読む文書が存在しないことを示す。なお、図２に示す文書は例示であり、他の形式で記載される文書であってもよい。
【００１７】
図３は、図２に示す文書を読み進める経路を示す文章構造を、フローチャートで示した一例である。フローチャートは、３０１〜３０４で示すノード及びノードをつなぐ矢印付きの結線で示される。各ノードは、処理プロセスや処理内容を示している。ノード３０１及びノード３０２は、開始及び終了を示す。（以下、開始を示すノードを「開始ノード」、終了を示すノードを「終了ノード」という。）ノード３０３は、処理内容を示すノードである（以下、「プロセスノード」という。）。プロセスノードは、文章データを保持する文章を示すノードである（以下、プロセスノードの処理内容を示す文章データのことを「ガイド」という。）。ノード３０４は、処理プロセスの分岐及び合流を示す（以下、分岐を示すノードを「分岐ノード」、合流を示すノードを「合流ノード」という。）。なお、各ノードの左上にはノードＩＤを記載している。
【００１８】
図４は、本実施形態における図２に示すフローチャートの各ノードが有するノード情報を管理するノード情報テーブル１１４のデータ構成の一例を示す図である。
フローのノード情報テーブル１１４は、ノードＩＤ４０１、種別４０２、前ノード４０３、分岐番号４０４、後ノード４０５及びガイドサイズ４０６から構成される。
ノードＩＤ４０１は、対象となるフローの各ノードにデータ格納順で一意に付される識別子である。
種別４０２は、ノードの種類を示し、開始ノードを示す「開始」、プロセスノードを示す「プロセス」、分岐ノード及び合流ノードを示す「分岐／合流」、終了ノードを示す「終了」が格納される。
【００１９】
前ノード４０３は、そのノード4の遷移元のノードＩＤが格納される。
分岐番号４０４は、種別が「分岐／合流」の場合、経路毎にデータ生成順で一意に付される識別子である。例えば、図４のノードＩＤ「Ｃ１」のノードは、２つの経路に分岐しているため、１つ目の経路には「１」を、２つ目の経路には「２」を格納する。
後ノード４０５は、そのノードの遷移先のノードＩＤが格納される。分岐番号４０４が複数存在するノードの場合、分岐番号毎に遷移先のノードＩＤが格納される。
ガイドサイズ４０６は、種別４０２が「プロセス」である場合のガイドの大きさを示す所定領域（縦×横）を格納する。本実施形態では、ガイドサイズの単位をピクセルとする。
【００２０】
図５は、本実施形態における経路情報テーブル１０８のデータ構成の一例を示す。経路情報テーブル１０８は、図５に示すフローの経路情報を経路毎に管理するテーブルである。経路情報テーブル１０８は、経路番号５０１、ループ開始ノードＩＤ５０２、ノードＩＤ５０３、分岐番号５０４及び最大分岐数５０５から構成される。これらのデータは、各経路のノード到達順に格納される。ノードＩＤ５０３、分岐番号５０４及び最大分岐数５０５は、経路番号毎に各値を有する。
【００２１】
経路番号５０１は、対象となるフローの各経路に一意に付される識別子である。なお、経路番号５０１は、データ格納順に付される。図５の経路情報テーブル１０８で示される文書には、４つの経路が存在することがわかる。
ループ開始ノードＩＤ５０２は、経路内にループ経路が存在している場合に、ループが開始する合流ノードのノードＩＤを記憶する。
ノードＩＤ５０３及び分岐番号５０４は、フローのノード情報テーブル１１４に格納されている情報と同一の情報が格納される。
最大分岐数５０５は、分岐ノード及び合流ノードの遷移先となるノードの総数を示す。
【００２２】
図６は、本実施形態におけるループ経路情報テーブル１０９のデータ構成の一例を示す。ループ経路情報テーブル１０９は、経路情報テーブル１０８に示す経路情報のうちループ経路に関する経路情報を管理するテーブルである。
ループ経路情報テーブル１０９は、ループ経路番号６０１、ノードＩＤ６０２、分岐番号６０３及び最大分岐数６０４から構成される。ノードＩＤ６０２、分岐番号６０３及び最大分岐数６０４は、経路情報テーブル１０８に格納されている情報と同一の値が格納され、経路番号毎に各値を有する。
ループ経路番号６０１は、対象となるフローのループ経路に一意に付される識別子である。なお、ループ経路番号６０１は、データ格納順に付される。
例えば、図４のループ経路番号４０１が「１」であるループ経路情報テーブルには、図５の経路番号５０１が「２」であるループ開始ノード５０２「Ｃ３」から順にループ経路を構成する「Ｐ５」、「Ｃ４」、「Ｐ６」の経路情報が格納されているのがわかる。
【００２３】
図７は、本実施形態における印刷ノード情報テーブル１１０のデータ構成の一例を示す。
印刷ノード情報テーブル１１０は、ノードＩＤ７０１、種別７０２、ノード毎ページ番号７０３及び印刷範囲情報７０４から構成される。
ノードＩＤ７０１及び種別７０２は、フローのノード情報テーブル１１４のノードＩＤ７０１及び種別７０２と同一の情報が格納される。
ノード毎ページ番号７０３は、同一ノードＩＤ内におけるページ番号である。例えば、ノードＩＤ「Ｐ３」のノードのガイドを２ページに分けて印刷するとき、「１」及び「２」という２つのノード毎ページ番号７０３が生成される。
【００２４】
印刷範囲情報７０４は、ノード毎ページ番号７０３のページを印刷する際のガイドの印刷範囲を指定する座標（（文章の入力開始点の座標)，（文章の入力終了点の座標)）である。例えば、文書に記載されている文章が横書きの場合、印刷範囲情報７０４の指定は、文章の入力開始点となる左上を原点とし、Ｘ軸は右方向を正とする水平方向、Ｙ軸は下方向を正とする直角方向として文章の入力終了点となる右下までの範囲が指定される。例えば、（（０，０）、（１０００，１０００））で指定される印刷範囲は、左上を（０，０）、右下を（１０００，１０００）とする矩形で指定される。なお、本実施形態では、Ｘ軸及びＹ軸の値の単位は、ピクセルで指定される。本実施形態では、一例として矩形で範囲指定することを例示しているが、指定方法は矩形に限られない。
【００２５】
図８は、本実施形態における印刷経路情報テーブル１１１のデータ構成の一例を示す図である。印刷経路情報テーブル１１１は、図３に示すフローの印刷経路に関する情報を示す。
印刷経路情報テーブル１１１は、経路番号８０１、経路毎ページ番号８０２、ノードＩＤ８０３及びノード毎ページ番号８０４から構成される。各データは、各経路のノード到達順に格納される。なお、経路毎ページ番号８０２、ノードＩＤ８０３及びノード毎ページ番号８０４は、経路番号毎に各値を有する。
経路番号８０１は、印刷の対象となる経路にデータ格納順で一意に付される識別子である。
経路毎ページ番号８０２は、単一経路上に存在するノードＩＤ８０３及びノード毎ページ番号８０４に対して、一意に付される識別子である。
ノードＩＤ８０３及びノード毎ページ番号８０４は、経路情報テーブル１０８に格納されている情報と同一の情報が格納される。
【００２６】
図９は、本実施形態における印刷ページテーブル１１２のデータ構成の一例を示す。印刷ページデータテーブル１１２の印刷用紙番号９０１は、印刷情報取得部１０４で取得した割付数の値に応じて決まる。図９は、図３に示すフローの印刷ページに関する情報を割付数「１」とした場合のデータ構成を示している。図１０は、割付数「２」とした場合のデータ構成を示す。印刷用紙番号の値は、割付数によって異なるが、印刷用紙番号以外の各情報の値は同一の値を示す。
【００２７】
印刷ページテーブル１１２は、印刷用紙番号９０１、表面９０２及び裏面９０３の経路情報から構成される。
印刷用紙番号９０１は、情報を印刷する紙の番号である。１枚の紙は、それぞれ表面９０２と裏面９０３を持つ。
表面９０２及び裏面９０３の経路情報は、それぞれノードＩＤ９０４、ノード毎ページ番号９０５及び経路ページ情報９０６から構成される。
【００２８】
ノードＩＤ９０４及びノード毎ページ番号９０５は、印刷経路情報テーブル１１１と同一の情報が格納される。
経路ページ情報９０６は、印刷経路情報テーブル１１１における印刷対象のノードＩＤを含む経路の情報を格納する。格納する際の経路の情報は、「経路番号」及び「経路毎ページ番号／経路毎ページ番号の総数」からなる。印刷対象のノードＩＤを含む経路が複数存在する場合、経路情報を複数個格納する。印刷時に経路ページ情報９０６を各ページに付与することで、経路毎の印刷ページの目安を把握することができる。
【００２９】
[文書情報取得処理]
本実施形態における文書情報取得部１２０が行う文書情報取得処理について説明する。図１１は、文書情報取得部１２０が行う文書情報取得処理を示すフローである。本実施形態では、図２の文書から図４のノード情報テーブル１１４を作成する文書情報取得処理を例示して説明する。
【００３０】
Ｓ１１０１で、文書情報取得部１２０が、フローのノード情報テーブル１１４に開始ノードの情報を格納する。
次に、Ｓ１１０２で、文書情報取得部１２０が、章単位の文章２０１を読み込み、Ｓ１１０３で、Ｓ１１０２で読み込んだ文章をガイドとするプロセスノードの情報をフローのノード情報テーブル１１４に格納する。
【００３１】
Ｓ１１０４で、文書情報取得部１２０が、Ｓ１１０２で読み込んだ文章に分岐を示す文章１００２が存在するかを判定する。分岐を示す文章２０２が存在する場合（Ｓ１１０４：Ｙｅｓ）、Ｓ１１０５へ進みフローのノード情報テーブル１１４に分岐ノードの情報を格納する。分岐を示す文章２０２が存在しない場合（Ｓ１１０４：Ｎｏ）、Ｓ１１０６へ進む。
【００３２】
次に、Ｓ１１０６で、文書情報取得部１２０が、Ｓ１１０２で読み込んだ文章に終了を示す文章２０３が存在するか否かを判定する。終了を示す文章２０３が存在する場合（Ｓ１１０６：Ｙｅｓ）、Ｓ１１０７で、フローのノード情報テーブル１１４に終了ノードの情報を格納する。終了を示す文章２０３が存在しない場合（Ｓ１１０５：Ｎｏ）、Ｓ１１０８へ進む。
【００３３】
次に、Ｓ１１０８で、文書情報取得部１２０が、次に読み込む文章が、複数の文章から参照を指定されているか判定する。複数の文章から参照を指定されている場合（Ｓ１１０８：Ｙｅｓ）、Ｓ１１０９で、フローのノード情報テーブル１１４に合流ノードの情報を格納する。複数の文章から参照を指定されていない場合（Ｓ１１０８：Ｎｏ）、Ｓ１１１０へ進む。
【００３４】
最後に、Ｓ１１１０で、文書情報取得部１２０が、次に読み込む文章が存在するか否かを判定する。存在する場合（Ｓ１１１０：Ｙｅｓ）、Ｓ１１０２へ戻り文章の読み込みを行う。存在しない場合（Ｓ１１１０：Ｎｏ）、文書情報取得処理を終了する。
以上の処理により、印刷文書から文書情報を取得する。
【００３５】
[印刷出力データ作成処理]
本実施形態における印刷出力データ作成装置１０１が行う印刷出力データ作成処理について説明する。
図１２は、印刷出力データ作成処理の流れを示すフローである。本実施形態では、図３の参照経路で示される文書について印刷ページを割り付ける処理を行うものとして説明する。
最初に、Ｓ１２０１で、印刷情報取得部１０４は、ユーザによる入力装置１１９の操作により、入出力部１１５を介して、フローの印刷要求を受け付ける。同時に、印刷対象のフローの情報、印刷用紙サイズ情報及び割付数の入力の情報を受け付ける。
【００３６】
次に、Ｓ１２０２で、印刷情報取得部１０４が、印刷対象のフローに対応するフローのノード情報テーブル１１４を取得する。
次いで、Ｓ１２０３で、経路情報計算部１０５が、フローのノード情報テーブル１１４の情報をもとに、フローの全経路を探索し、その経路の情報を経路情報テーブル１０８に格納する。また、このとき経路情報計算部１０５が、フローの経路にループ経路が存在するかを判定する。ループ経路が存在する場合、経路情報計算部１０５が、経路情報テーブル１０８のループ開始ノードＩＤ３０２に、ループ経路を開始する合流ノードのノードＩＤ３０３を格納する（以下、「経路情報取得処理」という。）。
図５は、経路情報計算部１０５が、情報を格納した経路情報テーブル１０８を示す。なお、経路情報取得処理の詳細は、図１４を用いて説明する。
【００３７】
そして、経路情報テーブルにループ経路が存在する場合、Ｓ１２０４で、経路情報計算部１０５は、ループ経路情報テーブル１０９を生成し、経路情報テーブル１０８に格納されている経路情報の最適化を行い、経路情報テーブル１０８を更新する（以下、「経路情報整理処理」という。）。なお、ループ経路が存在しない場合、ループ経路情報は作成されない。
【００３８】
図１３は、図８に示すループ経路情報テーブル１０９について経路情報整理処理を行った後の経路情報テーブル１０８を示す。なお、経路情報整理処理の詳細は、図１５を用いて説明する。
次いで、印刷ページ割付部１０６は、経路情報テーブル１０８、印刷情報取得部１０４が取得した印刷用紙サイズ情報及び割付数をもとに経路毎に印刷するページ数を計算し、印刷ノード情報テーブル１１０及び印刷経路情報テーブル１１１を生成する。
【００３９】
さらに、Ｓ１３０５で、印刷出力データ作製装置１０１が、印刷経路情報テーブル１１１をもとに、同一経路上の情報を同一の紙の表と裏に印刷しないよう、ページ割付を決定し、印刷ページテーブル１１２を生成する（以下、「印刷ページ割付処理」という。）。図９は、印刷ページテーブル１１２を示す。なお、印刷ページ割付処理の詳細は、図１８を用いて説明する。
次に、Ｓ１３０６で、印刷出力データ作成装置１０１は、Ｓ１３０５で生成した印刷ページテーブル１１２の情報を、入出力部１１５を介して印刷装置１１８に出力する。また、印刷ページテーブル１１２の表面のみに印刷情報が存在する場合、裏面に白紙を割り付け、出力する。なお、印刷情報が存在するか否かは、印刷ページテーブル１１２を参照して判断する。
【００４０】
[経路情報取得処理]
図１４は、経路情報計算部１０５が行う経路情報取得処理フローを示す。
本実施形態では、「変数ＮＰＡＴＨ」、「変数ＮＩＤ」及び「変数ＢＩＤ」の３つの変数を用いて経路情報を取得する。変数ＮＰＡＴＨは、経路情報を探索するため経路番号を格納する変数である。変数ＮＩＤは、ノードＩＤを格納する変数である。変数ＢＩＤは、分岐ノードを格納する変数である。
【００４１】
最初に、Ｓ１４０１で、経路情報計算部１０５は、変数ＮＰＡＴＨ及び変数ＮＩＤに初期値を格納する。変数ＮＰＡＴＨには、１つ目の経路であることを示す「１」を、変数ＮＩＤには、すべての経路の初めのノードであることを示す開始ノードのノードＩＤを格納する。
次に、Ｓ１４０２で、経路情報計算部１０５は、経路内に存在する分岐ノードを検知するため、変数ＢＩＤに初期値「ＮＵＬＬ」を格納する。
【００４２】
次いで、変数ＮＩＤに格納されているノードＩＤを、経路情報テーブル１０８の、変数ＮＰＡＴＨに対応する経路情報の末尾に追加する。このとき、変数ＮＩＤに対応するノードが分岐ノード又は合流ノードである場合、そのノードの遷移先のノードの総数を計算し、経路情報テーブル１０８の最大分岐数に格納する。そして、Ｓ１４０３で、経路情報テーブルの分岐番号に「１」を格納する。
【００４３】
次に、経路情報計算部１０５は、ノード情報テーブル１１４を参照し、変数ＮＩＤに対応するノードが終了ノードか否かを判定する。変数ＮＩＤに対応するノードが終了ノードである場合（Ｓ１４０４：Ｙｅｓ）、Ｓ１４１０へ進む。変数ＮＩＤに対応するノードが終了ノードでない場合（Ｓ１４０４：Ｎｏ）、Ｓ１４０５へ進む。
【００４４】
Ｓ１４０５で、経路情報計算部１０５は、ノード情報テーブル１１４を参照し、変数ＮＩＤに対応するノードが、分岐ノード又は合流ノードであるか否かを判定する。変数ＮＩＤに対応するノードが分岐ノード又は合流ノードである場合（Ｓ１４０５：Ｙｅｓ）、Ｓ１４０７へ進む。変数ＮＩＤに対応するノードが分岐ノード又は合流ノードでない場合（Ｓ１４０５：Ｎｏ）、Ｓ１４０６で、フローのノード情報テーブル１１４に存在する変数ＮＩＤに対応するノード情報の後ノードのノードＩＤの値を、変数ＮＩＤに設定する。Ｓ１４０６を実行後、Ｓ１４０３に戻る。
【００４５】
次いで、Ｓ１４０７で、経路情報計算部１０５は、変数ＮＩＤに対応するノードが、末尾以外に変数ＮＰＡＴＨの経路内で存在するか否かを判定する。変数ＮＩＤに対応するノードが、末尾以外に存在する場合（Ｓ１４０７：Ｙｅｓ）、Ｓ１４０９へ進む。存在しない場合には（Ｓ１４０７：Ｎｏ）、Ｓ１４０８で、フローのノード情報テーブル１１４に存在する変数ＮＩＤに対応するノード情報の、分岐番号「１」の後ノードのノードＩＤの値を変数ＮＩＤに設定する。Ｓ１４０８を実行後、Ｓ１４０３に戻る。
【００４６】
Ｓ１４０９で、経路情報計算部１０５は、経路情報テーブル１０８の変数ＮＰＡＴＨに対応する経路情報のループ開始ノードＩＤに、変数ＮＩＤのノードＩＤを設定する。
次に、Ｓ１４１０で、経路情報計算部１０５は、分岐番号が最大分岐数とは異なる分岐ノード又は合流ノードを、経路情報テーブル１０８の経路情報の末尾から検索する。分岐番号が、最大分岐数とは異なる分岐ノード又は合流ノードが存在する場合、当該ノードのノードＩＤを変数ＢＩＤに格納する。存在しない場合、変数ＢＩＤに値を格納しない。
【００４７】
Ｓ１４１１で、経路情報計算部１０５は、Ｓ１４１０で変数ＢＩＤに値を格納したか否かを判定する。値を格納した場合（Ｓ１４１１：Ｙｅｓ）、Ｓ１４１２へ進む。格納していない場合（Ｓ１４１１：Ｎｏ）、経路情報取得処理を終了する。
次に、Ｓ１４１２で、経路情報計算部１０５は、経路情報テーブル１０８の変数ＮＰＡＴＨに対応する経路情報のうち、先頭ノードから変数ＢＩＤに対応するノードまでの経路情報を、次の経路の情報として経路情報テーブル１０８の経路番号「変数ＮＰＡＴＨ＋１」にコピーする。
【００４８】
そして、Ｓ１４１３で、経路情報計算部１０５は、変数ＮＰＡＴＨの値を、「１」加算した値に変更し、経路情報テーブル１０８の変数ＮＰＡＴＨ上に存在する変数ＢＩＤに対応するノード情報の分岐番号も、「１」加算した値に変更する。さらに、変数ＮＩＤのノードＩＤと、変更した経路情報テーブル１０８の分岐番号を用いて、フローのノード情報テーブル１１４から後ノードのノードＩＤを取得し、取得した後ノードのノードＩＤの値を変数ＮＩＤに設定して処理を実行する。
以上の処理により、文書内の全経路情報を取得することができる。
【００４９】
[経路情報整理処理]
図１５は、経路情報整理処理を示すフローである。文書内にループ経路が存在する場合、ループ経路内の分岐ノードを含む経路では、同一のノード情報が重複して経路情報テーブルに格納される可能性がある。そこで、経路情報整理処理によりループ経路内の分岐ノードを示す経路情報を単一の情報として管理する。
【００５０】
Ｓ１５０１で、経路情報計算部１０５は、経路情報テーブル１０８にループ経路が存在するか否かを判定する。具体的には、経路情報テーブル１０８の各経路のループ開始ノードＩＤ３０２に、値が存在するか否かを判定する。ループ経路が存在する場合（Ｓ１５０１：Ｙｅｓ）、Ｓ１５０２へ進む。ループ経路が存在しない場合（Ｓ１５０１：Ｎｏ）、経路情報整理処理を終了する。
【００５１】
次に、Ｓ１５０２で、経路情報計算部１０５が、経路情報テーブル１０８の中でループ開始ノードＩＤが存在する経路の、１つ目のループ開始ノードＩＤから、２つ目のループ開始ノードＩＤの直前までの経路情報を、ループ経路情報テーブル１０９にコピーする。図６に示すループ経路情報テーブル１０９では、１つ目のループ開始ノードＩＤの経路情報としてノードＩＤ４０２の「Ｃ３」から「Ｐ６」までの経路情報が、経路情報テーブル１０８からコピーされた例を示している。
【００５２】
Ｓ１５０３で、経路情報計算部１０５が、経路情報テーブル１０８で、ループ開始ノードＩＤが存在する経路の全経路情報を削除する。残りの経路の経路番号よりも、削除した経路の経路番号の方が小さい場合は、残りの経路の経路番号を「１」から昇順で振りなおす。
次に、Ｓ１５０４で、経路情報計算部１０５が、経路情報テーブル１０８上の経路に、ループ経路情報テーブル１０９の経路情報をマージする（以下、「ループ経路マージ処理」という。）。ループ経路マージ処理の詳細は、図１６に示す。
【００５３】
Ｓ１５０５で、経路情報計算部１０５が、経路情報テーブル１０８上で同一の経路情報を統一して、単一経路を決定する。同一の経路情報のうち、先に格納されたノードＩＤ３０３の経路情報のみを保存し、後に格納された経路情報を削除する。また、保存された経路情報の経路番号を昇順に「１」から振りなおす。このとき、ノードの順序は一致しなくてよい。
【００５４】
図１６は、経路情報テーブル１０８上の経路情報と、ループ経路情報テーブル１０９の経路情報とを比較して経路情報をマージする処理を示すフローである。
本実施形態では、経路情報取得処理で用いた変数ＮＰＡＴＨの他に「変数ＬＰＡＴＨ」及び「変数ＬＩＤ」を変数として経路情報をマージする。変数ＬＰＡＴＨは、ループ経路番号を格納する変数である。変数ＬＩＤは、ループ経路のノードＩＤを格納する変数である。
【００５５】
Ｓ１６０１で、経路情報計算部１０５は、ループ経路情報テーブル１０９の変数ＬＰＡＴＨに、経路番号の初期値として「１」を設定する。
次に、Ｓ１６０２で、経路情報計算部１０５が、経路情報テーブル１０８の経路を参照するため、変数ＮＰＡＴＨに、経路番号の初期値として「１」を設定する。
続いて、Ｓ１６０３で、経路情報計算部１０５が、ループ経路情報テーブル１０９から変数ＬＩＤに変数ＬＰＡＴＨの経路の先頭ノードを設定する。
【００５６】
次いで、Ｓ１６０４で、経路情報計算部１０５が、経路情報テーブル１０８の変数ＮＰＡＴＨの経路に変数ＬＩＤのノードが存在するか否かを判定する。変数ＬＩＤのノードが存在する場合（Ｓ１６０４：Ｙｅｓ）、Ｓ１６０５へ進む。存在しない場合（Ｓ１６０４：Ｎｏ）、Ｓ１６０６へ進む。
【００５７】
Ｓ１６０５で、経路情報計算部１０５が、経路情報テーブル１０８の経路毎に、ループ経路情報テーブル１０９の経路のノードの情報を、１つずつマージする（以下、「ノードマージ処理」という。）。ノードマージ処理の詳細は、図１７に示す。
Ｓ１６０６で、経路情報計算部１０５が、経路情報テーブル１０８に、「変数ＮＰＡＴＨ＋１」の経路が存在するか否かを確認する。経路が存在する場合は（Ｓ１６０６：Ｙｅｓ）、Ｓ１６０７へ進む。存在しない場合は（Ｓ１６０６：Ｎｏ）、Ｓ１６０８へ進む。
【００５８】
Ｓ１６０７で、経路情報計算部１０５が、変数ＮＰＡＴＨに、次にマージする経路情報テーブル１０８の経路である「変数ＮＰＡＴＨ＋１」を設定し、Ｓ１６０３へ戻り、処理を実行する。
【００５９】
Ｓ１６０８で、経路情報計算部１０５が、ループ経路情報テーブル１０９に、「変数ＬＰＡＴＨ＋１」の経路が存在するか否かを確認する。経路が存在する場合（Ｓ１６０８：Ｙｅｓ）、Ｓ１６０９で、変数ＬＰＡＴＨに次のループ経路情報テーブル１０９のループ経路番号である「変数ＬＰＡＴＨ＋１」を設定する。その後、Ｓ１６０２に戻り処理を実行する。経路が存在しない場合（Ｓ１６０８：Ｎｏ）、経路情報テーブル１０８上の経路に、ループ経路情報テーブル１０９の経路情報をマージする処理を終了する。
以上のようにループ経路マージ処理により、ループ経路の経路情報を経路情報テーブル１０８上に単一の経路情報として格納することができる。
【００６０】
図１７は、経路情報テーブル１０８の経路情報とループ経路情報テーブル１０９の経路のノード情報とを１つずつマージするノードマージ処理を示すフローである。
本実施形態では、新たに「変数ＩＩＤ」を用いる。変数ＩＩＤは、経路情報テーブル１０８にマージする経路の開始ノードＩＤを格納する変数である。
Ｓ１７０１で、経路情報計算部１０５が、経路情報テーブル１０８に存在するノードを参照するため、変数ＮＩＤに変数ＬＩＤのノード情報を格納する。また、変数ＩＩＤに初期値「ＮＵＬＬ」を格納する。
【００６１】
次に、Ｓ１７０２で、経路情報計算部１０５が、経路情報テーブル１０８の変数ＮＰＡＴＨ上の変数ＮＩＤのノードから末尾までの間に、変数ＬＩＤのノードが存在するか否かを判定する。存在する場合（Ｓ１７０２：Ｙｅｓ）、Ｓ１７０３へ進む。存在しない場合（Ｓ１７０３：Ｎｏ）、Ｓ１７０８へ進む。
続いて、Ｓ１７０３で、経路情報計算部１０５が、経路情報テーブル１０８の変数ＮＰＡＴＨの経路上に存在する変数ＮＩＤ以降で、変数ＬＩＤとノードＩＤが一致するノードの情報を、変数ＮＩＤに格納する。
【００６２】
Ｓ１７０４で、経路情報計算部１０５が、、ループ経路情報テーブル１０９の変数ＬＰＡＴＨの経路に存在する変数ＩＩＤから変数ＬＩＤ直前までの全ノード情報を、経路情報テーブル１０８の変数ＮＰＡＴＨの経路上に存在する変数ＮＩＤの直前に挿入する。ただし、変数ＩＩＤの値が「ＮＵＬＬ」の場合には処理を実行しない。
Ｓ１７０５で、変数ＩＩＤに「ＮＵＬＬ」を格納する。
【００６３】
次いで、Ｓ１７０６で、経路情報計算部１０５が、経路情報テーブル１０８の変数ＮＰＡＴＨの経路上の変数ＮＩＤに後ノードが存在するか否かを判定する。存在する場合（Ｓ１７０６：Ｙｅｓ）、Ｓ１７０７へ進む。存在しない場合（Ｓ１７０６：Ｎｏ）、Ｓ１７１２へ進む。
Ｓ１７０７で、経路情報計算部１０５が、変数ＮＩＤに変数ＮＩＤの後ノードのノードＩＤを格納し、Ｓ１７１０へ進む。
次に、Ｓ１７０８で、経路情報計算部１０５が、変数ＩＩＤに値が存在するか否かを判定する。値が存在しない場合（Ｓ１７０８：Ｙｅｓ）、Ｓ１７０９へ進む。存在する場合（Ｓ１７０８：Ｎｏ）、Ｓ１７１０へ進む。
【００６４】
続いて、Ｓ１７０９で、経路情報をマージする際の開始ノードの情報を記憶するため、変数ＩＩＤに変数ＬＩＤのノードＩＤを格納する。
Ｓ１７１０で、経路情報計算部１０５が、ループ経路情報テーブル１０９の変数ＬＰＡＴＨの経路上の変数ＬＩＤに、後ノードが存在するか否かを判定する。後ノードが存在する場合（Ｓ１７１０：Ｙｅｓ）、Ｓ１７１１で、変数ＬＩＤに、変数ＬＩＤの後ノードのノードＩＤを格納し、Ｓ１７０２へ戻り処理を実行する。後ノードが存在しない場合（Ｓ１７１０：Ｎｏ）、Ｓ１７１３へ進む。
【００６５】
Ｓ１７１２で、経路情報計算部１０５が、経路情報テーブル１０８の変数ＮＰＡＴＨの経路上の、末尾のノードの直後に、ループ情報経路テーブルの変数ＬＰＡＴＨの経路上の、変数ＬＩＤの後ノードから末尾までのノード情報を挿入する。但し、変数ＬＩＤの後ノードが存在しない場合、実行しない。
【００６６】
Ｓ１７１３で、経路情報計算部１０５が、経路情報テーブル１０８の変数ＮＰＡＴＨの経路上の変数ＮＩＤの直前に、ループ情報テーブルの変数ＬＰＡＴＨの経路上の、変数ＩＩＤから変数ＬＩＤまでの全てのノード情報を挿入する。但し、変数ＩＩＤに値が存在しない場合、実行しない。
このように、ノードマージ処理を行うことで、経路情報テーブル１０８の経路情報とループ経路情報テーブル１０９の経路情報とを一つずつマージして、文書全体の経路情報を単一の経路情報として扱うことができる。
【００６７】
[印刷ページ割付処理]
図１８は、印刷ページ割付部１０６が行う、印刷ページ割付処理を示すフローである。印刷ページ割付処理は、経路情報テーブル１０８に印刷ページの割付を行う処理である。
Ｓ１８０１で、印刷ページ割付部１０６が、フローのノード情報テーブル１１４と、印刷情報取得部１０４で取得した印刷用紙サイズ情報から、各ノードのガイドサイズが印刷用紙に収まる枚数を計算する。そして、ノード毎にページ数と印刷範囲情報を決定し、その情報を、ノードＩＤ順で印刷ノード情報テーブル１１０に格納する。
【００６８】
次に、Ｓ１８０２で、印刷ページ割付部１０６が、経路情報テーブル１０８の各経路のノードを昇順に参照し、ガイドにページ番号を割り付け、印刷経路情報テーブル１１１にデータを格納する。このとき、印刷ノード情報テーブル１１０のノード毎ページ番号を参照し、ノード毎ページ番号が複数存在する場合、すべてのノード毎ページ番号にページ番号をそれぞれ割り付ける。
【００６９】
続いて、Ｓ１８０３で、印刷ページ割付部１０６が、印刷経路情報テーブル１１１に、印刷するデータが存在するか否かを判定する。データが存在する場合（Ｓ１８０３：Ｙｅｓ）、Ｓ１８０４へ進む。データが存在しない場合（Ｓ１８０３：Ｎｏ）、印刷ページ割付処理を終了する。
Ｓ１８０４で、印刷ページ割付部１０６が、印刷経路情報テーブル１１１を参照して単一経路上のノードが持つガイドを両面に印刷しないように印刷ページテーブル１１２を生成する（以下、「印刷ページテーブル生成処理」という。）。印刷ページテーブル生成処理の詳細は、図１９に示す。
【００７０】
図１９は、印刷ページテーブル１１２を生成する処理を示すフローである。
本実施形態では、「変数ＰＰＡＴＨ」、「変数Ｘ」及び「変数Ｙ」を用いて印刷ページテーブル１１２を生成する。変数ＰＰＡＴＨは、印刷経路情報テーブル１１１の経路番号６０１を格納する変数である。変数Ｘは、印刷ページテーブル１１２の印刷用紙番号を格納する変数である。変数Ｙは、印刷ページテーブル１１２の印刷用紙番号を格納する変数である。
【００７１】
Ｓ１９０１で、印刷ページ割付部１０６が、印刷情報取得部１０４で取得した割付数から、割付数に応じた印刷ページテーブル１１２を生成する。印刷ページテーブル１１２の表面のノードＩＤは、印刷用紙番号１つに対し、最大で割付数まで登録できる。裏面のノードＩＤも同様である。
次に、Ｓ１９０２で、印刷ページ割付部１０６が、変数ＰＰＡＴＨに初期値「１」、変数Ｙに初期値「１」を設定する。
【００７２】
続いて、Ｓ１９０３で、印刷ページ割付部１０６が、印刷ページテーブル１１２に既に登録されているノードと印刷経路情報テーブル１１１の変数ＰＰＡＴＨの経路上に存在するノードとの整合性を判断し、不整合の場合、裏面に登録されている不整合のノード全てを印刷ページテーブル１１２の末尾に移動・追加する。不整合の場合とは、変数ＰＰＡＴＨの経路上に存在する２つのノードが、印刷ページテーブル１１２において、同一印刷用紙番号の表面と裏面にそれぞれ登録されている状態をいう。
Ｓ１９０４で、印刷ページ割付部１０６が、変数Ｘに初期値「１」を設定する。
【００７３】
次に、Ｓ１９０５で、印刷ページ割付部１０６が、印刷経路情報テーブル１１１の変数ＰＰＡＴＨの経路上に存在するノードが持つガイドの情報を、印刷ページテーブル１１２に登録する（以下、「印刷データ登録処理」という。）。印刷データ登録処理の詳細は、図２０に示す。
【００７４】
次いで、Ｓ１９０６で、印刷ページ割付部１０６が、印刷経路情報テーブル１１１の変数ＰＰＡＴＨの経路上に存在する変数Ｘに、次ページが存在するか否かを判定する。次ページが存在する場合（Ｓ１９０６：Ｙｅｓ）、Ｓ１９０７で、印刷経路情報テーブル１１１の変数ＰＰＡＴＨの経路上に存在する変数Ｘに、次ページのデータを示す「変数Ｘ＋１」を設定する。次ページが存在しない場合（Ｓ１９０６：Ｎｏ）、Ｓ１９０８へ進む。
【００７５】
続いて、Ｓ１９０８で、印刷ページ割付部１０６が、印刷経路情報テーブル１１１に、変数ＰＰＡＴＨの次の経路が存在するか否かを判定する。次の経路が存在する場合（Ｓ１９０８：Ｙｅｓ）、Ｓ１９０９で、変数ＰＰＡＴＨに、印刷経路テーブルの次の経路である「変数ＰＰＡＴＨ＋１」を設定する。次の経路が存在しない場合（Ｓ１９０８：Ｎｏ）、印刷ページテーブル１１２を生成する処理を終了する。
【００７６】
図２０は、印刷データ登録処理の流れを示すフローである。
Ｓ２００１で、印刷ページ割付部１０６が、印刷経路情報テーブル１１１の変数ＰＰＡＴＨの経路において、ページ番号が変数ＸであるノードのＩＤが、既に印刷ページテーブル１１２に存在するか否かを判定する。既に印刷ページテーブル１１２に存在する場合（Ｓ２００１：Ｙｅｓ）、ステップＳ２００２へ進む。印刷ページテーブル１１２に存在しない場合（Ｓ２００１：Ｎｏ）、Ｓ２００３へ進む。
【００７７】
Ｓ２００２で、印刷ページ割付部１０６が、印刷ページテーブル１１２上で、変数Ｘと同じノードＩＤを格納している部分に、変数Ｘの経路ページ情報を追加して印刷データ登録処理を終了する。
Ｓ２００３で、印刷ページ割付部１０６が、印刷ページテーブル１１２の変数Ｙの印刷用紙番号の表面に登録されているノードＩＤ数と割付数とが一致しているかを判定する。一致している場合（Ｓ２００３：Ｙｅｓ）、Ｓ２００４へ進む。一致していない場合（Ｓ２００３：Ｎｏ）、ステップＳ２００７へ進む。
【００７８】
Ｓ２００４で、印刷ページ割付部１０６が、印刷ページテーブル１１２の変数Ｙの印刷用紙番号の裏面に登録されているノードＩＤ数と紙面に割り付けたページ総数とが一致しているかを判定する。一致している場合（Ｓ２００４：Ｙｅｓ）、Ｓ２００５へ進む。一致していない場合（Ｓ２００４：Ｎｏ）、Ｓ２００６へ進む。
Ｓ２００５で、印刷用紙番号を１つ増加させるため、変数Ｙに変数「Ｙ＋１」を格納する。
【００７９】
Ｓ２００６で、印刷ページ割付部１０６が、変数Ｙの表面に登録されているノードＩＤが、印刷経路情報テーブル１１１の変数ＰＰＡＴＨの経路上に存在するかを判定する（Ｓ２００６）。存在している場合（Ｓ２００６：Ｙｅｓ）、Ｓ２００５へ進む。存在していない場合（Ｓ２００６：Ｎｏ）、Ｓ２００８へ進む。
Ｓ２００７で、印刷ページ割付部１０６が、印刷経路情報テーブル１１１の変数ＰＰＡＴＨの経路上において、ページ番号が変数Ｘの、ノードＩＤ、ノード毎ページ情報及び経路ページ情報を、印刷ページテーブル１１２の変数Ｙの表面に追加して処理を終了する。
【００８０】
次に、Ｓ２００８で、印刷ページ割付部１０６が、印刷経路情報テーブル１１１の変数ＰＰＡＴＨの経路上において、ページ番号が変数Ｘの、ノードＩＤ、ノード毎ページ情報及び経路ページ情報を、印刷ページテーブル１１２の変数Ｙの裏面に追加する。図９は、割付数「１」としたときの印刷出力結果の一例を示す。図２２は、図９に示すデータの印刷結果の完成図を簡略的に示した図である。同様に、図１０は割付数「２」とした場合の出力結果の一例を示し、図２２はその印刷結果の一例を示す。なお、図２１又は図２２のような簡略図をユーザインタフェースに表示することもできる。
ループ経路上にループ経路が複数存在するフローの場合、経路情報テーブル１０８にノードの追加がなくなるまで、ループ経路マージ処理（図１６）を繰り返し、全てのループ経路を経路情報テーブル１０８にマージすることができる。
【００８１】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は文章のみで構成された文書を対象としたが、写真や図形が含まれている文書を対象とすることも可能である。
また、本発明は、添付の図面を参照して詳細に説明したが、記載した具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【００８２】
なお、上記の各構成、機能、処理部及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。上記の各構成及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク及びＳＳＤ（Ｓоｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置又はＩＣカード、ＳＤカード及びＤＶＤ等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。
【符号の説明】
【００８３】
１０１  印刷出力データ作成装置
１０２  ＣＰＵ
１０３  メモリ部
１０４  印刷情報取得部
１０５  経路情報計算部
１０６  印刷ページ割付部
１０７  印刷情報出力部
１０９  ループ経路情報テーブル
１１０  印刷ノード情報テーブル
１１１  印刷経路情報テーブル
１１２  印刷ページテーブル
１１３  フローチャート格納ＤＢ部
１２０  文書情報取得部
【図１】
2014085978.tif 000003
【図２】
2014085978.tif 000004
【図３】
2014085978.tif 000005
【図４】
2014085978.tif 000006
【図５】
2014085978.tif 000007
【図６】
2014085978.tif 000008
【図７】
2014085978.tif 000009
【図８】
2014085978.tif 000010
【図９】
2014085978.tif 000011
【図１０】
2014085978.tif 000012
【図１１】
2014085978.tif 000013
【図１２】
2014085978.tif 000014
【図１３】
2014085978.tif 000015
【図１４】
2014085978.tif 000016
【図１５】
2014085978.tif 000017
【図１６】
2014085978.tif 000018
【図１７】
2014085978.tif 000019
【図１８】
2014085978.tif 000020
【図１９】
2014085978.tif 000021
【図２０】
2014085978.tif 000022
【図２１】
2014085978.tif 000023
【図２２】
2014085978.tif 000024