(57)【特許請求の範囲】
【請求項１】
画像処理装置と通信可能なページの制御にかかる制御情報及び印刷に用いる出力情報を含む帳票データから複数のページの印刷データを生成するサーバであって、
前記帳票データの制御情報に基づいて、当該帳票データを構成するページの出力情報を取得する帳票データ取得手段と、
前記帳票データ取得手段で取得した出力情報に基づいて、当該出力情報のページの文書データを生成する文書生成手段と、
予め設定された前記印刷データの分割ページ情報に基づいて、前記文書生成手段によって生成する文書データのページが両面印刷の表面であるか否かを判定する判定手段と、
前記判定手段によって当該ページが両面印刷の表面であると判定した場合、前記印刷データを分割するページの変更を行って印刷データを生成する印刷データ生成手段と、
を備えたことを特徴とするサーバ。
【請求項２】
前記印刷データ生成手段は、前記判定手段によって前記文書データのページが両面印刷の表面であると判定した場合は、当該ページの次のページを、前記印刷データを分割するページとして変更して印刷データを生成することを特徴とする請求項１に記載のサーバ。
【請求項３】
前記印刷データ生成手段は、前記判定手段によって前記文書データのページが裏面である場合には、当該ページを、前記印刷データを分割するページとして印刷データを生成することを特徴とする請求項１または２に記載のサーバ。
【請求項４】
前記印刷データ生成手段で生成された印刷データごとに、前記帳票データに含まれるページのうち、いずれのページを含むのかを示すログ情報を生成するログ情報生成手段
を更に備えることを特徴とする請求項１乃至３のいずれか１項に記載のサーバ。
【請求項５】
前記印刷データ生成手段により分割された前記印刷データが生成される度に、当該生成された印刷データの出力を前記画像処理装置に対して指示する出力指示手段を
更に備えることを特徴とする請求項１乃至４のいずれか１項に記載のサーバ。
【請求項６】
前記出力指示手段は、前記印刷データを生成する際に用いた前記帳票データの印刷設定に応じて出力先の前記画像処理装置を特定し、該画像処理装置に対して該印刷データの出力を指示することを特徴とする請求項５に記載のサーバ。
【請求項７】
画像処理装置単位で前記予め設定された前記印刷データの分割ページ情報を記憶する記憶手段を更に備え、
前記判定手段は、前記帳票データ取得手段で取得した帳票データの出力情報に含まれる印刷設定に応じて出力先の画像処理装置を特定し、当該画像処理装置に対応する前記記憶手段の分割情報に基づいて、前記文書生成手段によって生成する文書データのページが両面印刷の表面であるか否かを判定することを特徴とする請求項１乃至６のいずれか１項に記載の印刷制御サーバ。
【請求項８】
画像処理装置と通信可能なページの制御にかかる制御情報及び印刷に用いる出力情報を含む帳票データから複数のページの印刷データを生成するサーバの制御方法であって、
サーバが、前記帳票データの制御情報に基づいて、当該帳票データを構成するページの出力情報を取得する帳票データ取得工程と、
サーバが、前記帳票データ取得工程で取得した出力情報に基づいて、当該出力情報のページの文書データを生成する文書生成工程と、
サーバが、予め設定された前記印刷データの分割ページ情報に基づいて、前記文書生成工程によって生成する文書データのページが両面印刷の表面であるか否かを判定する判定工程と、
サーバが、前記判定工程によって当該ページが両面印刷の表面であると判定した場合、前記印刷データを分割するページの変更を行って印刷データを生成する印刷データ生成工程と、
を備えたことを特徴とするサーバの制御方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれか１項に記載されたサーバとして機能させるためのプログラム。
【請求項１０】
画像処理装置と該画像処理装置と通信可能なページの制御にかかる制御情報及び印刷に用いる出力情報を含む帳票データから複数のページの印刷データを生成するサーバを含む印刷制御システムであって、
前記帳票データの制御情報に基づいて、当該帳票データを構成するページの出力情報を取得する帳票データ取得手段と、
前記帳票データ取得手段で取得した出力情報に基づいて、当該出力情報のページの文書データを生成する文書生成手段と、
予め設定された前記印刷データの分割ページ情報に基づいて、前記文書生成手段によって生成する文書データのページが両面印刷の表面であるか否かを判定する判定手段と、
前記判定手段によって当該ページが両面印刷の表面であると判定した場合、前記印刷データを分割するページの変更を行って印刷データを生成する印刷データ生成手段と、
を備えたことを特徴とする印刷制御システム。
【請求項１１】
画像処理装置と該画像処理装置と通信可能なページの制御にかかる制御情報及び印刷に用いる出力情報を含む帳票データから複数のページの印刷データを生成するサーバを含む印刷制御システムの制御方法であって、
前記帳票データの制御情報に基づいて、当該帳票データを構成するページの出力情報を取得する帳票データ取得工程と、
前記帳票データ取得工程で取得した出力情報に基づいて、当該出力情報のページの文書データを生成する文書生成工程と、
予め設定された前記印刷データの分割ページ情報に基づいて、前記文書生成工程によって生成する文書データのページが両面印刷の表面であるか否かを判定する判定工程と、
前記判定工程によって当該ページが両面印刷の表面であると判定した場合、前記印刷データを分割するページの変更を行って印刷データを生成する印刷データ生成工程と、
を備えたことを特徴とする印刷制御システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、帳票データから所定のページ数を含む印刷データを生成する際に、印刷データの最終ページが表面とならないように抑止することの可能なサーバ、サーバの制御方法、及びプログラム、印刷制御システム、及び印刷制御システムの制御方法に関する。
【背景技術】
【０００２】
従来、ホストコンピュータから印刷指示された帳票データを印刷制御サーバが受信し、印刷制御サーバでＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データに変換した上で、これをプリンタから出力する仕組みが存在する。
【０００３】
特に帳票データから生成されるＰＤＬデータが、ＪＤＦ（Ｊｏｂ  Ｄｅｆｉｎｉｔｉｏｎ  Ｆｏｒｍａｔ）データとＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）データとが結合したデータである場合がある。ＪＤＦデータは両面／片面や給紙カセットといった印刷設定を含むＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のデータであり、ＰＤＦデータは印刷対象の文書（ここでは帳票）を示すデータである。
【０００４】
このような形式のＰＤＬデータを出力する場合には、印刷制御サーバは、帳票データが示す帳票の全ページのＰＤＦデータを生成した後にこのＰＤＦデータの各ページの印刷設定を含むＪＤＦデータを生成し、これらを結合してＰＤＬデータを生成している。これは、ＰＤＦデータが全体で何ページあるのかがわからないと、何ページ目がどういった印刷設定であるのかをＪＤＦデータで定義できないからである。また、ＪＤＦデータがないとプリンタは印刷設定がわからず、ＰＤＬデータの出力を実行できない。すなわち、帳票の全ページを印刷可能なＰＤＬデータが生成されるまで待機しなければ、プリンタからの出力は実行できない。
【０００５】
そこで特許文献１には、印刷出力の開始を早めるために、印刷ジョブからイメージデータを生成し、ページの切れ目で印刷ジョブを分割する仕組みが開示されている。
【０００６】
また特許文献２には、ページ分割されていないポストスクリプト等のＰＤＬデータをページ分割し、分割したページの面付け処理を行った上でプリンタに転送する仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−９１７４８号公報
【特許文献２】特開２０１４−１７７０１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１及び特許文献２に開示されている仕組みでは、単純に所定ページごとに分割してしまうので、印刷設定が両面印刷であるにも関わらず、表面のページと裏面のページの間で分割されてしまう可能性がある。
【０００９】
特に帳票は、表面と裏面で印字位置のレイアウトが異なる専用の用紙に出力されることが多い。そのため、ページごとの表面と裏面の設定と、印刷される用紙の表面と裏面とを一致させないと印字位置がずれてしまう問題がある。
【００１０】
本発明は、帳票データから所定のページ数を含む印刷データを生成する際に、印刷データの最終ページが表面とならないように抑止することの可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために本発明のサーバは、画像処理装置と通信可能なページの制御にかかる制御情報及び印刷に用いる出力情報を含む帳票データから複数のページの印刷データを生成するサーバであって、前記帳票データの制御情報に基づいて、当該帳票データを構成するページの出力情報を取得する帳票データ取得手段と、前記帳票データ取得手段で取得した出力情報に基づいて、当該出力情報のページの文書データを生成する文書生成手段と、予め設定された前記印刷データの分割ページ情報に基づいて、前記文書生成手段によって生成する文書データのページが両面印刷の表面であるか否かを判定する判定手段と、前記判定手段によって当該ページが両面印刷の表面であると判定した場合、前記印刷データを分割するページの変更を行って印刷データを生成する印刷データ生成手段と、を備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、帳票データから所定のページ数を含む印刷データを生成する際に、印刷データの最終ページが表面とならないように抑止することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の概要を示す図である。
【図２】印刷制御システムのシステム構成の一例を示す図である。
【図３】印刷制御サーバ１０１のハードウェア構成の一例を示す図である。
【図４】印刷制御サーバ１０１の機能構成の一例を示す図である。
【図５】本発明の一連の処理の流れを示すフローチャートである。
【図６】帳票データ６００のデータ構成の一例を示す図である。
【図７】ＪＤＦデータ７００のデータ構成の一例を示す図である。
【図８】印刷制御情報８００及び分割ページ設定情報８１０のデータ構成の一例を示す図である。
【図９】改ページ処理の詳細な処理の流れを示すフローチャートである。
【図１０】データ分割処理の詳細な処理の流れを示すフローチャートである。
【図１１】印刷ログ１１００のテーブル構成の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１５】
まず図１を参照して、本発明の概要について説明する。本発明の印刷制御システムは、ホストコンピュータ１０３で印刷指示がなされた帳票データを印刷制御サーバ１０１が受信し、受信した帳票データを用いてプリンタ１０２で出力可能な形式であるＰＤＬデータ（印刷データ）を生成する。この仕組みにおいて、ＰＤＬデータを生成する際には、受信した帳票データからＪＤＦデータ（印刷設定）とＰＤＦデータ（文書データ）とを生成し、これらを結合することでＰＤＬデータを生成する。ＪＤＦデータは両面／片面や給紙カセットといった印刷設定を含むＸＭＬ形式のデータであり、ＰＤＦデータは印刷対象の文書（ここでは帳票）を示すデータである。
【００１６】
従来は、印刷制御サーバ１０１が帳票データに含まれるすべてのページを含むＰＤＬデータを生成するまで、印刷制御サーバ１０１がプリンタ１０２に対して印刷指示を行うことはなかった。そのため、印刷の初動が遅くなってしまう問題があった。そこで本発明では、印刷制御サーバ１０１が帳票データからＰＤＦデータを生成する際には、すべてのページを含むＰＤＦデータを生成するのではなく、所定のページ数を含むＰＤＦデータを生成することで、印刷の初動を早める。例えば、帳票データが７０００ページの帳票からなるデータである場合には、１０００ページごとにＰＤＦデータを生成し、更にこの１０００ページ分のＪＤＦデータを生成する。そして、これらを結合して１０００ページ分のＰＤＬデータを生成することで、印刷が開始されるまでの待ち時間を軽減する。
【００１７】
更には、所定のページ数を含むＰＤＦデータを生成する際には、ページの表裏を考慮する。図１の１１０に示すように、例えば１０００ページごとにＰＤＦデータを生成する場合に、１０００ページ目が両面印刷の表面である場合がある。こうした場合に、単純に１０００ページ目で分割してしまうと、次のページは本来裏面に印刷されなければならないが、先頭のページになってしまうので表面に印刷されてしまう。よって、ユーザの意図しない印刷結果となってしまう可能性がある。そのため、所定のページ数を含むＰＤＦデータを生成する際には、最終ページが表面であるか裏面であるかを判定し、表面である場合には、裏面である次のページまで含めてＰＤＦデータを生成する。裏面である場合には、次のページは含めずにＰＤＦデータを生成する。こうすることで適切なページを含めてＰＤＦデータを生成することが可能となる。
【００１８】
以上が本発明の概要である。以下、この発明の詳細について説明を行う。
【００１９】
図２は、本発明の印刷制御システムのシステム構成の一例を示す図である。印刷制御システムでは、印刷制御サーバ１０１、プリンタ１０２、ホストコンピュータ１０３がＬＡＮやＷＡＮ等のネットワーク１０４を介して通信可能に接続されている。尚、図１のネットワーク上に接続される各種装置の構成は一例であり、用途や目的に応じて様々な構成例があるため、これに限定されない。
【００２０】
印刷制御サーバ１０１は、サーバ装置である。印刷制御サーバ１０１は、ホストコンピュータ１０３から送信される帳票データを受信し、受信した帳票データからＰＤＬデータを生成する。尚、印刷制御サーバ１０１はサーバ装置に限らない。情報処理装置であってもよい。
【００２１】
プリンタ１０２は、画像処理装置である。図２には、複数のプリンタ１０２（プリンタ１０２ａ、プリンタ１０２ｂ）を示す。ネットワーク１０４に接続されるプリンタ１０２の数は問わない。プリンタ１０２は、印刷制御サーバ１０１から送信されるＰＤＬデータを受信し、既知の技術を用いて用紙に印刷を行う。ホストコンピュータ１０３は、サーバ装置である。ホストコンピュータ１０３は、帳票データを管理し、ユーザからの指示または自動的に帳票データの印刷処理を実行する。これにより、ホストコンピュータ１０３が印刷対象の帳票データが特定し、特定された帳票データを印刷制御サーバ１０１に送信する。
【００２２】
図３は、印刷制御サーバ１０１のハードウェア構成の一例を示す図である。
【００２３】
ＣＰＵ３０１は、システムバス３０４に接続される各デバイスやコントローラを統括的に制御する。
【００２４】
また、ＲＯＭ３０２あるいは外部メモリ３１１には、ＣＰＵ３０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳという。）が記憶されている。また外部メモリ３１１には、各種装置の実行する機能を実現するために必要な各種プログラム等が記憶されている。ＲＡＭ３０３は、ＣＰＵ３０１の主メモリ、ワークエリア等として機能する。
【００２５】
ＣＰＵ３０１は、処理の実行に際して必要なプログラム等をＲＡＭ３０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２６】
また、入力コントローラ３０５は、キーボードやマウス等のポインティングデバイスといった入力デバイス３０９からの入力を制御する。
【００２７】
ビデオコントローラ３０６は、ディスプレイ３１０等の表示器への表示を制御する。表示器はＣＲＴや液晶ディスプレイでも構わない。
【００２８】
メモリコントローラ３０７は、ハードディスクやフレキシブルディスク或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ３１１へのアクセスを制御する。外部メモリ３１１（記憶手段）は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する。
【００２９】
通信Ｉ／Ｆコントローラ３０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００３０】
尚、ＣＰＵ３０１は、例えばＲＡＭ３０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ３１０上での表示を可能としている。また、ＣＰＵ３０１は、ディスプレイ３１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３１】
本発明の印刷制御サーバ１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ３１１に記録されており、必要に応じてＲＡＭ３０３にロードされることによりＣＰＵ３０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ３１１に格納されている。以上が、印刷制御サーバ１０１のハードウェア構成である。
【００３２】
図４は、印刷制御サーバ１０１の機能構成の一例を示す図である。
【００３３】
印刷制御サーバ１０１は機能部として、記憶部４０１、送受信部４０２、ＰＤＦデータ生成部４０３、ＪＤＦ属性生成部４０４、ＪＤＦデータ生成部４０５、ＰＤＬデータ生成部４０６、印刷指示部４０７、印刷ログ生成部４０８を備える。
【００３４】
記憶部４０１は、ホストコンピュータ１０３から送信される帳票データやその他各種データを外部メモリ３１１に記憶するための機能部である。
【００３５】
送受信部４０２は、印刷制御サーバ１０１と通信可能に接続される装置とのデータの送受信を制御するための機能部である。
【００３６】
ＰＤＦデータ生成部４０３（印刷データ生成手段）は、ホストコンピュータ１０３から送信される帳票データを用いて、帳票データに含まれる複数のページからなるＰＤＦデータを生成するための機能部である。帳票データには、１または複数のページを有する１または複数の帳票が含まれている。ＰＤＦデータ生成部４０３は、この帳票データから１または複数のページをＰＤＦデータに格納することで、帳票データに含まれるページを有するＰＤＦデータを生成する。更には、ＰＤＦデータ生成部４０３は、所定のページ数をＰＤＦデータに格納したら、１つのＰＤＦデータとしてクローズ（ファイル生成）する。そして、次のページからは別のＰＤＦデータに格納する。このようにＰＤＦデータ生成部４０３は、所定のページ数を含むＰＤＦデータを生成する。そして、所定のページ数を含むＰＤＦデータを生成する際には、格納する最終ページが両面印刷の表面なのか裏面なのかを判定し、表面である場合には次のページも格納した上でＰＤＦデータをクローズする。裏面である場合には、次のページは含めずにＰＤＦデータをクローズする。
【００３７】
ＪＤＦ属性生成部４０４は、ＰＤＦデータ生成部４０３でＰＤＦデータに格納するページの印刷設定をＪＤＦ属性として生成するための機能部である。ＪＤＦ属性は、ＪＤＦデータを生成するために一時的に生成される属性情報である。帳票データには、どのページからどのページまでがどのような印刷設定なのかが記録されているので、ＪＤＦ属性生成部４０４は、これを参照して、生成するＰＤＦデータのページに対応する印刷設定をＪＤＦ属性として記録する。
【００３８】
ＪＤＦデータ生成部４０５は、ＰＤＦデータ生成部４０３でＰＤＦデータが生成されると、生成されるＰＤＦデータに含まれるページの印刷設定を含むＪＤＦ属性を用いて、ＪＤＦデータを生成するための機能部である。ＪＤＦデータは、ＪＤＦ属性生成部４０４で生成したＪＤＦ属性を含むデータである。
【００３９】
ＰＤＬデータ生成部４０６は、ＰＤＦデータ生成部４０３で生成したＰＤＦデータと、ＪＤＦデータ生成部４０５で生成されたＪＤＦデータとを結合し、ＰＤＬデータを生成するための機能部である。ＰＤＬデータは、ＰＤＦデータとＪＤＦデータとから構成される印刷データである。プリンタ１０２は、このＰＤＬデータを用いることで印刷を実行する。
【００４０】
印刷指示部４０７（出力指示手段）は、ＰＤＬデータ生成部４０６でＰＤＬデータが生成される度に、生成されたＰＤＬデータの出力をプリンタ１０２に対して指示するための機能部である。
【００４１】
印刷ログ生成部４０８（ログ情報生成手段）は、印刷指示部４０７で印刷指示された結果を示す印刷ログを生成するための機能部である。印刷ログ（ログ情報）には、印刷したＰＤＬデータに含まれるページが帳票データのどの範囲のページに該当するのかを示す情報を含む。以上が印刷制御サーバ１０１の機能構成である。
【００４２】
図５は、本発明の一連の処理の流れを示すフローチャートである。図５に示すＳ５０１乃至Ｓ５１７の各ステップは、印刷制御サーバ１０１のＣＰＵ３０１によって実行される。
【００４３】
Ｓ５０１では、記憶部４０１は、外部メモリ３１１に記憶された帳票データを取得し、帳票データの中身を読み込む（帳票データ取得手段）。帳票データは、ホストコンピュータ１０３から送信されたものをあらかじめ外部メモリ３１１に記憶しておき、これをＳ５０１で読み込む。また、帳票データには、印刷対象の１または複数の帳票のページと、そのページの印刷設定とが含まれている。
【００４４】
帳票データのデータ構成を図６に示す。図６の帳票データ６００は、ホストコンピュータ１０３から送信される帳票データのデータ構成の一例を示す。帳票データ６００は、行制御６０１、制御命令・印字データ６０２を備える。行制御６０１は、ＰＤＦデータのページ内のどの位置に印字するのかを制御するための情報を示す。
【００４５】
例えば、行制御６０１の“１行目移動”は、ページの１行目に印字位置を移動させることを示し、行制御６０１の“１行改行”は、現在の印字位置から１行改行させることを示す。更には、行制御６０１の“改ページ”は、ページを改めて次のページに印字位置を移動させることを示す。帳票は行ごとに印字を行うため、このような記載になっている。
【００４６】
また、制御命令・印字データ６０２は、両面／片面印刷・給紙方法といった印刷設定や、フォントの指定や罫線の描画など印刷描画、印字する内容（以下、印字データという。）を示す。例えば、制御命令・印字データ６０２の先頭に“［ｃｓ］”と記載されていれば、これは印字データではなく制御命令を示す。そして制御命令が、“ＤＢ０”と記載されていれば片面印刷が指定されていることを示し、“ＤＢ１”と記載されていれば両面印刷が指定されていることを示す。また、制御命令が、“ＳＰ１”と記載されていればカセット１から給紙する旨が指定されていることを示し、“ＳＰ２”と記載されていればカセット２から給紙する旨が指定されていることを示す。このような印刷設定を、あらかじめホストコンピュータ１０３が制御命令・印字データ６０２に記録している。更に、制御命令・印字データ６０２の先頭に“［ｃｓ］”が記載されていなければ、制御命令・印字データ６０２が示す情報は現在の印字位置に印字すべき印字データを示す。
【００４７】
制御命令・印字データ６０２に記載される印刷設定は、帳票のページごとに記載されているのではなく、印刷設定に変更がある場合に記載される。そのため、複数の帳票が同じ印刷設定であるならば、この印刷設定は最初の１回のみ記載される。
【００４８】
尚、本実施形態では帳票データは図６に示すようなデータ構成とするが、これに限らない。あくまで一例であり、他のデータ構成であってもよい。
【００４９】
図５の説明に戻る。Ｓ５０２では、ＰＤＦデータ生成部４０３は、Ｓ５０１で読み込んだ帳票データが有する全行に対して後述するＳ５０３乃至Ｓ５１６の処理が終了したか否かを判定する。すなわち、現在参照している行が最終行であるか否かを判定する。全行に対して処理が終了したと判定した場合には、Ｓ５１７に処理を進める。全行に対して処理が終了していない、つまり未処理の行が存在する場合には、Ｓ５０３に処理を進める。
【００５０】
Ｓ５０３では、ＰＤＦデータ生成部４０３は、変数Ｎをインクリメントする。変数Ｎが定義されていなければ、これを定義した後（または同時）にインクリメントする。そして、Ｓ５０４では、ＰＤＦデータ生成部４０３は、帳票データに含まれる行のうち、Ｎ行目を参照する。以下、Ｓ５０４で参照している帳票データ中の行のことを、参照中の行という。
【００５１】
Ｓ５０５では、ＰＤＦデータ生成部４０３は、参照中の行に記載されている行制御６０１の種別を判別する。判別した結果、行制御６０１が“改行なし”である場合には、Ｓ５１０に処理を進める。行制御６０１が“改ページ”である場合には、Ｓ５０６に処理を進める。行制御６０１が“１行目移動”や“１行改行”である場合には、Ｓ５０７に処理を進める。
【００５２】
Ｓ５０６では、印刷制御サーバ１０１は、ＰＤＦデータに次のページを追加する改ページ処理を実行する。改ページ処理の詳細は、図９を用いて後述する。改ページ処理の処理が完了したら、Ｓ５１０に処理を進める。
【００５３】
Ｓ５０７では、ＰＤＦデータ生成部４０３は、ＰＤＦデータ内で作成中のページにおける印字位置を移動させる。参照中の行の行制御６０１が“１行目移動”であれば、ＰＤＦデータ生成部４０３が印字位置をページの１行目に移動する。参照中の行の行制御６０１が“１行改行”であれば、ＰＤＦデータ生成部４０３が印字位置を現在の位置から１行改行した位置に移動する。このように、行制御６０１に記載されている情報に応じて、印字位置を移動させる。
【００５４】
Ｓ５０８では、ＰＤＦデータ生成部４０３は、Ｓ５０７による印字位置の移動によって、改ページが必要となったか否かを判定する。例えば、ＰＤＦデータのページにおいて印字可能な行を超えて改行する場合に、改ページが必要と判定される。改ページが必要であると判定した場合には、Ｓ５０９に処理を進める。改ページが不要であると判定した場合には、Ｓ５１０に処理を進める。
【００５５】
Ｓ５０９では、印刷制御サーバ１０１は、ＰＤＦデータに次のページを追加する改ページ処理を実行する。改ページ処理の詳細は、図９を用いて後述する。改ページ処理の処理が完了したら、Ｓ５１０に処理を進める。
【００５６】
Ｓ５１０では、ＰＤＦデータ生成部４０３は、参照中の行の制御命令・印字データ６０２に制御命令があるか否かを判定する。すなわち、参照中の行の制御命令・印字データ６０２の先頭に“［ｃｓ］”が記載されているか否かを判定する。制御命令があると判定した場合には、Ｓ５１２に処理を進める。制御命令がないと判定した場合には、Ｓ５１１に処理を進める。
【００５７】
Ｓ５１１では、ＰＤＦデータ生成部４０３は、ＰＤＦデータ内の現在の印字位置に、参照中の行の制御命令・印字データ６０２に記載されている印字データ、すなわちテキストデータを出力する。処理が完了したら、Ｓ５０２に処理を戻す。
【００５８】
Ｓ５１２では、記憶部４０１は、外部メモリ３１１に記憶される印刷制御情報を更新する。印刷制御情報は、現在作成中のページの印刷設定や、生成したページ数を一時保存するための情報である。図８に印刷制御情報のデータ構成の一例を示す。
【００５９】
印刷制御情報８００は、片面両面８０１、印字面８０２、生成済みページ数８０３、ジョブ内ページ数８０４を備える。片面両面８０１は、現在作成中のページが片面印刷なのか両面印刷なのかを示す。印字面８０２は、現在作成中のページが表面と裏面のどちらなのかを示す。生成済みページ数８０３は、現在ページを格納しているＰＤＦデータにおける生成済みのページ数は何ページなのかを示す。ジョブ内ページ数８０４は、帳票データの何ページ目までがＰＤＦデータに格納されているのかを示す。印刷制御情報８００のデータ構成はあくまで一例であり、他の構成であってもよい。
【００６０】
Ｓ５１２では、参照中の行の制御命令・印字データ６０２が両面印刷や片面印刷の制御命令である場合には、印刷制御情報８００の片面両面８０１をその制御命令が示す情報に更新する。そして、印字面８０２に“表面”という情報を格納する。
【００６１】
Ｓ５１３では、ＰＤＦデータ生成部４０３は、参照中の行の制御命令・印字データ６０２が示す制御命令に応じて、改ページが必要となったか否かを判定する。例えば、Ｓ５１２で片面両面８０１が“片面印刷”から“両面印刷”に更新された場合や、逆に“両面印刷”から“片面印刷”に更新された場合に、改ページが必要と判定される。別の例としては、制御命令・印字データ６０２に、強制的に表面に印字する制御命令や用紙サイズや行ピッチ等のページ定義の変更をする制御命令が記載されている場合に、改ページが必要と判定される。改ページが必要であると判定した場合には、Ｓ５１４に処理を進める。改ページが不要であると判定した場合には、Ｓ５１５に処理を進める。
【００６２】
Ｓ５１４では、印刷制御サーバ１０１は、ＰＤＦデータに次のページを追加する改ページ処理を実行する。改ページ処理の詳細は、図９を用いて後述する。改ページ処理の処理が完了したら、Ｓ５１５に処理を進める。
【００６３】
Ｓ５１５では、ＪＤＦ属性生成部４０４は、ＪＤＦ属性の更新が必要か否かを判定する。例えば、参照中の行の制御命令・印字データ６０２に、給紙カセットに関する制御命令や片面両面に関する制御命令が記載されていれば、ＪＤＦ属性の更新が必要であると判定する。ＪＤＦ属性の更新が必要であると判定した場合には、Ｓ５１６に処理を進める。ＪＤＦ属性の更新が不要であると判定した場合には、Ｓ５０２に処理を戻す。
【００６４】
Ｓ５１６では、ＪＤＦ属性生成部４０４は、参照中の行の制御命令・印字データ６０２に記載されている制御命令に基づいて、ＪＤＦ属性を更新する。ＪＤＦ属性の一例を図７に示す。図７に示すＪＤＦ属性は、給紙カセット属性７１０、片面両面属性７２０である。印刷設定の量に応じて他のＪＤＦ属性を備えてもよい。
【００６５】
ＪＤＦ属性は、印刷設定の属性ごとに属性値、開始ページ、終了ページを備える。属性値は、印刷設定の内容を示す。開始ページと終了ページは、その属性値が適用されるページの範囲を示す。例えば、属性値が“自動給紙”で開始ページが“２”、終了ページが“５０”である場合には、作成中のＰＤＦデータの２ページ目から５０ページ目までは自動給紙の印刷設定でプリンタ１０２から印刷することを示す。
【００６６】
Ｓ５１６では、参照中の行の制御命令・印字データ６０２が示す制御命令に応じたＪＤＦ属性を特定し、このＪＤＦ属性の最終行の終了ページに現在作成中のページの前のページのページ番号を格納する。そして、特定したＪＤＦ属性に新たに行を追加し、制御命令が示す情報を属性値に格納する。更に現在作成中のページのページ番号を開始ページに格納する。このようにして、ＪＤＦ属性を更新し、作成中のＰＤＦデータに対応する印刷設定（後のＪＤＦデータ）を作成していく。
【００６７】
Ｓ５１６の処理が終了したら、Ｓ５０２に処理を戻す。Ｓ５１１、Ｓ５１５、Ｓ５１６の各ステップからＳ５０２に処理が戻ったら、再度、Ｓ５０１で読み込んだ帳票データが有する全行に対して後述するＳ５０３乃至Ｓ５１６の処理が終了したか否かを判定する。つまり、帳票データに含まれる印字データをＰＤＦデータに作成されたページに印字しながらそのページの印刷設定をＪＤＦ属性に記録していく。そして、帳票データに含まれるすべての行に対して処理が完了したら、Ｓ５１７に処理を進める。
【００６８】
Ｓ５１７では、印刷制御サーバ１０１は、作成中のＰＤＦデータをクローズし、プリンタ１０２に印刷指示するデータ分割処理を実行する。データ分割処理の詳細は、図１０を用いて後述する。データ分割処理が完了したら、本一連の処理を終了する。図５の説明は以上である。
【００６９】
図９は、改ページ処理の詳細な処理の流れを示すフローチャートである。図９に示すＳ９０１乃至Ｓ９１４の各ステップは、印刷制御サーバ１０１のＣＰＵ３０１によって実行される。
【００７０】
Ｓ９０１では、ＰＤＦデータ生成部４０３は、現在作成中のページで一旦ＰＤＦデータをクローズして、別のＰＤＦデータに新規ページを作成する対象か否か、すなわち分割対象か否かを判定する。分割対象か否かは、Ｓ５０１で読み込んだ帳票データに対応する分割ページ情報が外部メモリ３１１に記憶されているか否かにより判定する。分割ページ情報は、プリンタ１０２ごとにあらかじめ設定される設定値である。例えば、ホストコンピュータ１０３は、プリンタ１０２で出力する帳票データのファイル名に出力先のプリンタ１０２を示す情報を埋め込んでおく。そして、印刷制御サーバ１０１は、Ｓ５０１で読み込んだ帳票データのファイル名から出力先のプリンタ１０２を特定し、Ｓ９０１では、このプリンタ１０２に対応する分割ページ情報が外部メモリ３１１に記憶されているか否かを確認する。記憶されていれば、分割対象と判定する。このように、プリンタ１０２ごとに分割ページ情報を用意しておくことで、出力先のプリンタ１０２によって分割の要否を切り替えることができる。
【００７１】
図８に示す分割ページ設定情報８１０は、外部メモリ３１１に記憶され、複数のプリンタ１０２の分割ページ情報を格納している。分割ページ情報Ａ、分割ページ数Ｂ、分割ページ数Ｃは、出力先のプリンタ１０２ごとに設定される分割ページ情報である。それぞれ何ページごとにＰＤＦデータを分割するのか（所定のページ数）が定義されている。例えば、分割ページ情報Ａに“１０００”が格納されていれば、１０００ページごとにＰＤＦデータをクローズ（すなわち分割）することが定義されている。
【００７２】
図９に説明を戻す。Ｓ９０１で分割対象であると判定した場合には、Ｓ９０２に処理を進め、分割対象でないと判定した場合にはＳ９１２に処理を進める。
【００７３】
Ｓ９０２では、ＰＤＦデータ生成部４０３は、現在作成中のＰＤＦデータの生成済みページ数が、Ｓ９０１で特定した分割ページ情報が示すページ数以上であるか否かを判定する。現在作成中のＰＤＦデータの生成済みページ数は、印刷制御情報８００の生成済みページ数８０３を参照すればよい。生成済みページ数が分割ページ情報の示すページ数以上であると判定した場合にはＳ９０５に処理を進める。そうでない場合には、生成済みページ数が分割ページ情報の示すページ数にまだ満たないので、Ｓ９０５乃至Ｓ９０９の処理は行わず、Ｓ９０３に処理を進める。
【００７４】
Ｓ９０３では、ＰＤＦデータ生成部４０３は、現在作成中のページの印刷設定が両面印刷であるか否かを判定する。現在作成中のページの印刷設定（片面両面）は、ＪＤＦ属性（片面両面属性７２０の最終行の属性値）を参照すれば特定できる。両面印刷であると判定した場合には、Ｓ９０４に処理を進める。そうでない場合、つまり片面印刷であると判定した場合には、Ｓ９１０に処理を進める。
【００７５】
Ｓ９０４では、記憶部４０１は、外部メモリ３１１に記憶される印刷制御情報８００の印字面８０２を反転させる。すなわち、印字面８０２に“表面”が格納されていれば、“裏面”とし、逆に印字面８０２に“裏面”が格納されていれば、“表面”とする。このようにして、次に作成するページが表面なのか裏面なのかを印刷制御情報８００に記憶する。
【００７６】
一方、Ｓ９０２で生成済みページ数が分割ページ情報の示すページ数以上であると判定した場合には、Ｓ９０５では、ＰＤＦデータ生成部４０３は、現在作成中のページの印刷設定が両面印刷であるか否かを判定する。詳細な処理は、Ｓ９０３と同様である。両面印刷であると判定した場合には、Ｓ９０６に処理を進める。そうでない場合、つまり片面印刷であると判定した場合には、Ｓ９０９に処理を進める。
【００７７】
Ｓ９０６では、ＰＤＦデータ生成部４０３は、現在作成中のページが裏面であるか否かを判定する。現在作成中のページの印字面は、印刷制御情報８００の印字面８０２を参照すれば特定できる。現在作成中のページが裏面であると判定した場合には、Ｓ９０８に処理を進める。そうでない場合、つまり現在作成中のページが表面であると判定した場合には、現在作成中のページに対応する裏面のページ（すなわち次のページ）まで含めてＰＤＦデータをクローズしたいため、Ｓ９０８乃至Ｓ９０９は実行せずに、Ｓ９０７に処理を進める。
【００７８】
Ｓ９０７では、記憶部４０１は、外部メモリ３１１に記憶される印刷制御情報８００の印字面８０２に“裏面”と格納する。このようにして、次に作成するページが裏面である旨を印刷制御情報８００に記憶する。処理が完了したら、Ｓ９１０に処理を進める。
【００７９】
一方、Ｓ９０８では、記憶部４０１は、外部メモリ３１１に記憶される印刷制御情報８００の印字面８０２に“表面”と格納する。このようにして、次に作成するページが表面である旨を印刷制御情報８００に記憶する。
【００８０】
そしてＳ９０９では、印刷制御サーバ１０１は、作成中のＰＤＦデータをクローズし、プリンタ１０２に印刷指示するデータ分割処理を実行する。データ分割処理の詳細は、図１０を用いて後述する。
【００８１】
つまり、ＰＤＦデータに作成されたページ数が所定のページ数以上である場合には、現在作成中のページ、すなわちＰＤＦデータにおける最終ページが裏面であるか否かを判定し、裏面である場合には一旦ＰＤＦデータをクローズする。一方、表面である場合には、クローズせずに後述するＳ９１４で裏面である次のページをＰＤＦデータに作成する。このようにすることで、単に所定のページ数でＰＤＦデータを分割するのではなく、表面に対応する裏面までを含めてＰＤＦデータを生成することが可能となる。
【００８２】
Ｓ９１０では、記憶部４０１は、印刷制御情報８００の生成済みページ数８０３をインクリメントする。また、Ｓ９１１では、記憶部４０１は、印刷制御情報８００のジョブ内ページ数８０４をインクリメントする。
【００８３】
Ｓ９１２では、ＰＤＦデータ生成部４０３は、ＲＡＭ３０３に作成中のＰＤＦデータが存在するか否かを判定する。ＲＡＭ３０３に作成中のＰＤＦデータが存在すると判定した場合には、Ｓ９１４に処理を進める。ＲＡＭ３０３に作成中のＰＤＦデータが存在しないと判定した場合には、Ｓ９１３に処理を進める。
【００８４】
Ｓ９１３では、ＰＤＦデータ生成部４０３は、ＲＡＭ３０３に空のＰＤＦデータを生成（オープン）する。以後は、このオープンしたＰＤＦデータにページを作成していく。
【００８５】
Ｓ９１４では、ＰＤＦデータ生成部４０３は、ＲＡＭ３０３に存在するＰＤＦデータに、改ページによる新たなページを追加する。以後は、このページが現在作成中のページとなる。Ｓ９１４の処理が完了したら、改ページ処理の呼び出し元に処理を戻す。以上が、図９の説明である。
【００８６】
図１０は、データ分割処理の詳細な処理の流れを示すフローチャートである。図１０に示すＳ１００１乃至Ｓ１００７の各ステップは、印刷制御サーバ１０１のＣＰＵ３０１によって実行される。
【００８７】
Ｓ１００１では、ＰＤＦデータ生成部４０３は、現在作成中のＰＤＦデータを１つのＰＤＦデータとしてクローズ（ファイル生成）する。
【００８８】
Ｓ１００２では、ＪＤＦデータ生成部４０５は、ＪＤＦ属性（本実施形態では、給紙カセット属性７１０、片面両面属性７２０）を用いて、ＪＤＦデータを生成する。ＪＤＦデータの生成については、従来の技術を用いるため説明は省略する。
【００８９】
Ｓ１００３では、ＰＤＬデータ生成部４０６は、Ｓ１００１で生成したＰＤＦデータと、Ｓ１００２で生成したＪＤＦデータとから構成されるＰＤＬデータを生成する。ＰＤＦデータとＪＤＦデータとから構成されるＰＤＦデータの生成についても、従来の技術を用いるため説明は省略する。
【００９０】
Ｓ１００４では、印刷指示部４０７は、Ｓ５０１で読み込んだ帳票データに応じて出力先のプリンタ１０２を特定する。例えば、ホストコンピュータ１０３は、プリンタ１０２で出力する帳票データのファイル名に出力先のプリンタ１０２を示す情報を埋め込んでおく。そして、印刷制御サーバ１０１は、Ｓ５０１で読み込んだ帳票データのファイル名から出力先のプリンタ１０２を特定する。別の方法としては、帳票データの印刷設定（制御命令・印字データ）に出力先のプリンタ１０２を示す情報を記載しておき、これを参照して特定するようにしてもよい。
【００９１】
Ｓ１００５では、印刷指示部４０７は、Ｓ１００４で特定した出力先のプリンタ１０２に対して、Ｓ１００３で生成したＰＤＬデータの出力（印刷）を指示する。つまり、ＰＤＬデータをＳ１０３で特定したプリンタ１０２に送信する。プリンタ１０２はこれを受信すると、ＰＤＬデータに含まれるＪＤＦデータとＰＤＦデータを解析し、ＪＤＦデータに記載されている印刷設定で、ＰＤＦデータの各ページを印刷する。
【００９２】
Ｓ１００６では、印刷ログ生成部４０８は、出力指示したＰＤＬデータに関する情報をログとして記録する。印刷ログの一例を図１１に示す。図１１に示す印刷ログ１１００は、プリントデータ名（ＰＤＬデータの元である帳票データのファイル名）、印刷ジョブ名、ジョブ内ページ数（ＰＤＦデータの元である帳票データの全ページ数）が記録される。更には、分割開始ページ数、分割終了ページ数、印刷開始日時、印刷終了日時、印刷結果といった情報もログとして記録される。特に分割開始ページ数と分割終了ページ数には、各印刷ジョブが元の帳票データの何ページ目から何ページ目までを含むのかを記録している。Ｓ１００６で印刷ログを記録する際には、新たに行を追加し、分割開始ページには１つ前の行の分割終了ページの１ページ後を格納し、分割終了ページにはジョブ内ページ数８０４の値を格納する。このようにして印刷ジョブごとに帳票データに含まれるページのうち、いずれのページを含むのかを示すログを記録することができる。
【００９３】
Ｓ１００７では、記憶部４０１は、印刷制御情報８００の生成済みページ数８０３に“０”を格納する。つまり、新たなＰＤＦデータを作成することになるので、カウントをリセットする。Ｓ１００７の処理が完了したら、データ分割処理の呼び出し元に処理を戻す。以上が、図１０の説明である。
【００９４】
以上説明したように、帳票データから所定のページ数を含む印刷データを生成する際に、印刷データの最終ページが表面とならないように抑止することが可能となる。
【００９５】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【００９６】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００９７】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するため（実行可能にするため）のコンピュータプログラム自体も含まれる。
【００９８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００９９】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１００】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１０１】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１０２】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１０４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１０５】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１０６】
１０１  印刷制御サーバ
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  システムバス
３０５  入力コントローラ
３０６  ビデオコントローラ
３０７  メモリコントローラ
３０８  通信Ｉ／Ｆコントローラ
３０９  入力デバイス
３１０  ディスプレイ
３１１  外部メモリ
【図１】
0006507856.tif 000002
【図２】
0006507856.tif 000003
【図３】
0006507856.tif 000004
【図４】
0006507856.tif 000005
【図５】
0006507856.tif 000006
【図６】
0006507856.tif 000007
【図７】
0006507856.tif 000008
【図８】
0006507856.tif 000009
【図９】
0006507856.tif 000010
【図１０】
0006507856.tif 000011
【図１１】
0006507856.tif 000012