情報処理装置、ジョブ処理方法、記憶媒体及びプログラム
【課題】 簡単な操作指示で、アプリケーションから出力される文書情報に対して、フォーム登録ジョブとオーバレイ印刷ジョブとを生成することである。
【解決手段】 プリンタドライバは、アプリケーションより印刷データを受け取ったら、レイアウタとして機能するLFが面付け処理を行った後、自動オーバレイ印刷に設定されているとOFが判断した場合は、OFが印刷データの文書構造を後述のように再構成する(S601〜S616)。そして、再構成された印刷データを対象にRFが印刷処理を行うことを特徴とする。
【解決手段】 プリンタドライバは、アプリケーションより印刷データを受け取ったら、レイアウタとして機能するLFが面付け処理を行った後、自動オーバレイ印刷に設定されているとOFが判断した場合は、OFが印刷データの文書構造を後述のように再構成する(S601〜S616)。そして、再構成された印刷データを対象にRFが印刷処理を行うことを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フォーム登録およびオーバレイ印刷機能を搭載している印刷制御装置にジョブを出力する情報処理装置に関するものである。
【背景技術】
【0002】
近年、印刷速度向上、ホストからプリンタへの転送トラフィックの低減を目的として、フォーム登録およびオーバレイ印刷機能を搭載したプリンタ及びこの種の機能を制御するプリンタドライバが開発されている。
【0003】
しかし、ワードプロセッサや表計算ソフトウエアなど汎用アプリケーションからはフォーム登録およびオーバレイ印刷機能に対する使い勝手が良くないため、あまり活用されていない。
【0004】
例えば、汎用アプリケーションでオーバレイ印刷を行う場合、テンプレート文書を作成して、フォーム登録印刷を行い、別途テンプレートを除いた文書を作って、登録したフォームを指定してオーバレイ印刷という手順が必要である。
【0005】
ところが、テンプレートを除いた文書の場合、アプリケーションの表示で内容が分かりにくいことと、テンプレートと対で保管する必要があり管理が面倒である。
【0006】
そのため、テンプレートに必要事項を追加して一体化した文書を作って通常の印刷をすることが多い。また、テンプレートが特に作成されておらず、既存の文書を複製、変更して文書を作る場合も多い。その結果、フォーム登録およびオーバレイ印刷があまり使われていない。
【0007】
下記特許文献1には、描画命令と共にフォーム作成指令が出力されると、フォームを構成するものとしてあらかじめ指定された属性の命令を描画命令から抽出してフォーム登録データとして印刷装置へ転送することが記載されている。
【0008】
また、下記特許文献1には、描画命令と共にオーバレイ印刷指令が出力されると、本文としてあらかじめ指定された属性の命令を描画命令から抽出して印刷データとして印刷装置へ転送することが記載されている。
【0009】
このように特許文献1には、ユーザが容易にフォーム登録もしくはオーバレイ印刷を実行する技術が公開されている。
【特許文献1】特開平10−244727公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら、この特許文献1に開示される技術では、フォームと本文とで属性を違えて文書を作成する必要がある。そのため、文書の表現力が制限されてしまう。また、文書作成時に、フォームと本文との属性を常に留意しなければならないという課題があった。
【0011】
更に、ユーザはフォーム登録かオーバレイ印刷かどちらか一方を指定して印刷を行う必要があり、ユーザの行う操作が面倒になるという課題もあった。
【0012】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、簡単な操作指示で、アプリケーションから出力される文書情報に対して、フォーム登録ジョブとオーバレイ印刷ジョブとを生成できる仕組みを提供することである。
【課題を解決するための手段】
【0013】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
【0014】
アプリケーションから出力される複数のページから構成される文書情報を印刷装置に出力する情報処理装置であって、前記文書情報から生成されるフォームを用いるオーバレイ印刷を指示する指示手段と、前記指示手段でオーバレイ印刷が指示された場合、前記文書情報に含まれるオブジェクトを比較して、複数ページで共通する共通描画部分と、前記文書情報から前記複数ページで共通する共通描画部分を除いた差分描画部分とに再構成する再構成手段と、前記再構成手段により再構成された共通描画部分に基づきフォーム登録ジョブを生成し、前記再構成手段により再構成された差分描画部分に基づきオーバレイジョブを生成するジョブ生成手段と、
を備えることを特徴とする。
【発明の効果】
【0015】
本発明によれば、簡単な操作指示で、アプリケーションから出力される文書情報に対して、フォーム登録ジョブとオーバレイ印刷ジョブとを生成できる。
【発明を実施するための最良の形態】
【0016】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【0017】
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態を示す情報処理装置と印刷装置とが通信可能な印刷制御システムの構成を示すブロック図である。本実施形態は、オペレーティングシステムとして、マイクロソフト社のWindows(登録商標) Vistaに新規に搭載されたXPSプリンティングシステムを例とする。以下、上記XPSプリンティングシステムを用いて、汎用のアプリケーションが出力した文書情報からプリンタドライバがフォーム登録ジョブと、オーバレイジョブとを自動的に生成してプリンタに出力するジョブ処理例を詳述する。本実施形態では、文書情報がXPSデータである場合を示す。
【0018】
なお、特に断らない限り、本発明の機能が実行されるのであれば、機器の構成に係わらず本発明を適用できることは言うまでもない。単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであってもよい。
【0019】
図1において、ホストコンピュータ300は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備える。
【0020】
更に、システムバス4に接続される各デバイスをCPU1が総括的に制御する。また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステム(以下OS)等を記憶する。本実施形態では、上述の通り、マイクロソフト社のWindows(登録商標) Vistaを例とする。
【0021】
ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶する。ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。
【0022】
2はRAMで、CPU1の主メモリ、ワークエリア等として機能する。5はキーボードI/Fで、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。
【0023】
6はディスプレイI/Fで、ディスプレイ10の表示を制御する。7は外部メモリI/Fで、ハードディスク(HD)、フレキシブルディスク(FD)等の外部メモリ11とのアクセスを制御する。外部メモリ11にはブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、後述する図2に示すモジュールを備えるプリンタドライバ等が記憶される。
【0024】
8はプリンタI/Fで、所定の双方向性のインタフェース22を介してプリンタ150に接続されて、プリンタ150との通信制御処理を実行する。
【0025】
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、ディスプレイ10上でのWYSIWYGを可能としている。
【0026】
また、CPU1は、ディスプレイ10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザはアプリケーションで作成した情報を印刷する際、当該情報に対する設定を行うためのユーザインタフェースをディスプレイ10上で開き、プリンタ150の設定や、印刷モードの選択を行う。この際、ユーザは、プリンタドライバが提供するユーザインタフェースを介して、各種の印刷処理方法の設定を行えるように構成されている。なお、プリンタドライバが提供するユーザインタフェースには、図5に示すオーバレイ設定画面が含まれる。
【0027】
プリンタ150において、12はプリンタCPU(CPU)である。CPU12は、ROM14のプログラム用ROMあるいは外部メモリ21に記憶された制御プログラム等に基づいてシステムバス15に接続される印刷部I/F17を介して印刷部(プリンタエンジン)19に出力情報としての画像信号を出力する。
【0028】
また、このROM14のプログラムROMにはCPU12の制御プログラム等を記憶する。ROM14のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶する。
【0029】
さらに、ROM14のデータ用ROMには、ハードディスク等の外部メモリ21を備えていないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶する。
【0030】
CPU12は、入力部16を介してホストコンピュータ300との通信処理が双方向に可能となっており、プリンタ150内の情報等をホストコンピュータ300に通知可能に構成されている。ここで、情報には、プリンタエンジンのステータスや、ネットワーク設定情報や、デバイス名、リソース名等が含まれる。
【0031】
RAM13は、CPU12の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
【0032】
なお、RAM13は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ21は、外部メモリI/F18によりアクセスが制御される。
【0033】
外部メモリ21は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
【0034】
なお、外部メモリ21は1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【0035】
さらに、図示しないNVRAMを有し、操作部20からのプリンタモード設定情報を記憶するようにしてもよい。RAM13もしくは外部メモリ21には、ホストコンピュータ300から送信されたフォームデータを格納することが可能であり、オーバレイ印刷の場合には印刷設定で指定されたフォームデータを取り出して、重ねて印刷する。操作部20は、操作のためのスイッチおよびLED表示器等が配されている。
【0036】
<ホストコンピュータ300における印刷処理の詳細説明>
図2は、図1に示したホストコンピュータ300における印刷処理のための構成の一例を示す図である。本実施形態では、後述するモジュールをCPU1が実行することで各種の印刷処理を行う例である。なお、図1と同一のものには同一の符号を付している。
【0037】
図2において、アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在する。
【0038】
これらは、OSやそのモジュールを利用するモジュールによってRAM2にロードされて、CPU1により実行されるプログラムモジュールとして構成されている。
【0039】
また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや、不図示のCD−ROM、あるいは不図示のネットワークを経由して、外部メモリ11として機能するハードディスク(HD)に保存することが可能となっている。そして、外部メモリ11に保存されているアプリケーション201は、RAM2にロードされてCPU1で実行される。なお、アプリケーション201およびプリンタドライバ203は、ネットワークを介してサーバ装置からホストコンピュータ300にダウンロードした後、外部メモリ11にインストールされる場合もある。
【0040】
このアプリケーション201からプリンタ150に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
【0041】
グラフィックエンジン202は、プリンタ150に対して用意されたプリンタドライバ203を外部メモリ11からRAM2にロードし、アプリケーション201の出力をプリンタドライバ203に設定する。
【0042】
また、グラフィックエンジン202は、アプリケーション201から印刷設定もしくは印刷用データを受け取り、プリンタドライバ203へ印刷データとして出力する。
【0043】
プリンタドライバ203のグラフィックコンポーネント205はグラフィックエンジン202から印刷データを受取り、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)データに変換する。
【0044】
このようにして、グラフィックコンポーネント205により変換されたプリンタ制御コマンドは、OSによってRAM2にロードされたシステムスプーラ204を経て、図1に示したインタフェース22を介してプリンタ150へ印刷データとして出力される仕組みとなっている。
【0045】
プリンタドライバ203のUIコンポーネント206は、グラフィックエンジン202から印刷設定を受取り、印刷設定を表示、変更などを行いグラフィックエンジン202を通してアプリケーション201に通知する。
【0046】
<XPSデータ>
OS、例えばマイクロソフト社製Windows(登録商標) Vistaに新規に搭載されたXPSプリンティングシステムでは、プリンタドライバ203がXPSデータを印刷データとして受け取る。XPSデータは、文書情報としての利用も可能なXMLベースのデータフォーマットである。
【0047】
XMLベースのデータフォーマットの文書構造は、各々ジョブ/ドキュメント/ページを表す”Fixed Document Sequence(以下、FDS)”、”Fixed Document(以下、FD)”、"Fixed Page(以下、FP)"の3階層のツリー構造をとる。
【0048】
ここで、FPは更に、複数の描画オブジェクトから構成される。XPSデータでは、Path(図形)、Glyphs(文字)、Canvas(グループ)の3種類の描画オブジェクトがある。
【0049】
ここで、Canvasは、複数の描画オブジェクトを論理的にまとめるため、或いは、後述のResourceを参照するための親オブジェクトとして用いられる。
【0050】
上記各描画オブジェクトは、それぞれの描画種類に応じた複数の属性を持っており、描画に影響する属性も、描画に影響しない属性も含まれている。また、必須ではない属性もある。後述するResourceの参照も属性で実現している。
【0051】
また、XPSデータはPrint Ticket(以下、PT)という印刷設定を内部に持つことができる。
【0052】
ここで、GDIプリンティングシステムの印刷設定であるDEVMODEは、全ての属性を一度に設定し、必要に応じてジョブの途中でDEVMODE全体を切り替えることを特徴とする。これに対し、PTは、ジョブ/ドキュメント/ページの単位で一部の印刷設定のみの指定が可能となることを特徴とする。
【0053】
更に、複数の描画オブジェクトをまとめて1つのResourceとして定義し、Fixed PageもしくはCanvasから参照することにより描画を共通化することが可能である。Resourceは、Resource Dictionaryに複数定義することが可能で、描画オブジェクト以外にも描画ブラシなども定義可能である。
【0054】
<自動オーバレイ印刷の概要説明>
図3は、本実施形態を示す印刷システムにおける印刷処理の概要を説明する図である。なお、図2と同一のものには同じ符号を付している。
【0055】
図3において、アプリケーション201が同じテンプレートから作成された複数ページの文書を印刷すると、プリンタドライバ203がXPSデータ形式の印刷データを受け取り、プリンタ150へ出力する。プリンタドライバ203にはLayout Filter(LF)301とOverlay Filter(OF)302とRender Filter(RF)303が備わっている。LF301はレイアウタとして機能し、ページの面付けやスタンプ画像の付加など印刷データの加工を行う。
【0056】
OF302は、文書構造変換部として機能し、印刷データを共通描画FDと差分描画FDから構成されるXPSデータに再構成し、フォーム登録PTもしくはオーバレイ印刷PTを付加する。OF302は、共通描画部分と差分描画部分とで再構成する文書構造変更処理を以下のように行う。ここで、共通描画部分は、元の印刷データから共通するオブジェクトを抽出するため、ページ1とページ2の最下層のオブジェクトから順に比較し、異なるオブジェクトを探し、ページ1で異なるオブジェクトを削除する。そして、以降のページ3〜Nについて、同様の処理を行い、図9に示すフォームに対応する共通描画部分FPのみを抽出することができる。なお、ページ2〜Nは、フォームForm1を生成したら削除される。その後、フォーム名がPTに設定される。
【0057】
一方、差分描画部分については、元の印刷データから共通描画部分FPを削除して、図10に示すように差分描画部分FDを生成する。
【0058】
RF303は印刷部として機能し、PTが付加されているXPSデータから、プリンタ150が受け取ることができるフォーム登録ジョブ、オーバレイ印刷ジョブおよび通常の印刷ジョブを生成して出力する。304はフォームデータベースで、ホストコンピュータ300から受信するフォームデータを記憶する。ここで、フォームデータベース304は、プリンタ150のRAM13の領域、或いは外部メモリ21の領域に確保される。
【0059】
<自動オーバレイ印刷処理の詳細説明>
次に、プリンタドライバ203が印刷データを受け取ったときの処理について図4から図9に示すフローチャートを用いて説明する。
【0060】
図4は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図1に示したホストコンピュータ300による印刷データ処理例である。なお、S401〜S403は各ステップを示す。また、各ステップは、図1に示しCPU1が上述したプリンタドライバ203をRAM2にロードして実行することで実現される。
【0061】
プリンタドライバ203は、アプリケーション201より印刷データを受け取ったら、S401で、レイアウタとして機能するLF301が面付け処理を行った後、自動オーバレイ印刷に設定されているかをOF302が判断する。
【0062】
ここで、自動オーバレイ印刷に設定されているとOF302が判断した場合は、S402で、OF302が印刷データの文書構造を後述のように共通描画部分と差分描画部分とに再構成する。そして、S403で、再構成された印刷データを対象にRF303が印刷処理を行い、本処理を終了する。なお、S401で、自動オーバレイ印刷でないとCPU1が判断した場合は、S403へ進む。
【0063】
図5は、図3に示したプリンタドライバ203によるオーバレイ設定画面の一例を示す図である。なお、本画面は、自動オーバレイ印刷を設定するプリンタドライバの設定画面であり、アプリケーション201から印刷要求がなされた場合に、図1に示すディスプレイ10に表示される。
【0064】
図5において、1001は処理方法ラジオボタン部で、4つの異なるオーバレイ印刷処理を選択するためのラジオボタンRB1〜RB4を備える。RB1はラジオボタンで、オーバレイ印刷を行わない場合に選択される。
【0065】
RB2はラジオボタンで、オーバレイ印刷を行う場合に選択される。RB3はラジオボタンで、フォームファイルを作成する場合に選択される。RB4はラジオボタンで、自動でオーバレイ印刷を行う場合に選択される。
【0066】
1002はボタン部で、処理の実行を制御するボタンBT1〜BT4を備えている。ここで、BT1はOKボタンとして機能し、BT2はキャンセルボタンとして機能し、BT3は標準に戻すボタンとして機能し、BT4はヘルプを呼び出すボタンとして機能する。
【0067】
ここで、ユーザがラジオボタンRB4で「自動でオーバレイ印字を行う」を選択し、OKボタンであるボタンBT1を押すと、図4に示したS401で、図3に示したプリンタドライバ203内のOF302が自動オーバレイ印刷の要求がなされていると判断する。
【0068】
図6は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図3に示したプリンタドライバ203内のOF302による図4に示しS402に対応する文書構造変更処理の詳細処理例である。
【0069】
なお、S501〜S503は各ステップを示す。また、各ステップは、図1に示すCPU1がOF302をRAM2にロードして実行することで実現される。
【0070】
文書構造変換部として機能するOF302は、まず、S501で、アプリケーション201から受け取るXPSデータ形式の印刷データから共通描画部分を抽出して共通描画部分FPをRAM2上で生成する。次に、S502で、OF302は、処理の結果、共通描画部分FPがRAM2上に生成されているかどうかを判断する。ここで、共通描画部分FPが生成されているとOF302が判断した場合は、S503で、OF302は、元のFDから共通描画部分FPを除いて差分描画部分FDをRAM2上に生成して、本処理を終了する。なお、S502で、共通描画部分FPが生成されていないとOF302が判断した場合は、本処理を終了する。
【0071】
図7〜図10は、本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。以下、図4に示したS402の文書構造変更処理例を説明する。
【0072】
図7は元の印刷データのXPSデータ構造に対応し、FD701が3つのFP1〜3から構成されている。図8は、FDSが共通描画Documentと、FDから構成される例である。ここで、OF302は、元のFD701を共通描画FD801用にコピーし、3つのFP1〜3を順番に比較し、複数のページから構成される文書情報に対してテンプレート(図9に示すForm1)とすべき共通描画部分FPを抽出する。なお、OF302が元のFD701を共通描画FD801用にコピーする場合には、PTも含めてコピーする。
【0073】
図9では、OF302が図8に示すようにして抽出された共通描画部分FP902以外のFP(図8に示す例では、FP2、FP3)を削除する。そして、OF302は、登録フォーム名称(Form1)を指定するフォーム登録PTを共通描画部分FP902に付加し、共通描画FD901を生成する。
【0074】
図10では、OF302が図9に示す元のFD903の各FP1〜3から共通描画部分FPの描画を削除して差分描画部分FP11〜13を生成し、使用した共通描画ページのフォーム名称を、使用するフォーム名称として指定するオーバレイ印刷PTを各差分描画FP11〜13に付加し、差分描画FD1002を生成している。
【0075】
図11は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図3に示したOF302による図6に示すS501における共通描画FP生成処理の詳細例である。なお、S601〜S617は各ステップを示す。また、各ステップは、図1に示すCPU1がOF302をRAM2にロードして実行することで実現される。
【0076】
まず、S601で、文書構造変換部として機能するOF302は、元のFD701を、図8に示すようにRAM2上でコピーし、共通描画FD801の雛形を生成する。
【0077】
通常、プリンタはオーバレイ印刷ジョブを処理する時点でフォーム登録がなされていなければ、フォームに印刷データを正しく重ねて印刷できない。
【0078】
このため、図4に示したS403に対応する印刷処理において、フォーム登録ジョブがオーバレイ印刷ジョブよりも先に出力されるように、共通描画FD801が差分描画FDより前に読み出されるように配置する。
【0079】
次に、S602で、OF302は、共通描画FD801の中から、比較するFPとして最初のFP1を取得し、S603で、OF302は、次のFPを取得する。そして、S604で、最初のFP1と次のFPを取得できているかどうかをOF302が判断する。ここで、最初のFP1と次のFPを取得できているとOF302が判断した場合は、S605、S606で、OF302は、2つのFPの次の未処理の描画オブジェクトを取得する。そして、S607で、OF302は、詳細は後述する描画オブジェクトの比較処理を行う。
【0080】
図12は、本実施形態を示す情報処理装置におけるオブジェクト処理を説明する図である。以下、描画オブジェクト比較処理の概要を説明する。
【0081】
図12に示す例では、Page1とPageNの2つのFPを比較対象としており、最下層から順に描画オブジェクトをOF302が比較していく。ここで、描画オブジェクトがResourceを参照している場合は、参照先の比較も再帰的に行う。
【0082】
そして、S608で、比較対象の描画オブジェクトが一致するかどうかをOF302が判断する。ここで、比較対象の描画オブジェクトが一致するとOF302が判断した場合は、S609で、2つのFPに比較すべき次の描画オブジェクトがあるかどうか、すなわち描画オブジェクトが終了かどうかをOF302が判断する。なお、S608で、OF302が一致しないと判断した場合は、S610へ進む。
【0083】
S609で、描画オブジェクトが終了でないとOF302が判断した場合は、どちらかのFPの描画オブジェクトがなくなるまでS605〜S609を繰り返す。
【0084】
一方、S608で、比較対象の描画オブジェクトが同じでないとOF302が判断したか、S609でどちらかのFPの描画オブジェクトがなくなったとOF302が判断した場合は、S610へ進む。そして、S610で、OF302は、FP1のそれ以降の描画オブジェクトを削除する(図12参照)。
【0085】
そして、S611で、比較すべき次のFPがまだあるかどうかをOF302が判断する。ここで、比較すべき次のFPがまだあるとOF302が判断した場合は、S603に戻り、FP1と他の全てのFPを比較するまでS603〜S611を繰り返す。
【0086】
一方、S611で、比較すべき次のFPがないとOF302が判断した場合は、S612へ進む。そして、S612で、2ページ以上のFPを処理したかどうかについてOF302が判断する。そして、2ページ以上のFPを処理したとOF302が判断した場合は、S613で、FP1の描画オブジェクトが空であるかどうかをOF302が判断する。
【0087】
ここで、FP1の描画オブジェクトが空でないとOD302が判断した場合は、FP1は複数ページの共通描画が抽出されているので、S614へ進む。そして、S614で、OF302は、FP1以外のFP、FP2以降のページを削除する。この状態の例を、図9に示す共通描画Document901の破線で示す。
【0088】
次に、S615で、OF302は、プリンタにフォーム登録する際のフォーム名称(Form1)を生成し、S616で、OF302は、その名称(Form1)を登録フォーム名称として指定したフォーム登録PTをFP1に付加して、処理を終了する。
【0089】
ここで、生成する登録フォーム名称は、出力先のプリンタにおいて一意となる名称であれば、後述の印刷処理において正しくフォームを指定することができる。
【0090】
ここで、フォーム名称には、例えばUUID(Universal Unique Identifier)と言われる汎用一識別子や、印刷を行うPCのIPアドレスと時刻を組み合わせた「xxx.xxx.xxx.xxx_hhmmss」のような文字列を用いる。
【0091】
一方、S612で、1ページしか処理していない、もしくはS613でFP1の描画オブジェクトが空であるとOF302が判断した場合は、共通描画が抽出されなかったことになる。その場合は、S617において、S601でコピーした共通描画FD全体をOF302が削除して、処理を終了する。
【0092】
図13は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、OF302による図11に示すS607における描画オブジェクト比較処理例である。なお、S701〜S714は各ステップを示す。また、各ステップは、図1に示したCPU1がOF302をRAM2にロードして実行することで実現される。ここではFP1の描画オブジェクト1とFPNの描画オブジェクト2を比較する。描画オブジェクト1と描画オブジェクト2は逆であっても構わない。
【0093】
まず、S701で、比較対象の描画オブジェクトの種類が同じかどうかをOF302が判断する。ここで、比較対象の描画オブジェクトの種類が同じであるとOF302が判断した場合は、S702で、描画オブジェクト1の次の未処理の属性をOF302が取得する。
【0094】
そして、S703で、S702において取得した属性が、描画に影響する属性であるかどうかをOF302が判断する。ここで、描画に影響しない属性であるとOF302が判断した場合は、S712へスキップし、描画に影響する属性であるとOF302が判断した場合は、S704で、描画オブジェクト2から同じ属性をOF302が検索する。
【0095】
そして、S705で、同じ属性が見つかったかどうかをOF302が判断する。ここで、同じ属性がみつかったとOF302が判断した場合は、さらに、S706で、その属性がリソースを参照しているかどうかをOF302が判断する。ここで、属性がリソースを参照していないとOF302が判断した場合は、S707へ進み、OF302が属性値自体を比較して、S711へ進む。
【0096】
一方、S706で、属性がリソースを参照しているとOF302が判断した場合は、S708で、描画オブジェクト1および描画オブジェクト2の参照先リソースをOF302が取得する。そして、S709で、描画オブジェクト1および描画オブジェクト2の参照先リソースを取得できたかどうかをOF302が判断する。ここで、描画オブジェクト1および描画オブジェクト2の参照先リソースを取得できたとOF302が判断した場合は、S710で、参照先の描画オブジェクトを再帰的に比較する。
【0097】
そして、S711で、S707の比較結果またはS710の比較結果が一致しているかどうかをOF302が判断する。ここで、両比較結果が一致していると判断した場合は、S712へ進み、描画オブジェクト1の属性を全て比較し終わったかをOF302が判断する。
【0098】
ここで、まだ比較していない属性があるとOF302が判断した場合は、S702へ戻り、描画オブジェクト1の全ての属性を比較するまでS702〜712を繰り返す。
【0099】
一方、S701で比較対象の描画オブジェクトの種類が異なる種類とOF302が判断した場合には、S714で、戻り値を”非一致”として、処理を終了する。
【0100】
また、S705で同じ属性が見つからなかった、またはS709で描画オブジェクト1もしくは描画オブジェクト2のリソースが取得できなかった、又はS711で一致していないとOF302が判断した場合、S714へ進み、処理を終了する。
【0101】
一方、S712で、全ての属性を比較しても非一致の属性がないとOF302が判断した場合(属性が一致したと判断した場合)は、S713で、OF302が戻り値を”一致”として、処理を終了する。
【0102】
図14は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、OF302による図6に示すS503における差分描画FP生成処理例である。なお、S801〜S812は各ステップを示す。また、各ステップは、図1に示したCPU1がOF302をRAM2にロードして実行することで実現される。なお、差分描画FP生成処理は、図10に示すように、元のFDの各FPから共通描画FPの描画を削除して差分描画FPを生成し、使用するフォーム名称を指定するオーバレイ印刷PTを各差分描画FPに付加し、差分描画FD1002を生成する処理である。
【0103】
まず、S801で、OF302がS501において生成された共通描画FPを一方の比較対象として取得する。そして、S802、S803で、元のFDと次の未処理のFPをもう一方の比較対象として取得する。
【0104】
次に、S804で、OF302が元のFDと次の未処理のFPの双方を取得できたかどうかを判断する。
【0105】
ここで、元のFDと次の未処理のFPの双方の取得ができないとOF302が判断した場合は、処理を終了する。
【0106】
一方、S804で、元のFDと次の未処理のFPの双方を取得できたとOF302が判断した場合は、S805、S806で、比較対象の共通描画FPと元のFDのFPの次の未処理の描画オブジェクトを取得する。そして、S807で、S607と同様に、OF302が描画オブジェクトを比較する。
【0107】
そして、S808で、比較対象の描画オブジェクトが同じであるかどうかをOF302が判断する。ここで、較対象の描画オブジェクトが同じであるとOF302が判断した場合は、S809で、2つのFPに比較すべき次の描画オブジェクトがあるかどうかをOF302が判断する。ここで、2つのFPに比較すべき次の描画オブジェクトがあるとOF302が判断した場合は、共通描画FPの描画オブジェクトがなくなるまでS805〜S809を繰り返す。
【0108】
一方、S809で、共通描画FPの全ての描画オブジェクトが一致しているとOF302が判断した場合は、S810で、比較対象のFPの共通描画FPと一致しなくなる手前までの描画オブジェクトをOF302が削除し、差分描画FPが完成する。
【0109】
更に、S811で、OF302は、S616において共通描画FPに付加されたフォーム登録PTに指定されている登録フォーム名称を、使用フォーム名称として設定したオーバレイ印刷PTを差分描画FPに付加する。
【0110】
次に、S812で、元のFDに比較すべき次のFPがまだあるかどうかをOF302が判断する。ここで、元のFDに比較すべき次のFPがまだあるとOF302が判断した場合は、S803に戻り、全てのFPを比較するまでS803〜S812を繰り返す。
【0111】
一方、S812で、元のFDに比較すべき次のFPがないとOF302が判断した場合は、処理を終了する。
【0112】
一方、S808で、共通描画FPの全ての描画オブジェクトが一致しないとOF302が判断した場合は、共通描画FPを使用しない通常のFPとして、S812に進む。
【0113】
図15は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図4に示したS403における印刷処理例である。なお、S901〜S911は各ステップを示す。また、各ステップは、図1に示しCPU1がRF303をRAM2にロードして実行することで実現される。以下、フォーム登録ジョブおよびオーバレイ印刷ジョブを生成するジョブ生成処理を説明する。
【0114】
なお、印刷部として機能するRF303は、OF302によるS402の結果、再構成された印刷データを受け取り、印刷ジョブを出力する。
【0115】
ここで、再構築された印刷データには、通常のFP、共通描画FP,差分描画FPの3種類のFPが含まれる可能性があり、付加されているPTによって判別される。フォーム登録PTが付加されていれば共通描画FP、オーバレイ印刷PTが付加されていれば差分描画FP、いずれも付加されていなければ通常のFPである。
【0116】
また、フォーム登録PTとオーバレイ印刷PTは排他で、両方付加されることはない。
【0117】
まず、S901で、RF303は、次の未処理のFDを取得し、S902で、次の未処理のFPを取得する。そして、S903で、FPが取得できたかどうかをRF303が判断する。ここで、FPを取得できたとRF303が判断した場合は、S904で、フォーム登録PTが付加されているかをRF303が判断する。ここで、フォーム登録PTが付加されていないとRF303が判断した場合は、S905で、オーバレイ印刷PTが付加されているかをRF303が判断する。
【0118】
ここで、オーバレイ印刷PTが付加されているとRF303が判断した場合は、S907で、RF303がオーバレイ印刷ジョブを出力して、S909へ進む。
【0119】
一方、S905で、オーバレイ印刷PTが付加されていないとRF303が判断した場合は、S908へ進み、RF303が通常印刷ジョブを出力して、S909へ進む。
【0120】
そして、S909で、いずれかのジョブを出力後、次のFPがまだあるかどうかをRF303が判断する。ここで、次のFPがまだあるとRF303が判断した場合は、S902へ戻り、S902〜S909を繰り返す。
【0121】
一方、S904で、フォーム登録PTが付加されているとRF303が判断した場合は、S906へ進み、RF303は各々フォームを登録する処理を行うことでフォーム登録ジョブを生成し、S909へ進む。
【0122】
一方、S909で、次のFPがないとRF303が判断した場合は、S910で、次のFDがまだあるかどうかをRF303が判断する。ここで、次のFDがあるとRF303が判断した場合は、S901へ戻ってS901〜S910を繰り返す。
【0123】
一方、全てのFDを処理しているとRF303が判断した場合は、S911で、RF303がジョブ出力終了処理を行い、本処理を終了する。
【0124】
なお、図4に示したS402における文書構造変更処理において、共通描画FDを差分描画FDより前に配置しているので、フォーム登録ジョブがオーバレイ印刷ジョブよりも前に出力される。この結果、プリンタ150では先に登録されたフォームと後から受信する印刷データとを正しく重ねて印刷することができる。
【0125】
本実施形態では、文書構造変更部として機能するOF302で文書構造変更した印刷データを印刷に用いているが、印刷以外の用途にも用いることができる。例えば、差分描画FPの各描画オブジェクトはバリアブルデータのデータベースへの入力ソースとして利用可能である。
【0126】
本実施形態によれば、ユーザが図5に示すオーバレイを自動と選択する簡単な操作を行うだけで済む。そして、その選択指示に従って、汎用アプリケーションから、テンプレートと一体化した文書をそのままで容易にフォーム登録よびオーバレイ印刷が可能となる。
【0127】
その結果、共通フォーマットの大量ページの文書に対して印刷処理時間が短縮され、かつ、ホストからプリンタへの転送トラフィックも軽減される。
【0128】
本実施形態によれば、フォーム登録とオーバレイ印刷の指示をそれぞれ分ける必要がなくなり、処理方法を1回選択するだけで、フォーム登録よびオーバレイ印刷を指示でき、ユーザの操作負担を軽減できる。
【0129】
〔第2実施形態〕
上記第1実施形態では、同じテンプレートから作成された複数ページの文書の印刷において自動オーバレイ印刷を行う場合について説明した。本実施形態では、1つの印刷ジョブ中に複数の文書が含まれており、それぞれが別のテンプレートから作成された複数ページの文書である場合について説明する。
【0130】
図16〜図18は、本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【0131】
本実施形態における元の印刷データは、XPSデータ構造で定義され、図16に示すように、2つのFD1601、1602を含んで構成されている例である。図17は、元のFD1601から共通描画FD1701と差分描画FD1702を生成した後に、元のFD1602から共通描画FD1703と差分描画FD1704を生成した状態を示している。図18は、図17に示した共通描画FD1703のFP1705を共通描画FD1701のFP1706にコピーし、共通描画FD1703を削除した状態を示している。
【0132】
図19は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図16〜図18に示す文書構造変更処理例である。なお、S1601〜S1604は各ステップを示し、図6と同様のステップには、同じステップ番号を付している。また、各ステップは、図1に示たCPU1がOF302をRAM2にロードして実行することで実現される。以下、処理の手順について詳細に説明する。
【0133】
まず、S1601で、文書構造変換部として機能するOF302は、処理する最初のFDを印刷データから取得する。そして、S1602で、最初のFDを印刷データから取得できたかどうかをOF302が判断する。ここで、処理する最初のFDを印刷データから取得できたとOF302が判断した場合は、S1603で、OF302は、共通描画を抽出して共通描画FPを生成する。
【0134】
なお、S1603は、共通描画FP生成処理は、図6に示したS501に示す共通描画FP生成処理とほぼ同じ処理であるが、複数のFDに対応するために一部処理を追加・変更している。その詳細の処理については後述する。
【0135】
次に、S502で、S1603における共通描画FP生成処理の結果、共通描画FPが生成されたかをOF302が判断する。ここで、共通描画FPが生成されているとOF302が判断した場合は、S503で、元のFDから共通描画を除いて差分描画FDを生成する。
【0136】
そして、S503の生成処理が完了するか、S1602で取得できないとOF302が判断した場合、S502で共通描画FPが生成されていないとOF302が判断した場合は、S1604へ進む。
【0137】
そして、S1604で、次のFDがまだあるかどうかをOF302が判断する。ここで、次のFDがまだあるとOF302が判断した場合は、S1601へ戻って、全てのFDが処理されるまでS1601〜S1604を繰り返し、処理を終了する。
【0138】
図20は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図19に示したOF302によるS1603の共通描画FP生成処理の詳細例である。なお、S1701〜S1705は各ステップを示し、図11と同様のステップには、同じステップ番号を付している。また、各ステップは、図1に示たCPU1がOF302をRAM2にロードして実行することで実現される。
【0139】
第1実施形態で説明したように、図11に示したS601におけるFDのコピー処理において、通常、プリンタはオーバレイ印刷ジョブを処理する時点でフォーム登録がなされていなければ正しく重ねて印刷されない。そのため、図4に示したS403の印刷処理において、フォーム登録ジョブがオーバレイ印刷ジョブよりも先に出力されるように、共通描画FDが差分描画FDより前に読み出されるように配置する。
【0140】
本実施形態では、S601に示す2つ目以降のFDに対するコピー処理では、1つの共通描画FDおよび1つ以上の差分描画FDが、S601の時点で既に存在する可能性があるので、全ての差分描画FDおよび元のFDの前、かつ共通描画FDの後にコピーをする。
【0141】
図20に示すS616の処理を終了後(図17に示す状態)、S1701で、現在のところ共通描画FDが2つ存在するかどうかをOF302が判断する。ここで、共通描画FDが1つであるとOF302が判断した場合は、本処理を終了する。
【0142】
一方、S1701で、共通描画FDが2つ存在するとOF302が判断した場合は、S1702へ進む。そして、S1702で、現在処理しているFDに対して生成した共通描画FPと同一の描画のFPが存在しないか検索する。
【0143】
そして、S1703で、元々存在した共通描画FDの中で同一の描画のFPを見つけることができたかどうかをOF302が判断する。ここで、元々存在した共通描画FDの中で見つけることができなかったとOF302が判断した場合は、S1704へ進む。
【0144】
そして、S1704で、OF302は、現在処理しているFDに対して生成した共通描画FPを元々存在した共通描画FDに追加し、S617で、現在処理しているFDに対して生成した共通描画FDを削除して、本処理を終了する。
【0145】
一方、S1703で、同じ描画の共通描画FPが見つけることができたとOF302が判断した場合は、S1705へ進む。そして、S1705で、その共通描画FPに付加されたフォーム登録PTに指定されている登録フォーム名称を取得し、S617へ進む。
【0146】
なお、S615およびS1705で生成もしくは取得した登録フォーム名称は、図14に示すS811で差分描画FDに付加するオーバレイ印刷PTの使用フォーム名称として用いる。
【0147】
この結果、異なるテンプレート文書から作成された文書毎に共通描画FPと差分描画FPが生成され、それに対応したフォーム登録およびオーバレイ印刷が可能となる。
【0148】
本実施形態では、元の印刷データにFDが1つしかない場合にも対応しており、上記第1実施形態の処理を包含した構成となっている。
【0149】
〔第3実施形態〕
OF302による図4に示したS402における文書構造変更処理の後、の印刷データをファイルに保存するとXPSデータとして再利用が可能である。しかしながら、標準のビューアでXPSデータを表示すると、図10に示したような共通描画FDと差分描画FDは別のページとして表示されてしまう。
【0150】
そこで、標準のビューアしかない情報処理装置を含む印刷システム環境では、このようなXPSデータを利用する場合、XPSデータの構造を以下のように変更すればよい。以下、その実施形態について説明する。
【0151】
図21は、本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【0152】
図21に示すように、本実施形態では、OF302が共通描画部をResource Dictionary2101にコピーすることで、共通描画FPの描画部分2103をResource Dictionary2101に置く。そして、OF302が差分描画FPの最下層に参照元のオブジェクト(Canvas)を追加し、リソースを参照するように文書構造を変更する。
【0153】
図22は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、参照化構造を変更する処理の詳細例である。なお、S2101〜S2112は各ステップを示す。また、各ステップは、図1に示たCPU1がOF302をRAM2にロードして実行することで実現される。
【0154】
まず、S2101で、OF302が最初の差分描画FPを取得する。そして、最初の差分描画FPを取得できたかどうかをOF302が判断して、取得できたとOF302が判断した場合は、S2103で、OF302は、そのFPのオーバレイ印刷PTの使用フォーム名称を取得する。なお、差分描画FDの中にオーバレイ印刷しないFPが入っている場合には、取得ができない。
【0155】
次に、S2104で、FPのオーバレイ印刷PTの使用フォーム名称を取得できたかどうかをOF302が判断する。ここで、使用フォーム名称を取得できたとOF302が判断した場合は、S2105で、その名称とフォーム登録PTの登録フォーム名称が一致するFPを共通描画FDから検索する。
【0156】
そして、S2106で、その名称とフォーム登録PTの登録フォーム名称が一致するFP(図21に示す例では、FP2103)を見つけられたかどうかをOF302が判断する。ここで、その名称とフォーム登録PTの登録フォーム名称が一致するFPを見つけられたとOF302が判断した場合は、S2107へ進む。
【0157】
そして、S2107で、そのFPの描画部分と同じ描画のResourceがResource Dictionary2101の下に既に存在するか検索してOF302が判断する。
【0158】
ここで、そのFPの描画部分と同じ描画のResourceがResource Dictionaryの下に既に存在していないとOF302が判断した場合は、S2108へ進む。
【0159】
そして、S2108で、OF302は、共通描画部をResourceとしてResource Dictionary2101にコピーする。更に、S2109で、OF302は、現在処理している差分描画FPの最下層に参照元となるCanvusオブジェクトを追加する。
【0160】
そして、S2110で、OF302は、追加したもしくは見つかったResourceを参照先とするように差分描画FPの属性を設定する。その後、S2111で、次の差分描画FPが存在するかどうかをOF302が判断する。ここで、OF302が次の差分描画FPが存在すると判断した場合は、S2101に戻る。
【0161】
一方、S2111で、全ての差分描画FPに対してS2101〜2111を行っていると判断した場合、次の差分描画FPが存在しないとOF302が判断した場合は、S2112へ進む。
【0162】
そして、S2112で、OF302は、FDSのRelationshipから共通描画FDを削除して、本処理を終了する。
【0163】
なお、本実施形態では、再度戻すことも考慮して共通描画FD2102を図21に示すように残しているが、共通描画FD自体を削除しても良い。
【0164】
以下、図23に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0165】
図23は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【0166】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0167】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0168】
本実施形態における図7、図10に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0169】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0170】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードをコンピュータ読み取り可能に記憶した記憶媒体は本発明を構成することになる。
【0171】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0172】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0173】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0174】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
【0175】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0176】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0177】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0178】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【0179】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【0180】
【図1】本実施形態を示す情報処理装置と印刷装置とが通信可能な印刷制御システムの構成を示すブロック図である。
【図2】図1に示したホストコンピュータ300における印刷処理のための構成の一例を示す図である。
【図3】本実施形態を示す印刷システムにおける印刷処理の概要を説明図である。
【図4】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図5】図3に示したプリンタドライバ203によるオーバレイ設画面の一例を示す図である。
【図6】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図7】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図8】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図9】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図10】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図11】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図12】本実施形態を示す情報処理装置におけるオブジェクト処理を説明する図である。
【図13】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図14】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図15】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図16】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図17】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図18】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図19】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図20】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図21】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図22】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図23】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【0181】
150 プリンタ
201 アプリケーション
203 プリンタドライバ
301 LF
302 OF
303 RF
【技術分野】
【0001】
本発明は、フォーム登録およびオーバレイ印刷機能を搭載している印刷制御装置にジョブを出力する情報処理装置に関するものである。
【背景技術】
【0002】
近年、印刷速度向上、ホストからプリンタへの転送トラフィックの低減を目的として、フォーム登録およびオーバレイ印刷機能を搭載したプリンタ及びこの種の機能を制御するプリンタドライバが開発されている。
【0003】
しかし、ワードプロセッサや表計算ソフトウエアなど汎用アプリケーションからはフォーム登録およびオーバレイ印刷機能に対する使い勝手が良くないため、あまり活用されていない。
【0004】
例えば、汎用アプリケーションでオーバレイ印刷を行う場合、テンプレート文書を作成して、フォーム登録印刷を行い、別途テンプレートを除いた文書を作って、登録したフォームを指定してオーバレイ印刷という手順が必要である。
【0005】
ところが、テンプレートを除いた文書の場合、アプリケーションの表示で内容が分かりにくいことと、テンプレートと対で保管する必要があり管理が面倒である。
【0006】
そのため、テンプレートに必要事項を追加して一体化した文書を作って通常の印刷をすることが多い。また、テンプレートが特に作成されておらず、既存の文書を複製、変更して文書を作る場合も多い。その結果、フォーム登録およびオーバレイ印刷があまり使われていない。
【0007】
下記特許文献1には、描画命令と共にフォーム作成指令が出力されると、フォームを構成するものとしてあらかじめ指定された属性の命令を描画命令から抽出してフォーム登録データとして印刷装置へ転送することが記載されている。
【0008】
また、下記特許文献1には、描画命令と共にオーバレイ印刷指令が出力されると、本文としてあらかじめ指定された属性の命令を描画命令から抽出して印刷データとして印刷装置へ転送することが記載されている。
【0009】
このように特許文献1には、ユーザが容易にフォーム登録もしくはオーバレイ印刷を実行する技術が公開されている。
【特許文献1】特開平10−244727公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら、この特許文献1に開示される技術では、フォームと本文とで属性を違えて文書を作成する必要がある。そのため、文書の表現力が制限されてしまう。また、文書作成時に、フォームと本文との属性を常に留意しなければならないという課題があった。
【0011】
更に、ユーザはフォーム登録かオーバレイ印刷かどちらか一方を指定して印刷を行う必要があり、ユーザの行う操作が面倒になるという課題もあった。
【0012】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、簡単な操作指示で、アプリケーションから出力される文書情報に対して、フォーム登録ジョブとオーバレイ印刷ジョブとを生成できる仕組みを提供することである。
【課題を解決するための手段】
【0013】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
【0014】
アプリケーションから出力される複数のページから構成される文書情報を印刷装置に出力する情報処理装置であって、前記文書情報から生成されるフォームを用いるオーバレイ印刷を指示する指示手段と、前記指示手段でオーバレイ印刷が指示された場合、前記文書情報に含まれるオブジェクトを比較して、複数ページで共通する共通描画部分と、前記文書情報から前記複数ページで共通する共通描画部分を除いた差分描画部分とに再構成する再構成手段と、前記再構成手段により再構成された共通描画部分に基づきフォーム登録ジョブを生成し、前記再構成手段により再構成された差分描画部分に基づきオーバレイジョブを生成するジョブ生成手段と、
を備えることを特徴とする。
【発明の効果】
【0015】
本発明によれば、簡単な操作指示で、アプリケーションから出力される文書情報に対して、フォーム登録ジョブとオーバレイ印刷ジョブとを生成できる。
【発明を実施するための最良の形態】
【0016】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【0017】
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態を示す情報処理装置と印刷装置とが通信可能な印刷制御システムの構成を示すブロック図である。本実施形態は、オペレーティングシステムとして、マイクロソフト社のWindows(登録商標) Vistaに新規に搭載されたXPSプリンティングシステムを例とする。以下、上記XPSプリンティングシステムを用いて、汎用のアプリケーションが出力した文書情報からプリンタドライバがフォーム登録ジョブと、オーバレイジョブとを自動的に生成してプリンタに出力するジョブ処理例を詳述する。本実施形態では、文書情報がXPSデータである場合を示す。
【0018】
なお、特に断らない限り、本発明の機能が実行されるのであれば、機器の構成に係わらず本発明を適用できることは言うまでもない。単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであってもよい。
【0019】
図1において、ホストコンピュータ300は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備える。
【0020】
更に、システムバス4に接続される各デバイスをCPU1が総括的に制御する。また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステム(以下OS)等を記憶する。本実施形態では、上述の通り、マイクロソフト社のWindows(登録商標) Vistaを例とする。
【0021】
ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶する。ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。
【0022】
2はRAMで、CPU1の主メモリ、ワークエリア等として機能する。5はキーボードI/Fで、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。
【0023】
6はディスプレイI/Fで、ディスプレイ10の表示を制御する。7は外部メモリI/Fで、ハードディスク(HD)、フレキシブルディスク(FD)等の外部メモリ11とのアクセスを制御する。外部メモリ11にはブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、後述する図2に示すモジュールを備えるプリンタドライバ等が記憶される。
【0024】
8はプリンタI/Fで、所定の双方向性のインタフェース22を介してプリンタ150に接続されて、プリンタ150との通信制御処理を実行する。
【0025】
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、ディスプレイ10上でのWYSIWYGを可能としている。
【0026】
また、CPU1は、ディスプレイ10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザはアプリケーションで作成した情報を印刷する際、当該情報に対する設定を行うためのユーザインタフェースをディスプレイ10上で開き、プリンタ150の設定や、印刷モードの選択を行う。この際、ユーザは、プリンタドライバが提供するユーザインタフェースを介して、各種の印刷処理方法の設定を行えるように構成されている。なお、プリンタドライバが提供するユーザインタフェースには、図5に示すオーバレイ設定画面が含まれる。
【0027】
プリンタ150において、12はプリンタCPU(CPU)である。CPU12は、ROM14のプログラム用ROMあるいは外部メモリ21に記憶された制御プログラム等に基づいてシステムバス15に接続される印刷部I/F17を介して印刷部(プリンタエンジン)19に出力情報としての画像信号を出力する。
【0028】
また、このROM14のプログラムROMにはCPU12の制御プログラム等を記憶する。ROM14のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶する。
【0029】
さらに、ROM14のデータ用ROMには、ハードディスク等の外部メモリ21を備えていないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶する。
【0030】
CPU12は、入力部16を介してホストコンピュータ300との通信処理が双方向に可能となっており、プリンタ150内の情報等をホストコンピュータ300に通知可能に構成されている。ここで、情報には、プリンタエンジンのステータスや、ネットワーク設定情報や、デバイス名、リソース名等が含まれる。
【0031】
RAM13は、CPU12の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
【0032】
なお、RAM13は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ21は、外部メモリI/F18によりアクセスが制御される。
【0033】
外部メモリ21は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
【0034】
なお、外部メモリ21は1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【0035】
さらに、図示しないNVRAMを有し、操作部20からのプリンタモード設定情報を記憶するようにしてもよい。RAM13もしくは外部メモリ21には、ホストコンピュータ300から送信されたフォームデータを格納することが可能であり、オーバレイ印刷の場合には印刷設定で指定されたフォームデータを取り出して、重ねて印刷する。操作部20は、操作のためのスイッチおよびLED表示器等が配されている。
【0036】
<ホストコンピュータ300における印刷処理の詳細説明>
図2は、図1に示したホストコンピュータ300における印刷処理のための構成の一例を示す図である。本実施形態では、後述するモジュールをCPU1が実行することで各種の印刷処理を行う例である。なお、図1と同一のものには同一の符号を付している。
【0037】
図2において、アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在する。
【0038】
これらは、OSやそのモジュールを利用するモジュールによってRAM2にロードされて、CPU1により実行されるプログラムモジュールとして構成されている。
【0039】
また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや、不図示のCD−ROM、あるいは不図示のネットワークを経由して、外部メモリ11として機能するハードディスク(HD)に保存することが可能となっている。そして、外部メモリ11に保存されているアプリケーション201は、RAM2にロードされてCPU1で実行される。なお、アプリケーション201およびプリンタドライバ203は、ネットワークを介してサーバ装置からホストコンピュータ300にダウンロードした後、外部メモリ11にインストールされる場合もある。
【0040】
このアプリケーション201からプリンタ150に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
【0041】
グラフィックエンジン202は、プリンタ150に対して用意されたプリンタドライバ203を外部メモリ11からRAM2にロードし、アプリケーション201の出力をプリンタドライバ203に設定する。
【0042】
また、グラフィックエンジン202は、アプリケーション201から印刷設定もしくは印刷用データを受け取り、プリンタドライバ203へ印刷データとして出力する。
【0043】
プリンタドライバ203のグラフィックコンポーネント205はグラフィックエンジン202から印刷データを受取り、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)データに変換する。
【0044】
このようにして、グラフィックコンポーネント205により変換されたプリンタ制御コマンドは、OSによってRAM2にロードされたシステムスプーラ204を経て、図1に示したインタフェース22を介してプリンタ150へ印刷データとして出力される仕組みとなっている。
【0045】
プリンタドライバ203のUIコンポーネント206は、グラフィックエンジン202から印刷設定を受取り、印刷設定を表示、変更などを行いグラフィックエンジン202を通してアプリケーション201に通知する。
【0046】
<XPSデータ>
OS、例えばマイクロソフト社製Windows(登録商標) Vistaに新規に搭載されたXPSプリンティングシステムでは、プリンタドライバ203がXPSデータを印刷データとして受け取る。XPSデータは、文書情報としての利用も可能なXMLベースのデータフォーマットである。
【0047】
XMLベースのデータフォーマットの文書構造は、各々ジョブ/ドキュメント/ページを表す”Fixed Document Sequence(以下、FDS)”、”Fixed Document(以下、FD)”、"Fixed Page(以下、FP)"の3階層のツリー構造をとる。
【0048】
ここで、FPは更に、複数の描画オブジェクトから構成される。XPSデータでは、Path(図形)、Glyphs(文字)、Canvas(グループ)の3種類の描画オブジェクトがある。
【0049】
ここで、Canvasは、複数の描画オブジェクトを論理的にまとめるため、或いは、後述のResourceを参照するための親オブジェクトとして用いられる。
【0050】
上記各描画オブジェクトは、それぞれの描画種類に応じた複数の属性を持っており、描画に影響する属性も、描画に影響しない属性も含まれている。また、必須ではない属性もある。後述するResourceの参照も属性で実現している。
【0051】
また、XPSデータはPrint Ticket(以下、PT)という印刷設定を内部に持つことができる。
【0052】
ここで、GDIプリンティングシステムの印刷設定であるDEVMODEは、全ての属性を一度に設定し、必要に応じてジョブの途中でDEVMODE全体を切り替えることを特徴とする。これに対し、PTは、ジョブ/ドキュメント/ページの単位で一部の印刷設定のみの指定が可能となることを特徴とする。
【0053】
更に、複数の描画オブジェクトをまとめて1つのResourceとして定義し、Fixed PageもしくはCanvasから参照することにより描画を共通化することが可能である。Resourceは、Resource Dictionaryに複数定義することが可能で、描画オブジェクト以外にも描画ブラシなども定義可能である。
【0054】
<自動オーバレイ印刷の概要説明>
図3は、本実施形態を示す印刷システムにおける印刷処理の概要を説明する図である。なお、図2と同一のものには同じ符号を付している。
【0055】
図3において、アプリケーション201が同じテンプレートから作成された複数ページの文書を印刷すると、プリンタドライバ203がXPSデータ形式の印刷データを受け取り、プリンタ150へ出力する。プリンタドライバ203にはLayout Filter(LF)301とOverlay Filter(OF)302とRender Filter(RF)303が備わっている。LF301はレイアウタとして機能し、ページの面付けやスタンプ画像の付加など印刷データの加工を行う。
【0056】
OF302は、文書構造変換部として機能し、印刷データを共通描画FDと差分描画FDから構成されるXPSデータに再構成し、フォーム登録PTもしくはオーバレイ印刷PTを付加する。OF302は、共通描画部分と差分描画部分とで再構成する文書構造変更処理を以下のように行う。ここで、共通描画部分は、元の印刷データから共通するオブジェクトを抽出するため、ページ1とページ2の最下層のオブジェクトから順に比較し、異なるオブジェクトを探し、ページ1で異なるオブジェクトを削除する。そして、以降のページ3〜Nについて、同様の処理を行い、図9に示すフォームに対応する共通描画部分FPのみを抽出することができる。なお、ページ2〜Nは、フォームForm1を生成したら削除される。その後、フォーム名がPTに設定される。
【0057】
一方、差分描画部分については、元の印刷データから共通描画部分FPを削除して、図10に示すように差分描画部分FDを生成する。
【0058】
RF303は印刷部として機能し、PTが付加されているXPSデータから、プリンタ150が受け取ることができるフォーム登録ジョブ、オーバレイ印刷ジョブおよび通常の印刷ジョブを生成して出力する。304はフォームデータベースで、ホストコンピュータ300から受信するフォームデータを記憶する。ここで、フォームデータベース304は、プリンタ150のRAM13の領域、或いは外部メモリ21の領域に確保される。
【0059】
<自動オーバレイ印刷処理の詳細説明>
次に、プリンタドライバ203が印刷データを受け取ったときの処理について図4から図9に示すフローチャートを用いて説明する。
【0060】
図4は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図1に示したホストコンピュータ300による印刷データ処理例である。なお、S401〜S403は各ステップを示す。また、各ステップは、図1に示しCPU1が上述したプリンタドライバ203をRAM2にロードして実行することで実現される。
【0061】
プリンタドライバ203は、アプリケーション201より印刷データを受け取ったら、S401で、レイアウタとして機能するLF301が面付け処理を行った後、自動オーバレイ印刷に設定されているかをOF302が判断する。
【0062】
ここで、自動オーバレイ印刷に設定されているとOF302が判断した場合は、S402で、OF302が印刷データの文書構造を後述のように共通描画部分と差分描画部分とに再構成する。そして、S403で、再構成された印刷データを対象にRF303が印刷処理を行い、本処理を終了する。なお、S401で、自動オーバレイ印刷でないとCPU1が判断した場合は、S403へ進む。
【0063】
図5は、図3に示したプリンタドライバ203によるオーバレイ設定画面の一例を示す図である。なお、本画面は、自動オーバレイ印刷を設定するプリンタドライバの設定画面であり、アプリケーション201から印刷要求がなされた場合に、図1に示すディスプレイ10に表示される。
【0064】
図5において、1001は処理方法ラジオボタン部で、4つの異なるオーバレイ印刷処理を選択するためのラジオボタンRB1〜RB4を備える。RB1はラジオボタンで、オーバレイ印刷を行わない場合に選択される。
【0065】
RB2はラジオボタンで、オーバレイ印刷を行う場合に選択される。RB3はラジオボタンで、フォームファイルを作成する場合に選択される。RB4はラジオボタンで、自動でオーバレイ印刷を行う場合に選択される。
【0066】
1002はボタン部で、処理の実行を制御するボタンBT1〜BT4を備えている。ここで、BT1はOKボタンとして機能し、BT2はキャンセルボタンとして機能し、BT3は標準に戻すボタンとして機能し、BT4はヘルプを呼び出すボタンとして機能する。
【0067】
ここで、ユーザがラジオボタンRB4で「自動でオーバレイ印字を行う」を選択し、OKボタンであるボタンBT1を押すと、図4に示したS401で、図3に示したプリンタドライバ203内のOF302が自動オーバレイ印刷の要求がなされていると判断する。
【0068】
図6は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図3に示したプリンタドライバ203内のOF302による図4に示しS402に対応する文書構造変更処理の詳細処理例である。
【0069】
なお、S501〜S503は各ステップを示す。また、各ステップは、図1に示すCPU1がOF302をRAM2にロードして実行することで実現される。
【0070】
文書構造変換部として機能するOF302は、まず、S501で、アプリケーション201から受け取るXPSデータ形式の印刷データから共通描画部分を抽出して共通描画部分FPをRAM2上で生成する。次に、S502で、OF302は、処理の結果、共通描画部分FPがRAM2上に生成されているかどうかを判断する。ここで、共通描画部分FPが生成されているとOF302が判断した場合は、S503で、OF302は、元のFDから共通描画部分FPを除いて差分描画部分FDをRAM2上に生成して、本処理を終了する。なお、S502で、共通描画部分FPが生成されていないとOF302が判断した場合は、本処理を終了する。
【0071】
図7〜図10は、本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。以下、図4に示したS402の文書構造変更処理例を説明する。
【0072】
図7は元の印刷データのXPSデータ構造に対応し、FD701が3つのFP1〜3から構成されている。図8は、FDSが共通描画Documentと、FDから構成される例である。ここで、OF302は、元のFD701を共通描画FD801用にコピーし、3つのFP1〜3を順番に比較し、複数のページから構成される文書情報に対してテンプレート(図9に示すForm1)とすべき共通描画部分FPを抽出する。なお、OF302が元のFD701を共通描画FD801用にコピーする場合には、PTも含めてコピーする。
【0073】
図9では、OF302が図8に示すようにして抽出された共通描画部分FP902以外のFP(図8に示す例では、FP2、FP3)を削除する。そして、OF302は、登録フォーム名称(Form1)を指定するフォーム登録PTを共通描画部分FP902に付加し、共通描画FD901を生成する。
【0074】
図10では、OF302が図9に示す元のFD903の各FP1〜3から共通描画部分FPの描画を削除して差分描画部分FP11〜13を生成し、使用した共通描画ページのフォーム名称を、使用するフォーム名称として指定するオーバレイ印刷PTを各差分描画FP11〜13に付加し、差分描画FD1002を生成している。
【0075】
図11は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図3に示したOF302による図6に示すS501における共通描画FP生成処理の詳細例である。なお、S601〜S617は各ステップを示す。また、各ステップは、図1に示すCPU1がOF302をRAM2にロードして実行することで実現される。
【0076】
まず、S601で、文書構造変換部として機能するOF302は、元のFD701を、図8に示すようにRAM2上でコピーし、共通描画FD801の雛形を生成する。
【0077】
通常、プリンタはオーバレイ印刷ジョブを処理する時点でフォーム登録がなされていなければ、フォームに印刷データを正しく重ねて印刷できない。
【0078】
このため、図4に示したS403に対応する印刷処理において、フォーム登録ジョブがオーバレイ印刷ジョブよりも先に出力されるように、共通描画FD801が差分描画FDより前に読み出されるように配置する。
【0079】
次に、S602で、OF302は、共通描画FD801の中から、比較するFPとして最初のFP1を取得し、S603で、OF302は、次のFPを取得する。そして、S604で、最初のFP1と次のFPを取得できているかどうかをOF302が判断する。ここで、最初のFP1と次のFPを取得できているとOF302が判断した場合は、S605、S606で、OF302は、2つのFPの次の未処理の描画オブジェクトを取得する。そして、S607で、OF302は、詳細は後述する描画オブジェクトの比較処理を行う。
【0080】
図12は、本実施形態を示す情報処理装置におけるオブジェクト処理を説明する図である。以下、描画オブジェクト比較処理の概要を説明する。
【0081】
図12に示す例では、Page1とPageNの2つのFPを比較対象としており、最下層から順に描画オブジェクトをOF302が比較していく。ここで、描画オブジェクトがResourceを参照している場合は、参照先の比較も再帰的に行う。
【0082】
そして、S608で、比較対象の描画オブジェクトが一致するかどうかをOF302が判断する。ここで、比較対象の描画オブジェクトが一致するとOF302が判断した場合は、S609で、2つのFPに比較すべき次の描画オブジェクトがあるかどうか、すなわち描画オブジェクトが終了かどうかをOF302が判断する。なお、S608で、OF302が一致しないと判断した場合は、S610へ進む。
【0083】
S609で、描画オブジェクトが終了でないとOF302が判断した場合は、どちらかのFPの描画オブジェクトがなくなるまでS605〜S609を繰り返す。
【0084】
一方、S608で、比較対象の描画オブジェクトが同じでないとOF302が判断したか、S609でどちらかのFPの描画オブジェクトがなくなったとOF302が判断した場合は、S610へ進む。そして、S610で、OF302は、FP1のそれ以降の描画オブジェクトを削除する(図12参照)。
【0085】
そして、S611で、比較すべき次のFPがまだあるかどうかをOF302が判断する。ここで、比較すべき次のFPがまだあるとOF302が判断した場合は、S603に戻り、FP1と他の全てのFPを比較するまでS603〜S611を繰り返す。
【0086】
一方、S611で、比較すべき次のFPがないとOF302が判断した場合は、S612へ進む。そして、S612で、2ページ以上のFPを処理したかどうかについてOF302が判断する。そして、2ページ以上のFPを処理したとOF302が判断した場合は、S613で、FP1の描画オブジェクトが空であるかどうかをOF302が判断する。
【0087】
ここで、FP1の描画オブジェクトが空でないとOD302が判断した場合は、FP1は複数ページの共通描画が抽出されているので、S614へ進む。そして、S614で、OF302は、FP1以外のFP、FP2以降のページを削除する。この状態の例を、図9に示す共通描画Document901の破線で示す。
【0088】
次に、S615で、OF302は、プリンタにフォーム登録する際のフォーム名称(Form1)を生成し、S616で、OF302は、その名称(Form1)を登録フォーム名称として指定したフォーム登録PTをFP1に付加して、処理を終了する。
【0089】
ここで、生成する登録フォーム名称は、出力先のプリンタにおいて一意となる名称であれば、後述の印刷処理において正しくフォームを指定することができる。
【0090】
ここで、フォーム名称には、例えばUUID(Universal Unique Identifier)と言われる汎用一識別子や、印刷を行うPCのIPアドレスと時刻を組み合わせた「xxx.xxx.xxx.xxx_hhmmss」のような文字列を用いる。
【0091】
一方、S612で、1ページしか処理していない、もしくはS613でFP1の描画オブジェクトが空であるとOF302が判断した場合は、共通描画が抽出されなかったことになる。その場合は、S617において、S601でコピーした共通描画FD全体をOF302が削除して、処理を終了する。
【0092】
図13は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、OF302による図11に示すS607における描画オブジェクト比較処理例である。なお、S701〜S714は各ステップを示す。また、各ステップは、図1に示したCPU1がOF302をRAM2にロードして実行することで実現される。ここではFP1の描画オブジェクト1とFPNの描画オブジェクト2を比較する。描画オブジェクト1と描画オブジェクト2は逆であっても構わない。
【0093】
まず、S701で、比較対象の描画オブジェクトの種類が同じかどうかをOF302が判断する。ここで、比較対象の描画オブジェクトの種類が同じであるとOF302が判断した場合は、S702で、描画オブジェクト1の次の未処理の属性をOF302が取得する。
【0094】
そして、S703で、S702において取得した属性が、描画に影響する属性であるかどうかをOF302が判断する。ここで、描画に影響しない属性であるとOF302が判断した場合は、S712へスキップし、描画に影響する属性であるとOF302が判断した場合は、S704で、描画オブジェクト2から同じ属性をOF302が検索する。
【0095】
そして、S705で、同じ属性が見つかったかどうかをOF302が判断する。ここで、同じ属性がみつかったとOF302が判断した場合は、さらに、S706で、その属性がリソースを参照しているかどうかをOF302が判断する。ここで、属性がリソースを参照していないとOF302が判断した場合は、S707へ進み、OF302が属性値自体を比較して、S711へ進む。
【0096】
一方、S706で、属性がリソースを参照しているとOF302が判断した場合は、S708で、描画オブジェクト1および描画オブジェクト2の参照先リソースをOF302が取得する。そして、S709で、描画オブジェクト1および描画オブジェクト2の参照先リソースを取得できたかどうかをOF302が判断する。ここで、描画オブジェクト1および描画オブジェクト2の参照先リソースを取得できたとOF302が判断した場合は、S710で、参照先の描画オブジェクトを再帰的に比較する。
【0097】
そして、S711で、S707の比較結果またはS710の比較結果が一致しているかどうかをOF302が判断する。ここで、両比較結果が一致していると判断した場合は、S712へ進み、描画オブジェクト1の属性を全て比較し終わったかをOF302が判断する。
【0098】
ここで、まだ比較していない属性があるとOF302が判断した場合は、S702へ戻り、描画オブジェクト1の全ての属性を比較するまでS702〜712を繰り返す。
【0099】
一方、S701で比較対象の描画オブジェクトの種類が異なる種類とOF302が判断した場合には、S714で、戻り値を”非一致”として、処理を終了する。
【0100】
また、S705で同じ属性が見つからなかった、またはS709で描画オブジェクト1もしくは描画オブジェクト2のリソースが取得できなかった、又はS711で一致していないとOF302が判断した場合、S714へ進み、処理を終了する。
【0101】
一方、S712で、全ての属性を比較しても非一致の属性がないとOF302が判断した場合(属性が一致したと判断した場合)は、S713で、OF302が戻り値を”一致”として、処理を終了する。
【0102】
図14は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、OF302による図6に示すS503における差分描画FP生成処理例である。なお、S801〜S812は各ステップを示す。また、各ステップは、図1に示したCPU1がOF302をRAM2にロードして実行することで実現される。なお、差分描画FP生成処理は、図10に示すように、元のFDの各FPから共通描画FPの描画を削除して差分描画FPを生成し、使用するフォーム名称を指定するオーバレイ印刷PTを各差分描画FPに付加し、差分描画FD1002を生成する処理である。
【0103】
まず、S801で、OF302がS501において生成された共通描画FPを一方の比較対象として取得する。そして、S802、S803で、元のFDと次の未処理のFPをもう一方の比較対象として取得する。
【0104】
次に、S804で、OF302が元のFDと次の未処理のFPの双方を取得できたかどうかを判断する。
【0105】
ここで、元のFDと次の未処理のFPの双方の取得ができないとOF302が判断した場合は、処理を終了する。
【0106】
一方、S804で、元のFDと次の未処理のFPの双方を取得できたとOF302が判断した場合は、S805、S806で、比較対象の共通描画FPと元のFDのFPの次の未処理の描画オブジェクトを取得する。そして、S807で、S607と同様に、OF302が描画オブジェクトを比較する。
【0107】
そして、S808で、比較対象の描画オブジェクトが同じであるかどうかをOF302が判断する。ここで、較対象の描画オブジェクトが同じであるとOF302が判断した場合は、S809で、2つのFPに比較すべき次の描画オブジェクトがあるかどうかをOF302が判断する。ここで、2つのFPに比較すべき次の描画オブジェクトがあるとOF302が判断した場合は、共通描画FPの描画オブジェクトがなくなるまでS805〜S809を繰り返す。
【0108】
一方、S809で、共通描画FPの全ての描画オブジェクトが一致しているとOF302が判断した場合は、S810で、比較対象のFPの共通描画FPと一致しなくなる手前までの描画オブジェクトをOF302が削除し、差分描画FPが完成する。
【0109】
更に、S811で、OF302は、S616において共通描画FPに付加されたフォーム登録PTに指定されている登録フォーム名称を、使用フォーム名称として設定したオーバレイ印刷PTを差分描画FPに付加する。
【0110】
次に、S812で、元のFDに比較すべき次のFPがまだあるかどうかをOF302が判断する。ここで、元のFDに比較すべき次のFPがまだあるとOF302が判断した場合は、S803に戻り、全てのFPを比較するまでS803〜S812を繰り返す。
【0111】
一方、S812で、元のFDに比較すべき次のFPがないとOF302が判断した場合は、処理を終了する。
【0112】
一方、S808で、共通描画FPの全ての描画オブジェクトが一致しないとOF302が判断した場合は、共通描画FPを使用しない通常のFPとして、S812に進む。
【0113】
図15は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図4に示したS403における印刷処理例である。なお、S901〜S911は各ステップを示す。また、各ステップは、図1に示しCPU1がRF303をRAM2にロードして実行することで実現される。以下、フォーム登録ジョブおよびオーバレイ印刷ジョブを生成するジョブ生成処理を説明する。
【0114】
なお、印刷部として機能するRF303は、OF302によるS402の結果、再構成された印刷データを受け取り、印刷ジョブを出力する。
【0115】
ここで、再構築された印刷データには、通常のFP、共通描画FP,差分描画FPの3種類のFPが含まれる可能性があり、付加されているPTによって判別される。フォーム登録PTが付加されていれば共通描画FP、オーバレイ印刷PTが付加されていれば差分描画FP、いずれも付加されていなければ通常のFPである。
【0116】
また、フォーム登録PTとオーバレイ印刷PTは排他で、両方付加されることはない。
【0117】
まず、S901で、RF303は、次の未処理のFDを取得し、S902で、次の未処理のFPを取得する。そして、S903で、FPが取得できたかどうかをRF303が判断する。ここで、FPを取得できたとRF303が判断した場合は、S904で、フォーム登録PTが付加されているかをRF303が判断する。ここで、フォーム登録PTが付加されていないとRF303が判断した場合は、S905で、オーバレイ印刷PTが付加されているかをRF303が判断する。
【0118】
ここで、オーバレイ印刷PTが付加されているとRF303が判断した場合は、S907で、RF303がオーバレイ印刷ジョブを出力して、S909へ進む。
【0119】
一方、S905で、オーバレイ印刷PTが付加されていないとRF303が判断した場合は、S908へ進み、RF303が通常印刷ジョブを出力して、S909へ進む。
【0120】
そして、S909で、いずれかのジョブを出力後、次のFPがまだあるかどうかをRF303が判断する。ここで、次のFPがまだあるとRF303が判断した場合は、S902へ戻り、S902〜S909を繰り返す。
【0121】
一方、S904で、フォーム登録PTが付加されているとRF303が判断した場合は、S906へ進み、RF303は各々フォームを登録する処理を行うことでフォーム登録ジョブを生成し、S909へ進む。
【0122】
一方、S909で、次のFPがないとRF303が判断した場合は、S910で、次のFDがまだあるかどうかをRF303が判断する。ここで、次のFDがあるとRF303が判断した場合は、S901へ戻ってS901〜S910を繰り返す。
【0123】
一方、全てのFDを処理しているとRF303が判断した場合は、S911で、RF303がジョブ出力終了処理を行い、本処理を終了する。
【0124】
なお、図4に示したS402における文書構造変更処理において、共通描画FDを差分描画FDより前に配置しているので、フォーム登録ジョブがオーバレイ印刷ジョブよりも前に出力される。この結果、プリンタ150では先に登録されたフォームと後から受信する印刷データとを正しく重ねて印刷することができる。
【0125】
本実施形態では、文書構造変更部として機能するOF302で文書構造変更した印刷データを印刷に用いているが、印刷以外の用途にも用いることができる。例えば、差分描画FPの各描画オブジェクトはバリアブルデータのデータベースへの入力ソースとして利用可能である。
【0126】
本実施形態によれば、ユーザが図5に示すオーバレイを自動と選択する簡単な操作を行うだけで済む。そして、その選択指示に従って、汎用アプリケーションから、テンプレートと一体化した文書をそのままで容易にフォーム登録よびオーバレイ印刷が可能となる。
【0127】
その結果、共通フォーマットの大量ページの文書に対して印刷処理時間が短縮され、かつ、ホストからプリンタへの転送トラフィックも軽減される。
【0128】
本実施形態によれば、フォーム登録とオーバレイ印刷の指示をそれぞれ分ける必要がなくなり、処理方法を1回選択するだけで、フォーム登録よびオーバレイ印刷を指示でき、ユーザの操作負担を軽減できる。
【0129】
〔第2実施形態〕
上記第1実施形態では、同じテンプレートから作成された複数ページの文書の印刷において自動オーバレイ印刷を行う場合について説明した。本実施形態では、1つの印刷ジョブ中に複数の文書が含まれており、それぞれが別のテンプレートから作成された複数ページの文書である場合について説明する。
【0130】
図16〜図18は、本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【0131】
本実施形態における元の印刷データは、XPSデータ構造で定義され、図16に示すように、2つのFD1601、1602を含んで構成されている例である。図17は、元のFD1601から共通描画FD1701と差分描画FD1702を生成した後に、元のFD1602から共通描画FD1703と差分描画FD1704を生成した状態を示している。図18は、図17に示した共通描画FD1703のFP1705を共通描画FD1701のFP1706にコピーし、共通描画FD1703を削除した状態を示している。
【0132】
図19は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図16〜図18に示す文書構造変更処理例である。なお、S1601〜S1604は各ステップを示し、図6と同様のステップには、同じステップ番号を付している。また、各ステップは、図1に示たCPU1がOF302をRAM2にロードして実行することで実現される。以下、処理の手順について詳細に説明する。
【0133】
まず、S1601で、文書構造変換部として機能するOF302は、処理する最初のFDを印刷データから取得する。そして、S1602で、最初のFDを印刷データから取得できたかどうかをOF302が判断する。ここで、処理する最初のFDを印刷データから取得できたとOF302が判断した場合は、S1603で、OF302は、共通描画を抽出して共通描画FPを生成する。
【0134】
なお、S1603は、共通描画FP生成処理は、図6に示したS501に示す共通描画FP生成処理とほぼ同じ処理であるが、複数のFDに対応するために一部処理を追加・変更している。その詳細の処理については後述する。
【0135】
次に、S502で、S1603における共通描画FP生成処理の結果、共通描画FPが生成されたかをOF302が判断する。ここで、共通描画FPが生成されているとOF302が判断した場合は、S503で、元のFDから共通描画を除いて差分描画FDを生成する。
【0136】
そして、S503の生成処理が完了するか、S1602で取得できないとOF302が判断した場合、S502で共通描画FPが生成されていないとOF302が判断した場合は、S1604へ進む。
【0137】
そして、S1604で、次のFDがまだあるかどうかをOF302が判断する。ここで、次のFDがまだあるとOF302が判断した場合は、S1601へ戻って、全てのFDが処理されるまでS1601〜S1604を繰り返し、処理を終了する。
【0138】
図20は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、図19に示したOF302によるS1603の共通描画FP生成処理の詳細例である。なお、S1701〜S1705は各ステップを示し、図11と同様のステップには、同じステップ番号を付している。また、各ステップは、図1に示たCPU1がOF302をRAM2にロードして実行することで実現される。
【0139】
第1実施形態で説明したように、図11に示したS601におけるFDのコピー処理において、通常、プリンタはオーバレイ印刷ジョブを処理する時点でフォーム登録がなされていなければ正しく重ねて印刷されない。そのため、図4に示したS403の印刷処理において、フォーム登録ジョブがオーバレイ印刷ジョブよりも先に出力されるように、共通描画FDが差分描画FDより前に読み出されるように配置する。
【0140】
本実施形態では、S601に示す2つ目以降のFDに対するコピー処理では、1つの共通描画FDおよび1つ以上の差分描画FDが、S601の時点で既に存在する可能性があるので、全ての差分描画FDおよび元のFDの前、かつ共通描画FDの後にコピーをする。
【0141】
図20に示すS616の処理を終了後(図17に示す状態)、S1701で、現在のところ共通描画FDが2つ存在するかどうかをOF302が判断する。ここで、共通描画FDが1つであるとOF302が判断した場合は、本処理を終了する。
【0142】
一方、S1701で、共通描画FDが2つ存在するとOF302が判断した場合は、S1702へ進む。そして、S1702で、現在処理しているFDに対して生成した共通描画FPと同一の描画のFPが存在しないか検索する。
【0143】
そして、S1703で、元々存在した共通描画FDの中で同一の描画のFPを見つけることができたかどうかをOF302が判断する。ここで、元々存在した共通描画FDの中で見つけることができなかったとOF302が判断した場合は、S1704へ進む。
【0144】
そして、S1704で、OF302は、現在処理しているFDに対して生成した共通描画FPを元々存在した共通描画FDに追加し、S617で、現在処理しているFDに対して生成した共通描画FDを削除して、本処理を終了する。
【0145】
一方、S1703で、同じ描画の共通描画FPが見つけることができたとOF302が判断した場合は、S1705へ進む。そして、S1705で、その共通描画FPに付加されたフォーム登録PTに指定されている登録フォーム名称を取得し、S617へ進む。
【0146】
なお、S615およびS1705で生成もしくは取得した登録フォーム名称は、図14に示すS811で差分描画FDに付加するオーバレイ印刷PTの使用フォーム名称として用いる。
【0147】
この結果、異なるテンプレート文書から作成された文書毎に共通描画FPと差分描画FPが生成され、それに対応したフォーム登録およびオーバレイ印刷が可能となる。
【0148】
本実施形態では、元の印刷データにFDが1つしかない場合にも対応しており、上記第1実施形態の処理を包含した構成となっている。
【0149】
〔第3実施形態〕
OF302による図4に示したS402における文書構造変更処理の後、の印刷データをファイルに保存するとXPSデータとして再利用が可能である。しかしながら、標準のビューアでXPSデータを表示すると、図10に示したような共通描画FDと差分描画FDは別のページとして表示されてしまう。
【0150】
そこで、標準のビューアしかない情報処理装置を含む印刷システム環境では、このようなXPSデータを利用する場合、XPSデータの構造を以下のように変更すればよい。以下、その実施形態について説明する。
【0151】
図21は、本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【0152】
図21に示すように、本実施形態では、OF302が共通描画部をResource Dictionary2101にコピーすることで、共通描画FPの描画部分2103をResource Dictionary2101に置く。そして、OF302が差分描画FPの最下層に参照元のオブジェクト(Canvas)を追加し、リソースを参照するように文書構造を変更する。
【0153】
図22は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、参照化構造を変更する処理の詳細例である。なお、S2101〜S2112は各ステップを示す。また、各ステップは、図1に示たCPU1がOF302をRAM2にロードして実行することで実現される。
【0154】
まず、S2101で、OF302が最初の差分描画FPを取得する。そして、最初の差分描画FPを取得できたかどうかをOF302が判断して、取得できたとOF302が判断した場合は、S2103で、OF302は、そのFPのオーバレイ印刷PTの使用フォーム名称を取得する。なお、差分描画FDの中にオーバレイ印刷しないFPが入っている場合には、取得ができない。
【0155】
次に、S2104で、FPのオーバレイ印刷PTの使用フォーム名称を取得できたかどうかをOF302が判断する。ここで、使用フォーム名称を取得できたとOF302が判断した場合は、S2105で、その名称とフォーム登録PTの登録フォーム名称が一致するFPを共通描画FDから検索する。
【0156】
そして、S2106で、その名称とフォーム登録PTの登録フォーム名称が一致するFP(図21に示す例では、FP2103)を見つけられたかどうかをOF302が判断する。ここで、その名称とフォーム登録PTの登録フォーム名称が一致するFPを見つけられたとOF302が判断した場合は、S2107へ進む。
【0157】
そして、S2107で、そのFPの描画部分と同じ描画のResourceがResource Dictionary2101の下に既に存在するか検索してOF302が判断する。
【0158】
ここで、そのFPの描画部分と同じ描画のResourceがResource Dictionaryの下に既に存在していないとOF302が判断した場合は、S2108へ進む。
【0159】
そして、S2108で、OF302は、共通描画部をResourceとしてResource Dictionary2101にコピーする。更に、S2109で、OF302は、現在処理している差分描画FPの最下層に参照元となるCanvusオブジェクトを追加する。
【0160】
そして、S2110で、OF302は、追加したもしくは見つかったResourceを参照先とするように差分描画FPの属性を設定する。その後、S2111で、次の差分描画FPが存在するかどうかをOF302が判断する。ここで、OF302が次の差分描画FPが存在すると判断した場合は、S2101に戻る。
【0161】
一方、S2111で、全ての差分描画FPに対してS2101〜2111を行っていると判断した場合、次の差分描画FPが存在しないとOF302が判断した場合は、S2112へ進む。
【0162】
そして、S2112で、OF302は、FDSのRelationshipから共通描画FDを削除して、本処理を終了する。
【0163】
なお、本実施形態では、再度戻すことも考慮して共通描画FD2102を図21に示すように残しているが、共通描画FD自体を削除しても良い。
【0164】
以下、図23に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0165】
図23は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【0166】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0167】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0168】
本実施形態における図7、図10に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0169】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0170】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードをコンピュータ読み取り可能に記憶した記憶媒体は本発明を構成することになる。
【0171】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0172】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0173】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0174】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
【0175】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0176】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0177】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0178】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【0179】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【0180】
【図1】本実施形態を示す情報処理装置と印刷装置とが通信可能な印刷制御システムの構成を示すブロック図である。
【図2】図1に示したホストコンピュータ300における印刷処理のための構成の一例を示す図である。
【図3】本実施形態を示す印刷システムにおける印刷処理の概要を説明図である。
【図4】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図5】図3に示したプリンタドライバ203によるオーバレイ設画面の一例を示す図である。
【図6】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図7】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図8】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図9】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図10】本実施形態を示す情報処理装置で処理される印刷データの一例を説明する図である。
【図11】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図12】本実施形態を示す情報処理装置におけるオブジェクト処理を説明する図である。
【図13】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図14】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図15】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図16】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図17】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図18】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図19】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図20】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図21】本実施形態を示す情報処理装置で処理する印刷データの構造を説明する図である。
【図22】本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図23】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【0181】
150 プリンタ
201 アプリケーション
203 プリンタドライバ
301 LF
302 OF
303 RF
【特許請求の範囲】
【請求項1】
アプリケーションから出力される複数のページから構成される文書情報を印刷装置に出力する情報処理装置であって、
前記文書情報から生成されるフォームを用いるオーバレイ印刷を指示する指示手段と、
前記指示手段でオーバレイ印刷が指示された場合、前記文書情報に含まれるオブジェクトを比較して、複数ページで共通する共通描画部分と、前記文書情報から前記複数ページで共通する共通描画部分を除いた差分描画部分とに再構成する再構成手段と、
前記再構成手段により再構成された共通描画部分に基づきフォーム登録ジョブを生成し、前記再構成手段により再構成された差分描画部分に基づきオーバレイジョブを生成するジョブ生成手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記再構成手段は、前記共通描画部が前記差分描画部分より先に読み出されるように再構成することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記文書情報の文書構造は、所定の階層に従うツリー構造であることを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記再構成手段は、前記文書情報の各ページの描画オブジェクトを最下層から順番に比較して共通描画部分を抽出することを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記再構成手段は、描画オブジェクトの種類を比較して、共通描画部分の描画オブジェクト又は差分描画部分の描画オブジェクトを抽出することを特徴とする請求項1記載の情報処理装置。
【請求項6】
アプリケーションから出力される複数のページから構成される文書情報を印刷装置に出力する情報処理装置におけるジョブ処理方法であって、
前記文書情報から生成されるフォームを用いるオーバレイ印刷を指示する指示ステップと、
前記指示ステップでオーバレイ印刷が指示された場合、前記文書情報に含まれるオブジェクトを比較して、複数ページで共通する共通描画部分と、前記文書情報から前記複数ページで共通する共通描画部分を除いた差分描画部分とに再構成する再構成ステップと、
前記再構成ステップにより再構成された共通描画部分に基づきフォーム登録ジョブを生成し、前記再構成ステップにより再構成された差分描画部分に基づきオーバレイジョブを生成するジョブ生成ステップと、
を備えることを特徴とするジョブ処理方法。
【請求項7】
前記再構成ステップは、前記共通描画部が前記差分描画部分より先に読み出されるように再構成することを特徴とする請求項6記載のジョブ処理方法。
【請求項8】
前記文書情報の文書構造は、所定の階層に従うツリー構造であることを特徴とする請求項6記載のジョブ処理方法。
【請求項9】
前記再構成ステップは、前記文書情報の各ページの描画オブジェクトを最下層から順番に比較して共通描画部分を抽出することを特徴とする請求項6記載のジョブ処理方法。
【請求項10】
前記再構成ステップは、描画オブジェクトの種類を比較して、共通描画部分の描画オブジェクト又は差分描画部分の描画オブジェクトを抽出することを特徴とする請求項6記載のジョブ処理方法。
【請求項11】
請求項6〜10のいずれか1項に記載のジョブ処理方法をコンピュータに実行させるプログラムを記憶媒体に記憶したコンピュータ読み取り可能な記憶媒体。
【請求項12】
請求項6〜10のいずれか1項に記載のジョブ処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項1】
アプリケーションから出力される複数のページから構成される文書情報を印刷装置に出力する情報処理装置であって、
前記文書情報から生成されるフォームを用いるオーバレイ印刷を指示する指示手段と、
前記指示手段でオーバレイ印刷が指示された場合、前記文書情報に含まれるオブジェクトを比較して、複数ページで共通する共通描画部分と、前記文書情報から前記複数ページで共通する共通描画部分を除いた差分描画部分とに再構成する再構成手段と、
前記再構成手段により再構成された共通描画部分に基づきフォーム登録ジョブを生成し、前記再構成手段により再構成された差分描画部分に基づきオーバレイジョブを生成するジョブ生成手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記再構成手段は、前記共通描画部が前記差分描画部分より先に読み出されるように再構成することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記文書情報の文書構造は、所定の階層に従うツリー構造であることを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記再構成手段は、前記文書情報の各ページの描画オブジェクトを最下層から順番に比較して共通描画部分を抽出することを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記再構成手段は、描画オブジェクトの種類を比較して、共通描画部分の描画オブジェクト又は差分描画部分の描画オブジェクトを抽出することを特徴とする請求項1記載の情報処理装置。
【請求項6】
アプリケーションから出力される複数のページから構成される文書情報を印刷装置に出力する情報処理装置におけるジョブ処理方法であって、
前記文書情報から生成されるフォームを用いるオーバレイ印刷を指示する指示ステップと、
前記指示ステップでオーバレイ印刷が指示された場合、前記文書情報に含まれるオブジェクトを比較して、複数ページで共通する共通描画部分と、前記文書情報から前記複数ページで共通する共通描画部分を除いた差分描画部分とに再構成する再構成ステップと、
前記再構成ステップにより再構成された共通描画部分に基づきフォーム登録ジョブを生成し、前記再構成ステップにより再構成された差分描画部分に基づきオーバレイジョブを生成するジョブ生成ステップと、
を備えることを特徴とするジョブ処理方法。
【請求項7】
前記再構成ステップは、前記共通描画部が前記差分描画部分より先に読み出されるように再構成することを特徴とする請求項6記載のジョブ処理方法。
【請求項8】
前記文書情報の文書構造は、所定の階層に従うツリー構造であることを特徴とする請求項6記載のジョブ処理方法。
【請求項9】
前記再構成ステップは、前記文書情報の各ページの描画オブジェクトを最下層から順番に比較して共通描画部分を抽出することを特徴とする請求項6記載のジョブ処理方法。
【請求項10】
前記再構成ステップは、描画オブジェクトの種類を比較して、共通描画部分の描画オブジェクト又は差分描画部分の描画オブジェクトを抽出することを特徴とする請求項6記載のジョブ処理方法。
【請求項11】
請求項6〜10のいずれか1項に記載のジョブ処理方法をコンピュータに実行させるプログラムを記憶媒体に記憶したコンピュータ読み取り可能な記憶媒体。
【請求項12】
請求項6〜10のいずれか1項に記載のジョブ処理方法をコンピュータに実行させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2010−33360(P2010−33360A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2008−195241(P2008−195241)
【出願日】平成20年7月29日(2008.7.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願日】平成20年7月29日(2008.7.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]