(57)【要約】【課題】  ページの用紙サイズが混在したマルチページドキュメントを、そのドキュメントで指定された用紙サイズで出力することを課題とする。【解決手段】  印刷サーバとクライアント端末と印刷装置が通信回線を介して互いに接続された印刷システムが提供される。印刷サーバは、ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成手段を有する。クライアント端末は、分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合手段を有する。【選択図】        図７
2005128878.tif 000002
【特許請求の範囲】
【請求項１】
印刷サーバとクライアント端末と印刷装置が通信回線を介して互いに接続された印刷システムであって、
前記印刷サーバは、
ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成手段を有し、
前記クライアント端末は、
前記分割されたページブロックを１つの印刷データに結合して前記印刷装置に出力する結合手段を有することを特徴とする印刷システム。
【請求項２】
前記印刷サーバは、さらに、前記ページブロックを前記クライアント端末にダウンロードするダウンロード手段を有することを特徴とする請求項１記載の印刷システム。
【請求項３】
前記クライアント端末は、さらに、オペレーティングシステムのプリントシステムの出力先ポートの１つとして動作し、プリントシステムから受け取った印刷データをファイルとして一時的に退避させるポートモニタを有し、
前記結合手段は、前記一時的に退避されたファイルを１つの印刷データに結合して前記印刷装置に出力することを特徴とする請求項２記載の印刷システム。
【請求項４】
前記ページブロック生成手段は、ＩＡＣ（Inter App Communication）インターフェイスを使って、印刷対象となるＰＤＦ形式のマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックファイルに分割し、分割されたページブロックファイルをオリジナルのＰＤＦファイルのページ構成順に従った新しい複合ファイルとして再合成し、
前記ダウンロード手段は、前記クライアント端末で動作するブラウザのヘルパーを特定するＭＩＭＥタイプを指定して、前記ページブロックファイルをダウンロードし、
前記結合手段は、前記ポートモニタと連動するブラウザを経由して前記ページブロックファイルを受け取り、外部印刷コマンドをＤＤＥ（Dynamic Data Exchange）制御を使ってページブロック単位で自動印刷し、印刷完了後、前記ポートモニタで退避した印刷データファイルを１つの印刷データファイルに結合し、前記印刷装置に出力することを特徴とする請求項３記載の印刷システム。
【請求項５】
前記クライアント端末は、さらに、アプリケーションからの印刷要求により印刷データを生成するためのプリンタドライバを有することを特徴とする請求項４記載の印刷システム。
【請求項６】
ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成手段と、
前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合手段と
を有することを特徴とする印刷制御装置。
【請求項７】
ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成手段と、
前記ページブロックを外部に出力する出力手段と
を有することを特徴とする印刷制御装置。
【請求項８】
同一用紙サイズが続くページを１つの単位として分割されたページブロックを入力する入力手段と、
前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合手段と
を有することを特徴とする印刷制御装置。
【請求項９】
ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成ステップと、
前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合ステップと
を有することを特徴とする印刷制御方法。
【請求項１０】
ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成ステップと、
前記ページブロックを外部に出力する出力ステップと
を有することを特徴とする印刷制御方法。
【請求項１１】
同一用紙サイズが続くページを１つの単位として分割されたページブロックを入力する入力ステップと、
前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合ステップと
を有することを特徴とする印刷制御方法。
【請求項１２】
ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成ステップと、
前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合ステップと
をコンピュータに実行させるためのプログラム。
【請求項１３】
ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成ステップと、
前記ページブロックを外部に出力する出力ステップと
をコンピュータに実行させるためのプログラム。
【請求項１４】
同一用紙サイズが続くページを１つの単位として分割されたページブロックを入力する入力ステップと、
前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御技術に関し、特にページの用紙サイズが混在したマルチページドキュメントの印刷制御技術に関する。
【背景技術】
【０００２】
従来、ページの用紙サイズが混在したマルチページを構成できるドキュメントを印刷した場合、Microsoft社製のMS-Wordのようにアプリケーションでページの用紙サイズが切り替わる際に、出力用紙サイズ（給紙カセット）を自動で変更しながら適切な用紙サイズで印刷できるものもあるが、極めて少数と思われる。特に、昨今ウェブ環境あるいはイントラネット環境下で配布ドキュメントのフォーマットとして標準となりつつあるPDF（Portable Data Format）ファイルにおいては、無料で提供されるビューワであるAdobe社製AcrobatReaderを使った場合、ページの用紙サイズと出力用紙サイズが異なっていてもページ内に収めるべくアプリケーションで自動的に拡大・縮小して印刷している。
【０００３】
しかしながら、上記従来技術では、ドキュメントの所有者が意図した通りの表現力を損なうことになり、印刷物本来の用途を満たさないという問題がある。
【０００４】
また、近年、サーバで作成された文書をクライアントからの指示によりサーバ上で出力先のプリンタに適する印刷データを生成し、クライアントを経由して出力先のプリンタで印刷するシステムが考えられている。（例えば、特許文献１）
【０００５】
【特許文献１】特開２００２−３５１６２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記の問題点に鑑みてなされたものであり、ウェブ印刷サーバ経由のPDF印刷において、ページの用紙サイズが混在したマルチページ・ドキュメントをウェブ印刷サーバにおいて同一用紙サイズのページを1つの単位とするページ・ブロックに分け、クライアント端末上で動作するヘルパーアプリケーションでAdobe社製AcrobatReaderをDDE経由でページブロック単位に印刷データを生成させた後、この元のマルチページ・ドキュメントの構成に再合成して印刷することができる印刷制御技術の提供を目的とする。
【課題を解決するための手段】
【０００７】
本発明の印刷システムは、印刷サーバとクライアント端末と印刷装置が通信回線を介して互いに接続された印刷システムであって、前記印刷サーバは、ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成手段を有し、前記クライアント端末は、前記分割されたページブロックを１つの印刷データに結合して前記印刷装置に出力する結合手段を有することを特徴とする。
また、本発明の印刷制御装置は、ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成手段と、前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合手段とを有することを特徴とする。
また、本発明の印刷制御装置は、ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成手段と、前記ページブロックを外部に出力する出力手段とを有することを特徴とする。
また、本発明の印刷制御装置は、同一用紙サイズが続くページを１つの単位として分割されたページブロックを入力する入力手段と、前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合手段とを有することを特徴とする。
また、本発明の印刷制御方法は、ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成ステップと、前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合ステップとを有することを特徴とする。
また、本発明の印刷制御方法は、ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成ステップと、前記ページブロックを外部に出力する出力ステップとを有することを特徴とする。
また、本発明の印刷制御方法は、同一用紙サイズが続くページを１つの単位として分割されたページブロックを入力する入力ステップと、前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合ステップとを有することを特徴とする。
また、本発明のプログラムは、ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成ステップと、前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合ステップとをコンピュータに実行させるためのプログラムである。
また、本発明のプログラムは、ページの用紙サイズが混在したマルチページドキュメントを同一用紙サイズが続くページを１つの単位とするページブロックに分割するページブロック生成ステップと、前記ページブロックを外部に出力する出力ステップとをコンピュータに実行させるためのプログラムである。
また、本発明のプログラムは、同一用紙サイズが続くページを１つの単位として分割されたページブロックを入力する入力ステップと、前記分割されたページブロックを１つの印刷データに結合して印刷装置に出力する結合ステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【０００８】
ページの用紙サイズが混在したマルチページドキュメントを、そのドキュメントで指定された用紙サイズで出力することができ、ドキュメントの所有者が意図した通りの印刷を行うことができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
図１は、本発明の実施形態に係る印刷システムの全体構成を示す図である。
図１において、クライアントコンピュータは、ｎ台接続されていることを仮定している。１０２、１０３はクライアントコンピュータであり、ネットワークケーブルによりネットワーク１０５に接続され、アプリケーションプログラム等の各種のプログラムを実行可能である。１０１はWebサーバコンピュータであり、インターネット接続によりネットワーク１０５に接続され、ネットワーク１０５に接続されたクライアントマシン１０２〜１０３を管理する。１０４は、印刷装置であり、クライアントコンピュータ１０２、１０３から受け取った印刷データを印字する。１０５はネットワークであり、クライアントコンピュータ、Webサーバコンピュータ、ネットワークプリンタ等と接続している。
【００１０】
図２は、クライアントコンピュータ１０２の概略構成を示すブロック図である。なお、クライアントコンピュータ１０３、１０４も同じ構成である。Webサーバコンピュータ１０１も同様の構成である。
【００１１】
ＣＰＵ２００は、ＨＤ（ハードディスク）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳ（オペレーティングシステム）やネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＲＯＭ２０１には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２はＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。２０３は外部記憶ドライブであり、メディア２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。２０４はメディアであり、本実施形態で説明するプログラムおよび関連データを格納しており、その記憶されている内容の構成を図４に示す。
【００１２】
図４において、４００はメディア２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明するプログラム、４０４はその関連データである。４０３のプログラムは、図７〜９に示される本プログラムのフローチャートに基づいてプログラムコード化されたものである。
【００１３】
２０５はＨＤであり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、制御プログラム、関連プログラム等を格納している。２０６はキーボードであり、ユーザがクライアントコンピュータに対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７はディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。２０８はシステムバスであり、クライアントコンピュータ内のデータの流れを司るものである。
【００１４】
図３は、本発明の実施形態のプログラムがＲＡＭ２０２にロードされ実行可能となった状態のメモリマップを表すものである。
【００１５】
本実施形態では、メディア２０４からプログラム及び関連データを直接ＲＡＭ２０２にロードして実行させる例を示すが、この以外にも、メディア２０４から本実施形態のプログラムを動作させる度に、ＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。また、本実施形態のプログラムを記録する媒体は、メディアはFD、ＣＤ−ＲＯＭ、DVD、ＩＣメモリーカード等であっても良い。更に、本実施形態のプログラムをＲＯＭ２０１に記録しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローティング）機能等を有しているプログラムが入っている領域である。３０２はＯＳであり、３０３には制御プログラム、３０４には関連データがそれぞれ展開され、３０５にはＣＰＵ２００が本プログラムを実行するワークエリアがとられている。
【００１６】
図５は、本実施形態のソフトモジュール構成を表した図である。これらは、例えば、ＦＤ（フレキシブルディスク）から供給されるものである。
【００１７】
５１０はウェブ印刷サーバのプログラム構成を示し、５１１はページブロックファイルであり、一旦記憶装置５１２に格納され、ページブロック送信処理部５１４において、クライアント端末５２０のウエブブラウザ５２１にダウンロードされる。５１３はページブロックファイル作成処理部であり、前記ページブロックファイル５１１のフォーマットに従って、オリジナルファイルを同一ページサイズが続く一連のページブロックに分割する。５２０は、インターネット経由でウェブ印刷サーバ５１０に接続されたクライアント端末であり、ウェブブラウザ５２１がフロントエンドとして動作している。ウェブブラウザは、例えば、Ｍｉｃｏｓｏｆｔ社製ＩｎｔｅｒｎｅｔＥｘｐｌｏｗｅｒであったり、ＮｅｔＳｃａｐｅ社製ＮｅｔＳｃａｐｅＣｏｍｍｕｎｉｃａｔｏｒであったりする。５２２はブラウザ５２１のヘルパーとして実行され、ページブロック送信処理部５１４からダウンロードされた、ページブロックファイルを受け取り、ページブロック単位に分割印刷した後、ポートモニタ５２３で蓄積された印刷データをバインドし、1ジョブとして印刷するブラウザヘルパーである。５２３はポートモニタであり、ブラウザヘルパ５２２が印刷した印刷データを、一時的な退避ファイルに格納する。５３０は印刷装置を示す。
【００１８】
図６は、本実施形態のウェブ印刷サーバ内のページブロックファイル５１１のフォーマットを表したものであり、ヘッダ部、ページブロック部の各データストリームがバウンダリで分割された複合フォーマット形式となる。バウンダリには、そのデータストリームを識別する識別子、バウンダリに続く書式情報のサイズ、ページブロックサイズ、ブロック名称が格納される。ヘッダ部にはジョブ名称、出力先プリンタ名、総ページ数を格納し、ページブロック部には、用紙サイズ、レイアウト、DDE（Dynamic Data Exchange：動的データ交換）コマンドが格納される。
【００１９】
図７は、クライアントと同一ネットワークに接続された印刷装置の処理フローを示したシーケンス図であり、クライアントのＷｅｂコンテンツ画面から任意の印刷対象ファイルを選択し、そのフォームに対するドキュメント名、出力先プリンタ名を入力する。入力されたデータは、Ｗｅｂコンテンツサーバで受け取り、ページブロックファイルが生成され、クライアントにダウンロードされる。すなわち、指定されたファイルを同一ページサイズのブロックに分割したページブロックファイルを作成し、ＭＩＭＥタイプを指定してダウンロードする。Ｗｅｂサーバがページブロックファイルを出力し、それをクライアントが入力する。
【００２０】
ページブロックファイルを受け取ったクライアントでは、ファイル出力用のポートモニタを出力先として、ページブロックに指定されたＤＤＥコマンドを使ってブロック毎に印刷データを作成する。すなわち、ＤＤＥサーバを起動し、所定のページブロックファイル（ＰＤＦ）をＤＤＥ制御で自動印刷するために、ファイル出力ポートに印刷する。
【００２１】
ポートモニタは、スプーラより受け取った印刷データを一時ファイルとして退避する。クライアントは、ポートモニタから退避ファイルを取得し、ページブロック毎の印刷データを１つの印刷データにバインドし、印刷装置の通常の出力ポートに印刷する。すなわち、ページブロック単位に作成された印刷データを１つの印刷データにバインドし、Ｗｅｂコンテンツで指定した出力先プリンタに印刷する。図7はこの一連のシーケンスを示している。
【００２２】
（第１の実施形態）
図８は、本発明の第１の実施形態のページブロック作成処理部のフローチャートであり、後述する第２の実施形態で説明するページブロック送信処理部によって図７に示したページブロックファイルに格納される同一ページサイズを持つページブロックを作成する。
【００２３】
まず、ステップＳ８０１にて、クライアント５２０で動作するブラウザ５２１に表示される図示しないＷｅｂコンテンツに対して入力された印刷対象ＰＤＦファイルをオープンする。次にステップＳ８０２にて、オープンしたオブジェクトに対してAdobe社製AcrobatがSDK（SoftwareDevelopmentKit）として外部公開しているIAC（InterAppCommunication）：ICPDFDocインターフェイスを取得する。このIAC：ICPDFDocインターフェイスを経由してページ属性を取得したり、ページの分割を制御することができる。IACの詳細に関しては一般公開されている既知の事実であるため、ここでの説明は割愛する。まずは、ステップＳ８０３にて、IAC：IDPDFDoc->GetNumPages（）インターフェイスを使って、ドキュメントの総ページ数を取得する。ここで取得した総ページ数は、後述するページブロック送信処理部でも使われるため、共有レジストリに保存する。次に、ステップＳ８０４にて、IAC：ICPDFDoc->GetSize（）インターフェイスを使って、ページのサイズ（Width/Height）を取得する。取得したページサイズをもとの用紙サイズのＡ４縦か横か、Ａ３縦か横かを判別する。次に、ステップＳ８０５にて、ページのサイズの変化（例えば、Ａ４縦−＞Ａ３横など）を判断する。判断の結果、ページサイズが変化したならば、ステップＳ８０６にて、IAC：ICPDFDoc->ReplacePages（）インターフェイスを使って、前回ページサイズが変化したページから現在のページまで、つまり同一ページサイズが連続する範囲を、ステップＳ８０１で指定されたファイル名に開始ページ番号を付加したファイル名（例：ＡＡＡファイルの３ページ目では、“ＡＡＡ０００３”）を持つ別のファイルに置き換える（Replace）。ファイルの置き換えは、具体的には指定されたページ範囲を別ファイルにコピーすることである。ここで作成されるファイルは、作業フォルダ配下で作成される。次に、ステップＳ８０７にて、現在のページ番号を１つ更新し、総ページ数を超えるかどうかを判断する。判断の結果、総ページ数を越えなければ、ページが継続すると判断し前記ステップＳ８０４からステップＳ８０６を繰り返すことになる。判断の結果、最終ページまで処理が完了したならば、ステップＳ８０８にて、後処理として、IAC：ICPDFDocインターフェイスを開放する。次に、ステップＳ８０９にて、ファイルをクローズし処理を終了する。
【００２４】
このページブロック作成処理の結果として、指定されたＰＤＦファイルが、同一ページサイズを持つページブロック単位のファイルに分割されることになり、後述する第２の実施形態により、ページブロックファイルとして１つのファイルに再合成され、クライアントにダウンロードされることになる。
【００２５】
（第２の実施形態）
図９は、本発明の第２の実施形態のページブロック送信処理部のフローチャートであり、第１の実施形態で作成されたページブロック単位のファイルを受け取り、クライアント５２０のブラウザ５２１にダウンロードするページブロックファイルを作成する。
【００２６】
まず、ステップＳ９０１にて、図６で示されるファイルフォーマットの中で、最初のヘッダ・ブロックだけを持つページブロックファイルを新規に作成する。次に、ステップＳ９０２にて、クライアント５２０で動作するブラウザ５２１に表示される図示しないＷｅｂコンテンツに対して入力された印刷対象ＰＤＦファイルの印刷ジョブ名、出力先プリンタ名、さらには前述した第１の実施形態のステップＳ８０３にて共有レジストリに格納された総ページ数をヘッダ情報として最初のブロックに格納する。このときのバウンダリには、識別子として、ヘッダ部を意味する“Header”とヘッダ書式サイズが格納される。次に、ステップＳ９０３にて、ページブロックを意味する“Block”の識別子と、ブロック書式サイズ、更には、作業フォルダに格納されたブロック単位に分割されたファイル群の中から、一番古いタイムスタンプを持つのファイルサイズと、分割済みファイルのファイル名とブロック名称をバウンダリ情報として書き込む。次に、ステップＳ９０４にて、ページヘッダ書式として分割済みファイルのページサイズと向きをそれぞれ、用紙サイズ、レイアウトに、印刷を指示するＤＤＥコマンド（例えば、“print %1”、%1はファイル名を意味する）を格納し、ページブロックファイルに書き込む。次に、ステップＳ９０５にて、ステップＳ９０３で選択されたファイルをオープンし、そのファイルの内容をすべてページブロックデータとして書き込む。書き込んだ後は、作業フォルダ上から該当ファイル削除しておく。次に、ステップＳ９０６にて、作業フォルダにブロック単位に分割されたファイルがあるかどうかを判断する。判断の結果、フォルダ内に分割済みファイルが存在するならば、前述したステップＳ９０３からステップＳ９０５を繰り返し実行する。判断の結果、全ての分割済みファイルがなくなったならば、ステップＳ９０７にて、作成されたページブロックファイルを識別するＭＩＭＥＴｙｐｅを指定したＨＴＴＰプロトコルを使って、クライアント５２０上のブラウザ５２１に送信する。
【００２７】
ここでクライアントに送信されたページブロックファイルはＭＩＭＥＴｙｐｅで指定された後述する第３の実施形態であるページバインド処理部によってハンドリングされる。
【００２８】
（第３の実施形態）
図１０は、本発明の第３の実施形態のブラウザのヘルパアプリケーションとして動作するページバインド処理部のフローチャートであり、第２の実施形態で作成されたページブロックファイルを受け取り、指定された出力先プリンタに印刷するものである。
【００２９】
まず、ステップＳ１００１にて、ＭＩＭＥタイプを設定したブラウザがダウンロード中であることを考慮し、ブラウザから受け取ったページブロックファイルを読み書きモードでオープンし、正常にファイルハンドルを取得できるかどうかでダウンロードの完了を判断する。次に、ステップＳ１００２にて、判断の結果、ダウンロードが完了していないのであれば、ステップＳ１００１に戻る。判断の結果、完了していれば、ステップＳ１００３にて、ページブロックファイルのヘッダバウンダリを読み込み、さらにバウンダリに続くヘッダ情報（ジョブ名、出力先プリンタ、総ページ数）を読み込む。読み込んだヘッダ情報は、作業メモリ上に格納される。次に、ステップＳ１００４にて、ヘッダ情報に格納された出力先プリンタの現在の印刷設定を保存する。保存には、まず、指定されたプリンタ名でＯｐｅｎＰｒｉｎｔｅｒ（）し、ＧｅｔＰｒｉｎｔｅｒ（）関数を使って設定情報を取得する。取得した印刷設定データは、プリンタ名をファイル名に拡張子“.ＰＤ”を持つ、設定保存ファイルに格納される。本実施形態では、Ｍｉｃｒｏｓｏｆｔ社製Ｗｉｎｄｏｗｓ（Ｒ）をＯＳとして利用した場合のＷｉｎ３２関数使用例を記述するが、当然、他のＯＳの場合でも同様の考え方で利用可能である。次に、ステップＳ１００５にて、ヘッダ情報に続くページブロックバウンダリを読み込む。読み込んだページブロックサイズは後述するステップＳ１００７で利用されるため、作業メモリに蓄積しておく。次に、ステップＳ１００６にて、ページ情報を読み込む。読み込んだ出力用紙サイズ、レイアウト設定はプリンタ設定で利用される。次に、ステップＳ１００７にて、先の読み込んだページブロックサイズ分のブロックデータを読み込み、テンポラリファイルにコピーする。次に、ステップＳ１００８にて、前述するステップＳ１００５、ステップＳ１００６にて読み込んだ、出力プリンタ名、用紙サイズ、レイアウトと、後述する本発明の第４の実施形態であるポートモニタを出力先に設定したプリンタ設定に変更する。設定には、Ｗｉｎ３２ ＳｅｔＰｒｉｎｔｅｒ（）関数に渡すＤＥＶＭＯＤＥ構造体の所定のメンバーに書式の設定値を設定することで可能になる。次に、ステップＳ１００９にて、Adobe社製AcrobatReaderをＤＤＥサーバとして起動し、ページ書式に格納されたＤＤＥコマンド（“print 出力ファイル”）のフォーマットに従って、前記テンポラリファイルを印刷する。印刷により作成される印刷データは、ＯＳのスプーラを経由して、本発明の第４の実施形態であるポートモニタで受け取る事が出来る。ポートモニタでは受け取った印刷データを一時退避ファイルとして保存できる。次に、ステップＳ１０１０にて、すべてのページブロックを処理したかどうかを判断する。判断の結果、ページブロックが継続する間、前記ステップＳ１００５からステップＳ１００９までを繰り返することで、同一ページサイズを持つ一時退避ファイルが蓄積される。判断の結果、ページブロックの最後まで処理できたならば、ステップＳ１０１１にて、ポートモニタで蓄積した順に従って、一時退避ファイルを１つのファイルに結合（バインド）する。次に、ステップＳ１０１２にて、プリンタの設定状態をステップＳ１���０４にて保存した状態に戻し通常の印刷が出来る状態にしておく。設定を復帰する際には、ステップＳ１００４で作成したプリンタ名をファイル名に拡張子“.ＰＤ”を持つ、設定保存ファイルを元にＳｅｔＰｒｉｔｎｅｒ（）を実行することで実現する。この結果、出力先ポートが、本実施形態のポートモニタから通常印刷で使用される既存のポートモニタに変更される。次に、ステップＳ１０１３にて、ステップＳ１０１１でバインドされた結合済みファイルを使って、プリンタドライバを経由せず、直接プリンタに印刷データを送信する。結合された印刷データは、ＤＤＥコマンドを使って指定の用紙サイズで印刷されており、その際にプリンタドライバを経由して最適なカセット給紙命令が記述されているため、ステップＳ１０１３では、直接プリンタに送信することで所定の用紙サイズで印刷が可能となる。
【００３０】
（第４の実施形態）
図１１は、本発明の第４の実施形態のブラウザのヘルパアプリケーションと連動するポートモニタのフローチャートであり、第３の実施形態でブロック単位に印刷された印刷データを受け取り、一時退避ファイルに保存するものである。また、ポートモニタは、ＯＳの印刷システムであるスプーラの一部として動作するものであり、スプーラからの種種の処理要求に対して応答するイベント駆動型のモジュールである。
【００３１】
まず、ステップＳ１１０１にて、スプーラから印刷開始要求かどうかを判断する。判断の結果、印刷開始要求でなければ、ステップＳ１１０５へ進む。判断の結果、開始要求であれば、ステップＳ１１０２にて、スプーラから印刷の開始情報を受け取る。開始情報には、ジョブＩＤなどの印刷データを識別する情報が格納されているが、本実施形態では、ジョブＩＤのみを利用することになる。次に、ステップＳ１１０３にて、取得したジョブＩＤを使って、スプーラからジョブ名などのジョブ情報を取得する。次に、ステップＳ１１０４にて、取得したジョブ名をファイル名とする一時退避ファイルを作成する。この一時退避ファイルはポートモニタで管理する作業フォルダに格納されることになる。次に、ステップＳ１１０５、ステップＳ１１０７の判断を経て、ステップＳ１１０９にて、スプーラに対してイベント処理結果（正常/異常）を通知する。この通知を待って、スプーラは次の処理を実行する事になる。次に、ステップＳ１１０５にて、スプーラからの印刷データ書き込み要求であるならば、ステップＳ１１０６にて、前述のステップＳ１１０４にて作成されたジョブ名をファイル名とする一時退避ファイルに受け取った印刷データを書き込む。通常、この書き込み要求は印刷データが終了するまで繰り返し要求されるものである。また、この処理もステップＳ１１０７を経て、ステップＳ１１０９にて、スプーラに対してイベント処理結果（正常/異常）を通知する。この通知を待って、スプーラは次の処理を実行する事になる。次に、ステップＳ１１０７にて、スプーラでの印刷処理完了処理要求であるならば、ステップＳ１１０８にて、一時退避ファイルをクローズし、ファイルへの書き込みを完了させる。次に、ステップＳ１１０９にて、処理結果をスプーラに応答する。これら、一連のスプーライベント処理を受け取り、本発明の第３の実施形態で結合される一時退避ファイルを作成するものとしてポートモニタを提供することになる。
【００３２】
なお、本発明は、上記形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体(又は記録媒体)を、システム又は装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは云うまでもない。
【００３３】
この場合、記憶媒体から読み出されたプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部又は全部を行い、その処理によって上記実施の形態の機能が実現される場合も含まれることは云うまでもない。
【００３４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わる記憶媒体に書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは云うまでもない。
【００３５】
また、本発明は、上記実施の形態の機能を実現するソフトウェアのプログラムコードがネットワークを介して配信されることにより、システム又は装置のハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納され、そのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは云うまでもない。
【００３６】
以上のように、本実施形態の印刷システムは、ウェブ印刷サーバとクライアント端末と印刷装置が通信回線を介して互いに接続されている。
【００３７】
ウェブ印刷サーバは、ページブロック生成手段とダウンロード手段とを有する。ページブロック生成手段は、Adobe社製AcrobatがSDK（SoftwareDevelopmentKit）として外部公開しているIAC（InterAppCommunication）インターフェイスを使って、印刷対象となるPDF形式のマルチページ・ドキュメントを同一用紙サイズが続くページを1つの単位とするページブロックに分け、分割されたPDFファイルをオリジナルのPDFファイルのページ構成順に従った新しい複合ファイルとして再合成する。ダウンロード手段は、前記クライアント端末で動作するブラウザのヘルパーを特定するMIMETypeを指定して、前記ページブロックファイルをダウンロードする。
【００３８】
クライアント端末は、印刷データ保持手段と印刷データバインド手段とを有する。印刷データ保持手段は、OSのプリントシステムの出力先ポートの１つとして動作するポートモニタを提供し、当該ポートモニタではプリントシステムから受け取った印刷データをファイルとして一時的に退避させる。印刷データバインド手段は、前記ポートモニタと連動するブラウザのヘルパーアプリケーションとして動作できる前記クライアントは、ブラウザを経由して前記ページブロックファイルを受け取り、Adobe社製AcrobatReaderで提供される外部印刷コマンドをDDE（DynamicDataExchange：動的データ交換）制御を使ってページブロック単位で自動印刷し、印刷完了後、前記ポートモニタで退避した印刷データファイルを１つの印刷データファイルにバインドし、前記印刷装置に出力する。クライアント端末は、アプリケーションからの印刷要求により印刷データを生成するためのプリンタドライバを有する。
【００３９】
上記実施形態によれば、ページの用紙サイズが混在したマルチページ・ドキュメントを、そのドキュメントで指定された用紙サイズで出力できる印刷システムを提供することができる。
【００４０】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施形態のプリントシステムのシステム構成図である。
【図２】図１におけるクライアントコンピュータの概略構成を示すブロック図である。
【図３】図２におけるＲＡＭに、図４に示すＦＤからプログラムを展開したときのメモリマップを示す図である。
【図４】図２におけるＦＤ内部のデータを表すメモリマップの図である。
【図５】図１におけるプリントシステムの概略構成を示すブロック図である。
【図６】図５におけるページブロックファイルの概略フォーマットを示す図である。
【図７】図５におけるプリントシステムのフローを示したシーケンス図である。
【図８】図５におけるプリントシステムのページブロック作成処理部のフローチャートである。
【図９】図５におけるプリントシステムのページブロック送信処理部のフローチャートである。
【図１０】図５におけるプリントシステムのヘルパー処理部のフローチャートである。
【図１１】図５におけるプリントシステムのポートモニタのフローチャートである。
【符号の説明】
【００４２】
１０１  Webサーバ
１０２〜１０３  クライアントコンピュータ
１０４  印刷装置
１０５  ネットワーク/インターネット
２００  ＣＰＵ
２０１  ＲＯＭ
２０２  ＲＡＭ
２０３  ＦＤドライブ
２０４  ＦＤ（フレキシブルディスク）
２０５  ＨＤ（ハードディスク）
２０６  キーボード
２０７  ディスプレイ
２０８  システムバス
３００  ＲＡＭのメモリマップ
３０１  基本Ｉ／Ｏプログラム
３０２  ＯＳ
３０３  制御プログラム
３０４  関連データ
３０５  ワークエリア
４００  ＦＤのメモリマップ
４０１  ボリューム情報
４０２  ディレクトリ情報
４０３  本プログラム
４０４  関連データ
５１０  ウェブ印刷サーバ
５１１  ページブロックファイル
５１２  記憶装置
５１３  ページブロック作成処理部
５１４  ページブロック送信処理部
５２０  クライアント
５２１  ブラウザ
５２２  ブラウザヘルパー
５２３  ポートモニタ
５３０  印刷装置
【図１】
2005128878.tif 000003
【図２】
2005128878.tif 000004
【図３】
2005128878.tif 000005
【図４】
2005128878.tif 000006
【図５】
2005128878.tif 000007
【図６】
2005128878.tif 000008
【図７】
2005128878.tif 000009
【図８】
2005128878.tif 000010
【図９】
2005128878.tif 000011
【図１０】
2005128878.tif 000012
【図１１】
2005128878.tif 000013