(57)【要約】【課題】印刷データ中に同一のリソースが重複して記述されていた場合、印刷データ処理も重複して行われ、処理時間が増大する。【解決手段】印刷データ処理装置が、印刷データ中に同一のリソースが重複して記述されているかを検知する。重複して記述されていた場合に、重複したリソースで２番目以降に記述されているものを削除して印刷オブジェクトを連結する手段と、重複したリソースを個別リソースに分解して複数の印刷オブジェクトから共通で参照できる形式で登録する手段とを備える。【選択図】図７
2012240344.tif 000002
【特許請求の範囲】
【請求項１】
印刷データに記述された第１の印刷オブジェクトと第２の印刷オブジェクトとに同一のリソースが重複して記述されているかを判定する判定手段と、
前記判定手段により同一のリソースが重複して記述されていると判定された場合に、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとを連結し、前記第２の印刷オブジェクトから同一のリソースを削除するオブジェクト連結手段と
を備えることを特徴とする印刷データ処理装置。
【請求項２】
前記オブジェクト連結手段は、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが印刷データ中に連続して記述されているかを判定する手段を有し、
前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが連続して記述されていると判定された場合に、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとを連結し、前記第２の印刷オブジェクトから同一のリソースを削除することを特徴とする請求項１に記載の印刷データ処理装置。
【請求項３】
前記オブジェクト連結手段はさらに、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが連続して記述されていないと判定された場合に、前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトのいずれかの描画順序を第３の印刷オブジェクトと入れ替えることで前記第１の印刷オブジェクトと前記第２の印刷オブジェクトが連続して記述されるかを判定する手段と、
前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトのいずれかの描画順序を第３の印刷オブジェクトと入れ替えることで前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが連続して記述されると判定した場合に、前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトと前記第３の印刷オブジェクトの描画順序を入れ替える入れ替え手段とを有し、
前記入れ替え手段により描画順序を入れ替えた場合にも、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとを連結し、前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトから同一のリソースを削除することを特徴とする請求項２に記載の印刷データ処理装置。
【請求項４】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されていると判定された場合に、同一のリソースから個別リソースを抽出する抽出手段と、
抽出した前記個別リソースを前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとから参照可能な形式で前記印刷データ中に登録し、登録した前記個別リソースを、前記第１の印刷オブジェクトおよび前記第２の印刷オブジェクトから削除するリソース登録手段と
を有することを特徴とする請求項１に記載の印刷データ処理装置。
【請求項５】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されていると判定され、かつ、前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトのいずれかの描画順序を第３の印刷オブジェクトと入れ替えることで前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが連続して記述されると判定されなかった場合には、前記同一のリソースから個別リソースを抽出する抽出手段と、
抽出した前記個別リソースを前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとから参照可能な形式で前記印刷データ中に登録し、登録した前記個別リソースを、前記第１の印刷オブジェクトおよび前記第２の印刷オブジェクトから削除するリソース登録手段と
をさらに有することを特徴とする請求項３に記載の印刷データ処理装置。
【請求項６】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されている場合、前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトのいずれかが再利用されるオブジェクトであると判定された場合には、前記抽出手段により個別リソースを抽出し、前記リソース登録手段により個別リソースの登録及び削除を行うことを特徴とする請求項５に記載の印刷データ処理装置。
【請求項７】
印刷データに記述された第１の印刷オブジェクトと第２の印刷オブジェクトとに同一のリソースが重複して記述されているかを判定する判定手段と、
前記判定手段により同一のリソースが重複して記述されていると判定された場合に、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとを連結し、前記第２の印刷オブジェクトから同一のリソースを削除するオブジェクト連結手段と
してコンピュータを機能させるためのプログラム。
【請求項８】
前記オブジェクト連結手段は、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが印刷データ中に連続して記述されているかを判定し、
前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが連続して記述されていると判定された場合に、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとを連結し、前記第２の印刷オブジェクトから同一のリソースを削除することを特徴とする請求項７に記載のプログラム。
【請求項９】
前記オブジェクト連結手段はさらに、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが連続して記述されていないと判定された場合に、前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトのいずれかの描画順序を第３の印刷オブジェクトと入れ替えることで前記第１の印刷オブジェクトと前記第２の印刷オブジェクトが連続して記述されるかを判定し、
前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトのいずれかの描画順序を第３の印刷オブジェクトと入れ替えることで前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが連続して記述されると判定した場合に、前記第１または第２の印刷オブジェクトと前記第３の印刷オブジェクトの描画順序を入れ替え、
前記描画順序を入れ替えた場合にも、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとを連結し、前記第２の印刷オブジェクトから同一のリソースを削除することを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されていると判定された場合に、同一のリソースから個別リソースを抽出し、
抽出した前記個別リソースを前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとから参照可能な形式で前記印刷データ中に登録し、登録した前記個別リソースを、前記第１の印刷オブジェクトおよび前記第１の印刷オブジェクトから削除することを特徴とする請求項７に記載のプログラム。
【請求項１１】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されていると判定され、かつ、前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトのいずれかの描画順序を第３の印刷オブジェクトと入れ替えることで前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとが連続して記述されると判定されなかった場合には、前記同一のリソースから個別リソースを抽出し、
抽出した前記個別リソースを前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとから参照可能な形式で前記印刷データ中に登録し、登録した前記個別リソースを、前記第１の印刷オブジェクトおよび前記第１の印刷オブジェクトから削除することを特徴とする請求項９に記載のプログラム。
【請求項１２】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されている場合、前記第１の印刷オブジェクトまたは前記第２の印刷オブジェクトのいずれかが再利用されるオブジェクトであると判定された場合には、個別リソースを抽出し、前記個別リソースの登録及び削除を行うことを特徴とする請求項１１に記載のプログラム。
【請求項１３】
印刷データ処理装置の判定手段が、印刷データに記述された第１の印刷オブジェクトと第２の印刷オブジェクトとに同一のリソースが重複して記述されているかを判定する判定工程と、
前記判定工程により同一のリソースが重複して記述されていると判定された場合に、印刷データ処理装置のオブジェクト連結手段が、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとを連結し、前記第２の印刷オブジェクトから同一のリソースを削除するオブジェクト連結工程と
を有することを特徴とする印刷データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データの処理を行う印刷データ処理装置及び印刷データ処理方法、並びに、当該印刷データ処理方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【０００２】
近年、顧客一人ひとりのニーズにあったデータを印刷するバリアブル印刷（Ｖａｒｉａｂｌｅ Ｄａｔａ Ｐｒｉｎｔｉｎｇ、以後、ＶＤＰと略記する）の需要が拡大している。ＶＤＰでは、顧客一人分の印刷データを表す単位をレコードと呼ぶ。レコードはページの集合であり、ＶＤＰにはレコードごとに顧客に合わせた内容で印刷を行うことで印刷物の付加価値を高めるといった特徴がある。デジタル印刷におけるＶＤＰでは、ページ記述言語（以後、ＰＤＬと略記する）としてＰＰＭＬ、ＰＤＦ／ＶＴといった規格（ＶＤＰ言語）が策定されている。これらのＶＤＰ言語では、印刷データ中の画像を、複数回使用される再利用オブジェクトとそうでないオブジェクトに分類できる。これによって、再利用オブジェクトの画像データをキャッシュし、次に同じオブジェクトが描画されるときにキャッシュされた画像データを再利用できるように設計されている。再利用オブジェクトの画像データをキャッシュし再利用することで、印刷処理を高速化できることがＶＤＰ言語の特長である。例えば、ＶＤＰ言語のひとつであるＰＰＭＬでは、再利用オブジェクトをリユーザブルオブジェクト、そうでないオブジェクトをバリアブルオブジェクトと分類でき、それぞれに応じた印刷データ処理ができるように設計されている。
【０００３】
しかし、印刷データの構造によっては、ＶＤＰ言語を用いて記述された印刷データを印刷する場合に、ＶＤＰ言語ではないＰＤＬで印刷データを記述して印刷するよりも処理時間が大きくなってしまうことがある。このような問題は、印刷データが、データ中に含まれる複数の印刷オブジェクトで同一のリソースファイルを重複して処理する構造になっている場合に起こりうる。一例として、ＶＤＰ言語としてＰＰＭＬを用いる図１２を挙げて説明する。ＰＰＭＬでは、複数の異なるＰＤＬで記述された印刷オブジェクトを印刷データ中にコンテンツとして含めることができる。図１２では、コンテンツにＰｏｓｔＳｃｒｉｐｔ（登録商標。以後、ＰＳと略記する）を用いる場合を例にとり説明する。ＰＳでは印刷オブジェクトがリソースを使用することが可能である。ＰＳリソースにはフォント、コマンド定義の集合であるＰｒｏｃＳｅｔ、フォーム、カラープロファイル設定を表すカラーレンダリングなどの種類がある。ＰＰＭＬ印刷データ中に４つのＰＳオブジェクトがあり、それぞれのＰＳオブジェクトに同一のＰＳフォントファイル１が重複して独立に記述されているとする。この場合、ＰＰＭＬ印刷データを処理する際に、ＰＳフォントファイル１が記述された４回処理されてしまう。これに対して、同じ内容をＰＰＭＬではなくＰＳ印刷データとして記述した場合の例を図１３に示す。
【０００４】
図１３では、ＰＳフォントファイル１は初めに使用される１回のみ記述し、処理すればよい。このため、ＰＰＭＬを使用する場合のほうがＰＳフォントファイル１を処理する回数が多くなり、処理時間が長くかかってしまう。ＶＤＰ言語で記述された印刷データは短い処理時間で処理できるように設計されていることが特徴であるが、このような印刷データではＶＤＰ言語を用いるほうがかえって処理時間が長くかかってしまう。
【０００５】
この課題を解決するための手段として、特許文献１の先行技術がある。この特許文献には、異なるデジタル文書を結合する際、共通のリソースを削除してから結合することで結合後のファイルサイズを小さく抑える文書結合方法が記載されている。この先行技術を印刷データ処理に適用すると、結合後のファイルサイズを小さく抑えるだけでなく、印刷データの処理時間を短縮することが可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２７１０９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来の技術は、同一のリソースを使用する印刷オブジェクトが印刷データ中で連続して記述されている場合にしか適用できない。処理時間を短縮する対象の印刷オブジェクトが印刷データ中で連続して記述されているとは限らないため、印刷データ処理のさらなる効率化のためには、より広範囲に適用可能な方法が望ましい。
【０００８】
本発明は、上述の課題を解決するためになされたものである。本発明の目的は、複数の印刷オブジェクトに同一のリソースが重複して記述されている印刷データの処理において、重複したリソースの処理を軽減し、印刷データ処理時間が短くなる仕組みを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明は以下の構成を備える。すなわち印刷データ処理装置であって、
印刷データに記述された第１の印刷オブジェクトと第２の印刷オブジェクトとに同一のリソースが重複して記述されているかを判定する判定手段と、
前記判定手段により同一のリソースが重複して記述されていると判定された場合に、前記第１の印刷オブジェクトと前記第２の印刷オブジェクトとを連結し、前記第２の印刷オブジェクトから同一のリソースを削除するオブジェクト連結手段と
を備える。
【発明の効果】
【００１０】
本発明によれば、複数の印刷オブジェクトに同一のリソースが重複して記述されている印刷データの処理を行う際に、その処理装置の動作性能の低下を防ぎ、印刷データ処理にかかる時間を短くすることができる。その際、同一のリソースが重複して記述された印刷オブジェクトの記述順序によらず、処理時間の短縮を図ることが可能である。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例を説明するハードウェアブロック図
【図２】（Ａ）本発明の一実施例を説明するソフトウェアブロック図、（Ｂ）ＰＤＬインタプリタの詳細を説明するソフトウェアブロック図
【図３】ＰＰＭＬデータの印刷処理のフローチャート
【図４】実施例１におけるリソース処理時間短縮方法のフローチャート
【図５】実施例２におけるリソース処理時間短縮方法のフローチャート
【図６】実施例３における、リソース処理時間短縮方法の使い分けを示すフローチャート
【図７】実施例４における、リソース処理時間短縮方法の使い分けを示すフローチャート
【図８】印刷データ中の印刷オブジェクトの配置例を示す図
【図９】（Ａ）実施例１におけるＰＳオブジェクト１の構成を例示する図、（Ｂ）実施例１におけるＰＳオブジェクト２の構成を例示する図、（Ｃ）実施例１でＰＳオブジェクト１と２が連結された状態を例示する図
【図１０】印刷データの記述例を示す図
【図１１】印刷データの記述が改変された状態の一例を示す図
【図１２】ＰＰＭＬデータの一例を示す図
【図１３】ＰＳデータの一例を示す図
【発明を実施するための形態】
【００１２】
［実施形態１］
以下、本発明を実施するための最良の形態について図面を用いて説明する。図１は本実施例に適用される印刷データ処理装置であるプリンタ１００の構成を説明するハードウェアブロック図である。なお、本実施例では印刷データ処理装置単体の構成を用いて説明するが、ネットワークを介して接続させるホストコンピュータ上に多くの処理を分離実行させる構成も可能である。
【００１３】
図１において、２００はコントローラユニットで、画像信号やデバイス情報の入出力を制御する。ＣＰＵ１はＲＯＭ３あるいはＨＤＤ４に記憶されたプログラムをＲＡＭ２に読み出し、実行する。さらに、システムバス５に接続される各デバイスをＣＰＵ１が統括的に制御する。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークメモリとして機能する。ＲＯＭ３には電源ＯＮ時に実行されるブートプログラムが格納され、ＨＤＤ４にはオペレーティングシステムと本装置の制御プログラム本体が格納される。また、ＨＤＤ４は画像データや印刷データ等の大容量データを一時的あるいは長期的に保持する目的でも使用される。Ｎｅｔｗｏｒｋ６はローカルエリアネットワーク１１に接続し、プリンタ外部との印刷データやデバイス情報の入出力を担う。操作部Ｉ／Ｆ７は操作部１２とのインターフェース部で、操作部１２に表示する画像データを操作部１２に対して出力する。また、操作部Ｉ／Ｆ７は操作部１２から本装置の使用者が入力した情報を、ＣＰＵ１に伝える役割をする。操作部１２は、出力器として液晶パネルと音源を備え、入力器としてタッチパネルとハードキーを備えるものである。コントローラユニット２００はデバイスＩ／Ｆ８を介して、プリンタエンジン１３に接続される。デバイスＩ／Ｆ８はＣＰＵ１の指示に基づき、画像信号の送出、デバイス動作指示、デバイス情報の受信を行う。プリンタエンジン１３はコントローラユニット２００からの画像信号を媒体上に出力する出力機であり、電子写真方式、インクジェット方式の何れでも構わない。Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ（ＲＩＰ）９は中間プリントデータをラスタイメージに展開する専用ハードウェアである。ＲＩＰ９はＣＰＵ１によりＲＡＭ２上に生成された中間プリントデータを高速かつ、ＣＰＵ１の実行と並列に、処理するものである。プリンタ画像処理部１０は、プリント出力画像データに対して、画像補正、ハーフトーニング等を行う。画像圧伸部１４は、画像データの圧縮・伸張処理を行う。
【００１４】
＜印刷データ処理装置のソフトウェア構成＞
図２（Ａ）は印刷データ処理装置（プリンタ１００）のソフトウェアモジュール構成図である。図２（Ａ）に記載した各ソフトウェアモジュールは、プログラムとしてＨＤＤ４に格納され、ＲＡＭ２にロードされＣＰＵ１により実行されるものである。データ受信部２０１はホストから送信された印刷データを受信する。受信した印刷データはジョブ制御部２０２を介してジョブデータ管理部２０７で保持される。ジョブ制御部２０２はデータ受信から印刷までのジョブ制御の全般を司る。ＰＤＬインタプリタ２０３は印刷データを解釈して、中間データであるディスプレイリストを生成する。生成されたディスプレイリストはジョブ制御部２０２を介してジョブデータ管理部２０７で保持される。レンダラ２０４はディスプレイリストからビットマップイメージを生成するモジュールであり、多くの処理は専用ハードウェアＲＩＰ９により実行される。生成されたビットマップイメージはジョブ制御部２０２を介してジョブデータ管理部２０７で保持される。プリンタドライバ２０５はデバイスＩ／Ｆ８を介してプリンタエンジンへの印刷指示とビットマップイメージの送出を行う。ユーザインターフェース２０６は操作部Ｉ／Ｆ７を介して、操作部１４を制御するモジュールである。ユーザインターフェース２０６は主に操作部１４の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従い液晶パネルの表示を更新する。また、タッチパネルからの入力が何らかのジョブ実行指示であった場合は、ジョブ制御部２０２に指示を伝達する。ジョブデータ管理部２０７は印刷データ、ディスプレイリスト、ビットマップイメージのそれぞれを一時的もしくは長期的に保持管理するデータベースである。
【００１５】
＜ＰＤＬインタプリタの構成＞
図２（Ｂ）は図１のＰＤＬインタプリタ２０３をより詳細に記したソフトウェアモジュール構成図である。なお、本実施形態では印刷データに含まれるページ記述言語（ＰＤＬ）はＰＰＭＬであるとして説明するが、ＰＤＦ／ＶＴなど他のＶＤＰ言語のインタプリタを備える構成も可能である。また、本実施形態ではＰＰＭＬデータのコンテンツＰＤＬとしてＰｏｓｔＳｃｒｉｐｔ（登録商標。以後、ＰＳと略記する）、ＰＤＦ、ＪＰＥＧ、ＴＩＦＦの４種類であるとして説明するが、コンテンツＰＤＬの組み合わせはこれ以外を用いることも可能である。ＰＰＭＬインタプリタ２０８はＰＰＭＬデータの解釈を行う。ＰＳ／ＰＤＦインタプリタ２０９はＰＳデータおよびＰＤＦデータの解釈を行う。ＪＰＥＧ／ＴＩＦＦインタプリタ２１０はＪＰＥＧデータおよびＴＩＦＦデータの解釈を行う。また、ＰＳ／ＰＤＦインタプリタ２０９とＪＰＥＧ／ＴＩＦＦインタプリタ２１０はＤＬビルダ２１２により中間データであるディスプレイリストを出力する。キャッシュ制御部２１１は描画オブジェクトをビットマップイメージ、もしくはディスプレイリストの形式でキャッシュする。ＰＰＭＬデータで描画オブジェクトの再利用が指示された場合は、ＰＰＭＬインタプリタ２０８はキャッシュ制御部２１１と連動して描画オブジェクトの再利用を行う。
【００１６】
＜ＰＰＭＬデータの印刷処理＞
次に、ＰＰＭＬデータの印刷処理の概要を、図３のフローチャートを用いて説明する。なお、本説明では図２（Ａ）および（Ｂ）の各ソフトウェアモジュールによって実行されるように記述する。また、本フローチャートはＨＤＤ４に記憶された図２（Ａ）および（Ｂ）の各ソフトウェアモジュール内の各プログラムがＲＡＭ２に読み出され、ＣＰＵ１により実行されることにより実現される。
【００１７】
最初にＳ１００１において、データ受信部２０１がホストコンピュータよりネットワークを介して送信されたＰＰＭＬデータを受信し、ジョブ制御部２０２に対してジョブ投入通知を行う。そして、ジョブ制御部２０２は受信したＰＰＭＬデータをジョブデータ管理部２０７にスプールする。次にＳ１００２で、ジョブ制御部２０２はＰＰＭＬインタプリタ２０８に対してＰＰＭＬデータの解釈を指示する。ＰＰＭＬインタプリタ２０８は、ＰＰＭＬデータを解釈し、ＰＳ／ＰＤＦインタプリタ２０９、ＪＰＥＧ／ＴＩＦＦインタプリタ２１０、ＤＬビルダ２１２、キャッシュ制御部２１１と協調して中間データであるディスプレイリストを生成する。ジョブ制御部２０２は生成されたディスプレイリストをジョブデータ管理部２０７に一時的に保持する。次にＳ１００３にて、ジョブ制御部２０２は該ディスプレイリストをビットマップ化するようにレンダラ２０４に指示する。レンダラ２０４は、ＲＩＰ９を用いて該ディスプレイリストをビットマップイメージ化する。次にＳ１００４で、ジョブ制御部２０２は生成されたビットマップイメージを画像圧伸１１により圧縮し、ジョブデータ管理部２０７に一時的に保持する。なお、ビットマップ化が終了したディスプレイリストはジョブ制御部２０７により、ジョブデータ管理部２０７から削除される。次に、Ｓ１００５でジョブ制御部２０２はプリンタドライバ２０５にビットマップイメージのプリントエンジンへの送信を指示する。プリンタドライバ２０５はプリンタエンジン１５と同期を取りながらビットマップイメージを送信する。また、プリンタドライバ２０５は、送信する前に画像圧伸１１によりビットマップイメージの伸張処理を行う。プリンタドライバ２０５は、プリンタエンジン１５への送信が終了したビットマップイメージをジョブデータ管理部２０７から削除する。なお、Ｓ１００２からＳ１００５までの処理は全ページ分のデータに対する一括処理を行うようにも、ページ毎の逐次処理を行うようにも構成可能である。ページ毎の逐次処理を行うようにした場合は、Ｓ１００２からＳ１００５の処理はパイプライン化され、各処理は並列実行されるようになる。
【００１８】
＜オブジェクトの連結処理＞
本実施例におけるリソース処理時間の短縮方法について、図４を用いて説明する。この処理はＰＰＭＬ印刷データを解釈する処理中、すなわち図３のＳ１００２の中で行われる。なお、本実施例ではリソース処理時間を短縮する対象はＰＰＭＬ印刷データ中のＰＳオブジェクトであるとして説明するが、これ以外のＰＤＬで記述された印刷データおよび印刷オブジェクトを対象に処理の高速化を図ることも可能である。
【００１９】
まず、印刷データの中に同一のリソースを使用する印刷オブジェクトが複数あるかどうかを、Ｓ１１０１においてＰＰＭＬインタプリタ２０８がプレパースにより検知する。プレパースとは、印刷データの描画処理を開始する前に、印刷データのページ数やオブジェクトの配置など、印刷データ処理に必要な情報を収集する処理を指す。プレパースの結果、同一のリソースを使用する印刷オブジェクトが複数存在しない場合には、Ｓ１１０９に進み、印刷データに変更を加えることなく図３を用いて説明した描画処理を続行する。
【００２０】
次に、同一のリソースを使用する印刷オブジェクトが複数あった場合の処理について説明する。まず、着目したオブジェクトと同一のリソースファイルを使用するオブジェクトがあれば、それら着目オブジェクト群について、印刷オブジェクトが印刷データ中で連続して記述されているかどうかをＰＰＭＬインタプリタ２０８がＳ１１０３において判定する。連続して記述されていた場合、重複したリソースを削除してから印刷オブジェクトを連結する処理に進む。一例として、印刷データ中に図８のようなページ３０１がある場合を用いて説明する。図８のページ３０１には３つの印刷オブジェクトとして、ＰＳオブジェクト３０２（例えば第１の印刷オブジェクトと呼ぶ）、ＰＳオブジェクト３０３（例えば第２の印刷オブジェクトと呼ぶ）、ＪＰＥＧオブジェクト３０４がこの順に記述されているとする。さらに、ＰＳオブジェクト３０２とＰＳオブジェクト３０３に同一のリソースファイルであるＰＳリソースファイルＡが定義されているとする。図９（Ａ）にＰＳオブジェクト３０２の内容を例示する。本実施例では、ＰＳオブジェクト３０２には２つのＰＳデータであるＰＳリソースファイル４０１とＰＳコマンドファイル４０２とが含まれているとする。ＰＳリソースファイル４０１にはＰＳオブジェクト３０２の描画に必要なフォントやＰｒｏｃＳｅｔが記述されている。ＰＳコマンドファイル４０２にはＰＳリソースファイル４０１に定義されたリソースを用いてＰＳオブジェクト３０２の描画処理を行うためのＰＳコマンドが格納されている。図９（Ｂ）におけるＰＳオブジェクト３０３も同様にＰＳリソースファイル４０１とＰＳコマンドファイル４０３とを含んでいる。
【００２１】
図９に示したオブジェクトの例を用いて、Ｓ１１０３においてＰＰＭＬインタプリタ２０８がＰＳオブジェクト３０２とＰＳオブジェクト３０３とが連続して記述されていると判定した場合の処理を述べる。まず、ＰＰＭＬインタプリタ２０８がＳ１１０６においてＰＳオブジェクト３０３の内容からＰＳリソースファイル４０１を削除し、次に、Ｓ１１０７においてＰＰＭＬインタプリタ２０８がＰＳオブジェクト３０２とＰＳオブジェクト３０３とを連結する。Ｓ１１０６およびＳ１１０７の処理によって連結されたＰＳオブジェクト３０２およびＰＳオブジェクト３０３の状態を図９（Ｃ）に例示する。このように連結すれば、図９（Ｃ）におけるＰＳコマンドファイル４０２とＰＳコマンドファイル４０３とはともにＰＳリソースファイル４０１を参照することができる。したがって、図９（Ａ）および（Ｂ）のように別の印刷オブジェクトとして記述されていた場合と同じ描画内容を保ちながら、ＰＳリソースファイル４０１の処理回数を１回低減することができる。
【００２２】
対象の印刷オブジェクトが連続して記述されていなかった場合、処理Ｓ１１０４に進む。一例として、図８のページにある３つのオブジェクトの記述順序がＰＳオブジェクト３０２、ＪＰＥＧオブジェクト３０４、ＰＳオブジェクト３０３の順であるとする。この場合、ＰＳオブジェクト３０２とＰＳオブジェクト３０３には同一のＰＳリソースファイル４０１が定義されているが、印刷データ中で連続して記述されておらず、間にＪＰＥＧオブジェクト３０４が記述されているために連結して処理することができない。このような場合、処理Ｓ１１０４において、他の印刷オブジェクトと描画順序を入れ替えることで対象の印刷オブジェクトの記述を連続にできるかをＰＰＭＬインタプリタ２０８が判定する。図８に図示したように、ＪＰＥＧオブジェクト３０４とＰＳオブジェクト３０３の描画範囲は重複していないため、この２つの印刷オブジェクトの描画順序を入れ替えても最終的な描画結果に影響を与えない。加えて、この２つの印刷オブジェクトの描画順序を入れ替えてＰＳオブジェクト３０２、ＰＳオブジェクト３０３、ＪＰＥＧオブジェクト３０４の順にすれば、対象のＰＳオブジェクト３０２とＰＳオブジェクト３０３が連続して記述される。なお、ＪＰＥＧオブジェクト３０４は、例えば第３の印刷オブジェクトとする。この場合、Ｓ１１０５に進み、ＪＰＥＧオブジェクト３０２とＰＳオブジェクト３０３の順序を入れ替えるように印刷データを変更する。次に、すでに述べた処理Ｓ１１０６、Ｓ１１０７に進んでリソースファイルの削除と印刷オブジェクトの連結を行う。なおオブジェクトの描画順序（すなわちオブジェクトの記述順序）の入れ替えが可能であることを、オブジェクトの重複で判定するのは、オブジェクトが重複している場合、先に描画するオブジェクトを後に描画するオブジェクトで上書きすることがあるからである。重複部分の処理は、上になるオブジェクトの不透明度や重複部分の色の論理演算などにより様々であり、オブジェクトが重複していることのみをもってそれらを交換できないとはいえない。しかしながら、少なくとも重複していないオブジェクトであればその交換は可能であるから、処理の簡単化のために重複の有無を交換の可否の判定に用いることは有用である。
【００２３】
Ｓ１１０７において着目した同一のリソースファイルを使用する印刷オブジェクトの連結が終了するか、Ｓ１１０４において他の印刷オブジェクトと描画順序を入れ替えても連結したい印刷オブジェクトを連続して記述できないと判定された場合、Ｓ１１０８に進む。すなわち、これらの印刷オブジェクトに対してリソース処理時間の短縮化処理が完了したか、これらの印刷オブジェクトは連結することができないと判断された後、現在の着目オブジェクト群をプレパースの対象から外す。その後、プレパースの対象として残っている他の印刷オブジェクトで連結可能なものがないかを再度Ｓ１１０２において探索する。
【００２４】
Ｓ１１０３からＳ１１０８までの一連の処理を、Ｓ１１０２でＰＰＭＬインタプリタ２０８が同一のリソースファイルを使用する印刷オブジェクトがあると判定した回数だけ繰り返す。同一のリソースファイルを使用する印刷オブジェクトで連結可能なオブジェクトがなくなったら、Ｓ１１０９に進む。すなわち、本発明で提案する処理時間短縮のための手段を終了し、図３で説明した通常のＰＰＭＬ印刷処理を行う。
【００２５】
以上の手順により、共通のリソースファイルを使用する印刷オブジェクトのうち、連結により印刷結果に影響を及ぼさないものは連結される。
【００２６】
本実施例で説明した発明の効果を述べる。本実施例で説明した発明を実施することで、Ｓ１１０６において削除したリソースファイルの処理時間が不要になり、印刷データの処理時間が短縮できる。また、Ｓ１１０４およびＳ１１０５の処理が実行できた場合に、先行技術が適用できなかった印刷データ中で連続して記述されていない印刷オブジェクトに対しても処理時間の短縮を図ることができる。
【００２７】
［実施形態２］
本実施形態では、実施形態１とは異なるリソース処理時間の短縮方法を説明する。本実施例でも、実施形態１と同じくＰＰＭＬで記述された印刷データに対してＰＳリソースファイルの処理時間を短縮する場合を例にとり説明する。本実施形態で説明するリソース処理時間の短縮方法の概要を図５に示す。ここで、Ｓ１２０１とＳ１２０２はそれぞれ図４におけるＳ１１０１とＳ１１０２と同様であるから説明を省略する。
【００２８】
Ｓ１２０２において同一のリソースファイルを使用する印刷オブジェクトが複数存在すると判定された場合、Ｓ１２０３に進む。具体的には、リソースファイルのファイル名称を使って同一のファイル名称の有無を判定することによりＳ１２０２が実現される。ここでは実施形態１と同様、印刷データ中に図８のページ３０１があり、ＰＳオブジェクト３０２とＰＳオブジェクト３０３に同一のＰＳリソースファイル４０１が定義されていた場合を例にとり説明する。Ｓ１２０３において、ＰＰＭＬインタプリタ２０８とＰＳ／ＰＤＦインタプリタ２０９とが連動してＰＳリソースファイル４０１を解釈し、単一のリソースを抽出する。本実施形態では抽出されたリソースを個別リソースと呼ぶ。ＰＳリソースファイル４０１から個別リソースとして抽出されるのは単一のフォント、ＰｒｏｃＳｅｔ、フォームなど複数の個別リソースである。リソースファイルの中には単一のリソースのみが記述されているとは限らないため、抽出される個別リソースは複数となってもよい。ここではＰＳリソースファイル４０１から個別リソースとしてフォントＡ、フォントＢ、ＰｒｏｃＳｅｔ１の３つが抽出されたとして説明する。
【００２９】
次に、ＰＰＭＬインタプリタ２０８がＳ１２０４でこれらの個別リソースを登録するスコープを決定する。スコープとは、ＶＤＰにおいて再利用オブジェクトやリソースが持つ情報で、各再利用オブジェクトやリソースが有効である範囲を指す。ＰＰＭＬで記述された印刷データでは、スコープをジョブ全体、特定のレコード、特定のページなどから選択することができる。例えば、あるリソースＡのスコープが５ページ目となっている場合、５ページ目に配置された全ての印刷オブジェクトがリソースＡを参照可能であり、５ページ目以外に配置された印刷オブジェクトからはリソースＡを参照することができない。なお、スコープは、リソースファイルが取り出された印刷オブジェクトに基づいて決定される。例えば、ページ３０１に配置される印刷オブジェクト３０２と３０３からリソースファイルが取り出された場合、そのリソースファイルのスコープはページ３０１のみとなる。また、第１レコードとして処理される第１ページに配置される印刷オブジェクト３０２と第２ページに配置される印刷オブジェクト３０３とからリソースファイルが取り出された場合、そのリソースファイルのスコープは第１レコードとなる。また、第１レコードとして処理される第１ページの印刷オブジェクト３０２と第２レコードとして処理される第２ページの印刷オブジェクト３０３とからリソースファイルが取り出された場合、そのリソースファイルのスコープは印刷ジョブ全体となる。つまり、ひとつのリソースを共通に利用する複数のオブジェクトが描画されるページを、当該リソースのスコープと決定する。なお、ここでは、ページ３０１に配置される印刷オブジェクト３０２と３０３からリソースファイルが取り出された場合を想定しているので、ＰＰＭＬインタプリタ２０８が３つの個別リソースを登録するスコープをすべてページ３０１と決定したとする。
【００３０】
スコープの決定がなされた後、Ｓ１２０５において、ＰＰＭＬインタプリタ２０８がＳ１２０３で抽出した個別リソースをＳ１２０４で決定したスコープに登録する。なお、リソースの登録は、ＰＰＭＬインタプリタ２０８が印刷データを改変することで実行する。続いて、Ｓ１２０６において、ＰＰＭＬインタプリタ２０８がＳ１２０２で検出された印刷オブジェクトからＳ１２０３で解釈されたリソースファイルを削除する。ＰＰＭＬで記述された印刷データの改変方法を図１０および図１１を用いて説明する。まず、図８におけるページ３０１のＰＰＭＬ印刷データ中の記述例を図１０に示す。図１０のＰＳオブジェクト５０１、ＰＳオブジェクト５０２、ＪＰＥＧオブジェクト５０３がそれぞれ図８のＰＳオブジェクト３０２、ＰＳオブジェクト３０３、ＪＰＥＧオブジェクト３０４の記述に対応する。ＰＳオブジェクト５０１および５０２に記載したように、ＰＳオブジェクト３０２とＰＳオブジェクト３０３とには同一のＰＳリソースファイル４０１（ＰＳリソースＡ）が含まれている。次に、Ｓ１２０５およびＳ１２０６で個別リソースの登録とリソースファイルの削除が行われた後の印刷データの記述例を図１１に示す。ここで、６０１が登録された個別リソースの記述である。個別リソースとして抽出されたフォントＡ、フォントＢ、ＰｒｏｃＳｅｔ１の３つが、ＰＳオブジェクト４０１とＰＳオブジェクト４０２から参照できる形式で登録されている。なお、Ｓ１２０４において個別リソースを登録するスコープはページ３０１であると決定されたため、個別リソースはこのページ３０１のタグ内の先頭に記述されている。また、ＰＳオブジェクト６０２およびＰＳオブジェクト６０３は、それぞれＰＳオブジェクト５０１，５０２からリソースファイル４０１を削除した後のＰＳオブジェクトに対応する。ＪＰＥＧオブジェクト５０３は操作されずにそのまま残っている。
【００３１】
このようにリソースファイルを個別リソースに分解して登録しなおすことで、印刷オブジェクトが実際に個別リソースを使用する段になってはじめて処理を行うことが可能になる。例えば、抽出された個別リソースであるフォントＡ、フォントＢ、ＰｒｏｃＳｅｔ１のうち、ＰＳオブジェクト１ではフォントＡとフォントＢが、ＰＳオブジェクト２ではフォントＢとＰｒｏｃＳｅｔ１が使用されていたとする。この場合、本実施例で説明した手段を適用しなければ、ＰＳオブジェクト１およびＰＳオブジェクト２の処理において３つの個別リソースの処理がそれぞれのオブジェクトについて行われる。一方、本実施形態を適用すると、ＰＳオブジェクト１の処理ではフォントＡとフォントＢのみを、ＰＳオブジェクト２の処理ではフォントＢとＰｒｏｃＳｅｔ１のみを処理すればよくなる。すなわち、ＰＳオブジェクト１の処理において不要なＰｒｏｃｓｅｔ１の解釈が実行されず、ＰＳオブジェクト２の処理において不要なフォントＡの解釈が実行されない。その結果、本実施例で説明した手段を適用しない場合と比較してフォントＡとＰｒｏｃＳｅｔの処理が１回ずつ軽減され、処理時間が短縮できる。
【００３２】
本実施例で説明した発明の効果は次の通りである。本実施例で説明した手段を実施すると、印刷オブジェクトが個別リソースを使用する際にのみリソースの処理を行うことが可能になり、印刷オブジェクトが使用しない個別リソースの処理時間を短縮することができる。また、実施形態１で説明した手段では印刷オブジェクトの連結ができない場合があり、その場合には処理時間の短縮効果がなかったが、本実施形態で説明した発明にはそのような制限がない。すなわち、本実施形態で説明した発明は、実施形態１で説明した発明よりも広範囲に適用可能である。
【００３３】
［実施形態３］
本実施例では、実施形態１および２で説明したリソース処理時間の短縮方法を組み合わせて用いる方法を説明する。
【００３４】
実施形態１で説明したリソース処理の短縮化処理は、リソースファイルの処理そのものを省略できるという長所があったが、オブジェクトの連結ができない場合には適用できないという制限があった。一方、実施形態２で説明したリソース処理の短縮化処理は任意のオブジェクトに適用可能であるという長所があるが、個別リソースの抽出処理にかかる時間を省略できないという制限がある。したがって、実施形態１および２で説明した手段のいずれか一方のみを用いるより、これらの手段を組み合わせて用いたほうがより高い効果が見込める場合がある。
【００３５】
本実施形態では、実施形態１と実施形態２それぞれにおけるリソース処理の短縮化処理の組み合わせ、その例を、図６のフローチャートに沿って説明する。図６においてＳ１３０１およびＳ１３０２は実施形態１で述べた処理と同じであるため、説明を省略する。次に、オブジェクト連結処理Ｐ０１に進む。この処理は、図４のＰ０１、すなわちＳ１１０３、Ｓ１１０４、Ｓ１１０５、Ｓ１１０６、Ｓ１１０７を実行する処理に等しい。つまり本方法では、リソース処理時間を短縮したい印刷オブジェクトに対して、実施例１で説明した手段を優先して適用する。ただし、Ｓ１１０４で「Ｎｏ」と判定された場合にはオブジェクトを連結できなかった旨を記憶しておき、Ｐ０１の処理を抜ける。また、Ｓ１１０７でオブジェクトを連結した場合には、オブジェクトを連結できた旨を記憶しておき、Ｐ０１の処理を抜ける。次に、Ｓ１３０３においてＰＰＭＬインタプリタ２０８がＰ０１でオブジェクトを連結できたかどうか、すなわち、図４における処理Ｓ１１０７が実行されたか、それともＳ１１０４の判定の結果、オブジェクトを連結できないと判断されたかを判定する。オブジェクトを連結できた場合、Ｓ１３０４、Ｓ１３０２と進み、他の印刷オブジェクトでリソース処理を短縮できないか探索を行う。この部分も実施例１で既に記述されているため説明を省略する。
【００３６】
Ｓ１３０３でオブジェクトが連結されていないと判定された場合、Ｓ１３０２で見つかった印刷オブジェクトに対してはまだリソース処理時間の短縮ができていない。そのため、Ｐ０２に進み、実施形態２において説明した図５の処理Ｐ０２（Ｓ１２０３、Ｓ１２０４、Ｓ１２０５、Ｓ１２０６を指す）を実行することで処理時間の短縮を図る。
【００３７】
このような処理構成を備えれば、適用範囲が狭いが高い効果が見込める実施形態１の手段を先に実行し、適用できなかった場合に実施形態２の手段を実行することができる。その結果、実施形態１および２で説明したリソース処理時間の短縮化処理のいずれか一方のみを実施するより高い効果を見込める。
【００３８】
［実施形態４］
本実施例では、実施形態３と同様、実施形態１および２で説明したリソース処理時間の短縮方法を組み合わせて用いる方法を説明する。
【００３９】
本実施例で説明する方法の概略を表すフローチャートを図７に示す。実施形態３で説明した方法との差異は、Ｓ１４０３において、Ｓ１４０２で見つかったオブジェクトがすべて再利用しないオブジェクトであるかをＰＰＭＬインタプリタ２０８が判定する処理が追加されている点である。
【００４０】
このＳ１４０３の定処理により、リソース処理時間の短縮方法は次のように使い分けられる。すなわち、Ｓ１４０２で見つかったオブジェクトがすべて再利用しないオブジェクトであれば、Ｐ０１でオブジェクトの連結処理を実行する。Ｐ０１でオブジェクトが連結できなかった場合、およびＳ１４０２で見つかったオブジェクトの中に再利用オブジェクトがあった場合には、Ｐ０２のリソース登録処理を適用する。
【００４１】
本実施例で説明した処理構成による効果は以下の通りである。印刷データ処理装置１００がバリアブル印刷データを処理する際、再利用オブジェクトに対しては画像データをＲＡＭ２やＨＤＤ４にキャッシュし、該当オブジェクトが２回目以降に描画される際に再利用することで処理の高速化を図る場合がある。このとき、再利用オブジェクトに他の印刷オブジェクトが連結されていると、キャッシュする画像データに余分なデータが含まれるなどの不都合が生じることがある。本実施例ではこのような場合を鑑み、再利用オブジェクトに対しては実施形態１で述べたオブジェクト連結処理を行わない。これにより、従来の再利用オブジェクトに対するキャッシュデータの作成と再利用に影響を与えずにリソース処理時間の短縮を図ることができる。
【００４２】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012240344.tif 000003
【図２】
2012240344.tif 000004
【図３】
2012240344.tif 000005
【図４】
2012240344.tif 000006
【図５】
2012240344.tif 000007
【図６】
2012240344.tif 000008
【図７】
2012240344.tif 000009
【図８】
2012240344.tif 000010
【図９】
2012240344.tif 000011
【図１０】
2012240344.tif 000012
【図１１】
2012240344.tif 000013
【図１２】
2012240344.tif 000014
【図１３】
2012240344.tif 000015