(57)【要約】【課題】アプリケーションの機能に依存せず、ユーザから要求される出力用紙サイズ，ページ数等の印刷条件を満たす印刷を実行し得るプリンタドライバプログラムを提供する。【解決手段】印刷装置と印刷システムを構成する所定の機器にインストールされ、該印刷装置を制御するプリンタドライバプログラムにおいて、印刷コマンドを有するアプリケーションプログラムから印刷ジョブデータを受け取る受取り機能と、受け取った印刷ジョブデータを解析し、該印刷ジョブデータに含まれる個々のオブジェクトを識別する識別機能と、出力用紙サイズに基づき決まる印刷可能な領域上で、各オブジェクトが配置される位置を計算する計算機能と、上記印刷可能な領域内に上記オブジェクトが収まるように、該オブジェクトを編集する編集機能とをもたせる。【選択図】　図７
2004054894.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置と印刷システムを構成する所定の機器にインストールされ、該印刷装置を制御するプリンタドライバプログラムにおいて、
アプリケーションプログラムから受け取った印刷ジョブデータに対応するページ記述言語データを解析し、該ページ記述言語データに含まれる個々のオブジェクトを識別する識別機能と、
少なくとも所定の出力用紙サイズ及びページ数に基づいて、その上にオブジェクトが配置されるデバイスコンテクストの領域を計算する計算機能と、
計算されたデバイスコンテクストの領域内に上記オブジェクトが収まるように、該オブジェクトを編集する編集機能とを有することを特徴とするプリンタドライバプログラム。
【請求項２】
上記編集機能が、個々のオブジェクト毎の編集を可能とする機能を有することを特徴とする請求項１記載のプリンタドライバプログラム。
【請求項３】
印刷装置と印刷システムを構成する所定の機器にインストールされ、該印刷装置を制御するプリンタドライバプログラムにおいて、
印刷コマンドを有するアプリケーションプログラムから印刷ジョブデータを受け取る受取り機能と、
受け取った印刷ジョブデータを解析し、該印刷ジョブデータに含まれる個々のオブジェクトを識別する識別機能と、
出力用紙サイズに基づき決まる印刷可能な領域上で、各オブジェクトが配置される位置を計算する計算機能と、
上記印刷可能な領域内に上記オブジェクトが収まるように、該オブジェクトを編集する編集機能とを有することを特徴とするプリンタドライバプログラム。
【請求項４】
更に、各オブジェクトを編集した後、編集されたデータをページ記述言語データに変換する変換機能を有することを特徴とする請求項３記載のプリンタドライバプログラム。
【請求項５】
更に、上記印刷ジョブデータを受け取った後、該印刷ジョブデータをページ記述言語に変換する変換機能を有しており、変換されたページ記述言語データに対して、上記編集機能が実行されることを特徴とする請求項３又は４に記載のプリンタドライバプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷ジョブデータを編集するプリンタドライバプログラムに関する。
【０００２】
【従来の技術】
従来、プリントデータ処理システムの分野では、印刷ジョブデータの出力倍率を変更することによって指定された出力用紙サイズに合せて印刷する技術（例えば特許文献１参照）、若しくは、マークアップ言語（以下、ＭＬ：Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅという）ソース編集用ユーザインターフェースをもつアプリケーションを用いて、ユーザ自身が編集し指定された出力用紙サイズに合せて印刷する技術（例えば特許文献２参照）が提案されている。
【０００３】
【特許文献１】
特開平１１−１９１５０５７号公報
【特許文献２】
特開２０００−３３０９０８号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のプリントデータ処理システムでは、ページ・文字・図の調整等のレイアウトの詳細設定・変更を行う手段を有しておらず、そのプリントデータを編集する機能がないアプリケーションから印刷した場合には、指定の印刷範囲が出力用紙サイズ内に印刷不可能であるという問題があった。
【０００５】
本発明は、上記技術的課題に鑑みてなされたもので、アプリケーションの機能に依存せず、ユーザにより指定された印刷範囲を所定の出力用紙サイズに対応させて、正確な印刷作業を実行し得るプリンタドライバプログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
本願の請求項１に係る発明は、印刷装置と印刷システムを構成する所定の機器にインストールされ、該印刷装置を制御するプリンタドライバプログラムにおいて、アプリケーションプログラムから受け取った印刷ジョブデータに対応するページ記述言語データを解析し、該ページ記述言語データに含まれる個々のオブジェクトを識別する識別機能と、少なくとも所定の出力用紙サイズ及びページ数に基づいて、その上にオブジェクトが配置されるデバイスコンテクストの領域を計算する計算機能と、計算されたデバイスコンテクストの領域内に上記オブジェクトが収まるように、該オブジェクトを編集する編集機能とを有することを特徴としたものである。
【０００７】
また、本願の請求項２に係る発明は、請求項１に係る発明において、上記オブジェクトを編集する機能が、個々のオブジェクト毎の編集を可能とする機能を有することを特徴としたものである。
【０００８】
更に、本願の請求項３に係る発明は、印刷装置と印刷システムを構成する所定の機器にインストールされ、該印刷装置を制御するプリンタドライバプログラムにおいて、印刷コマンドを有するアプリケーションプログラムから印刷ジョブデータを受け取る受取り機能と、受け取った印刷ジョブデータを解析し、該印刷ジョブデータに含まれる個々のオブジェクトを識別する識別機能と、出力用紙サイズに基づき決まる印刷可能な領域上で、各オブジェクトが配置される位置を計算する計算機能と、上記印刷可能な領域内に上記オブジェクトが収まるように、該オブジェクトを編集する編集機能とを有することを特徴としたものである。
【０００９】
また、更に、本願の請求項４に係る発明は、請求項３に係る発明において、各オブジェクトを編集した後、編集されたデータをページ記述言語データに変換する変換機能を有することを特徴としたものである。
【００１０】
また、更に、本願の請求項５に係る発明は、請求項３又は４に係る発明において、上記印刷ジョブデータを受け取った後、該印刷ジョブデータをページ記述言語に変換する変換機能を有しており、変換されたページ記述言語データに対して、上記編集機能が実行されることを特徴としたものである。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態について、添付図面を参照しながら説明する。
実施の形態１．
図１は、本発明の実施の形態１に係るプリンタドライバプログラム（以下、プリンタドライバという）に基づき印刷ジョブデータ処理が制御される印刷システムを示すブロック図である。この印刷システム１は、パーソナルコンピュータ（以下、ＰＣという）１０と、ＰＣ１０から送信されてきたジョブデータを印刷プリントとして出力するプリンタ２０とにより構成されている。
【００１２】
ＰＣ１０は、基本ソフトウェアであるオペレーティングシステム（以下、ＯＳという）に基づきＰＣ本体のシーケンス制御を行うＣＰＵ１１と、ＰＣ１０の起動時に実行されるプログラム等を記録するＲＯＭ１２と、プログラムの実行に必要なワークエリアのバッファエリアとして利用されるＲＡＭ１３と、ＯＳやアプリケーションプログラム（以下、アプリケーションという）や各種のデータを格納するハードディスク（図中の「ＨＤ」）１４と、プリンタ２０との間で各種データの送受信を行なうためのインターフェース部（図中の「Ｉ／Ｆ」）１５とを有している。また、特に図示しないが、ＰＣ１０は、例えば、アプリケーション画面等の各種の情報を視覚的に表示し得るモニタディスプレイ，ＣＤ−ＲＯＭドライブ，フロッピー（登録商標）ディスクドライブ、若しくは、キーボードやマウス等の入力装置等の構成を有している。
【００１３】
ＰＣ１０では、ＯＳにより例えば画面の表示や文書の保存などの各種の機能が提供されるようになっており、ＯＳは、その中核部分であるカーネルとは切り離して所定のハードウェアを制御し得るソフトウェア形態のデバイスドライバを複数有している。これらデバイスドライバの１つとして、ＰＣ１０側でジョブデータの出力先であるプリンタ２０を認識するために、各種の印刷条件の設定及びプリンタ制御が可能であるプリンタドライバプログラム（以下、プリンタドライバという）がインストールされている。プリンタドライバは、一般的に、プリンタ本体販売時に同梱されているＣＤ−ＲＯＭ１７又はフロッピー（登録商標）ディスク１８等の外部記録媒体より、ＰＣ１０にインストールされる。
【００１４】
他方、プリンタ２０は、プリンタ本体のシーケンス制御を行うＣＰＵ２１と、ＣＰＵ２１によるシーケンス制御についてのプログラムを記録するＲＯＭ２２と、プログラムに必要なワークエリアやＰＣ１０から送信されてきたジョブデータのバッファエリアとして利用されるＲＡＭ２３と、ＰＣ１０との間で各種データの送受信を行なうためのインターフェース部（図中の「Ｉ／Ｆ」）２４と、ジョブデータに基づき用紙に対して印刷を実行する印刷部２５と、例えば色空間変換や２値化処理等の各種データ処理を行なうデータ処理部２６とを有している。
【００１５】
図２は、実施の形態１に関した、ＰＣ１０側での印刷対象となるデータ（印刷ジョブデータ）のプリンタドライバを用いて実行される出力処理を概念的に示す図である。ここに取り上げるアプリケーション（図中の「アプリケーションＳ／Ｗ」）３０は、例えばＷＥＢブラウザ等のページ概念のないアプリケーションであって、ページ，文字及び図の調整等のページレイアウトの詳細な設定や変更を可能とする手段を有していないものとする。
【００１６】
画像を印刷するための印刷コマンドを有するアプリケーション３０で処理され、モニタディスプレイ（不図示）上に表示される情報データに関して、ユーザが印刷を指示すると、まず、印刷ジョブデータがＯＳに渡され、ＯＳの中核部分であるカーネルによりジョブデータに基づいた中間データが作成される。この中間データは、その直後に用いられるプリンタドライバ４０の能力に合せて作成される。その後、中間データはプリンタドライバ４０へ供給される。特に図示しないが、これに伴い、モニタディスプレイ上には、従来知られるように、プリンタドライバによるＧＵＩ画面が表示され、このＧＵＩ画面では、印刷に関する各種パラメータ（出力用紙サイズ等）のユーザ設定が可能である。
【００１７】
図２では、プリンタドライバ４０が複数のハードウェア的なブロックで示されるが、これらのブロックは、それぞれ、プリンタドライバ４０により実行される各種のプログラム機能をあらわしている。この実施の形態１においては、プリンタドライバ４０が、その基本的な機能として、スプーラ機能，ＰＤＬ（Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ：ページ記述言語）作成機能，ＰＤＬ最適化機能，ポート制御機能を有している。更に、ＰＤＬ最適化機能は、ＰＤＬ解析機能，最適化計算機能，ＰＤＬ変更機能から構成される。以下、これら各機能を実行するスプーラ４１，ＰＤＬ作成部４２，ＰＤＬ最適化部４３，ポート制御部４４，ＰＤＬ解析部４３ａ，最適化計算部４３ｂ，ＰＤＬ変更部４３ｃ等のハードウェア的な構成を仮定して説明する。
【００１８】
かかるプリンタドライバ４０では、まず、供給されてきた中間データが、スプーラ４１によって、ＲＡＭ１３やハードディスク１４等の記憶装置に一時的に格納される。次に、記憶装置に格納された中間データが、ＰＤＬ作成部４２によって読み込まれ、ＰＤＬデータに変換される。変換後のＰＤＬデータは、中間データと同様に、ＲＡＭ１３やハードディスク１４等の記憶装置に一時的に格納される。
【００１９】
続いて、ＰＤＬデータが、ＰＤＬ最適化部４３によって、指定された出力用紙サイズ内にオブジェクトが収まるように最適化される。より詳しくは、まず、記憶装置に格納されたＰＤＬデータが、ＰＤＬ解析部４３ａによって読み込まれ、解析される。図３を参照して後述するように、この解析により、印刷ジョブデータに含まれる個々のオブジェクトについての情報（以下、オブジェクト情報という）が調査される。オブジェクト情報としては、例えば指定された出力用紙サイズ内でオブジェクトがどの位置に描画されるか等の情報が取得される。
【００２０】
更に、最適化計算部４３ｂによって、オブジェクト情報と、指定された出力用紙サイズ／ページ数／最適化の対象となるオブジェクト（図中の「最適化有効オブジェクト」）等の情報とに基づき、どのオブジェクトをどのように変更すれば、指定された出力用紙サイズ内にそのオブジェクトが収まるかが計算される。その計算の結果をもとに、ＰＤＬ変更部４３ｃによって、ＰＤＬデータが変更される。変更後のＰＤＬデータは、ＲＡＭ１３やハードディスク１４等の記憶装置に格納される。その後、記憶装置に格納された変更後のＰＤＬデータは、ポート制御部４４へ送られ、Ｉ／Ｆ１５（図１参照）経由で、プリンタ２０へ出力される。
【００２１】
図３は、ＰＤＬ解析部４３ａにより実行されるＰＤＬ解析処理のフローチャートである。このＰＤＬ解析処理では、まず、ＰＣ１０のＲＡＭ１３やハードディスク１４等の記憶装置上に、デバイスコンテクストが作成される（Ｓ５１）。このデバイスコンテクストとは、その上に各種のオブジェクトが配置されるキャンバスの作用をなし得るもので、ここには、モニタディスプレイやプリンタ上でのテキスト及びグラフィックスの体裁を管理するオブジェクトに関して、ＧＤＩ（グラフィカル・デバイス・インターフェース）により情報が格納される。デバイスコンテクストの作成後、記憶装置に格納されたＰＤＬデータが読み込まれる（Ｓ５２）。ＰＤＬデータには、オブジェクトの識別子や個々のオブジェクトがどのように描画されるべきか等をあらわすパラメータが含まれており、ＰＤＬデータの読込みに伴い、これらのオブジェクトの識別子及び各種パラメータが識別される（Ｓ５３）。
【００２２】
識別されたオブジェクトの識別子及び各種パラメータに基づき、オブジェクトがデバイスコンテクスト上に描画される（Ｓ５４）。続いて、取得されたオブジェクトがデバイスコンテクスト上のどこに描画されたか等のオブジェクト情報が、オブジェクト情報テーブルに追加される（Ｓ５５）。その後、次のオブジェクトがあるか否かが判断され（Ｓ５６）、次のオブジェクトがある場合には、Ｓ５３へ戻り、それ以降の処理が繰り返される。他方、次のオブジェクトがない場合には、処理が終了される。
【００２３】
図４は、ＰＤＬ解析処理についての具体的な説明図である。ＰＤＬ解析処理では、まず、前述したように、その上に各種のオブジェクトが配置されるデバイスコンテクスト６４が作成される。デバイスコンテクスト６４の作成後、ＰＤＬデータが読み込まれる。ＰＤＬ解析部４３ａは、コマンドで記述されたＰＤＬデータをドットのデータに変換し得るＲＩＰ（Ｒａｓｔｅｒ　Ｉｍａｇｅ　Ｐｒｏｃｅｓｓｏｒ）機能を有しており、ＲＩＰ機能部６２を介して、ＰＤＬデータから各種のオブジェクトが取得され、順次、デバイスコンテクスト６４上に配置される。
【００２４】
ＰＤＬデータは、図４に示すように、文字列，ビットマップ（Ｂｉｔｍａｐ），四角形，円弧等の各種のオブジェクトを含むものである。ＲＩＰ機能部６２は、オブジェクトの取得と同時に、ＰＤＬデータに含まれるオブジェクトの識別子及びパラメータを識別することが可能である。取得された各種のオブジェクトは、これらオブジェクトの識別子及びパラメータに基づき、デバイスコンテクスト６４上の所定位置に描画される。
【００２５】
また、このＰＤＬ解析処理に応じて、例えばＲＡＭ１３やハードディスク１４等の記憶装置上には、各種オブジェクトの情報を格納するオブジェクト情報テーブル６３が設定される。そして、１つのオブジェクトの描画に伴い、そのオブジェクトがデバイスコンテクスト６４上のどこに描画されたか等の情報が、オブジェクト情報テーブル６３に追加され、格納される。ＰＤＬデータに含まれる全てのオブジェクトについての上記の処理が終了すると、その上に各種のオブジェクトが配置されたデバイスコンテクスト６４が取得される。
【００２６】
ＰＤＬ解析部４３ａにて取得されたデバイスコンテクスト６４は、最適化計算部４３ｂに送られ、このデバイスコンテクスト６４に関する最適化計算が実行される。図５は、最適化計算部４３ｂにより実行される最適化計算処理のフローチャートである。この最適化計算処理では、まず、最適化に関連する最適化パラメータ情報が取得される（Ｓ７１）。この最適化パラメータ情報とは、出力用紙サイズ，ページ数及び最適化処理が必要なオブジェクト（図中の「最適化有効オブジェクト」。）等の情報を含むもので、これらの情報は、例えばＰＣ１０のモニタディスプレイ上に表示されるＧＵＩ画面を介してユーザが入力することができる。
【００２７】
続いて、出力用紙サイズに対応するデバイスコンテクスト６６（図６参照）の領域が計算される（Ｓ７２）。次に、オブジェクト情報テーブル６３から最適化有効オブジェクトが抽出される（Ｓ７３）。その後、Ｓ７３にて抽出されたオブジェクトが、Ｓ７２にて計算されたデバイスコンテクスト６６の領域内に描画されているか否かが判定される（Ｓ７４）。デバイスコンテクスト６６の領域内に描画されていると判定された場合には、直接にＳ７６へ進み、他方、デバイスコンテクスト６６の領域外に描画されていると判定された場合には、オブジェクトが領域内に収まるようにオブジェクト情報が変更された上で（Ｓ７５）、Ｓ７６へ進む。その後、全抽出オブジェクトについて、Ｓ７４での判定が終了したか否かの判定がなされる。ここで、終了していないと判定された場合には、Ｓ７３へ進み、それ以降の処理を繰り返す。他方、終了したと判定された場合には、処理が終了される。
【００２８】
図６は、最適化計算処理についての具体的な説明図である。ここでは、元のデバイスコンテクスト上に含まれる「ビットマップ」が、出力用紙サイズに対応するデバイスコンテクストへの変更に応じて最適化される例を取り上げる。最適化処理においては、出力用紙サイズに対応してデバイスコンテクスト６６の領域が計算され、図６に示すように、初期に設定されたデバイスコンテクスト６４が、デバイスコンテクスト６６に変更される。デバイスコンテクスト６４は、座標（０，０，２７０，３５７）で規定される領域を有し、また、デバイスコンテクスト６６は、Ａ４の出力用紙サイズに対応し、座標（０，０，２１０，２９７）で規定される領域を有するものとする。なお、座標をあらわす数値の単位は、ミリメートル（ｍｍ）である。この変更によって、元のデバイスコンテクスト６４の領域内に収まっていた、座標（３０，１２０，２４０，２４０）で規定される描画領域を有するビットマップ６５（図中の「Ｂｉｔｍａｐ（１）」）が、変更後のデバイスコンテクスト６６の領域内に収まらなくなる。
【００２９】
これに応じて、ビットマップ６５の描画領域について最適化がなされ、変更後のデバイスコンテクスト６６の領域内に収まるビットマップ６７（図中の「Ｂｉｔｍａｐ（１））が得られる。このビットマップ６７は、座標（３０，１２０，２０５，２１３）で規定される領域を有するものである。この後、オブジェクト情報テーブル６３には、ビットマップの描画領域についての変更情報が追加される。
【００３０】
ここでは、縦横均等な縮小率で縮小が行われたが、これに限定されることなく、縦横毎に異なる縮小率が用いられてもよい。また別に、例えば座標（１００，５０，２５０，２５０）により規定される描画領域が、座標（５０，５０，２００，２５０）を有するように、画像自体の大きさを変えずに移動させられてもよい。なお、この場合には、移動先の領域に、他の画像データがないことが前提となる。
【００３１】
また、元のデバイスコンテクスト６４が出力用紙サイズに収まらない、すなわち、計算により得られるデバイスコンテクスト６６の領域が、元のデバイスコンテクスト６４の領域よりも小さくなる例が取り上げられたが、これに限定されることなく、デバイスコンテクスト６６の領域は、出力用紙サイズに応じて、元のデバイスコンテクスト６４の領域より大きくなることも可能である。
【００３２】
以上のように、出力用紙サイズに対応してＰＤＬデータの最適化処理を実行する機能をプリンタドライバ４０（図２参照）にもたせることにより、ページ・文字・図の調整等のレイアウトの詳細設定・変更を行う手段を有していないアプリケーション、若しくは、そのプリントデータを編集する機能をもたないアプリケーションが用いられた場合にも、ユーザにより指定された印刷範囲を正確に印刷することができる。
【００３３】
次に、本発明の別の実施の形態について説明する。なお、以下では、上記実施の形態１における場合と同じものについては、同一の符号を付し、それ以上の説明を省略する。
実施の形態２．
前述した実施の形態１では、アプリケーション３０から渡されたデータが、ＰＤＬデータに変換された後に、最適化処理が施される例が取り上げられたが、かかる最適化処理に際しては、特にテキストや表からなるオブジェクトの縮小や移動が容易に可能である。これに対して、実施の形態２では、特に画像データ（ビットマップデータ）からなるオブジェクトの縮小や移動を容易に可能とする例を取り上げる。
なお、この実施の形態２に係る印刷システムの構成は、上記実施の形態１について参照した図１に示すものと同じであり、それ以上の説明を省略する。
【００３４】
図７は、実施の形態２に関した、ＰＣ１０側での印刷対象となるデータ（印刷ジョブデータ）のプリンタドライバを用いて実行される出力処理を概念的に示す図である。画像を印刷するための印刷コマンドを有するアプリケーション３０で処理され、モニタディスプレイ（不図示）上に表示される情報データに関して、ユーザが印刷を指示すると、まず、印刷ジョブデータがＯＳに渡され、ＯＳの中核部分であるカーネルによりジョブデータに基づいた中間データが作成される。この中間データは、その直後に用いられるプリンタドライバ７０の能力に合せて作成される。その後、中間データはプリンタドライバ７０へ供給される。特に図示しないが、これに伴い、モニタディスプレイ上には、プリンタドライバ７０によるＧＵＩ画面が表示され、このＧＵＩ画面では、印刷に関する各種パラメータ（出力用紙サイズ等）のユーザ設定が可能である。
【００３５】
図７では、プリンタドライバ７０が複数のハードウェア的なブロックで示されるが、これらのブロックは、それぞれ、プリンタドライバ７０により実行される各種のプログラム機能をあらわしている。この実施の形態２においては、プリンタドライバ７０が、その基本的な機能として、スプーラ機能，中間データ最適化機能，ＰＤＬ作成機能，ポート制御機能を有している。更に、中間データ最適化機能は、中間データ解析機能，最適化計算機能，中間データ変更機能から構成される。以下、これら各機能を実行するスプーラ７１，中間データ最適化部７２，ＰＤＬ作成部７３，ポート制御部７４，中間データ解析部７２ａ，最適化計算部７２ｂ，中間データ変更部７２ｃ等のハードウェア的な構成を仮定して説明する。
【００３６】
かかるプリンタドライバ７０では、まず、供給されてきた中間データが受け取られると、スプーラ７１によって、ＲＡＭ１３やハードディスク１４等の記憶装置に一時的に格納される。次に、記憶装置に格納された中間データが、中間データ最適化部７２によって、指定された出力用紙サイズ内にオブジェクトが収まるように最適化される。
【００３７】
より詳しくは、まず、記憶装置に格納された中間データが、中間データ解析部７２ａによって読み込まれ、解析される。図８を参照して後述するように、この解析により、印刷ジョブデータに含まれる個々のオブジェクトの情報が調査され、各オブジェクトが識別される。オブジェクト情報としては、例えば、出力用紙サイズに基づき決まる印刷可能な領域上で各オブジェクトが配置される位置が計算されることにより、オブジェクトの描画領域をあらわす位置情報が取得される。
【００３８】
更に、最適化計算部７２ｂによって、オブジェクト情報と、指定された出力用紙サイズ／ページ数／最適化の対象となるオブジェクト等の情報とに基づき、どのオブジェクトをどのように変更（編集）すれば、指定された出力用紙サイズ内にそのオブジェクトが収まるかが計算される。その計算の結果をもとに、中間データ変更部７２ｃによって、中間データが変更される。変更後の中間データは、ＲＡＭ１３やハードディスク１４等の記憶装置に格納される。
【００３９】
続いて、記憶装置に格納されたデータは、ＰＤＬ作成部７３によって読み込まれ、ＰＤＬデータに変換される。変換後のＰＤＬデータは、中間データと同様に、ＲＡＭ１３やハードディスク１４等の記憶装置に一時的に格納される。その後、記憶装置に格納された変更後のＰＤＬデータは、ポート制御部７４へ送られ、Ｉ／Ｆ１５（図１参照）経由で、プリンタ２０へ出力される。
【００４０】
図８は、中間データ解析部７２ａにより実行される中間データ解析処理のフローチャートである。この中間データ解析処理では、まず、ＰＣ１０のＲＡＭ１３やハードディスク１４等の記憶装置上に、その上に各種のオブジェクトを配置するための仮想のキャンバス（以下、仮想キャンバスという）が作成される（Ｓ８１）。この仮想キャンバスには、モニタディスプレイやプリンタ上でのテキスト及びグラフィックスの体裁を管理するオブジェクトに関して、ＧＤＩにより情報が格納される。仮想キャンバスの作成後、記憶装置に格納された中間データが読み込まれる（Ｓ８２）。中間データには、オブジェクトの識別子や個々のオブジェクトがどのように描画されるべきか等をあらわすパラメータが含まれており、中間データの読込みに伴い、これらのオブジェクトの識別子及び各種パラメータが識別される（Ｓ８３）。
【００４１】
識別されたオブジェクトの識別子及び各種パラメータに基づき、オブジェクトが仮想キャンバス上に描画される（Ｓ８４）。続いて、取得されたオブジェクトが仮想キャンバス上のどこに描画されたか等のオブジェクト情報が、オブジェクト情報テーブルに追加される（Ｓ８５）。その後、次のオブジェクトがあるか否かが判断され（Ｓ８６）、次のオブジェクトがある場合には、Ｓ８３へ戻り、それ以降の処理が繰り返される。他方、次のオブジェクトがない場合には、処理が終了される。
【００４２】
図９は、中間データ解析処理についての具体的な説明図である。中間データ解析処理では、まず、前述したように、その上に各種のオブジェクトが配置される仮想キャンバス９４が作成される。仮想キャンバス９４の作成後、中間データが読み込まれる。中間データ解析部７２ａは、コマンドで記述された中間データをドットのデータに変換し得るＲＩＰ機能を有しており、ＲＩＰ機能部９２を介して、中間データから各種のオブジェクトが取得され、順次、仮想キャンバス９４上に配置される。
【００４３】
この場合、中間データは、図９に示すように、文字列，ビットマップ（Ｂｉｔｍａｐ），四角形，円弧等の各種のオブジェクトを含んでいる。ＲＩＰ機能部９２は、オブジェクトの取得と同時に、中間データに含まれるオブジェクトの識別子及びパラメータを識別することが可能である。取得された各種のオブジェクトは、これらオブジェクトの識別子及びパラメータに基づき、仮想キャンバス９４上の所定位置に描画される。
【００４４】
また、この中間データ解析処理に応じて、例えばＲＡＭ１３やハードディスク１４等の記憶装置上には、各種オブジェクトの情報を格納するオブジェクト情報テーブル９３が設定される。そして、１つのオブジェクトの描画に伴い、そのオブジェクトが仮想キャンバス９４上のどこに描画されたか等の情報が、オブジェクト情報テーブル９３に追加され、格納される。中間データに含まれる全てのオブジェクトについての上記の処理が終了すると、その上に各種のオブジェクトが配置された仮想キャンバス９４が取得される。
【００４５】
中間データ解析部７２ａにて取得された仮想キャンバス９４は、最適化計算部７２ｂに送られ、この仮想キャンバス９４に関する最適化計算が実行される。なお、仮想キャンバス９４に関する最適化計算処理は、図５及び図６を参照しながら上記実施の形態１について説明した場合と同様に行われ、ここでは、それ以上の説明を省略する。
【００４６】
本実施の形態２では、アプリケーション３０から送られてきた印刷ジョブデータが、中間データに変換された後に、記憶装置上に設定された仮想キャンバス上に配置される。そして、データを構成するオブジェクトの中で、仮想キャンバスからはみ出すオブジェクトがあれば、そのオブジェクトに対して縮小や再配置等が行われ、変更したオブジェクトについて、中間データが書き直された上で、中間データからＰＤＬデータが作成され、プリンタへの出力が実行される。この場合には、中間データに含まれるテキストや表等のオブジェクトと同様に、画像データからなるオブジェクトの縮小や移動が容易に可能である。
【００４７】
なお、本発明は、例示された実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲において、種々の改良及び設計上の変更が可能であることは言うまでもない。
【００４８】
また、上述した具体的実施形態には、以下の構成を有する発明が含まれている。
（１）印刷装置と印刷システムを構成し、該印刷装置を制御するプリンタドライバプログラムがインストールされた印刷データ処理装置において、
アプリケーションプログラムから受け取った印刷ジョブデータに対応するページ記述言語データを解析し、該ページ記述言語データに含まれる個々のオブジェクトを識別する手段と、
少なくとも所定の出力用紙サイズ及びページ数に基づいて、その上にオブジェクトが配置されるデバイスコンテクストの領域を計算する手段と、
計算されたデバイスコンテクストの領域内に上記オブジェクトが収まるように、該オブジェクトを編集する手段とを有することを特徴とする印刷データ処理装置。
【００４９】
（２）印刷装置と印刷システムを構成し、該印刷装置を制御するプリンタドライバプログラムがインストールされた印刷データ処理装置において、
印刷コマンドを有するアプリケーションプログラムから印刷ジョブデータを受け取る手段と、
受け取った印刷ジョブデータを解析し、該印刷ジョブデータに含まれる個々のオブジェクトを識別する手段と、
出力用紙サイズに基づき決まる印刷可能な領域上で、各オブジェクトが配置される位置を計算する手段と、
上記印刷可能な領域内に上記オブジェクトが収まるように、該オブジェクトを編集する手段とを有することを特徴とする印刷データ処理装置。
【００５０】
（３）コンピュータに、
アプリケーションプログラムから受け取った印刷ジョブデータに対応するページ記述言語データを解析し、該ページ記述言語データに含まれる個々のオブジェクトを識別する手順と、
少なくとも所定の出力用紙サイズ及びページ数に基づいて、その上にオブジェクトが配置されるデバイスコンテクストの領域を計算する手順と、
計算されたデバイスコンテクストの領域内に上記オブジェクトが収まるように、該オブジェクトを編集する手順と、を実行させるためのプリンタドライバプログラムを記録したコンピュータ読み取り可態な記録媒体。
【００５１】
（４）コンピュータに、
印刷コマンドを有するアプリケーションプログラムから印刷ジョブデータを受け取る手順と、
受け取った印刷ジョブデータを解析し、該印刷ジョブデータに含まれる個々のオブジェクトを識別する手順と、
出力用紙サイズに基づき決まる印刷可能な領域上で、各オブジェクトが配置される位置を計算する手順と、
上記印刷可能な領域内に上記オブジェクトが収まるように、該オブジェクトを編集する手順と、を実行させるためのプリンタドライバプログラムを記録したコンピュータ読み取り可態な記録媒体。
【００５２】
【発明の効果】
本願の請求項１に係る発明によれば、アプリケーションの機能に依存せず、指定した印刷範囲を所定の出力用紙サイズ，ページ数内に印刷することができ、出力用紙サイズから決定される描画領域とプリンタの特性による用紙の印刷可能な領域との間に差がある場合にも、ユーザの要求に応じた印刷結果を得ることが可能である。
【００５３】
また、本願の請求項２に係る発明によれば、印刷ジョブデータに含まれるオブジェクトを編集する機能が、個々のオブジェクト毎の編集が可能であり、より効率的な編集作業が行なえる。
【００５４】
本願の請求項３に係る発明によれば、アプリケーションの機能に依存せず、指定した印刷範囲を所定の出力用紙サイズ，ページ数内に印刷することができ、出力用紙サイズから決定される描画領域とプリンタの特性による用紙の印刷可能な領域との間に差がある場合にも、ユーザの要求に応じた印刷結果を得ることが可能である。
【００５５】
また、本願の請求項４に係る発明によれば、印刷ジョブデータに含まれる各オブジェクトを編集した後、印刷ジョブデータをページ記述言語に変換するため、特に画像データからなるオブジェクトの編集が容易に可能である。
【００５６】
更に、本願の請求項５に係る発明によれば、アプリケーションから受け取った印刷ジョブデータをまずページ記述言語データに変換し、得られたページ記述言語データに対して、それに含まれるオブジェクトの編集を実行するため、特にテキストや表からなるオブジェクトの編集が容易に可能である。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係るプリンタドライバに基づき印刷ジョブデータ処理が制御される印刷システムを示すブロック図である。
【図２】プリンタドライバを用いてＰＣ側で実行される印刷ジョブデータの出力処理を概念的に示す図である。
【図３】プリンタドライバにより実行されるＰＤＬ解析処理のフローチャートである。
【図４】ＰＤＬ解析処理についての具体的な説明図である。
【図５】プリンタドライバにより実行される最適化計算処理のフローチャートである。
【図６】最適化計算処理についての具体的な説明図である。
【図７】本発明の実施の形態２に係るプリンタドライバを用いてＰＣ側で実行される印刷ジョブデータの出力処理を概念的に示す図である。
【図８】上記実施の形態２に係るプリンタドライバにより実行される中間データ解析処理のフローチャートである。
【図９】上記実施の形態２に係る中間データ解析処理についての具体的な説明図である。
【符号の説明】
１０…ＰＣ，２０…プリンタ，１１…ＣＰＵ，１２…ＲＯＭ，１３…ＲＡＭ，１４…ハードディスク，１５…Ｉ／Ｆ，４０，７０…プリンタドライバ，４１，７１…スプーラ，４２…ＰＤＬ作成部，４３…ＰＤＬ最適化部，４３ａ…ＰＤＬ解析部，４３ｂ…最適化計算部，４３ｃ…ＰＤＬ変更部，４４…ポート制御部，６４…デバイスコンテクスト，６５…ビットマップ，６６…出力用紙サイズに対応したデバイスコンテクスト，６７…変更後のビットマップ，７２…中間データ最適化部，７２ａ…中間データ解析部，７２ｂ…最適化計算部，７２ｃ…中間データ変更部，７３…ＰＤＬ作成部，９４…仮想キャンバス
【図１】
2004054894.tif 000003
【図２】
2004054894.tif 000004
【図３】
2004054894.tif 000005
【図４】
2004054894.tif 000006
【図５】
2004054894.tif 000007
【図６】
2004054894.tif 000008
【図７】
2004054894.tif 000009
【図８】
2004054894.tif 000010
【図９】
2004054894.tif 000011