(57)【特許請求の範囲】
【請求項１】
データベースに登録された、複数の出力データ要素を含む第１の出力データを取得して、第１の印刷用ドキュメントを生成する情報処理装置であって、
生成された前記第１の印刷用ドキュメントに対して設定された改ページ位置を、前記第１の出力データに設定する設定手段と、
前記設定手段により前記改ページ位置が設定された前記第１の出力データをフィードバックデータとして前記データベースに登録する登録手段と、
前記データベースに登録されていた前記第１の出力データの一部が編集された、複数の出力データ要素を含む第２の出力データを取得して、前記取得した第２の出力データに基づいて新たに前記第１の印刷用ドキュメントとは異なる第２の印刷用ドキュメントを生成する場合、前記データベースに登録された前記フィードバックデータから前記改ページ位置を取得し、前記取得された改ページ位置に基づいて前記第２の出力データに、前記第２の印刷用ドキュメントに設定されるべき改ページ位置を挿入する挿入手段と、
前記挿入された改ページ位置に基づいたページ構成の調整を前記第２の出力データに行うことで、第２の印刷用ドキュメントを生成する生成手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成手段は、前記第２の出力データに設定された改ページ位置に基づいて、前記印刷ドキュメントのページ構成が前記第１の出力データのページ構成に比較して発生する差し替えページ数が少なくなるようにページ構成を調整することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成手段は、前記ページ構成を調整する場合、ページ構成の調整で発生する差し替えページ数を特定の関数で評価することにより、差し替えページ数が少なくなるページ構成を決定することを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
データベースに登録された、複数の出力データ要素を含む第１の出力データを取得して、第１の印刷用ドキュメントを生成する情報処理装置におけるデータ処理方法であって、
生成された前記第１の印刷用ドキュメントに対して設定された改ページ位置を、前記第１の出力データに設定する設定工程と、
前記設定工程により前記改ページ位置が設定された前記第１の出力データをフィードバックデータとして前記データベースに登録する登録工程と、
前記データベースに登録されていた前記第１の出力データの一部が編集された、複数の出力データ要素を含む第２の出力データを取得して、前記取得した第２の出力データに基づいて新たに前記第１の印刷用ドキュメントとは異なる第２の印刷用ドキュメントを生成する場合、前記データベースに登録された前記フィードバックデータから前記改ページ位置を取得し、前記取得された改ページ位置に基づいて前記第２の出力データに、前記第２の印刷用ドキュメントに設定されるべき改ページ位置を挿入する挿入工程と、
前記挿入された改ページ位置に基づいたページ構成の調整を前記第２の出力データに行うことで、第２の印刷用ドキュメントを生成する生成工程と、
を備えることを特徴とするデータ処理方法。
【請求項５】
前記生成工程は、前記第２の出力データに設定された改ページ位置に基づいて、前記印刷ドキュメントのページ構成が前記第１の出力データのページ構成に比較して発生する差し替えページ数が少なくなるようにページ構成を調整することを特徴とする請求項４に記載のデータ処理方法。
【請求項６】
前記生成工程は、前記ページ構成を調整する場合、ページ構成の調整で発生する差し替えページ数を特定の関数で評価することにより、差し替えページ数が少なくなるページ構成を決定することを特徴とする請求項４または５記載のデータ処理方法。
【請求項７】
請求項４乃至６のいずれか１項に記載のデータ処理方法をコンピュータに実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項８】
請求項４乃至６のいずれか１項に記載のデータ処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに登録された出力データに基づいてデータ処理を行う情報処理装置に関するものである。
【０００２】
例えば
に関するものである。
【背景技術】
【０００３】
近年、パーソナルコンピュータ等の情報処理装置が普及し、ドキュメントはアプリケーションを介して電子媒体の形式で作成されてから印刷されるのが一般的になっている。
【０００４】
また、情報処理装置上では、アプリケーションを介してドキュメント内の記載事項の追加／変更／削除が容易であるという特性が活用され、一度発行したドキュメントを改版する頻度もまた増加している。
【０００５】
しかしながら、ドキュメントを改版する頻度やドキュメントの分量が多いと、その分だけ、印刷時間および用紙やトナーといった物資を消耗しコストが高くなる。
【０００６】
この問題に対して特許文献１の印刷制御システムでは、改版されたドキュメントを印刷する時、前版に対して変更があったページのみを抽出して印刷することで、そのコストを抑制していた。
【特許文献１】特開２００１−２３６３４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１には、改版されたドキュメントを印刷する時に、変更ページ数を抑制する仕組みは無かった。
【０００８】
そのため変更ページ数が多い場合にはその分だけコストがかかり、コスト抑制の成果に乏しい場合があった。
【０００９】
特に、データベースから情報を取得して合成印刷を行うようなアプリケーションを実行する場合、ドキュメントのある個所における記載内容の量が増減したときには、その個所以降の記載内容が改ページ位置に対して前後にずれることになる。この場合、アプリケーションは、挿入されるページによって、挿入前のレイアウトが、情報の挿入によってレイアウトを予想することができない。
【００１０】
そして、挿入する情報の、分量が多いドキュメントで変更が生じたとき、変更箇所が最終ページから遠いと、その変更量が些細であっても、多量のページの再印刷を余儀なくされる恐れがある。
【００１１】
このずれを抑制するには、ドキュメントの修正者が修正の際においてずれが生じないように配慮するしかなかった。
【００１２】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、アプリケーションがデータベースに登録された出力データを編集して印刷ドキュメントを出力する際の差し替えページ数を抑制できる仕組みを提供することである。
【課題を解決するための手段】
【００１３】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
【００１４】
データベースに登録された、複数の出力データ要素を含む第１の出力データを取得して、第１の印刷用ドキュメントを生成する情報処理装置であって、生成された前記第１の印刷用ドキュメントに対して設定された改ページ位置を、前記第１の出力データに設定する設定手段と、前記設定手段により前記改ページ位置が設定された前記第１の出力データをフィードバックデータとして前記データベースに登録する登録手段と、前記データベースに登録されていた前記第１の出力データの一部が編集された、複数の出力データ要素を含む第２の出力データを取得して、前記取得した第２の出力データに基づいて新たに前記第１の印刷用ドキュメントとは異なる第２の印刷用ドキュメントを生成する場合、前記データベースに登録された前記フィードバックデータから前記改ページ位置を取得し、前記取得された改ページ位置に基づいて前記第２の出力データに、前記第２の印刷用ドキュメントに設定されるべき改ページ位置を挿入する挿入手段と、前記挿入された改ページ位置に基づいたページ構成の調整を前記第２の出力データに行うことで、第２の印刷用ドキュメントを生成する生成手段と、を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、アプリケーションがデータベースに登録された出力データを編集して印刷ドキュメントを出力する際の差し替えページ数を抑制できる。
【発明を実施するための最良の形態】
【００１６】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１７】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本発明の第１実施形態を示す情報処理装置を適用可能な情報処理システムの一例を示す図である。本例は、サーバＰＣに対してクライアントからの指示／操作を実現する情報処理システム例である。なお、サーバＰＣ、クライアントＰＣは、後述するようなハードウエア資源、ソフトウエア資源を備えている。
【００１８】
図１において、１０１はローカルエリアネットワーク（ＬＡＮ）で、例えばイーサネット（登録商標）等で構築されている。
【００１９】
クライアント用パーソナルコンピュータ（以下「クライアントＰＣ」）１１１，１１２，１１３及び、サーバ用パーソナルコンピュータ（以下「サーバＰＣ」）１２１は、ＬＡＮ１０１を介して通信可能に接続されている。
【００２０】
また、サーバＰＣ１２１は、図３に示す文書生成アプリケーション３０２を実行して印刷用ドキュメント作成処理を行う。また、サーバＰＣ１２１は、クライアントＰＣ１１１，１１２，１１３の指示を受け、指示したクライアントＰＣの閲覧アプリケーション（ブラウザ）に対して処理結果を返す処理を行う。
【００２１】
但し、本実施形態においては、サーバＰＣおよびクライアントＰＣ間の通信手法については特に限定するものではない。
【００２２】
クライアントＰＣ１１１，１１２，１１３内の構成は、ＬＡＮ１０１に接続できる一般的なＰＣであれば、特に限定するものではないため、説明を省略する。
【００２３】
図２は、図１に示したサーバＰＣ１２１及び各クライアントＰＣのハードウエアの構成を説明するブロック図である。
【００２４】
図２おいて、２０１はビデオＲＡＭ(ＶＲＡＭ)で、ＣＲＴ表示装置（ＣＲＴ）２０２の画面に表示される文字、イメージを展開記憶する。２０３はビットムーブユニット(ＢＭＵ)で、メモリ間あるいはメモリと各デバイス間のデータ転送をコントロールする。
【００２５】
２０４は入力に関する各種キーを備えたキーボード（KeyBorard）であり、２０５は画面上でアイコンなどを指し示すためなどに用いられるポインティングデバイス(ＰＤ)である。
【００２６】
２０６はＣＰＵで、ＲＯＭ２０８に記憶された制御プログラム（本実施形態に係るプログラムやエラー処理プログラムをはじめ、後述する本発明を実現するためのプログラムも記憶されている）に基づいて本装置の各部を制御する。
【００２７】
２０９はＲＡＭで、上述した各プログラムをＣＰＵ２０６が実行するときにワークエリア、エラー処理時の一時退避エリアとして用いられる。２１０はハードディスクドライブ(ＨＤＤ)、２１１はフレキシブルディスクドライブ(ＦＤＤ)、をそれぞれ示す。
【００２８】
なお、各ディスクには後述するアプリケーションプログラムやデータ、データベース、ライブラリなどの保存用に用いられる。
【００２９】
２１２はネットワークインタフェース(ＮＥＴ−Ｉ／Ｆ)を示し、クライアントＰＣ１１１，１１２，１１３との間でネットワークを経由してデータ転送を行うためにネットワーク上でデータ制御、診断を行う。
【００３０】
２０７は上述した各ユニット間を接続するＩ／Ｏバスである。Ｉ／Ｏバス２０７は、アドレスバス、データバス及び制御バスからなる。
【００３１】
上記構成において、装置に電源を投入すると、ＣＰＵ（２０６）はＲＯＭ（２０８）のブートプログラムにしたがって装置を初期化し、ＨＤＤ（２１０）らＯＳのロードを行い、その後で各種アプリケーション等を動作させることになる。
【００３２】
なお、本実施形態の装置は、凡用の情報処理装置（パーソナルコンピュータ等）を基礎としているので、プログラムはハードディスク等に記憶されているものとしたが、もちろんＲＯＭに記憶させるようにしてもよい。また、記憶媒体の種別によって本発明が限定されるものでもない。
【００３３】
図３は、図１に示したサーバＰＣ１２１における文書生成のワークフローを説明するブロック図である。
【００３４】
図３において、３０１はＷｅｂアプリケーションで、サーバＰＣ１２１が備える、例えばＨＤＤ２１０にインストールされ、ＲＡＭ２０９にロードされて実行される。３０２は文書生成アプリケーションで、Ｗｅｂアプリケーション３０１から出力データ３０３を受け取ってドキュメントを生成する。なお、アプリケーションを、以後ＡＰと略記する。
【００３５】
ここで、出力データ３０３は、データベース３０７のデータを印刷するためにＷｅｂＡＰ３０１によって生成され文書生成ＡＰ３０２に送られるデータである。
【００３６】
なお、文書生成アプリケーション３０２は、データベース３０７から出力データ３０３を取得して印刷用ドキュメント３０４を再出力する場合に、前回分出力データ３０６に設定されている改ページ位置に基づいて印刷ドキュメントのページ構成を調整する。なお、ページ構成の調整処理例については後述する。なお、文書生成アプリケーション３０２を以下文書生成ＡＰ３０２と記す。
【００３７】
ここで、印刷用ドキュメント３０４は、文書生成ＡＰ３０２が出力データ３０３と前回分出力データ３０６とを元に生成する。３０５はフィードバックデータで、文書生成ＡＰ３０２がＷｅｂＡＰ３０１に返すデータである。フィードバックデータ３０５には、文書生成ＡＰ３０２により改ページ位置が設定されている。フィードバックデータ３０５は、ＷｅｂＡＰ３０１を介してデータベース３０７に登録される。
【００３８】
３０６は前回分の出力データで、ＷｅｂＡＰ３０１が文書生成ＡＰ３０２に送る。文書生成ＡＰ３０２は、出力データ３０３から印刷ドキュメント３０４を出力する際に、Ｗｅｂアプリケーション３０１を介して前回分出力データ３０６を取得して、前回分出力データ３０６に設定された改ページ位置を参照する。そして、文書生成ＡＰ３０２は、前回分出力データ３０６に設定された改ページ位置に基づいて、出力する印刷用ドキュメント３０４のページ構成を調整する。ここで、ページ構成の調整は、出力データのページ構成に比較して発生する差し替えページ数が少なくなるように、例えば図１１，図１２に示す手順でページ構成を調整する。
【００３９】
なお、文書生成アプリケーション３０２は、印刷ドキュメント３０４のページ構成を調整する場合、ページ構成の調整で発生する差し替えページ数を、図１２に示す特定の関数で評価することにより、差し替えページ数が少なくなるように調整する。
【００４０】
３０７はデータベースで、ＷｅｂＡＰ３０１で扱うデータを格納している。
【００４１】
なお、ＷｅｂＡＰ３０１がデータベース３０７から読み出す出力データであって、前回の出力データがある場合は、データベース３０７から前回分出力データ３０６を参照して、設定された改ページ位置に基づいて印刷ドキュメントのページ構成を調整する。
【００４２】
なお、文書生成ＡＰ３０２は、ＷｅｂＡＰ３０１との応答が可能であれば、サーバＰＣ１２１に搭載されていても良いし、他の機器に搭載されていても良い。
【００４３】
また、本実施形態では、ＷｅｂＡＰ３０１は、データベース３０７から読み出す出力データが文書生成ＡＰ３０２によってどのように編集されるかを管理していない。このため、ＷｅｂＡＰ３０１は、出力データが文書生成ＡＰ３０２で生成されるページ割付け後のレイアウトについては予測できないものとする。
【００４４】
これは、ＷｅｂＡＰ３０１を介してデータベース３０７から読み出される一度読み出された出力データが、文書生成ＡＰ３０２により作成される出力データで、前回の出力データのページ構成と異なるページ構成となる場合があるからである。
【００４５】
つまり、一度読み出した出力データに編集、例えばテキスト、イメージ等を挿入したり、削除したりすると、全体としてページ挿入が発生したり、ページ削除が発生してページ構成が変更する。
【００４６】
そこで、本実施形態では、そのようなページ構成の変化に適応して、前回分出力データ３０６に挿入された改ページ位置に基づいて、文書生成ＡＰ３０２が以下の処理を行う。
【００４７】
つまり、文書生成ＡＰ３０２が前回分出力データから作成され印刷ドキュメント３０４のページ構成で差し替えページ数が少なくなるようにページ構成を調整する。以下、図４〜図６に示すフローチャートを参照して、上記ページ構成の比較処理を含む本実施形態におけるデータ処理について説明する。
【００４８】
図４は、本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。本例は、図３に示したＷｅｂＡＰ３０１と文書生成アプリケーション３０２のそれぞれで連携する処理例である。ここで、ＷｅｂＡＰ３０１は、データベース３０７から複数ページから構成される出力データを取得する所定のアプリケーションとして機能する。所定のアプリケーションは、Ｗｅｂアプリに限らず、複数ページからなる出力データを処理可能ならば、他の所定のアプリケーションであってもよい。
【００４９】
また、複数の出力データは、文書生成ＡＰ３０２の処理で、その都度、ページ編集処理がなされることで、順次改訂された複数ページからなる新たな出力データが生成され、データベース３０７にフィードバック転送されてフィードバックデータ３０５として再登録される。ここで、再登録されたデータは、ＷｅｂＡＰ３０１により、出力データ３０３または前回分出力データ３０６として再度読み出される。
【００５０】
なお、Ｓ４０１〜Ｓ４０４、Ｓ４１１〜Ｓ４１７は各ステップを示す。また、Ｓ４０１〜Ｓ４０４は、図３に示したＷｅｂＡＰ３０１による処理ステップで、Ｓ４１１〜Ｓ４１７は文書生成ＡＰ３０２による処理ステップである。さらに、各ステップは、ＣＰＵ２０６が例えばＨＤＤ２１０から制御プログラムをＲＡＭ２０９にロードして実行することで実現される。
【００５１】
まず、Ｓ４０１で、ＷｅｂＡＰ３０１は、文書生成ＡＰ３０２に出力データを送る。次に、Ｓ４０２で、ＷｅｂＡＰ３０１が前回に文書生成ＡＰ３０２からフィードバックされた前回分出力データ３０６がデータベース３０７にあるかどうかを判断する。ここで、前回分出力データ３０６があるとＷｅｂＡＰ３０１が判断した場合は、Ｓ４０３で、前回分出力データ３０６を文書生成ＡＰ３０２に送り、Ｓ４０４へ進む。
【００５２】
一方、Ｓ４０２で、前回分出力データ３０６がないとＷｅｂＡＰ３０１が判断した場合は、Ｓ４０４で、文書生成ＡＰ３０２が送り返してきたフィードバックデータ３０５を受け取ってデータベース３０７に保管し、処理を終了する。
【００５３】
これにより、文書生成ＡＰ３０２の改行設定機能により改ページ位置が設定された出力データ（フィードバックデータ３０５に対応する）がデータベース３０７に転送されて再登録される。なお、フィードバックデータ３０５は、ＷｅｂＡＰ３０１を介して、データベース３０７に再登録される。
【００５４】
一方、文書生成ＡＰ３０２は、Ｓ４１１で、ＷｅｂＡＰ３０１から出力データ３０３を受け取ったらページ拡張機能が有効になっているかどうかを判断する。ここで、ページ拡張機能が有効であると文書生成ＡＰ３０２が判断した場合は、Ｓ４１２で、文書生成ＡＰ３０２がＷｅｂＡＰ３０１から前回分出力データ３０６を受け取ったかどうかを判断する。
【００５５】
ここで、文書生成ＡＰ３０２が前回分出力データ３０６を受け取っていると判断した場合は、Ｓ４１３で、前回分出力データ３０６の改ページ位置に今回分の出力データ３０３を挿入する。これにより、データベース３０７から取得される出力データに対して改ページ位置が設定される。
【００５６】
次に、Ｓ４１４で、文書生成ＡＰ３０２は後述する図５、図６に示すフローチャ−トにしたがって出力データ３０３のページ構成を調整しながら印刷用ドキュメント３０４を出力する。
【００５７】
ここで、ページ構成の調整は、図６に示すアルゴリムで、出力データのページ構成が、差し替えページ数が少なくなるようにページ構成を調整する。なお、本実施形態では、上記ページ構成の調整処理には、図６に示すように、図１２に示す関数に基づく比較処理も含まれる。
【００５８】
そして、Ｓ４１５で、文書生成ＡＰ３０２は印刷ドキュメント３０４にて行われた改ページ位置を出力データ３０３に反映させる。
【００５９】
次に、Ｓ４１６で、文書生成ＡＰ３０２は、ＷｅｂＡＰ３０１に出力データ３０３をフィードバックデータ３０５として送り返し、本処理を終了する。
【００６０】
一方、Ｓ４１１で、文書生成ＡＰ３０２によりページ拡張機能が有効になっていないと判断した場合、あるいは、Ｓ４１２で、前回分出力データ３０６を受け取っていないと判断した場合は、Ｓ４１７へ進む。
【００６１】
そして、Ｓ４１７で、文書生成ＡＰ３０２が出力データ３０３にしたがってそのまま印刷ドキュメント３０４を出力し、Ｓ４１５に移行する。
【００６２】
図５は、本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。本例は、Ｓ４１４で文書生成ＡＰ３０２が出力データ３０３のページ構成を調整しながら印刷用ドキュメントを出力する処理例である。
【００６３】
Ｓ５０１〜Ｓ５１０は各ステップを示し、本処理は、文書生成ＡＰ３０２による処理ステップである。さらに、各ステップは、ＣＰＵ２０６が例えばＨＤＤ２１０から制御プログラムをＲＡＭ２０９にロードして実行することで実現される。
【００６４】
まず、Ｓ５０１で、文書生成ＡＰ３０２は、出力データ３０３が前回分出力データ３０６に対しての差し替えページ数が可能な限り少なくなるようにページ構成Ａを作成する。次に、Ｓ５０２で、文書生成ＡＰ３０２は、ページ構成Ａをコピーしてページ構成ＢとしＲＡＭ２９に保持する。そして、Ｓ５０３で、図６に示すフローチャートにしたがってページ構成Ａの１ページ目以降をブランクページで最適化する。
【００６５】
そして、Ｓ５０４で、文書生成ＡＰ３０２は、ページ構成Ｂに拡張ページがあるかどうかを判断する。ここで、文書生成ＡＰ３０２により拡張ページがあると判断した場合は、Ｓ５０５で、文書生成ＡＰ３０２は、ページ構成Ｂの最後の拡張ページを通常の複数のページに分割する。
【００６６】
次に、Ｓ５０６で、文書生成ＡＰ３０２は、図６に示すフローチャートにしたがってページ構成Ｂの１ページ目移行をブランクページで最適化する。さらに、Ｓ５０７で、文書生成ＡＰ３０２は、ページ構成Ａのコストよりページ構成Ｂのコストの方が小さいかどうかを判断する。
【００６７】
ここで、文書生成ＡＰ３０２がページ構成Ａのコストよりページ構成Ｂのコストの方が小さいと判断した場合は、Ｓ５０８で、文書生成ＡＰ３０２は、Ｓ５０１で作成したページ構成Ａを破棄する。そして、Ｓ５０９で、文書生成ＡＰ３０２は、ページ構成Ｂをコピーしてページ構成ＡとしてＲＡＭ２０９に保持して、Ｓ５０４に戻る。
【００６８】
一方、Ｓ５０７で、文書生成ＡＰ３０２がページ構成Ａのコストよりページ構成Ｂのコストの方が小さくないと判断した場合も、Ｓ５０４に戻る。
【００６９】
また、Ｓ５０４で、文書生成ＡＰ３０２がページ構成Ｂに拡張ページが無いと判断した場合は、文書生成ＡＰ３０２は、Ｓ５０１で作成したページ構成Ａにしたがって、前回分出力データ３０６に対しての差し替えページのみについて印刷ドキュメント３０４を出力して、本処理を終了する。
【００７０】
本実施形態では、データベース３０７から読み出した化ページ位置が設定された出力データのページ構成を文書生成ＡＰ３０２が調整する場合、ページ構成の調整で発生する差し替えページ数を、例えば図１２に示すような特定の関数で評価する。
【００７１】
これにより、文書生成ＡＰ３０２が、差し替えページ数が少なくなるページ構成を決定することができる。つまり、Ｓ５０７の評価に基づく比較判断でいずれかのページ構成が破棄されて、差し替えページ数が少なくなるページ構成が決定される。このような関数による評価に基づいて決定されたページ構成の例を図１１等に示す。
【００７２】
図６は、本実施形態を示す情報処理装置における第３のデータ処理手順の一例を示すフローチャートである。本例は、Ｓ５０６で文書生成ＡＰ３０２により文書生成ＡＰ３０２が、あるページ構成ＸのあるＮ番目のページ以降について、そのコストが最も低くなるように拡張ページをブランクページで相殺する処理例である。つまり、発生する差し替えページ数が少なくなるようにページ構成を調整する例である。
【００７３】
Ｓ６０１〜Ｓ６２１は各ステップを示し、本処理は、文書生成ＡＰ３０２による処理ステップである。さらに、各ステップは、ＣＰＵ２０６が例えばＨＤＤ２１０から制御プログラムをＲＡＭ２０９にロードして実行することで実現される。また、後述するフローチャートにおいて、各変数は、それぞれＲＡＭ２０９で保持管理される。
【００７４】
まず、Ｓ６０１で、文書生成ＡＰ３０２は、ページ構成Ｘをコピーしてページ構成Ｙとし、Ｓ６０２で、文書生成ＡＰ３０２は、変数ｉにＮを代入し、Ｓ６０３で、変数ｉが最終ページ番号未満であるかどうかを判断する。
【００７５】
ここで、文書生成ＡＰ３０２により変数ｉが最終ページ番号未満であると判断した場合は、Ｓ６０４で、文書生成ＡＰ３０２がページ構成Ｙのｉページ目が拡張ページやブランクページではない通常のページであるかどうかを判断する。
【００７６】
そして、文書生成ＡＰ３０２が通常のページでないと判断した場合は、Ｓ６０５で、文書生成ＡＰ３０２がページ構成Ｙのｉページ目が拡張ページであるかどうかを判断する。ここで、文書生成ＡＰ３０２が拡張ページであると判断した場合は、Ｓ６０６で、文書生成ＡＰ３０２が変数Ｎｅｓｔに「１」を代入して、Ｓ６０８へ進む。
【００７７】
一方、Ｓ６０５で、文書生成ＡＰ３０２が拡張ページでないと判断した場合は、Ｓ６０７で文書生成ＡＰ３０２が変数Ｎｅｓｔに「−１」を代入して、Ｓ６０８へ進む。
【００７８】
次に、Ｓ６０８で、文書生成ＡＰ３０２が変数ｊに「ｉ＋１」を代入し、Ｓ６０９で、変数ｊが最終ページ番号以下であるかどうかを判断する。そして、文書生成ＡＰ３０２により変数ｊが最終ページ番号以下であると判断した場合は、Ｓ６１０で、文書生成ＡＰ３０２は、ページ構成Ｙのｉページ目が通常のページであるかどうかを判断する。
【００７９】
ここで、文書生成ＡＰ３０２が通常のページでないと判断した場合は、Ｓ６１１で、ページ構成Ｙのｊページ目が拡張ページであるかどうかを判断する。ここで、文書生成ＡＰ３０２が拡張ページであると判断した場合は、Ｓ６１２で、文書生成ＡＰ３０２が変数Ｎｅｓｔに「１」を加えて、Ｓ６１４へ進む。
【００８０】
一方、Ｓ６１１で、文書生成ＡＰ３０２が拡張ページでないと判断した場合は、Ｓ６１３で、文書生成ＡＰ３０２が変数Ｎｅｓｔから「１」を減じ、Ｓ６１４へ進む。
【００８１】
次に、Ｓ６１４で、文書生成ＡＰ３０２により変数Ｎｅｓｔが「０」であるかどうかを判断する。ここで、文書生成ＡＰ３０２により変数Ｎｅｓｔが「０」であると判断した場合は、Ｓ６１５で、ページ構成Ｙのｉページ目からｊページ目までの拡張ページとブランクページの数が同一なのでそれらを相殺したページ構成Ｚを作成する。
【００８２】
そして、Ｓ６１６で、文書生成ＡＰ３０２が図６に示すフローチャートにしたがってページ構成Ｚのｊ＋１ページ目以降をブランクページで最適化する。そして、Ｓ６１７で、文書生成ＡＰ３０２は、ページ構成Ｚのコストがページ構成Ｘのコストより小さいかどうかを判断する。ここで、文書生成ＡＰ３０２がページ構成Ｚのコストがページ構成Ｘのコストより小さいと判断した場合は、Ｓ６１８で、文書生成ＡＰ３０２がページ構成Ｘを破棄する。
【００８３】
そして、Ｓ６１９で、文書生成ＡＰ３０２がページ構成Ｚをコピーしてページ構成Ｘとし、Ｓ６２０で、文書生成ＡＰ３０２が変数ｉに「１」を加えて、Ｓ６０３へ戻る。
【００８４】
そして、Ｓ６０３で、文書生成ＡＰ３０２により変数ｉが最終ページ番号未満でないと判断した場合は、本処理を終了する。
【００８５】
一方、Ｓ６０４で、文書生成ＡＰ３０２がページ構成Ｙのｉページ目が通常のページであると判断した場合は、Ｓ６２０に移行する。
【００８６】
また、Ｓ６１０で、文書生成ＡＰ３０２がページ構成Ｙのｉページ目が通常のページであると判断した場合、またはＳ６１４で、変数Ｎｅｓｔが「０」でないと判断した場合は、Ｓ６２１で、文書生成ＡＰ３０２が変数ｊに「１」を加える。そして、Ｓ６０９で、文書生成ＡＰ３０２により変数ｊが最終ページ番号以下であるか、Ｓ６１７でページ構成Ｚのコストがページ構成Ｘのコストより小さくないと判断した場合は、Ｓ６２０に移行する。
【００８７】
図７〜図１３は、本実施形態を示す情報処理装置における文書生成処理例を説明する図である。以下、文書生成ＡＰ３０２で前回分の出力に対して差し替えのコストが少なくなるように印刷用ドキュメントを出力するワークフローを説明する。ここで、差し替えコストは、文書生成ＡＰ３０２が図１２に示す特定の関数により算出する。
【００８８】
図７は、図３に示したＷｅｂＡＰ３０１が一度目に生成した出力データ３０３の例を示す。
【００８９】
図７において、７０１〜７０４は、ＷｅｂＡＰ３０１が生成した出力データ３０３の出力データ要素であり、説明を簡明にするためにそれぞれが１ページ以内で印刷されるサイズであることを想定している。
【００９０】
７０５は出力データで、出力データ要素７０１、７０２、７０３、７０４から成り、図３に示した出力データ３０３に対応する。
【００９１】
図８は、図３に示した文書生成ＡＰ３０２が、図７で示した出力データ３０３の例を元に生成した印刷ドキュメント３０４の例を示す。
【００９２】
図８において、８０１〜８０４はページで、それぞれ出力データ要素７０１、７０２、７０３、７０４に対して、ページとその番号「１、２、３、４」を割り当てたものである。
【００９３】
８０５は、ページ８０１、８０２、８０３、８０４から成る印刷用ドキュメントで、図３に示した印刷ドキュメント３０４に対応する。
【００９４】
図９は、図３に示したＷｅｂＡＰ３０１が二度目に生成した出力データ３０３の例を示す。
【００９５】
図９において、９０１、９０２は、それぞれ出力データ要素７０１と出力データ要素７０２、出力データ要素７０２と出力データ要素７０３の間に新規に挿入された出力データ要素である。なお、本実施形態では、説明を簡明にするためにそれぞれが１ページ以内で印刷されるサイズであることを想定している。
【００９６】
また、出力データ要素７０３は二度目の生成時点では削除されているものとする。
【００９７】
９０３は出力データで、出力データ要素７０１、９０１、７０２、９０２、７０４から成り、図３に示した出力データ３０３に対応する。
【００９８】
図１０は、図３に示した文書生成ＡＰ３０２が、図９で示した出力データ３０３の例を元に生成したページ構成の１つ目を示す。
【００９９】
図１０において、１００１は拡張ページで、出力データ要素７０１と出力データ要素９０１にページとその番号「１」を割り当てたものである。
【０１００】
１００２は拡張ページで、出力データ要素７０２と出力データ要素９０２にページとその番号「２」を割り当てたものである。１００３はブランクページで、削除された出力データ要素７０３にページとその番号「３」を割り当てたものである。
【０１０１】
１００４はページで、出力データ要素７０４に印刷ページとその番号「４」を割り当てたものである。１００５はページ構成で、拡張ページとなるページ１００１、１００２と拡張ページと、ブランクのページ１００３、ページ１００４から成るように決定された例である。ここで、拡張ページとは、編集により出力データ要素が増えて１ページが拡張されたものである。
【０１０２】
図１１は、図３に示した文書生成ＡＰ３０２が、図９で示した出力データ３０３の例を元に生成したページ構成の２つ目を示す。
【０１０３】
図１１において、１１０１は拡張ページで、出力データ要素７０１と出力データ要素９０１にページとその番号「１」を割り当てたものである。
【０１０４】
１１０２はページで、出力データ要素７０２にページとその番号「２」を割り当てたものである。
【０１０５】
１１０３はページで、出力データ要素９０２にページとその番号「３」を割り当てたものである。１１０４はページ、出力データ要素７０４にページとその番号「４」を割り当てたものである。１１０５はページ構成で、拡張ページとなるページ１１０１、ページ１１０２、１１０３、１１０４から成るように決定された例である。
【０１０６】
図１２は、図３に示した文書生成ＡＰ３０２が生成する印刷ドキュメント３０４のページ構成のコストを評価する特定の関数の例を示す。
【０１０７】
図１２において、１２０１は、印刷ドキュメント３０４のページ構成の差し替えコストを評価する関数Ｃｏｓｔの例であり、関数１２０１は、下記式により特定される。本関数１２０１は、拡張ページ数にその重み係数を乗じた値と、差し替えページ数にその重みを乗じた値との和をそのコストとしており、各重み係数は「１」としている。
【０１０８】
関数Ｃｏｓｔ（Ｎ，Ｍ）＝Ｗｎ×Ｎ＋Ｗｍ×Ｍ
ここで、Ｗｎは、拡張ページ数の重み係数を示し、本実施形態では、「１」としている。Ｗｍは、差し替えページ数の重み係数を示し、本実施形態では、「１」としている。
【０１０９】
Ｎは拡張ページ数を示し、Ｍは差し替えページ数を示す。
【０１１０】
図１３は、図３に示した文書生成ＡＰ３０２が、図９で示した出力データ３０３の例を元に生成したページ構成の３つ目を示す。
【０１１１】
図１３において、１３０１はページで、出力データ要素７０１にページとその番号「１」を割り当てたものである。１３０２はページで、出力データ要素９０１にページとその番号「２」を割り当てたものである。
【０１１２】
１３０３はページで、出力データ要素７０２にページとその番号「３」を割り当てたものである。１３０４はページで、出力データ要素９０２にページとその番号「４」を割り当てたものである。
【０１１３】
１３０５はページで、出力データ要素７０４にページとその番号「５」を割り当てたものである。１３０６はページ構成で、ページ１３０１、１３０２、１３０３、１３０４、１１０５から成る例である。
【０１１４】
以下に、文書生成アプリケーション３０２による図７、図８によって示した印刷ドキュメントの生成処理について、図４で示したフローチャートにしたがって説明する。尚、ページ拡張機能は有効になっているものとする。
【０１１５】
ＷｅｂＡＰ３０１は、図４に示すＳ４０１で、出力データ７０５を文書生成ＡＰ３０２に送り、Ｓ４０２で前回の出力データがあるかどうかを判断し、無いので前回の出力データは送らない。
【０１１６】
そして、出力データ７０５を受け取った文書生成ＡＰ３０２は、Ｓ４１１で、ページ拡張機能が有効になっているかどうかをチェックし、ここでは上述のように有効になっているので、Ｓ４１２に進む。
【０１１７】
そして、Ｓ４１２で、文書生成ＡＰ３０２は、前回の出力データがあるかどうかを判断する。ここで、前回の出力データは無いので、文書生成ＡＰ３０２は、Ｓ４１７で、出力データ７０５にしたがって図８に示す印刷ドキュメント８０５を出力する。
【０１１８】
そして、Ｓ４１５で、文書生成ＡＰ３０２は、印刷ドキュメント８０５の改ページ位置を出力データ７０５の、出力データ要素７０２の直前、出力データ要素７０３の直前、出力データ要素７０４の直前に挿入する。
【０１１９】
これにより、改ページ位置が設定されたフィードバックされる出力データ（フィードバックデータ３０５に対応する）が生成される。
【０１２０】
そして、Ｓ４１６で、文書生成ＡＰ３０２は、出力データをフィードバックデータ３０５としてＷｅｂＡＰ３０１に送り返し、処理を終了する。
【０１２１】
そして、文書生成ＡＰ３０２からフィードバックデータ３０５を受け取ったＷｅｂＡＰ３０１は、Ｓ４０４で、フィードバックデータ３０５をデータベース３０７に保管し、処理を終了する。
【０１２２】
以下に、図９、図１０、図１１、図１２、図１３によって示した印刷ドキュメントの出力処理を、図４、図５、図６で示したフローチャートにしたがって説明する。
【０１２３】
ＷｅｂＡＰ３０１はＳ４０１で、図９に示す出力データ９０３を文書生成ＡＰ３０２に送り、Ｓ４０２で、文書生成ＡＰ３０２は、前回の出力データがあるかどうかをチェックする。ここでは、ＷｅｂＡＰ３０１は、前回の出力データ７０５があると判断するので、Ｓ４０３で、ＷｅｂＡＰ３０１は、前回の出力データ７０５を文書生成ＡＰ３０２に送る。
【０１２４】
そして、ＷｅｂＡＰ３０１から出力データ９０３を受け取った文書生成ＡＰ３０２は、Ｓ４１１で、ページ拡張機能が有効になっているかどうかをチェックする。ここで、有効になっているので、Ｓ４１２で、文書生成ＡＰ３０２は、前回の出力データがあるかどうかを判断する。
【０１２５】
ここで、文書生成ＡＰ３０２は、前回の出力データ７０５があると判断するので、Ｓ４１３で、文書生成ＡＰ３０２は、前回の出力データ７０５に含まれている改ページ位置を出力データ９０３の、出力データ要素７０２の直前に挿入する。
【０１２６】
同様に、文書生成ＡＰ３０２は、出力データ要素７０３の直前に改ページ位置を挿入する。同様に、文書生成ＡＰ３０２は、出力データ要素７０４の直前に改ページ位置を挿入する。
【０１２７】
しかし、出力データ９０３には、出力データ要素７０３は削除されて無いので、文書生成ＡＰ３０２は、代わりに出力データ要素７０４の直前にもう１つ改ページ位置を挿入し、Ｓ４１４において処理は図５に移行する。
【０１２８】
そして、図５に示すＳ５０１で、文書生成ＡＰ３０２は、出力データ９０３が前回分の出力データ７０５に対しての差し替えページ数が可能な限り少なくなるように、図１０に示す挿入された改ページ位置にしたがってページ構成１００５を作成する。これがページ構成Ａに対応する。
【０１２９】
そして、Ｓ５０２で、文書生成ＡＰ３０２は、ページ構成Ａをコピーしてページ構成Ｂとし、Ｓ５０３で、処理は図６に示す処理に移行する。
【０１３０】
つまり、ページ構成Ａはページ構成Ｘの別名を得て、Ｓ６０１で、文書生成ＡＰ３０２は、ページ構成Ｘをコピーしてページ構成Ｙとする。
【０１３１】
そして、Ｓ６０２で、文書生成ＡＰ３０２は、変数ｉに「１」を代入し、Ｓ６０３で、文書生成ＡＰ３０２は、変数ｉがページ構成Ｘの最終ページ番号である「４」より小さいかどうかを判断する。ここで、文書生成ＡＰ３０２は、最終ページ番号である「４」より小さいと判断し、Ｓ６０４で、文書生成ＡＰ３０２は、ページ構成Ｙの１ページ目である図１０に示すページ１００１が通常のページであるかどうかを判断する。
【０１３２】
ここで、ページ１００１は拡張ページであって通常のページではないので、Ｓ６０５で、文書生成ＡＰ３０２は、ページ構成Ｙ１００５の１ページ目が拡張ページであるかどうかを判断する。
【０１３３】
ここで、ページ１００１は拡張ページなので、Ｓ６０６で、文書生成ＡＰ３０２は、変数Ｎｅｓｔに「１」を代入し、Ｓ６０８で、文書生成ＡＰ３０２は、変数ｊに「２（＝ｉ＋１）」を代入し、Ｓ６０９で、文書生成ＡＰ３０２は、変数ｊがページ構成Ｘ１００５の最終ページ番号である「４」以下であるかどうかを確認する。
【０１３４】
ここで、変数ｊは「４」以下なので、Ｓ６１０で、文書生成ＡＰ３０２は、ページ構成Ｙの２ページ目のページ１００２が通常のページであるかどうかを判断する。ここで、ページ１００２は拡張ページであって通常のページではないので、Ｓ６１１で、文書生成ＡＰ３０２は、ページ構成Ｙの２ページ目のページ１００２が拡張ページであるかどうかを判断する。
【０１３５】
ここで、ページ１００２は拡張ページなので、Ｓ６１２で、文書生成ＡＰ３０２は、Ｎｅｓｔに「１」を加えて「２」とし、Ｓ６１４で、文書生成ＡＰ３０２は、変数Ｎｅｓｔが「０」であるかどうかを判断する。ここで、変数Ｎｅｓｔは、「２」であって「０」ではないので、Ｓ６２１で、文書生成ＡＰ３０２は、変数ｊに「１」を加えて「３」とする。
【０１３６】
そして、Ｓ６０９で、文書生成ＡＰ３０２は、変数ｊがページ構成Ｘの最終ページ番号である「４」以下であるかどうかを確認し、ここで、変数ｊは「４」以下なので、Ｓ６１０で、文書生成ＡＰ３０２は、ページ構成Ｙの３ページ目のページ１００３が通常のページであるかどうかを判断する。
【０１３７】
ここで、ページ１００３はブランクページであって通常のページではないので、Ｓ６１１で、文書生成ＡＰ３０２は、ページ構成Ｙの３ページ目のページ１００３が拡張ページであるかどうかを判断する。
【０１３８】
ここで、ページ１００３はブランクページであって拡張ページではないので、Ｓ６１３で、文書生成ＡＰ３０２は、変数Ｎｅｓｔから「１」を減じて「１」とする。
【０１３９】
そして、Ｓ６１４で、文書生成ＡＰ３０２は、変数Ｎｅｓｔが「０」であるかどうかを判断し、「１」であって「０」ではないので、Ｓ６２１で、文書生成ＡＰ３０２は、変数ｊに「１」を加えて「４」とする。
【０１４０】
そして、Ｓ６０９で、文書生成ＡＰ３０２は、変数ｊがページ構成Ｘの最終ページ番号である「４」以下であるかどうかを判断する。ここで、変数ｊが「４」以下なので、Ｓ６１０で、文書生成ＡＰ３０２は、ページ構成Ｙの４ページ目となるページ１００４が通常のページであるかどうかを判断する。
【０１４１】
ここで、ページ１００４は通常のページなので、Ｓ６２１で、文書生成ＡＰ３０２は、変数ｊに「１」を加えて「５」とする。
【０１４２】
そして、Ｓ６０９で、文書生成ＡＰ３０２は、変数ｊがページ構成Ｘの最終ページ番号である「４」以下であるかどうかを判断する。ここで、変数ｊが「４」以下ではないので、Ｓ６２０で、文書生成ＡＰ３０２は、変数ｉに「１」を加えて「２」とする。ここで、Ｓ６０３で、文書生成ＡＰ３０２は、変数ｉがページ構成Ｘの最終ページ番号である「４」より小さいかどうかを判断する。ここで、変数ｉが「４」より小さいので、Ｓ６０４で、文書生成ＡＰ３０２は、ページ構成Ｙの２ページ目のページ１００２が通常のページであるかどうかを判断する。
【０１４３】
ここで、ページ１００２は拡張ページであって通常のページではないので、Ｓ６０５で、文書生成ＡＰ３０２は、ページ構成Ｙの１ページ目のページ１００１が拡張ページであるかどうかを判断する。
【０１４４】
ここで、ページ１００１は拡張ページなので、Ｓ６０６で、文書生成ＡＰ３０２は、変数Ｎｅｓｔに「１」を代入し、Ｓ６０８で、文書生成ＡＰ３０２は、変数ｊに「３」を代入する。そして、Ｓ６０９で、文書生成ＡＰ３０２は、変数ｊがページ構成Ｘの最終ページ番号である「４」以下であるかどうかを判断する。ここで、変数ｊが「４」以下なので、Ｓ６１０で、文書生成ＡＰ３０２は、ページ構成Ｙの３ページ目となるページ１００３が通常のページであるかどうかを判断する。
【０１４５】
ここで、ページ１００３はブランクページであって通常のページではないので、Ｓ６１１で、文書生成ＡＰ３０２は、ページ構成Ｙの３ページ目となるページ１００３が拡張ページであるかどうかを判断する。
【０１４６】
ここで、ページ１００３はブランクページであって拡張ページではないのでＳ６１３で、文書生成ＡＰ３０２は、変数Ｎｅｓｔから「１」を減じて「０」とする。そして、Ｓ６１４で、文書生成ＡＰ３０２は、変数Ｎｅｓｔが「０」であるかどうかを判断する。ここで、変数Ｎｅｓｔは「０」なので、Ｓ６１５で、文書生成ＡＰ３０２は、ページ構成Ｙの２ページ目から３ページ目までの拡張ページとブランクページを相殺したページ構成Ｚを作成する。
【０１４７】
そして、Ｓ６１６で、文書生成ＡＰ３０２は、ページ構成Ｚをブランクページで最適化するが、ブランクページが無いので説明を割愛する。
【０１４８】
そして、Ｓ６１７で、文書生成ＡＰ３０２は、ページ構成Ｚのコストがページ構成Ｘのコストより小さいかどうかを判断する。
【０１４９】
なお、図１２に示した関数１２０１に従うと、ページ構成Ｚ１１０５の拡張ページ数は「１」で差し替えページ数は「２」なので、その差し替えコストは「３」である。
【０１５０】
また、ページ構成Ｘの拡張ページ数は「２」で差し替えページ数は「２」なのでその差し替えコストは「４」であり、ページ構成Ｚのコストの方が小さいので、Ｓ６１８で、文書生成ＡＰ３０２は、ページ構成Ｘは破棄する。
【０１５１】
そして、Ｓ６１９で、文書生成ＡＰ３０２は、ページ構成Ｚをコピーしてページ構成Ｘとし、Ｓ６２０で、文書生成ＡＰ３０２は、変数ｉに「１」を加えて「３」とする。そして、Ｓ６０３で、文書生成ＡＰ３０２は、変数ｉがページＸの最終ページ番号「４」より小さいかどうかを判断し、小さいので、Ｓ６０４で、文書生成ＡＰ３０２は、ページ構成Ｙの３ページ目となるページ１００３が通常のページであるかどうかを判断する。
【０１５２】
ここで、ページ１００３はブランクページであって通常のページではないので、Ｓ６０５で、文書生成ＡＰ３０２は、ページ構成Ｙの３ページ目となるページ１００３が拡張ページであるかどうかを判断する。ここで、３ページ目となるページ１００３は拡張ページではないので、Ｓ６０７で、文書生成ＡＰ３０２は、変数Ｎｅｓｔに「−１」を代入する。
【０１５３】
そして、Ｓ６０８で、変数ｊに「４」を代入し、Ｓ６０９で、文書生成ＡＰ３０２は、変数ｊがページ構成Ｘの最終ページ番号「４」以下であるかどうかを判断する。ここで、変数ｊが「４」以下なので、Ｓ６１０で、文書生成ＡＰ３０２は、ページ構成Ｙ１００５の４ページ目となるページ１００４が通常のページであるかどうかを判断する。
【０１５４】
ここで、ページ１００４は通常のページなので、Ｓ６２１で、文書生成ＡＰ３０２は、変数ｊに「１」を加えて「５」とする。そして、Ｓ６０９で、変数ｊがページ構成Ｘの最終ページ番号「４」以下であるかどうかを判断する。ここで、変数ｊが「４」以下ではないので、Ｓ６２０で、文書生成ＡＰ３０２は、変数ｉに「１」を加えて「４」とする。
【０１５５】
そして、Ｓ６０３で、文書生成ＡＰ３０２は、変数ｉがページ構成Ｘの最終ページ番号「４」より小さいかどうかを判断し、小さくないので、図６の処理は終了して、図５に示すＳ５０３に戻る。
【０１５６】
そして、Ｓ５０４で、文書生成ＡＰ３０２は、ページ構成Ｂに拡張ページがあるかどうかを判断する。ここで、拡張ページはあるので、Ｓ５０５で、文書生成ＡＰ３０２は、ページ構成Ｂの最後の拡張ページとなるページ１００２を通常の複数のページに分割してページ構成Ｂとする。
【０１５７】
そして、Ｓ５０６で、文書生成ＡＰ３０２は、ページ構成Ｂをブランクページで最適化するが、ブランクページが無いので説明を割愛する。
【０１５８】
そして、Ｓ５０７で、文書生成ＡＰ３０２は、ページ構成Ａのコストよりページ構成Ｂのコストが小さいかどうかを判断する。ここで、図１２に示した関数１２０１に従うと、ページ構成Ａの拡張ページ数は「１」で差し替えページ数は「２」なので、その差し替えコストは「３」である。また、ページ構成Ｂの拡張ページ数は「１」で差し替えページ数は「２」なので、その差し替えコストは「３」である。
【０１５９】
ここで、ページ構成Ｂのコストは小さくないので、Ｓ５０４で、文書生成ＡＰ３０２は、ページ構成Ｂに拡張ページがあるかどうかを判断する。ここで、ページ構成Ｂには拡張ページがあるので、Ｓ５０５で、文書生成ＡＰ３０２は、ページ構成Ｂの最後の拡張ページとなるページ１１０１を通常の複数のページに分割してページ構成Ｂとする。
【０１６０】
そして、Ｓ５０６で、文書生成ＡＰ３０２は、ページ構成Ｂをブランクページで最適化するが、ブランクページが無いので説明を割愛する。
【０１６１】
そして、Ｓ５０７で、文書生成ＡＰ３０２は、ページ構成Ａのコストよりページ構成Ｂのコストが小さいかどうかを判断する。
【０１６２】
ここで、図１２に示した関数１２０１に従うと、ページ構成Ａの拡張ページ数は「１」で差し替えページ数は「２」なので、その差し替えコストは「３」ある。
【０１６３】
また、ページ構成Ｂの拡張ページ数は「０」で差し替えページ数は「４」なので、その差し替えコストは「４」である。ここで、ページ構成Ｂのコストは小さくないので、Ｓ５０４で、ページ構成Ｂに拡張ページがあるかどうかを判断する。
【０１６４】
ここで、構成Ｂには拡張ページが無いので、Ｓ５１０で、文書生成ＡＰ３０２は、ページ構成Ａにしたがって、図１１に示す差し替えページ１１０１、１１０３を印刷ドキュメント３０４として出力し、図５に示す処理は終了して、図４に示すＳ４１４に戻る。
【０１６５】
そして、Ｓ４１５で、文書生成ＡＰ３０２は、印刷ドキュメント１１０５の改ページ位置を出力データ９０３の、出力データ要素７０２の直前、出力データ要素９０２の直前、出力データ要素７０４の直前に挿入する。
【０１６６】
そして、Ｓ４１６で、文書生成ＡＰ３０２は、出力データ９０３をフィードバックデータとしてＷｅｂＡＰ３０１に送り返し、処理を終了する。
【０１６７】
そして、出力データ９０３を受け取ったＷｅｂＡＰ３０１は、Ｓ４０４で、出力データ９０３をデータベース３０７に保管し、処理を終了する。
【０１６８】
本実施形態によれば、ドキュメント作成用データにおいて、一部のページの印刷容量を拡張することにより、印刷されたドキュメントに含まれる差し替えページ数を抑制することが可能となる。
【０１６９】
さらに、差し替えページ数以外の要素をも差し替えにかかるコストと見做し、そのコストを計算している。これにより、印刷されたドキュメントに含まれるページの差し替えに際する、差し替えページ数以外の要素をも考慮に入れたコストを抑制することが可能となる。
【０１７０】
さらに、拡張ページの印刷容量拡張分を近隣のブランクページで相殺することにより、拡張ページ数を抑制することが可能となる。
【０１７１】
さらに、ドキュメント作成用データを調整する手段を利用するかどうかを切り替えることにより、ユーザの判断でページ構成の調整処理を選択することが可能となる。
【０１７２】
〔第２実施形態〕
以下、図１４に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１７３】
図１４は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１７４】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１７５】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１７６】
本実施形態における図４，図５，図６に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１７７】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７８】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７９】
したがって、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１８０】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１８１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１８２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１８３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１８４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８６】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【０１８７】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０１８８】
【図１】本発明の第１実施形態を示す情報処理装置を適用可能な情報処理システムの一例を示す図である。
【図２】図１に示したサーバＰＣ及び各クライアントＰＣのハードウエアの構成を説明するブロック図である。
【図３】図１に示したサーバＰＣにおける文書生成のワークフローを説明するブロック図である。
【図４】本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図５】本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。
【図６】本実施形態を示す情報処理装置における第３のデータ処理手順の一例を示すフローチャートである。
【図７】本実施形態を示す情報処理装置における文書生成処理例を説明する図である。
【図８】本実施形態を示す情報処理装置における文書生成処理例を説明する図である。
【図９】本実施形態を示す情報処理装置における文書生成処理例を説明する図である。
【図１０】本実施形態を示す情報処理装置における文書生成処理例を説明する図である。
【図１１】本実施形態を示す情報処理装置における文書生成処理例を説明する図である。
【図１２】本実施形態を示す情報処理装置における文書生成処理例を説明する図である。
【図１３】本実施形態を示す情報処理装置における文書生成処理例を説明する図である。
【図１４】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１８９】
３０１  Ｗｅｂアプリケーション
３０２  文書生成アプリケーション
３０３  出力データ
３０４  印刷ドキュメント
３０５  フィードバックデータ
３０６  前回分出力データ
３０７  データベース
【図１】
0005159248.tif 000002
【図２】
0005159248.tif 000003
【図３】
0005159248.tif 000004
【図４】
0005159248.tif 000005
【図５】
0005159248.tif 000006
【図６】
0005159248.tif 000007
【図７】
0005159248.tif 000008
【図８】
0005159248.tif 000009
【図９】
0005159248.tif 000010
【図１０】
0005159248.tif 000011
【図１１】
0005159248.tif 000012
【図１２】
0005159248.tif 000013
【図１３】
0005159248.tif 000014
【図１４】
0005159248.tif 000015