(57)【要約】【課題】描画処理が非常に軽いオブジェクトに対してＲｅｕｓａｂｌｅと宣言されているがために、処理が増えてしまい、かえって遅くなる場合があった。【解決手段】試し刷りモードと本刷りモードが分かれているシステムの場合、入力されたＰＰＭＬドキュメントを試し刷り処理において、オブジェクトの描画処理のコストを実測し、ある閾値とコストを比較して、高ければ当該オブジェクトをＲｅｕｓａｂｌｅとし、低ければＶａｒｉａｂｌｅとしたＰＰＭＬソースを新たに生成し、本刷りモードでは生成された方を使用する。ないしは、ＰＰＭＬドキュメントを入力としてうけとり、出力として、上記のような最適化を行うようなアプリケーションを用意するような、ＰＰＭＬのノーマライザを構成する。【選択図】        図３
2007072674.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも、描画結果イメージをページ上への配置を指定する配置指定手段と、配置された描画結果を保持しておくことを指示する保持指定手段とを具有したページ記述手段において、
該描画結果イメージを記述するイメージ記述手段と
該ページ記述手段を保持する第１の記憶手段と、
該ページ記述手段から、該イメージ記述手段を抜き出すイメージ記述取得手段と、
該イメージ記述手段による描画処理に必要な資源量を見積もる、ないし描画処理を行って実測する資源量算出手段と、
該資源量算出手段の結果が所定値以上の該イメージ記述手段に関しては、該保持指定手段を用いて描画結果を予め保持しておくように該ページ記述手段を更新することを特徴とするソフトウェアアプリケーション。
【請求項２】
請求項１記載のソフトウェアアプリケーションであって、
該保持指定手段を用いて保持するように指定された一部ないし全部の描画結果イメージを、予め印刷装置に登録しておくことを特徴とするソフトウェアアプリケーション。
【請求項３】
請求項２記載のソフトウェアアプリケーションであって、
該ページ記憶手段を更新する際に、印刷装置に予め記録させた描画結果イメージ分に関しては、別のページ既述手段に分離することを特徴とするソフトウェアアプリケーション。
【請求項４】
請求項１乃至３いずれか記載のソフトウェアアプリケーションであって、
該ページ既述手段とはＰＰＭＬであることを特徴とするソフトウェアアプリケーション。
【請求項５】
少なくとも、描画結果イメージをページ上への配置を指定する配置指定手段と、配置された描画結果を保持しておくことを指示する保持指定手段とを具有したページ記述手段と、
該描画結果イメージを記述するイメージ記述手段と
該ページ記述手段を保持する第１の記憶手段と、
該ページ記述手段から、該イメージ記述手段を抜き出すイメージ記述取得手段と、
該イメージ記述手段を解釈して描画するイメージ描画手段と、
該イメージ描画手段に必要な資源量を実測する資源量測定手段と、
該イメージ描画手段によって描画された描画結果イメージを保持することが出来る記憶装置付印刷装置からなる印刷システムにおいて、
該資源量測定手段の結果が所定値以上の該イメージ記述手段に関しては、保持指定手段を用いて描画結果イメージを予め保持しておくように該ページ記述手段を更新することを特徴とする印刷システム。
【請求項６】
請求項５記載の印刷システムであって、
該保持指定手段を用いて保持するように指定された一部ないし全部の描画結果イメージを、予め該記憶装置付印刷装置に登録しておくことを特徴とする印刷システム。
【請求項７】
請求項６記載の印刷システムであって、
該ページ記憶手段を更新する際に、該記憶装置付印刷装置予め記憶させた分に関しては、別のページ既述手段に分離することを特徴とする印刷システム。
【請求項８】
請求項５乃至７いずれか記載の印刷システムであって、
該ページ既述手段とはＰＰＭＬであることを特徴とする印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＰＭＬのような、少なくとも、描画結果イメージをページ上への配置を指定する配置指定手段と、配置された描画結果を保持しておくことを指示する保持指定手段とを具有したページ記述手段を用いて、印刷を効率よく行うためのソフトウェアアプリケーション及び印刷システムに関する。
【背景技術】
【０００２】
電子写真技術の進化によって、オフセット印刷など従来の印刷技術で必要であった製版なしに、従来の印刷に迫る画質での印刷が可能となっている。と同時に、従来の印刷技術の元では考えられなかった用途・アイデアが生まれている。その代表的な例が、顧客の好み情報などに応じてきめ細かく内容を制御し、顧客の名前といった個人情報をも印刷物に刷り込んだ、個々人向けに調整されたダイレクトメール（Ｐｅｒｓｏｎａｌｉｚｅｄ  Ｄｉｒｅｃｔ  Ｍａｉｌ、以下ＰＤＭ）である。図１にＰＤＭの例を示す。
【０００３】
図１は、５つのパーツからなる、旅行会社のＰＤＭである。ＣＵＳＴＯＭＥＲは顧客名、ＣＯＭＰＡＮＹは旅行会社の名前、ＴＩＴＬＥはＤＭのタイトル、ＴＯＵＲ１とＴＯＵＲ２はツアーの宣伝部分である。
【０００４】
旅行会社は、顧客各々の嗜好に適合したツアー、即ち、より申し込まれる可能性の高いツアーの宣伝の組み合わせを顧客データベースなどを用いて決定、ツアーの組み合わせを顧客毎に最適化したＰＤＭを印刷することが出来る。
【０００５】
しかし、電子写真技術を用いて図１のごときＰＤＭを印刷する処理を考えると、版を顧客各々に関して作る必要こそないが、顧客各々向けに調整された印刷文書を全ての顧客分用意する必要があり、ワードプロセッサなどを用いて文書を作成するコストが、依然として高かった。
【０００６】
即ち、こういった組み合わせを簡便に表現できるような表現方法が存在すれば、使いまわす商品情報などは共有し、印刷文書からはそれを参照して紙面に配置するように記述することで、印刷文書の作成作業を効率よく行うことができる。
【０００７】
更にＰＤＭの場合、印刷文書は、商品情報など使いまわすことが可能なオブジェクトと、顧客名など毎回変化するオブジェクトの組み合わせで表現されることが多いが、従来技術では、描画エンジンが一旦描画した商品情報を保存・再利用する指定方法がなく、結局のところ、顧客各々のＰＤＭごとに、同じ商品情報の描画を描画エンジンが繰り返していた。
【０００８】
ここで、何回も使用される商品情報のようなオブジェクトの描画結果を使いまわすように指定できれば、ある顧客のＰＤＭを印刷するにあたって、描画エンジンは顧客固有の情報のみ顧客毎に描画し、それ以外の商品情報などは、すでに保存されている描画済の商品情報を組み合わせてＰＤＭのページを構成することで、描画エンジンに要求される処理を減らすことができる。
【０００９】
即ち、図１のＰＤＭの印刷処理においては、ＣＯＭＰＡＮＹ、ＴＩＴＬＥ、ＴＯＵＲ１、ＴＯＵＲ２は前もって描画処理を行って保存しておき、顧客毎に描画するＣＵＳＴＯＭＥＲ部分を組み合わせてＰＤＭ紙面を構成することで、描画処理にかかる時間を削減できる。
【００１０】
上記のごとき要求を満たす技術の一つがＰＰＭＬ（Ｐｅｒｓｏｎａｌｉｚｅｄ  Ｐｒｉｎｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）である。
【００１１】
ＰＰＭＬはＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）の一種であって、ＰＯＤｉという組織が主導で仕様を決定され出版されているオープンな規格である。
【００１２】
ＰＰＭＬは、ページ上にオブジェクトを配置するための領域を定義した上で、当該領域にＰｏｓｔｓｃｒｉｐｔ（以下ＰＳ）やＰｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ（以下ＰＤＦ）、ＪＰＥＧなどで与えられたオブジェクトを描画して、ページ上の所定の位置に配置するといった指示を、非常に簡単に記述できる。
【００１３】
つまり、ＰＳやＰＤＦやＪＰＥＧは紙面に配置されるオブジェクトを描画するが、ＰＰＭＬはそのオブジェクトの配置を制御してＰＤＭ等に仕上げる。即ち、描画エンジンによってＰＳ、ＰＤＦ、ＪＰＥＧなどのオブジェクトが描画され、それらを紙面に配置する配置エンジンをＰＰＭＬが制御する、という構造になっている。
【００１４】
その中でＰＰＭＬでは、使いまわされるオブジェクトに名前を定義し、名前を定義したオブジェクトに関しては、以降その名前でオブジェクトを参照する仕様（Ｒｅｕｓａｂｌｅ  Ｏｂｊｅｃｔ、再利用オブジェクト）を備えている。この仕様は、使いまわされるオブジェクトの描画を予め済ませておくことで、描画エンジンが同じオブジェクトを何度も再描画しないようにするために導入されている。
【００１５】
更にＰＰＭＬには、ある印刷ジョブで定義し名前をつけたオブジェクトを別の印刷ジョブから参照するように、当該オブジェクトを定義する仕様（Ｇｌｏｂａｌ  Ｒｅｕｓａｂｌｅ  Ｏｂｊｅｃｔ、大域再利用オブジェクト）も具有している。
【００１６】
図２に、図１で示したＰＤＭを生成するためのＰＰＭＬのソースを示す。ここで、本ソースコードは、説明の理解を助けるためのものであるので、意識的に必須のアトリビュートを省いてある。即ち、ＰＰＭＬの仕様を完全に充たしているわけではないことに注意する。
【００１７】
図２のＰＰＭＬソースコードでは、３人の顧客に対してのＰＤＭを記述している。
【００１８】
図２中（１）は、図１におけるＴＩＴＬＥ部分に配置される画像を定義しており、ｔｉｔｌｅ．ｐｓというＰｏｓｔｓｃｒｉｐｔで記述された再利用オブジェクトに、ＴＩＴＬＥという名前をつけている。
【００１９】
図２中（２）は、図１におけるＣＯＭＰＡＮＹ部分に配置される画像を定義しており、ｃｏｍｐａｎｙ．ｐｓというＰｏｓｔｓｃｒｉｐｔで記述された再利用オブジェクトに、ＣＯＭＰＡＮＹという名前をつけている。図２（１）と同様のアトリビュート以外に、ＳｃｏｐｅとＥｎｖｉｒｏｎｍｅｎｔというアトリビュートも使用することで再利用オブジェクトＣＯＭＰＡＮＹを大域再利用オブジェクトとしているが、説明は後述する。
【００２０】
図２中（３）は、図１におけるＴＯＵＲ１、ＴＯＵＲ２に配置される再利用オブジェクトを定義しており、サッカー、野球、ラグビーに関して、各々ＳＯＣＣＯＲ、ＢＡＳＥＢＡＬＬ、ＲＵＧＢＹという名前を付けている。
【００２１】
図２中（４）は、ｓｕｚｕｋｉ様向けのＰＤＭを実際に構成している。
【００２２】
まず、ＰＡＧＥエレメントのＤｉｍｅｎｓｉｏｎで、紙面のサイズを規定している。本例の場合、紙面のサイズは、横７９２ポイント、縦６１２ポイントである。紙面の座標は左下が基準点となり、単位はポイント、横方向は右にプラス、縦方向は上にプラスとなる。
【００２３】
次に、顧客名ＣＵＳＴＯＭＥＲがページ上に配置されている。
【００２４】
具体的には、顧客名を表すオブジェクトを、左下が（５０，５００）になるようにＭＡＲＫエレメントを用いて指定されている。
【００２５】
オブジェクトは、ＯＢＪＥＣＴエレメントで指定する。実際に描画されるブジェクトは、ＳＯＵＲＣＥエレメントで指定する。
【００２６】
ＳＯＵＲＣＥエレメントでは、オブジェクトを記述しているデータのフォーマットを指定する。本例の場合、オブジェクトはＰｏｓｔｓｃｒｉｐｔで記述されていることがわかる。Ｐｏｓｔｓｃｒｉｐｔで記述されたデータ自体は、後述するＥＸＴＥＲＮＡＬ＿ＤＡＴＡエレメントで指定する。
【００２７】
ＥＸＴＥＲＮＡＬ＿ＤＡＴＡエレメントのＳｒｃで、実際のオブジェクトとしてｓｕｚｕｋｉ．ｐｓというファイルを指定している。
【００２８】
以上のごときＰＰＭＬのエレメント構成により、ＣＵＳＴＯＭＥＲにあたるｓｕｚｕｋｉ．ｐｓはＰＰＭＬ  Ｉｎｔｅｒｐｒｅｔｅｒから呼び出されたＰｏｓｔｓｃｒｉｐｔ  Ｉｎｔｅｒｐｒｅｔｅｒで処理され、画素情報に展開され、ＭＡＲＫエレメントで指定された位置（５０，  ５００）が左下に位置するように配置される。
【００２９】
なお、ここで説明したｓｕｚｕｋｉ．ｐｓに対応する描画結果は、再利用できない。こういったオブジェクトを、再利用オブジェクトに対応させて可変オブジェクト（Ｖａｒｉａｂｌｅ  Ｏｂｊｅｃｔ）と呼ぶ場合がある。
【００３０】
次のＭＡＲＫエレメントで、大域再利用オブジェクトとして定義済の、会社名ＣＯＭＰＡＮＹがページ上に配置されている。具体的には、ＣＯＭＰＡＮＹ部分の左下が、ページ上（３００，５００）に位置するように配置される。
【００３１】
同様に、再利用オブジェクトとして定義済のＤＭのタイトルＴＩＴＬＥが、ページ上（５０，５０）に左下部分が位置するように配置されるとともに、２つのツアー（この場合はＳＯＣＣＯＲとＢＡＳＥＢＡＬＬ）が、それぞれ（３００，２７５）（３００，５０）に配置されている。
【００３２】
図２のＰＰＭＬソースコードでは、以下、ｓｕｚｕｋｉ様向けのＰＤＭと酷似した手続きで、ｙａｍａｄａ様とｔａｎａｋａ様に関するＰＤＭを構成している。
【００３３】
ここで、顧客名ＣＵＳＴＯＭＥＲ以外のオブジェクトは、図２（１）〜（３）で定義したＣＯＭＰＡＮＹ、ＴＩＴＬＥ、ＳＯＣＣＯＲ、ＢＡＳＥＢＡＬＬ、ＲＵＧＢＹを使いまわしていることに注意する。
【００３４】
図２においては、ｓｕｚｕｋｉ様、ｙａｍａｄａ様、ｔａｎａｋａ様の３名の顧客向けのＰＤＭを生成するＰＰＭＬデータを記載したが、実際のＰＤＭにおいては何万何十万という顧客向けのＰＤＭを印刷するのが通常である。
【００３５】
従って、ＣＯＭＰＡＮＹ、ＴＩＴＬＥ、ＳＯＣＣＯＲ、ＢＡＳＥＢＡＬＬ、ＲＵＧＢＹといった、複数の顧客の間で使いまわすオブジェクトに関しては、一旦描画した結果を保存しておき、再度利用する際には再描画せずに保持しておいた描画結果を使用するといった、いわゆるキャッシュ機能を具有し、描画結果を記憶領域に保持して再利用することが望ましい。
【００３６】
即ち、ＰＰＭＬソースコードにおける図２（１）〜（３）のごとき大域再利用オブジェクト、再利用オブジェクトの記述方法も、当該オブジェクトの描画結果を後に再利用できるようにキャッシュしておくことを念頭に置いた仕様なのである。
【００３７】
更に、カンパニーロゴＣＯＭＰＡＮＹに関しては、別の印刷ジョブにおいても使用される可能性があるため、大域再利用オブジェクトとして定義されている。ＰＰＭＬの場合、ＳｃｏｐｅをＧｌｏｂａｌと定義し、Ｅｎｖｉｒｏｎｍｅｎｔを別に与えることで、当該Ｅｎｖｉｒｏｎｍｅｎｔを指定した別の印刷ジョブにおいても当該カンパニーロゴを使用できるような、大域再利用オブジェクトとすることが可能である。図２においては、Ｅｎｖｉｒｏｎｍｅｎｔの値として、文字列”Ａ”が指定されている。
【００３８】
一方、従来の印刷システムにおけるキャッシュシステムには、文字を構成するストロークの数によって、描画された（ビットマップ化された）字面データを、一時的に保存しておくか否かを決定するフォント描画装置がある（例えば、特許文献１参照）。
【００３９】
該特許は、フォントの描画のごとき、ストロークで構成された輪郭を生成した後、当該輪郭で囲まれた領域をパターンで塗りつぶす、といった、ストロークの数と、フォントの描画にまつわり必要となる、各種リソースやコストの予測がつきやすい場合に有効な技術である。
【特許文献１】特開平０２−０６４５９９号公報（第４頁、図２）
【発明の開示】
【発明が解決しようとする課題】
【００４０】
しかしながら、描画処理が非常に軽いオブジェクトに対してＲｅｕｓａｂｌｅと宣言されているがために、処理が増えてしまい、かえって遅くなる場合があった。
【００４１】
特許文献１による技術は、既述のように、描画のために必要なリソースやコストの予測がつきやすい場合に有効であったが、一般にフォントの描画機能を包含しているＰｏｓｔｓｃｒｉｐｔインタプリタにおいては、処理系が消費するリソースが非常に大きくなってしまい、ストロークの数をベースとした比較的単純な見積もり計算では、必ずしも実際のリソース消費の十分に正しい見積もりはできない。
【００４２】
そこで本発明の目的は、印刷時に、入力されたＰＰＭＬ文書に含まれるオブジェクトの描画処理のコストを実測し、ある閾値とコストを比較して、高ければ当該オブジェクトを再利用するものとし、低ければ可変オブジェクトとしたＰＰＭＬソースを新たに生成し、再印刷ないし本印刷では最適化された方を使用できるようにする印刷システム、ないしは、ＰＰＭＬ文書を入力としてうけとり、上記のごとき最適化を行うようなアプリケーションを実現することにある。
【課題を解決するための手段】
【００４３】
上記目的を達成するために、
少なくとも、描画結果イメージをページ上への配置を指定する配置指定手段と、配置された描画結果を保持しておくことを指示する保持指定手段とを具有したページ記述手段において、
該描画結果イメージを記述するイメージ記述手段と
該ページ記述手段を保持する第１の記憶手段と、
該ページ記述手段から、該イメージ記述手段を抜き出すイメージ記述取得手段と、
該イメージ記述手段による描画処理に必要な資源量を見積もる、ないし描画処理を行って実測する資源量算出手段と、
該資源量算出手段の結果が所定値以上の該イメージ記述手段に関しては、該保持指定手段を用いて描画結果を予め保持しておくように該ページ記述手段を更新することを特徴とするソフトウェアアプリケーションを提供することにある。
上記目的を達成するために、
少なくとも、描画結果イメージをページ上への配置を指定する配置指定手段と、配置された描画結果を保持しておくことを指示する保持指定手段とを具有したページ記述手段と、
該描画結果イメージを記述するイメージ記述手段と
該ページ記述手段を保持する第１の記憶手段と、
該ページ記述手段から、該イメージ記述手段を抜き出すイメージ記述取得手段と、
該イメージ記述手段を解釈して描画するイメージ描画手段と、
該イメージ描画手段に必要な資源量を実測する資源量測定手段と、
該イメージ描画手段によって描画されたイメージデータを保持することが出来る記憶装置付印刷装置からなる印刷システムにおいて、
該資源量測定手段の結果が所定値以上の該イメージ記述手段に関しては、保持指定手段を用いて描画結果を予め保持しておくように該ページ記述手段を更新するとともに、該イメージ描画手段によって描画されたイメージデーのうち、保持指定手段で保持しておくことにしたものに関しては、予め該記憶装置付印刷装置にイメージデータを登録しておくことを特徴とする印刷システムを提供することにある。
【発明の効果】
【００４４】
本発明によって、印刷文書に含まれているＰＰＭＬ文書で参照しているオブジェクトの描画に関しての最適化が可能となり、かつ最適化されたＰＰＭＬ文書を用いることで、再印刷の際にも効率よい印刷の実行が可能となる。
【発明を実施するための最良の形態】
【００４５】
以下、本発明の発明を実施するための最良の形態について図面を用いて説明する。
【００４６】
図３は、本実施例の説明で用いるシステム構成である。
【００４７】
ＰＣとは、いわゆるＰＣ互換機やＭａｃｉｎｔｏｓｈといった、後述プリンタＰＲＮに対して、本実施例における第１の記述手段であるＰＰＭＬで記述された印刷ジョブを発行するホストマシンであり、少なくとも印刷対象のＰＰＭＬソースコードであるＰＰＭＬＪとＰＰＭＬＪが参照している複数の描画オブジェクトソースＳＯＢＪを保持するための記憶領域ＰＣＳＴが接続されている。
【００４８】
図２で示したＰＰＭＬソースコードの場合、ＰＰＭＬＪは図２のソースコードそのもの、ＳＯＢＪとしてｃｏｍｐａｎｙ．ｐｓ，ｔｉｔｌｅ．ｐｓ，ｓｏｃｃｏｒ．ｐｓ，ｂａｓｅｂａｌｌ．ｐｓ，ｒｕｇｂｙ．ｐｓが該当する。
【００４９】
ＰＲＮは印刷装置であり、前述ＰＣよりＰＰＭＬＪとＳＯＢＪを受け取って実際の印刷を行う。受け取り手順やネットワークプロトコルに関しては、本実施例では詳細しない。
【００５０】
なお、ＰＲＮ自体が、印刷サービスを行うサーバＰＣと印刷装置の組み合わせであってもよいが、本実施例ではＰＲＮは単一の筐体として記載している。
【００５１】
ＰＲＮには、少なくとも後述する記憶領域ＰＲＮＳＴと、ＰＲＮが読み取り可能な時計ＣＬＯＣＫが接続ないし内蔵されている。
【００５２】
ＰＲＮＳＴは、ＰＣから送付された印刷ジョブＰＰＭＬＪを印刷するにあたって必要な各種情報を格納する記憶領域であり、少なくともＰＣより送付されたＰＰＭＬＪを解釈した結果が格納されるＩＮＳＴ、再利用オブジェクトの管理を行うデータベースＤＢ、ＳＯＢＪ並びにＳＯＢＪを描画済のイメージオブジェクトＲＯＢＪ、後述する再利用オブジェクトを管理するための大域再利用オブジェクト記憶領域ＧＳＰＡＣＥ、再利用オブジェクト記憶領域ＬＳＰＡＣＥ、後述する制限値ＧＬＩＭ、ＬＬＩＭ、印刷されるページの画素データを保持するページ領域ＰＡＧＥ、ＰＡＧＥを構成するパーツを展開するためのバッファ領域ＷＯＲＫ、ＣＬＯＣＫから読み出した時間を記憶する領域ＳＴＡＲＴ、大域再利用オブジェクトを定義する際に必要なＥｎｖｉｒｏｎｍｅｎｔで指定する文字列を格納したＥＮＶを含んでいる。ＩＮＳＴ、ＤＢに関しては後述する。
【００５３】
図４は、前述ＰＲＮＳＴ上に存在しているＩＮＳＴの一構成例であり、少なくともＯＰ、ＮＡＭＥ、ＦＩＬＥ、ＴＹＰＥの４つの属性値を管理できる。
【００５４】
ＯＰは処理の内容を示す。本実施例においては、ＯＰとして、少なくとも、再利用オブジェクトの定義を示す「ＤＥＦ」、再利用オブジェクトの参照を示す「ＲＥＦ」を格納可能である。
【００５５】
ＮＡＭＥは、ＰＰＭＬにおいて何度も再利用されるようなオブジェクトである再利用オブジェクトを定義する際に、ＯＣＣＵＲＲＥＮＣＥエレメントのＬａｂｅｌ属性で指定される、再利用オブジェクトの名前である。
【００５６】
ＦＩＬＥは、ＯＰがＤＥＦの場合にのみ、ＮＡＭＥで指定した再利用オブジェクトの元データのファイル名が格納される。
【００５７】
ＴＹＰＥは、ＯＰがＤＥＦの場合にのみ、ＮＡＭＥで指定した再利用オブジェクトが、大域再利用オブジェクトか、単なる再利用オブジェクトか、本来再利用オブジェクトとして扱わなくてもよいオブジェクトか、を分類する。具体的には、大域再利用オブジェクトの場合「Ｇ」が、単なる再利用オブジェクトの場合「Ｒ」が、本来再利用オブジェクトとしなくてもよいオブジェクトの場合「Ｖ」が格納される。
【００５８】
ＬＬＩＭは、ＳＯＢＪないしＲＯＢＪが再利用オブジェクト記憶領域ＬＳＰＡＣＥに登録される際の条件を示した情報であり、本実施例においては、ＳＯＢＪを描画してＲＯＢＪを生成するために消費したクロック数と比較するための値が格納される。
【００５９】
ＧＬＩＭは、ＳＯＢＪないしＲＯＢＪが大域再利用オブジェクト記憶領域ＧＳＰＡＣＥに登録される際の条件を示した情報であり、本実施例においては、ＳＯＢＪを描画してＲＯＢＪを生成するために消費したクロック数と比較するための値が格納される。
【００６０】
図５は、前途ＰＲＮＳＴ上に存在している、データベースＤＢの一構成例である。
【００６１】
ＤＢは、本実施例においては、少なくともＮＡＭＥ、ＳＲＣ、ＰＲＯＣＥＳＳＥＤ、ＦＬＡＧという４つの情報を組にして再利用オブジェクトを管理できるデータベースである。
【００６２】
ＮＡＭＥは再利用オブジェクトの名前であり、ＩＮＳＴで説明したＮＡＭＥの値が格納される。
【００６３】
ＳＲＣはＮＡＭＥに対応した描画オブジェクトソースであり、ＩＮＳＴにおけるＦＩＬＥで指定したＳＯＢＪを特定するための情報が格納される。ＰＲＮＳＴ上のＳＯＢＪの置き場によっては、ＩＮＳＴにおけるＦＩＬＥと異なるファイル情報が格納される場合があるが、ここでは詳説しない。
【００６４】
ＰＲＯＣＥＳＳＥＤはＲＯＢＪないしＳＯＢＪを指し示す情報であり、ＦＬＡＧの値によってＲＯＢＪを指し示している情報か、ＳＯＢＪを指し示している情報かが定まる。
【００６５】
ＦＬＡＧはＤＯＮＥないしＹＥＴのいずれかの値をとり、ＤＯＮＥの場合はＰＲＯＣＥＳＳＥＤが指し示すデータはＲＯＢＪであり、ＹＥＴの場合はＳＯＢＪであることを示している。即ち、ある再利用オブジェクトに関してＦＬＡＧの値がＤＯＮＥであるということは、ＰＡＧＥに配置するために描画処理が必要はなく、直接配置できることを示しており、一方ＹＥＴということは、当該再利用オブジェクトをページに配置する際には、毎回描画処理が行われることを意味している。
【００６６】
図６〜図１０は、図３〜図５のシステム構成において本実施例を説明するための処理フローである。
【００６７】
図６のＳ−１は、第１の記述手段処理装置の初期化ステップである。本ステップにおいて入出力等の初期化等が行われる。詳説は省略する。
【００６８】
Ｓ−２において、ＰＲＮは、ＰＣから送付されてきたＰＰＭＬＪを解釈し、処理の分類と処理に必要な情報を抽出、ＩＮＳＴに格納する。同時に、ＰＰＭＬＪが参照している全てのＳＯＢＪをＰＣから受け取る。
【００６９】
Ｓ−３において、ＩＮＳＴ上に未処理の処理単位が残っているかがチェックする。処理単位がＩＮＳＴに残っていればＳ−４に、残っていなければＳ−１４に遷移する。
【００７０】
Ｓ−４において、Ｓ−２で解釈した処理単位を順次取り出してＳ−５に遷移する。
【００７１】
Ｓ−５において、Ｓ−４で取り出された処理単位に含まれるＯＰがＤＥＦであるかチェックされる。ＤＥＦであればＳ−１３に、ＤＥＦ以外ならばＳ−６に遷移する。
【００７２】
Ｓ−６において、Ｓ−４で取り出された処理単位に含まれるＯＰがＲＥＦであるかチェックされる。ＲＥＦであればＳ−８に、そうでなければＳ−７に遷移する。
【００７３】
Ｓ−７において、Ｓ−４で取り出された処理単位のＯＰがＤＥＦでもＲＥＦのいずれでもない場合の、「それ以外」の処理を行った後、Ｓ−３に戻る。
【００７４】
「それ以外」の処理としては、図２における（４）部分の２行目〜４行目のような、毎回変化するような可変データの描画・配置処理や、ＰＡＧＥに格納されたページをプリンタから出力する処理などを含むが、本実施例においては詳説しない。
【００７５】
Ｓ−８〜Ｓ−１２において、Ｓ−３で着目したＩＮＳＴのＯＰがＲＥＦである場合の処理を行う。
【００７６】
まずＳ−８において、着目しているＩＮＳＴのＮＡＭＥを用いてＤＢを検索する。
【００７７】
続いてＳ−９において、検索結果のＯＰのＦＬＡＧの値をチェックする。ＦＬＡＧがＤＯＮＥの場合はＳ−１０に、そうではない場合はＳ−１１に遷移する。
【００７８】
Ｓ−１０において、ＤＢの検索結果のＰＲＣＥＳＳＥＤで示されたファイルを、描画済のオブジェクトと認識してＷＯＲＫに読み込んだ後、Ｓ−１２に遷移する。
一方、Ｓ−１１においては、ＤＢの検索結果のＰＰＲＯＣＥＳＳＥＤで示されたファイルは、描画前のオブジェクトソースと認識して描画処理を行う。描画の結果はＷＯＲＫ上に作成させられた後、Ｓ−１２に遷移する。
【００７９】
Ｓ−１２において、ＷＯＲＫに格納された描画されたオブジェクトをＰＡＧＥに配置した後、Ｓ３に戻る。
【００８０】
一方、Ｓ−５においてＩＮＳＴのＯＰがＤＥＦの場合、Ｓ−１３において再利用オブジェクト分類処理が行なわれた後、Ｓ−３に戻る。再利用オブジェクト分類処理の詳細は、後述する。
【００８１】
更に、Ｓ−３においてＩＮＳＴ上に処理対象の処理項目が残っていない場合、Ｓ−１４において、書出し処理が行なわれた後、処理を終了する。書出し処理の詳細は、後述する。
【００８２】
図７は、図６中のＳ−１３で示した、再利用オブジェクト分類処理の詳細を説明するフローである。
【００８３】
Ｓ−１５において、ＣＬＯＣＫの値を読み込みＳＴＡＲＴに格納した後、Ｓ−１６に遷移する。
【００８４】
Ｓ−１６において、ＳＲＣで指定されたＳＯＢＪをＷＯＲＫに描画した後、Ｓ−１７に遷移する。描画処理の詳細はここでは省略する。
【００８５】
Ｓ−１７において、ＣＬＯＣＫの値とＳＴＡＲＴに格納した時間情報とから、Ｓ−１６で費やした時間を計算し、それがＬＬＩＭに格納された時間を下回った場合はＳ−２３に、それ以外の場合はＳ−１８に遷移する。
【００８６】
Ｓ−１８において、Ｓ−１６で費やした時間がＧＬＩＭに格納された時間を下回った場合はＳ−２１に、それ以外の場合はＳ−１９に遷移する。なお、Ｓ−１８において再度ＣＬＯＣＫとＳＴＡＲＴの値を元にＳ−１６での消費クロックを計算しても、Ｓ−１７で行った計算の結果をここで再利用してもよい。
【００８７】
Ｓ−１９とＳ−２０は、Ｓ−１６における描画処理で消費した時間が、ＧＬＩＭ以上であった場合である。
【００８８】
Ｓ−１９において、着目しているＩＮＳＴのＴＹＰＥに、「Ｇ」を格納した後、Ｓ−２０に遷移する。
【００８９】
Ｓ−２０において、ＷＯＲＫに格納されているデータを描画されたオブジェクトＲＯＢＪとみなし、ＧＳＰＡＣＥに格納した後、Ｓ−２５に遷移する。
【００９０】
一方、Ｓ−２１とＳ−２２は、Ｓ−２１における描画処理で消費した時間が、ＬＬＩＭ以上ＧＬＩＭ未満の場合の処理である。
【００９１】
この場合、Ｓ−２１において、着目しているＩＮＳＴのＴＹＰＥに「Ｒ」を格納した後、Ｓ−２２に遷移する。
【００９２】
Ｓ−２２において、ＷＯＲＫに格納されているデータを描画済のオブジェクトＲＯＢＪとみなし、ＬＳＰＡＣＥに格納した後、Ｓ−２５に遷移する。
【００９３】
最後に、Ｓ−２３、Ｓ−２４は、Ｓ−２１における描画処理で消費した時間が、ＬＬＩＭ未満であった場合の処理である。
【００９４】
この場合、Ｓ−２３において、着目しているＩＮＳＴのＴＹＰＥに「Ｖ」を格納した後、Ｓ−２４に遷移する。
【００９５】
Ｓ−２４において、ＷＯＲＫに格納されている描画結果は無視して、そのソースであるＳＯＢＪをＬＳＰＡＣＥに格納し、Ｓ−２５に遷移する。
【００９６】
Ｓ−２５において、ＤＢに当該ＳＯＢＪに関するエントリを作成する。具体的には、ＩＮＳＴのＮＡＭＥの値をＤＢのＮＡＭＥに、ＩＮＳＴのＴＹＰＥをＤＢのＴＹＰＥに、ＧＳＰＡＣＥないしＬＳＰＡＣＥに格納したデータのパスをＤＢのＰＲＯＣＥＳＳＥＤに、ＧＳＰＡＣＥないしＬＳＰＡＣＥに描画済のオブジェクトを格納した場合はＤＯＮＥを、ソースを格納した場合はＹＥＴをＤＢのＦＬＡＧに格納した後、再利用オブジェクト分類処理を終了する。
【００９７】
図８は、図６のＳ−１４で示した書出し処理の詳細である。
【００９８】
本処理においては、まずＳ−２６において、書き出す先のファイルを開き、定型的なソースコードを書き出すなどの処理を行なった後、Ｓ−２７に遷移する。
【００９９】
Ｓ−２７において、ＩＮＳＴにある処理項目の全てを書き出したか否かをチェックし、残りがあるならＳ−２８に、なければＳ−３４に遷移する。
【０１００】
Ｓ−２８において、ＩＮＳＴから書き出し対象とする処理項目を一つ選び、Ｓ−２９に遷移する。
【０１０１】
Ｓ−２９において、選ばれたＩＮＳＴのＯＰがＤＥＦであるか否かをチェックし、ＤＥＦならばＳ−３０に、それ以外の場合はＳ−３１に遷移する。
【０１０２】
Ｓ−３０において、着目しているＩＮＳＴのＯＰがＤＥＦの場合の、オブジェクト定義の書出し処理を行なった後、Ｓ−２７に戻る。オブジェクト定義の書出し処理の詳細に関しては、後述する。
【０１０３】
Ｓ−３１においては、着目しているＩＮＳＴのＯＰがＲＥＦであるか否かのチェックがなされ、ＲＥＦの場合はＳ−３２に、それ以外の場合はＳ−３３に遷移する。
【０１０４】
Ｓ−３２において、着目しているＩＮＳＴのＯＰがＲＥＦの場合の、オブジェクト参照の書出し処理を行った後、Ｓ−２７に戻る。オブジェクト参照の書出し詳細に関しては、後述する。
【０１０５】
Ｓ−３３において、着目しているＩＮＳＴのＯＰが、ＤＥＦでもＲＥＦでもなかった場合の処理を行った後、Ｓ−２７に戻る。本処理に関する詳細説明は省略する。
【０１０６】
最後に、Ｓ−２７において、処理するべき処理項目がＩＮＳＴに残っていない場合、Ｓ−３４において書出し先のファイルのクローズなどの後始末を行なった上で、書出し処理を終了する。
【０１０７】
図９は、図８のＳ−３０で示した、オブジェクト定義書出し処理の詳細である。
【０１０８】
本処理においては、まずＳ−３５において、着目しているＩＮＳＴのＴＹＰＥがＧであるか否かを調べ、ＧであるならＳ−３８に、ＧでなければＳ−３６に遷移する。
【０１０９】
Ｇでない場合、Ｓ−３６において、今度はＩＮＳＴのＴＹＰＥがＲであるか否かを調べ、ＲならばＳ−３７、Ｒでもないなら、本処理を終了してしまう。
【０１１０】
ＩＮＳＴのＴＹＰＥがＲの場合、Ｓ−３７において、再利用オブジェクトデータを定義するソースを生成し、書き出した後、本処理を終了する。
【０１１１】
一方、ＴＹＰＥがＧの場合、Ｓ−３８において、大域再利用オブジェクトデータを定義するソースを生成し、書き出した後、本処理を終了する。
【０１１２】
図１０は、図８のＳ−３２で示した、オブジェクト参照書出し処理の詳細である。
【０１１３】
本処理においては、まずＳ−３９において、着目しているＩＮＳＴのＮＡＭＥを用いて、ＤＢを検索した後、Ｓ−４０に進む。
【０１１４】
Ｓ−４０において着目しているＩＮＳＴのＴＹＰＥがＧであるか否かを調べ、ＧであればＳ−４４に、ＧでなければＳ−４１に遷移する。
【０１１５】
Ｓ−４１において、今度はＩＮＳＴのＴＹＰＥがＲか否かを調べ、Ｒの場合はＳ−４３に、Ｒでもない場合はＳ−４２に遷移する。
【０１１６】
ＩＮＳＴのＴＹＰＥがＲでもＧでもない場合は、Ｓ−４２において可変データを参照するようなソースを生成し、書き出した後、オブジェクト参照書出し処理を終了する。
【０１１７】
ＩＮＳＴのＴＹＰＥがＲの場合は、Ｓ−４３において再利用データを参照するようなソースを生成し、書き出した後、オブジェクト参照書出し処理を終了する。
【０１１８】
ＩＮＳＴのＴＹＰＥがＧの場合は、Ｓ−４４において大域再利用データを参照するようなソースを生成し、書き出した後、オブジェクト参照書出し処理を終了する。
【０１１９】
以下、図１１〜図４２を用いて、詳細に説明する。
【０１２０】
図１１は、本実施例を詳細に説明するために用いるＰＰＭＬＪである。本ＰＰＭＬＪは、３つのＰｏｓｔｓｃｒｉｐｔファイルによるイメージを再利用オブジェクトとして定義した後、ページ上に配置するものである。ここで、図１１のＰＰＭＬＪは、図２同様、厳密にはＰＰＭＬの仕様には従っていないことに注意する。
【０１２１】
図１２は、本実施例を詳細に説明するためのＰＲＮＳＴとＣＬＯＣＫの構成例である。
【０１２２】
ＩＮＳＴとＤＢは、本実施例の説明に必要な属性のみ示してある。ＬＳＰＡＣＥ、ＧＳＰＡＣＥ、ＷＯＲＫ、ＰＡＧＥ、ＧＬＩＭ、ＬＬＩＭ、ＥＮＶ、ＳＴＡＲＴは、図３上の同名のものに対応している。なお、ＣＬＯＣＫは、ＰＲＮ起動から経過した時間を表しているとする。
【０１２３】
ＯＢＪｓは、ＰＰＭＬＪが参照しているＳＯＢＪや、本実施例において生成されるＰＰＭＬソースファイルが格納される領域である。
【０１２４】
ＰＲＮＳＴは、ＲＡＭのような半導体メモリでもよいし、ＨＤＤのような外部記憶装置でも良い。また、たとえばＯＢＪｓのみＨＤＤで他はＲＡＭといった、ハイブリッドな構成でもよい。
【０１２５】
図１１に示したＰＰＭＬＪを処理するために、Ｓ−１の初期化が終了すると、図１３の状態になる。
【０１２６】
ＩＮＳＴ、ＤＢ、ＳＴＡＲＴ、ＷＯＲＫ、ＰＡＧＥ、ＧＳＰＡＣＥ、ＬＳＰＡＣＥ、ＯＢＪｓともに空で初期化されている。ＥＮＶは文字列「Ａ」で初期化されている。
【０１２７】
ＬＬＩＭは２００００時間単位に、ＧＬＩＭは５００００時間単位に初期化されている。本実施例においては、ＧＬＩＭ、ＬＬＩＭの値の決め方については特には規定しない。
【０１２８】
Ｓ−１の後にＳ−２で、図１１に示したＰＰＭＬＪが解釈されＩＮＳＴに解釈結果が格納される。同時に、該ＰＰＭＬソースコードが参照している３つのＰＳファイルがＯＢＪｓに読み込まれて図１４の状態になる。ＩＮＳＴの右脇に置かれている三角は、Ｓ−４で次に取り出される処理単位を指し示している。
【０１２９】
図１４の状態から、Ｓ−３で上述三角がＩＮＳＴ上を指し示しているので、Ｓ−４において上述三角が指し示している処理単位が決まり、Ｓ−５においてＯＰがチェックされ、それが「ＤＥＦ」であるためにＳ−１３に遷移した状態が図１５である。
【０１３０】
図１５の状態から、図７のＳ−１５を経て、図１６の状態になる。ＳＴＡＲＴにＣＬＯＣＫの値が格納されている。
【０１３１】
図１６の状態から、Ｓ−１６でオブジェクトの描画を行い、結果をＷＯＲＫに格納して図１７の状態になる。
【０１３２】
図１７の状態から、ＣＬＯＣＫ−ＳＴＡＲＴ＝６００００−３０００＝５７０００は、ＬＬＩＭ、ＧＬＩＭの双方より大きいため、Ｓ−１９に進んでＩＮＳＴ．ＴＹＰＥが「Ｇ」となり、ＷＯＲＫに格納されたｈｉｇｈｌｙ＿ｄｉｆｆｉｃｕｌｔ＿ｔｏ＿ｒｉｐ．ｐｓを描画した結果であるＲＯＢＪをＧＳＰＡＣＥにコピーした後、Ｓ−２５においてＤＢを更新した結果、図１８の状態になる。
【０１３３】
図１８の状態から、図６のＳ−１３を終了し、Ｓ−３に戻ってＩＮＳＴに処理対象の処理単位があるかチェック、存在しているのでＳ−４に進んだ状態が図１９である。
【０１３４】
図１９の状態から、Ｓ−５でＯＰがチェックされ、それが「ＤＥＦ」であるためＳ−１３に遷移する。図７のＳ−１５においてＳＴＡＲＴが更新され、Ｓ−１６において描画が行なわれて描画結果がＷＯＲＫに格納され、図２０の状態になる。
【０１３５】
図２０の状態から、ＣＬＯＣＫ−ＳＴＡＲＴ＝１０００００−７００００＝３００００は、ＬＬＩＭより大きくＧＬＩＭより小さいため、Ｓ−２１に進んでＩＮＳＴ．ＴＹＰＥが「Ｒ」となり、ＷＯＲＫに格納されたｄｉｆｆｉｃｕｌｔ＿ｔｏ＿ｒｉｐ．ｐｓを描画した結果であるＲＯＢＪをＬＳＰＡＣＥにコピーした後、Ｓ−２５においてＤＢを更新、図６のＳ−１３を終了してＳ−３に戻り、ＩＮＳＴに処理対象の処理単位が残っているかチェック、存在しているのでＳ−４に進んだ状態が図２１である。
【０１３６】
図２１の状態から、Ｓ−５でＯＰがチェックされ、それが「ＤＥＦ」であるためＳ−１３に遷移する。図７のＳ−１５においてＳＴＡＲＴが更新され、Ｓ−１６において描画が行なわれて描画結果がＷＯＲＫに格納され、図２２の状態になる。
【０１３７】
図２２の状態から、ＣＬＯＣＫ−ＳＴＡＲＴ＝１２００００−１１００００＝１００００は、ＬＬＩＭ、ＧＬＩＭの両方より小さいため、Ｓ−２３に進んでＩＮＳＴ．ＴＹＰＥが「Ｖ」となり、ＷＯＲＫに格納されたｅａｓｙ＿ｔｏ＿ｒｉｐ．ｐｓを描画した結果は無視され、ｅａｓｙ＿ｔｏ＿ｒｉｐ．ｐｓ自体がＬＳＰＡＣＥにコピーされる。その後、Ｓ−２５においてＤＢを更新、図６のＳ−１３を終了してＳ−３に戻り、ＩＮＳＴに処理対象の処理結果が残っているかチェック、存在しているのでＳ−４に進んだ状態が図２３である。
【０１３８】
図２３の状態から、Ｓ−５でＯＰがチェックされ、それが「ＤＥＦ」でも「ＲＥＦ」でもないため、Ｓ−７に遷移する。Ｓ−７における処理は、例えばページの始まりを指定するなどの機能が含まれるが、ここでは省略する。
【０１３９】
Ｓ−７のその他の処理が終了した後、Ｓ−３に戻り、ＩＮＳＴに処理対象の処理結果が残っているかチェック、存在しているのでＳ−４に進んだ状態が図２４である。
【０１４０】
図２４の状態から、Ｓ−５でＯＰがチェックされ、それが「ＲＥＦ」であるためＳ−８に遷移する。Ｓ−８において、着目しているＩＮＳＴ．ＮＡＭＥの値である「ＤＩＦＦＩＣＵＬＴ＿ＴＯ＿ＲＩＰ」を用いてＤＢを検索した後、Ｓ−９に遷移した状態が図２５である。ＤＢの右脇に置かれている三角は、Ｓ−８において検索した結果、マッチしたラインを示している。
【０１４１】
図２５の状態から、Ｓ−９でＤＢ．ＦＬＡＧがチェックされ、「ＤＯＮＥ」であることからＳ−１０に遷移する。Ｓ−１０において、ＤＢ．ＴＹＰＥの値「Ｌ」とＤＢ．ＰＲＯＣＥＳＳＥＤの値「ｄｉｆｆｉｃｕｌｔ＿ｔｏ＿ｒｉｐ．ｂｍｐ」より、ＬＳＰＡＣＥに格納されたｄｉｆｆｉｃｕｌｔ＿ｔｏ＿ｒｉｐ．ｂｍｐがＷＯＲＫに読み出され、Ｓ−１２に遷移する。Ｓ−１２において、ＷＯＲＫがＰＡＧＥに配置されて図２６の状態になる。
【０１４２】
図２６の状態から、Ｓ−３に遷移し、ＩＮＳＴ上に残りがあるのでＳ−４に遷移、ＩＮＳＴ．ＯＰが「ＲＥＦ」であるのでＳ−８に遷移し、ＩＮＳＴ．ＮＡＭＥの値「ＨＩＧＨＬＹ＿ＤＩＦＦＩＣＵＬＴ＿ＴＯ＿ＲＩＰ」でＤＢを検索した結果が図２７である。
【０１４３】
図２７の状態から、ＤＢ．ＦＬＡＧが「ＤＯＮＥ」であるのでＳ−１０に遷移し、Ｓ−１０において、ＤＢ．ＴＹＰＥの値「Ｇ」とＤＢ．ＰＲＯＣＥＳＳＥＤの値「ｈｉｇｈｌｙ＿ｄｉｆｆｉｃｕｌｔ＿ｔｏ＿ｒｉｐ．ｂｍｐ」より、ＧＳＰＡＣＥに格納されたｈｉｇｈｌｙ＿ｄｉｆｆｉｃｕｌｔ＿ｔｏ＿ｒｉｐ．ｂｍｐがＷＯＲＫに読み出され、Ｓ−１２に遷移する。Ｓ−１２において、ＷＯＲＫがＰＡＧＥに配置されて図２８の状態になる。
【０１４４】
図２８の状態から、Ｓ−３に遷移し、ＩＮＳＴ上に残りがあるのでＳ−４に遷移、ＩＮＳＴ．ＯＰが「ＲＥＦ」であるのでＳ−８に遷移し、ＩＮＳＴ．ＮＡＭＥの値「ＥＡＳＹ＿ＴＯ＿ＲＩＰ」でＤＢを検索した結果が図２９である。
【０１４５】
図２９状態から、ＤＢ．ＦＬＡＧが「ＹＥＴ」であるので、Ｓ−１１に遷移し、Ｓ−１１において、ＤＢ．ＴＹＰＥの値「Ｌ」とＤＢ．ＰＲＯＣＥＳＳＥＤの値「ｅａｓｙ＿ｔｏ＿ｒｉｐ．ｐｓ」より、ＬＳＰＡＣＥに格納されたｅａｓｙ＿ｔｏ＿ｒｉｐ．ｐｓが再度描画されてＷＯＲＫに読み込まれ、Ｓ−１２に遷移する。Ｓ−１２において、ＷＯＲＫがＰＡＧＥに配置されて図３０の状態になる。
【０１４６】
図３０の状態からＳ−３に遷移し、ＩＮＳＴ上に処理するべき処理単位が存在しないので、Ｓ−１４の書出し処理に遷移する。書出し処理の詳細は図８のフローなので、Ｓ−２６に遷移して書出しのための準備を行い、図３１の状態になる。図３１において、書出し先のファイルとして、ＯＢＪｓにＧｌｏｂａｌｓ．ｐｐｍｌとＳｏｕｒｃｅ．ｐｐｍｌという２つのファイルが出現している。
【０１４７】
図３２は、図３１のうち、以降の説明のために不必要な部分を省略し、必要な部分であるＧｌｏｂａｌｓ．ｐｐｍｌとＳｏｕｒｃｅ．ｐｐｍｌの中身を表示した図である。Ｓ−２６において、既にＰＰＭＬソースの一部が当該ファイルに挿入されている。また、ＩＮＳＴを走査するためのポインタも、リセットされている。
【０１４８】
図３２の状態から、Ｓ−２７においてＩＮＳＴ上に書出していない処理単位があるので、Ｓ−２８に進む。Ｓ−２８において、ＩＮＳＴ上の処理単位が一つ選択され、Ｓ−２９に遷移して図３３の状態になる。
【０１４９】
図３２の状態から、Ｓ−２９においてＩＮＳＴ．ＯＰが「ＤＥＦ」であるため、Ｓ−３０のオブジェクト定義書出し処理を行う。
【０１５０】
図９のＳ−３５において、ＩＮＳＴ．ＴＹＰＥが「Ｇ」であるか調べ、「Ｇ」であったため、Ｓ−３８に遷移する。Ｓ−３８において、大域再利用データ定義が、Ｇｌｏｂａｌｓ．ｐｐｍｌに追加され、図３４の状態になる。ここで追加されている文字列のうち、Ｎａｍｅ属性はＩＮＳＴ．ＮＡＭＥから、Ｅｎｖｉｒｏｎｍｅｎｔ属性はＥＮＶの値をそのまま利用している。
【０１５１】
図３４の状態から、オブジェクト定義書出し処理を終了し、図８のＳ−２７に戻る。Ｓ−２７において書出し残りの有無チェックがなされ、書出し残りがあるのでＳ−２８に遷移する。Ｓ−２８で取り出されたＩＮＳＴ．ＯＰが「ＤＥＦ」であるため、オブジェクト定義書出し処理を行う。
【０１５２】
Ｓ−３５において、ＩＮＳＴ．ＴＹＰＥの値がチェックされ、「Ｇ」ではないのでＳ−３６に遷移する。Ｓ−３６において再度ＩＮＳＴ．ＴＹＰＥの値がチェックされ、「Ｒ」であるのでＳ−３７に遷移する。Ｓ−３７において、再利用データ定義がＳｏｕｒｃｅ．ｐｐｍｌに追加され、図３５の状態になる。ここで使われている文字列のうち、Ｎａｍｅ属性はＩＮＳＴ．ＮＡＭＥの値をそのまま利用している。
【０１５３】
図３５の状態から、オブジェクト定義書出し処理を終了し、図８のＳ−２７に戻る。Ｓ−２７において書出し残りの有無チェックがなされ、書出し残りがあるのでＳ−２８に遷移する。Ｓ−２８で取り出されたＩＮＳＴ．ＯＰが「ＤＥＦ」であるため、オブジェクト定義書出し処理を行う。
【０１５４】
Ｓ−３５において、ＩＮＳＴ．ＴＹＰＥの値がチェックされ、「Ｇ」ではないのでＳ−３６に遷移する。Ｓ−３６において再度ＩＮＳＴ．ＴＹＰＥの値がチェックされ、今度は「Ｒ」ではないのでそのままオブジェクト定義書出しを終了してＳ−２７に戻り、図３６の状態になる。
【０１５５】
図３６の状態から、Ｓ−２７においてＩＮＳＴ上に書き出していない処理単位があるので、Ｓ−２８に進む。Ｓ−２８において、ＩＮＳＴ上の処理単位が一つ選択され、Ｓ−２９に遷移する。Ｓ−２８で取り出されたＩＮＳＴ．ＯＰは、ＤＥＦでもＲＥＦでもないので、Ｓ−３３に遷移して、ＯＰがその他の場合の処理を行う。
【０１５６】
その他の場合の処理としては、例えばページの始まりを示すタグを生成するなどを含む。そういった処理のためにＩＮＳＴ上に複数の処理単位が存在している可能性もあるが、本実施例においては単一行として省略し、詳説しない。本実施例においては、Ｓ−３３の後、ページの図３７の状態になるとする。
【０１５７】
図３７の状態からＳ−２７に戻る。Ｓ−２７において書出し残りの有無チェックがなされ、書出し残りがあるのでＳ−２８に遷移する。Ｓ−２８で取り出されたＩＮＳＴ．ＯＰが「ＲＥＦ」であるため、オブジェクト参照書出し処理を行なうために、図１０のＳ−３９に遷移する。
【０１５８】
Ｓ−３９において、ＤＢをＩＮＳＴ．ＮＡＭＥの値で検索し、図３８の状態になる。着目しているＩＮＳＴのＮＡＭＥが「ＤＩＦＦＩＣＵＬＴ＿ＴＯ＿ＲＩＰ」であるから、ＤＢ上２行目のレコードが検索されている。
【０１５９】
図３８の状態から、Ｓ−４０において、ＤＢ．ＴＹＰＥが「Ｇ」でないため、Ｓ−４１に遷移する。Ｓ−４１においてＤＢ．ＴＹＰＥが「Ｒ」であるため、Ｓ−４３に遷移する。Ｓ−４３において、再利用データ参照が生成され、本実施例においてはＳｏｕｒｃｅ．ｐｐｍｌファイルに書き出され、図３９の状態になる。
【０１６０】
ここで使われている文字列のうち、Ｎａｍｅ属性はＤＢ．ＮＡＭＥの値がそのまま利用されている。本実施例においては、再利用データ参照処理の中でＭＡＲＫタグを出力しているが、もちろんＭＡＲＫタグ出力のためにＩＮＳＴに別の処理単位があってもよい。本実施例においては、説明を簡略化するために再利用データ参照処理の中でＭＡＲＫタグを生成していることを了解されたい。
【０１６１】
図３９の状態から、オブジェクト参照書出し処理を終了し、Ｓ−２７に戻る。Ｓ−２７において書出し残りの有無チェックがなされ、残りがあるのでＳ−２８に遷移する。Ｓ−２８で取り出されたＩＮＳＴ．ＯＰが「ＲＥＦ」であるため、再びＳ−３９に遷移する。
【０１６２】
Ｓ−３９において、ＤＢをＩＮＳＴ．ＮＡＭＥの値で検索、ついでＳ−４０にてＤＢ．ＴＹＰＥが「Ｇ」であるためＳ−４４に遷移する。Ｓ−４４において、大域再利用データ参照が生成され、Ｓｏｕｒｃｅ．ｐｐｍｌに書き出されて図４０の状態になる。
【０１６３】
ここで使われている文字列のうち、Ｎａｍｅ属性はＤＢ．ＮＡＭＥの値が、Ｅｎｖｉｒｏｎｍｅｎｔ属性はＥＮＶの値がそのまま使用されている。
【０１６４】
図４０の状態から、オブジェクト参照書出し処理を終了し、Ｓ−２７に戻る。Ｓ−２７において書出し残りの有無チェックがなされ、残りがあるのでＳ−２８に遷移する。Ｓ−２８で取り出されたＩＮＳＴ．ＯＰがＲＥＦであるため、再びＳ−３９に遷移する。
【０１６５】
Ｓ−３９において、ＤＢをＩＮＳＴ．ＮＡＭＥの値で検索、ついでＳ−４０にてＤＢ．ＴＹＰＥが「Ｇ」ではないのでＳ−４１に遷移し、Ｓ−４１にてＤＢ．ＴＹＰＥが「Ｒ」でないのでＳ−４２に遷移する。
【０１６６】
Ｓ−４２において、可変データ参照が生成され、Ｓｏｕｒｃｅ．ｐｐｍｌに書き出され、図４１の状態になる。ＥＸＴＥＲＮＡＬ＿ＤＡＴＡタグのＳｒｃ属性の値は、ＤＢ．ＰＲＯＣＥＳＳＥＤをそのまま使用している。
【０１６７】
図４１の状態から、オブジェクト参照書出しを終了し、Ｓ−２７に戻る。Ｓ−２７において書出し残りの有無チェックがなされ、残りがないのでＳ−３４に遷移する。Ｓ−３４において、例えばＳｏｕｒｃｅ．ｐｐｍｌやＧｌｏｂａｌｓ．ｐｐｍｌに書き出しておく必要のある情報、例えばＰＡＧＥタグをクローズする＜／ＰＡＧＥ＞等の書出しやファイルのクローズ、メモリの解放などが行なわれ、図４２の状態になる。
【０１６８】
図４２の状態から、図８の書出し処理を終了し、図６のＳ−１４が終了し、処理全体が終了する。
【図面の簡単な説明】
【０１６９】
【図１】個人向けダイレクトメールの紙面の例を示す図
【図２】図１で示したダイレクトメールを構成するための、簡略化されたＰＰＭＬソースコードの例を示す図
【図３】本発明の実施の一形態に係る印刷システムの要部構成を示すブロック図
【図４】本発明の実施の一形態に係る印刷システムの一部を構成するテーブルＩＮＳＴの詳細を示す図
【図５】本発明の実施の一形態に係る印刷システムの一部を構成するテーブルＤＢの詳細を示す図
【図６】本発明の実施の一形態に係る印刷システムの詳細を記述するフローチャート
【図７】本発明の実施の一形態に係る印刷システムの詳細を記述するフローチャート
【図８】本発明の実施の一形態に係る印刷システムの詳細を記述するフローチャート
【図９】本発明の実施の一形態に係る印刷システムの詳細を記述するフローチャート
【図１０】本発明の実施の一形態に係る印刷システムの詳細を記述するフローチャート
【図１１】本発明の実施の一形態に係る印刷システムの説明に使用する、簡略化されたＰＰＭＬソースコードを示す図
【図１２】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部構造を示す図
【図１３】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図１４】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図１５】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図１６】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図１７】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図１８】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図１９】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２０】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２１】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２２】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２３】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２４】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２５】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２６】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２７】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２８】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図２９】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３０】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３１】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３２】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３３】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３４】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３５】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３６】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３７】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３８】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図３９】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図４０】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図４１】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【図４２】本発明の実施の一形態に係る印刷システムの説明に使用する、印刷システムの内部の状況を示す図
【符号の説明】
【０１７０】
ＰＲＮ  印刷装置
ＳＯＢＪ  描画オブジェクトソース
ＰＣＳＴ  記憶領域
ＰＰＭＬＪ  印刷ジョブ
ＧＳＰＡＣＥ  大域再利用オブジェクト記憶領域
ＬＳＰＡＣＥ  再利用オブジェクト記憶領域
ＧＬＩＭ、ＬＬＩＭ  制限値
ＰＡＧＥ、ＰＡＧＥ  ページ領域
ＷＯＲＫ  バッファ領域
【図１】
2007072674.tif 000003
【図２】
2007072674.tif 000004
【図３】
2007072674.tif 000005
【図４】
2007072674.tif 000006
【図５】
2007072674.tif 000007
【図６】
2007072674.tif 000008
【図７】
2007072674.tif 000009
【図８】
2007072674.tif 000010
【図９】
2007072674.tif 000011
【図１０】
2007072674.tif 000012
【図１１】
2007072674.tif 000013
【図１２】
2007072674.tif 000014
【図１３】
2007072674.tif 000015
【図１４】
2007072674.tif 000016
【図１５】
2007072674.tif 000017
【図１６】
2007072674.tif 000018
【図１７】
2007072674.tif 000019
【図１８】
2007072674.tif 000020
【図１９】
2007072674.tif 000021
【図２０】
2007072674.tif 000022
【図２１】
2007072674.tif 000023
【図２２】
2007072674.tif 000024
【図２３】
2007072674.tif 000025
【図２４】
2007072674.tif 000026
【図２５】
2007072674.tif 000027
【図２６】
2007072674.tif 000028
【図２７】
2007072674.tif 000029
【図２８】
2007072674.tif 000030
【図２９】
2007072674.tif 000031
【図３０】
2007072674.tif 000032
【図３１】
2007072674.tif 000033
【図３２】
2007072674.tif 000034
【図３３】
2007072674.tif 000035
【図３４】
2007072674.tif 000036
【図３５】
2007072674.tif 000037
【図３６】
2007072674.tif 000038
【図３７】
2007072674.tif 000039
【図３８】
2007072674.tif 000040
【図３９】
2007072674.tif 000041
【図４０】
2007072674.tif 000042
【図４１】
2007072674.tif 000043
【図４２】
2007072674.tif 000044