(57)【要約】【課題】ユーザが用紙サイズを定義して、印刷を行う場合に生ずる、用紙サイズ不一致により印刷が実行できなくなる問題を解消する。【解決手段】  フィルタ１２４に、画像形成装置に実行させる印刷の内容を規定する印刷データを生成させる場合において、そのフィルタ１２４に、カスタム用紙サイズの設定値の生データを取得するジョブ情報解析部１２４ａと、上記ジョブ情報解析部１２４ａが取得した生データを上記印刷データに追加する印刷制御部１２４ｂと、上記画像形成装置に印刷に使用する印刷データ中のカスタム用紙サイズの設定値を上記印刷制御部１２４ｂが追加した生データに置き換える処理を実行させるための置換コマンドを上記印刷データに追加するカスタム用紙サイズＵＩ入力値挿入部１２４ｃとを備えた。【選択図】図９
2016177694.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
画像形成装置に実行させる印刷の内容を規定する印刷データを生成する印刷データ生成手段として機能させるためのプログラムであって、
前記印刷データ生成手段が、
カスタム用紙サイズの設定値の生データを取得する取得手段と、
前記取得手段が取得した生データを前記印刷データに追加する第１追加手段と、
前記画像形成装置に、印刷に使用する印刷データ中のカスタム用紙サイズの設定値を前記第１追加手段が追加した生データに置き換える処理を実行させるための置換コマンドを前記印刷データに追加する第２追加手段とを備えることを特徴とするプログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記置換コマンドにより前記画像形成装置に実行させる処理は、前記印刷データに含まれる生データを、前記画像形成装置内に用意された特定の記憶領域に記憶させる処理と、前記印刷データ中のカスタム用紙サイズの設定値をその特定の記憶領域に記憶させた生データに置き換える処理とを含み、
前記印刷データ生成手段は、
前記画像形成装置に、何らかの用紙サイズを設定した場合に前記特定の記憶領域に記憶されている前記生データを削除する処理を実行させるための削除コマンドを前記印刷データに追加する第３追加手段を備えることを特徴とするプログラム。
【請求項３】
請求項１又は２に記載のプログラムであって、
前記置換コマンドは、前記印刷に使用する印刷データ中に前記生データが含まれているか否か判断する処理と、該判断において含まれていると判断した場合に、前記印刷データ中のカスタム用紙サイズの設定値を前記生データに置き換える処理とを前記画像形成装置に実行させるためのコマンドであることを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれか一項に記載のプログラムであって、
前記置換コマンドは、前記印刷に使用する印刷データ中に含まれているカスタム用紙サイズの設定値が特定の分解能で記述されているか否か判断する処理と、該判断において特定の分解能と判断した場合に、前記印刷データ中のカスタム用紙サイズの設定値を前記生データに置き換える処理とを前記画像形成装置に実行させるためのコマンドであることを特徴とするプログラム。
【請求項５】
画像形成装置に実行させる印刷の内容を規定する印刷データを生成する印刷データ生成手段を備え、
前記印刷データ生成手段が、
カスタム用紙サイズの設定値の生データを取得する取得手段と、
前記取得手段が取得した生データを前記印刷データに追加する第１追加手段と、
前記画像形成装置に、印刷に使用する印刷データ中のカスタム用紙サイズの設定値を前記第１追加手段が追加した生データに置き換える処理を実行させるための置換コマンドを前記印刷データに追加する第２追加手段とを備えることを特徴とする情報処理装置。
【請求項６】
請求項５に記載の情報処理装置であって、
前記置換コマンドにより前記画像形成装置に実行させる処理は、前記印刷データに含まれる生データを、前記画像形成装置内に用意された特定の記憶領域に記憶させる処理と、前記印刷データ中のカスタム用紙サイズの設定値をその特定の記憶領域に記憶させた生データに置き換える処理とを含み、
前記印刷データ生成手段は、
前記画像形成装置に、用紙サイズを設定した場合に前記特定の記憶領域に記憶されている前記生データを削除する処理を実行させるための削除コマンドを前記印刷データに追加する第３追加手段を備えることを特徴とする情報処理装置。
【請求項７】
請求項５又は６に記載の情報処理装置であって、
前記置換コマンドは、前記印刷に使用する印刷データ中に前記生データが含まれているか否か判断する処理と、該判断において含まれていると判断した場合に、前記印刷データ中のカスタム用紙サイズの設定値を前記生データに置き換える処理とを前記画像形成装置に実行させるためのコマンドであることを特徴とする情報処理装置。
【請求項８】
請求項５乃至７のいずれか一項に記載の情報処理装置であって、
前記置換コマンドは、前記印刷に使用する印刷データ中に含まれているカスタム用紙サイズの設定値が特定の分解能で記述されているか否か判断する処理と、該判断において特定の分解能と判断した場合に、前記印刷データ中のカスタム用紙サイズの設定値を前記生データに置き換える処理とを前記画像形成装置に実行させるためのコマンドであることを特徴とする情報処理装置。
【請求項９】
画像形成装置に実行させる印刷の内容を規定する印刷データを生成する印刷データ生成方法であって、
情報処理装置が、
カスタム用紙サイズの設定値の生データを取得する取得手順と、
前記取得手順で取得した生データを前記印刷データに追加する第１追加手順と、
前記画像形成装置に、印刷に使用する印刷データ中のカスタム用紙サイズの設定値を前記第１追加手順で追加した生データに置き換える処理を実行させるための置換コマンドを前記印刷データに追加する第２追加手順とを備えることを特徴とする印刷データ生成方法。
【請求項１０】
請求項１乃至４のいずれか一項に記載のプログラムと、
前記印刷データに含まれる前記置換コマンドを実行する手段を備える画像形成装置と、
を備えることを特徴とする画像形成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラム、情報処理装置、印刷データ生成方法及び画像形成システムに関する。
【背景技術】
【０００２】
一般に、ユーザが用紙サイズを定義して行う印刷では、ユーザは用紙サイズをｍｍ単位（或いはｉｎｃｈ単位）で定義する。ＰＣの描画エンジンは、ｍｍ単位で定義された用紙サイズに印刷する印刷指示を受け付けると、そのサイズをｐｔ（ポイント）単位に変換する。そして。ｐｔ単位の値の用紙サイズを印刷データに含めてプリンタに送信する。プリンタは、該印刷データを受信すると、用紙サイズをｐｔ単位の値からｍｍ単位の値に変換し、変換後の用紙サイズで印刷を実行する。
【０００３】
理論的には、ｍｍ単位の値を一度ｐｔ単位に変換し、それを再度ｍｍ単位に変換しているのだから、最初のｍｍ単位の値と、最後のｍｍ単位の値とは同じなるはずである。しかし、実際には、ある値をｍｍ単位をｐｔ単位に変換すると、小数点以下の数が生じる。
従来より、ＰＣの描画エンジンは、変換時に生じる小数点以下の数については、いわゆる丸め処理を行い、その丸め処理を行った値（以下、単に「丸めた値」という。）を印刷データに含めてプリンタに送信する。プリンタは丸めた値をｍｍ単位に変換するため、実際には、ユーザが最初に定義したｍｍ単位の値とは誤差が生じることになる。
【０００４】
しかし、この誤差は予め想定されているため、プリンタは、任意の範囲内での誤差については、用紙サイズは一致したものと判断して印刷を実行するように設定されている。しかし、その誤差が予め設定してある範囲を超えてしまった場合は、用紙サイズ不一致と判断するので、印刷は行わない。したがって、このような場合、ユーザは印刷を実行することができなくなるという問題があった。
【０００５】
これを解消する技術として、特許文献１記載の技術がある。特許文献１に記載の技術では、プリンタは、ＰＣが送信した画像データを受信すると、その画像データに含まれる原稿サイズを算出する。その算出した原稿サイズが、設定されている用紙サイズより大きい場合は、各用紙のサイズ毎にサイズ判定調整値というものを設定し、その設定したサイズ判定調整値を各用紙サイズに付加する。プリンタは、この調整値を付加した用紙サイズの値の中で、原稿サイズと一致するものを選択し、その用紙サイズの用紙に印刷を行う。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
確かに、特許文献１記載の技術では、原稿サイズと用紙サイズが不一致になる問題は解消される。しかし、上記の技術を実現するためには、プリンタが構成するモジュール数が膨大で、処理が複雑になるため、プリンタにかかる負担が大きいという問題があった。また、用紙サイズが不一致かを判断する処理や、適合する用紙サイズを選択する処理が複雑なため、処理に時間がかかるという問題もあった。
【０００７】
そこで、この発明は、ＰＣのプリンタドライバ側に僅かの変更を加えるだけで、ユーザが用紙サイズを定義する際に生じる、いわゆる丸め誤差による用紙サイズの不一致を解消することを目的とする。
【課題を解決するための手段】
【０００８】
以上の目的を達成するため、この発明によるプログラムは、コンピュータを、画像形成装置に実行させる印刷の内容を規定する印刷データを生成する印刷データ生成手段として機能させるためのプログラムであって、上記印刷データ生成手段が、カスタム用紙サイズの設定値の生データを取得する取得手段と、上記取得手段が取得した生データを上記印刷データに追加する第１追加手段と、上記画像形成装置に、印刷に使用する印刷データ中のカスタム用紙サイズの設定値を上記第１追加手段が追加した生データに置き換える処理を実行させるための置換コマンドを上記印刷データに追加する第２追加手段とを備えることとする。
【発明の効果】
【０００９】
上記の構成によれば、ユーザが定義した用紙サイズで印刷を実行する場合に生じる、いわゆる丸め誤差による用紙サイズの不一致を解消することができる。
【図面の簡単な説明】
【００１０】
【図１】ＰＣのＯＳのアプリケーションが生成する一般的な印刷データのパターンを示す図である。
【図２】ＯＳのアプリケーションがフィルタを用いて生成する印刷データの全てのパターンをまとめたリストである。
【図３】この発明の一実施形態である画像形成システムの一例を示した図である。
【図４】図３に示したＰＣのハードウェア構成を示した図である。
【図５】図３に示したプリンタのハードウェア構成を示した図である。
【図６】図３で示したＰＣのソフトウェア構成を示した図である。
【図７】ＰＰＤ（PostScript  Printer  Description）のテキストファイルの一部のコマンドデータを示した図である。
【図８】印刷データに含められるジョブ情報の一例を表に示した図である。
【図９】ＰＣのフィルタとプリンタとの機能ブロック図である。
【図１０】比較例の、印刷処理を行う場合の、ＰＣが印刷実行要求を受け付けた場合に実行する処理のフローチャートである。
【図１１】比較例の、印刷処理を行う場合の、プリンタがＰＣから印刷データを受信した場合に実行する処理のフローチャートである。
【図１２】この発明の一実施形態である画像形成システムにおいて、ＰＣが印刷実行要求を受け付けた場合に実行する処理のフローチャートである。
【図１３】この発明の一実施形態である画像形成システムにおいて、プリンタがＰＣから印刷データを受信した場合に実行する処理のフローチャートである。
【図１４】この発明の一実施形態である画像形成システムにおいて、ＰＣが印刷実行要求を受け付けた場合に実行する別の処理のフローチャートである。
【図１５】この発明の一実施形態である画像形成システムにおいて、プリンタがＰＣから印刷データを受信した場合に実行する処理のフローチャートである。
【図１６Ａ】印刷コマンドの一例を示す図である。
【図１６Ｂ】印刷コマンドデータの一例を示す図である。
【図１７】この発明の一実施形態である画像形成システムにおいて、プリンタがＰＣから印刷データを受信した場合に実行する処理のフローチャートである。
【図１８Ａ】印刷コマンドの別の一例を示す図である。
【図１８Ｂ】印刷コマンドデータの別の一例を示す図である。
【図１９】この発明の一実施形態である画像形成システムでＰＣがプリンタに送信する印刷データパターンを示す図である。
【発明を実施するための形態】
【００１１】
以下、図１乃至２０を用いて、本発明を実施するための形態について説明をしていく。
この実施形態は、ユーザが定義した不定形の用紙サイズ（以降、「カスタム用紙サイズ」という。）で印刷を行う場合に、プリンタが設定する用紙サイズとユーザが定義した用紙サイズとがサイズ不一致で印刷できない場合が生じる問題を解消するものである。
まず、上述したした問題が生じる理由については既に述べているが、ここでは、具体的な数字と計算式を用いて、更に詳しく説明する。
【００１２】
ユーザがＰＣ（Personal  Computer）を介してプリンタに印刷の実行を要求する場合、ＰＣのＵＩ（User  Interface）を介して、種々の印刷条件を設定する。このとき、ユーザが用紙サイズをカスタム用紙サイズとし、そのサイズを「２１０ｍｍ×２１０ｍｍ」と定義したとする。こ場合、ＰＣの描画エンジンは、この値を下記の計算式で、ｐｔ（point）単位に変換する。
ｐｔ数＝（ｍｍ数×７２）÷２５．４＝（２１０×７２）÷２５．４≒５９５．３ｐｔ
【００１３】
描画エンジンは、上記で算出した値の小数点以下の部分の数を丸めて、「５９５ｐｔ」とし、それをカスタム用紙サイズの設定値として、印刷データに含め、その印刷データをプリンタに送信する。プリンタは印刷データを受信すると、印刷データに含まれたカスタム用紙サイズの設定値「５９５ｐｔ」を、下記の計算式で、ｍｍ単位に変換する。
ｍｍ数＝（ｐｔ数×２５．４）÷７２＝（５９５×２５．４）÷７２≒２０９．９ｍｍ
プリンタは上記の計算により得られた値をカスタム用紙サイズの設定値として認識する。
【００１４】
しかし、このような丸め処理を行うと、プリンタが認識するカスタム用紙サイズの設定値が、ユーザが定義したカスタム用紙サイズの値と異なってしまう場合が生じる。そこで、プリンタは、予め、カスタム用紙サイズについては、プリンタが上記計算によって算出したカスタム用紙サイズの設定値に、許容誤差を設けて、用紙サイズを判定することにしている。
しかし、例えば、この許容誤差の範囲を「＋０．１ｍｍ」に設定している場合は、上記計算式で算出した「２０９．９ｍｍ」は、２１０ｍｍ〜２１０＋０．１ｍｍの範囲には収まらないため、用紙サイズ不一致と判定され、印刷を行うことができなくなる。
【００１５】
以上のように、丸め処理行った事により生じたカスタム用紙サイズの誤差が、許容誤差範囲に含まれない場合に、用紙サイズ不一致という問題が生じる。
なお、この丸め処理は、ＰＣのＯＳが標準で提供する描画エンジンと、一部のアプリケーションが提供する描画エンジンにおいて、一般的に行われている。
【００１６】
次に、ＰＣのＯＳ（Operating  System）のアプリケーションが描画エンジンとフィルタを用いて生成する印刷データのパターンを示す図を図１に示した。図１に示した印刷データ（ａ）９０１〜（ｄ）９０４を用いて、どの印刷データが、用紙サイズ不一致が生じる可能性があるか説明をする。
なお、印刷データは、印刷ジョブ全体にかかる設定とページ毎の描画データによって構成されている。ジョブ全体にかかる設定の部分には、用紙サイズや、両面／片面印刷、ステープル、パンチ、ジョブ名等の種々の設定が含まれる。
【００１７】
印刷データ（ａ）９０１〜印刷データ（ｄ）９０４は、印刷データに、カスタム用紙サイズ（すなわち不定形用紙サイズ）を含むパターンの一例である。なお、ここでは、説明の便宜のために、印刷データ（ａ）９０１〜印刷データ（ｄ）９０４には、用紙サイズのみ記載し、他の設定については記載を省略している。
まず、印刷データ（ａ）９０１は、印刷ジョブ全体で一つの用紙サイズを設定し、且つ、単位変換の際に丸め処理を行う場合の例である。
印刷データ（ｂ）９０２は、印刷ジョブ全体で一つの用紙サイズを設定し、且つ、単位変換の際に丸め処理を行わない場合の例である。
【００１８】
印刷データ（ｃ）９０３は、ページ毎に用紙サイズを設定し、且つ、単位変換の際に丸め処理を行う場合の例である。
印刷データ（ｄ）９０４は、ページ毎に用紙サイズを設定し、且つ、単位変換の際に丸め処理を行わない場合の例である。
【００１９】
ここで、印刷データ（ｃ）９０３と印刷データ（ｄ）９０４では、印刷ジョブ全体にかかる設定データ９０３ａ、９０４ａには、Ａ４サイズの用紙が設定されていることになっているが、これはＯＳの仕様によるものであり、ページ毎の描画データ９０３ｂ乃至９０３ｄ、９０４ｂ乃至９０４ｄで設定されている用紙サイズの設定のみが有効となる。
【００２０】
印刷データ（ａ）９０１は、ＰＣのＯＳが標準で提供する描画エンジンを用いて、アプリケーションが印刷データを生成する場合の例であり、例えば、ＭａｃＯＳ（登録商標）Ｘの殆どのアプリケーションが生成する印刷データは、印刷データ（ａ）９０１に該当する。
なお、アプリケーションが提供する描画エンジンを用いて印刷データを生成する場合は、用紙サイズを印刷ジョブ全体に対して指定するか、ページ毎に指定するか、そして、丸め処理を行うか否かはアプリケーション次第である。したがって、理論上は、アプリケーションが提供する描画エンジンを用いて生成する印刷データは、印刷データ（ａ）９０１〜（ｄ）９０４のいずれに該当するものであってもよい。
【００２１】
ただし、アプリケーション自身が描画エンジンを提供するのは、現在のところ一部のアプリケーション以外には特に存在しない。そして、そのアプリケーションは、ページ毎に用紙サイズを指定し、且つ、丸め処理を行わない。したがって、そのアプリケーションが生成する印刷データは印刷データ（ｄ）９０４のパターンになる。
【００２２】
図２は、図１で説明した内容を踏まえて、全ての印刷パターンをまとめたリスト９０５である。リスト９０５のパターン番号１が、図１の印刷データ（ａ）９０１である。
パターン番号２〜５は、アプリケーション自身が描画エンジンを提供するパターンである。
丸め誤差が発生するのはパターン番号１，２，４のパターンである。そして、パターン番号２，４のパターンでは、丸める前の値を取得するのが不可能なため、対策をとることができない。但し、パターン番号２，４のパターンについては、未だ実施されている例がないため、この場合を考慮する必要はないものと考えられる。
この実施形態は、パターン番号１のパターンの印刷データをＰＣのＯＳが提供する描画エンジンとフィルタが生成する場合に生じ得る、用紙サイズ不一致の問題を解消することができる。
【００２３】
次に、この発明を実施するための一の実施形態について、図３乃至図１９を用いて説明する。
図３には、この発明の一実施形態である画像形成システムＸの構成の一例を示した。
この画像形成システムＸは、ＰＣを、画像形成装置に実行させる印刷の内容を規定する印刷データを生成する印刷データ生成手段として機能させるためのシステムである。このシステムＡには、ＰＣ１０とプリンタ２０とがネットワークを介して接続する。この画像形成システムＸでは、ＰＣ１０が、生成した印刷データをネットワーク上のプリンタ２０に送信し、プリンタ２０は該印刷データを受信すると、その印刷データに基づいて印刷を行う。
【００２４】
ここで、接続形態はネットワークに限るものではなく、シリアル接続、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続等、接続可能なものであれば、形態は問わない。
また、プリンタ２０は、プリンタ機能を備えるものであれば、デジタル複合機（ＭＦＰ）等の画像形成装置であってもよい。ただし、後述するＰＰＤ（Post  Script  Description）が利用可能であるとする。また、ＰＣ１０とプリンタ２０とは一台に限られることはない。
【００２５】
図３に示したＰＣ１９のハードウェアの構成を図４にし示した。
まず、ＰＣ１０は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ（ハードディスクドライブ）１０４、Ｉ／Ｆ（インターフェース）１０５を備え、それらがシステムバス１０８を介して接続されている。また、Ｉ／Ｆ１０５には、ＬＣＤ（Liquid  Crystal  Display）１０６及び操作部１０７が接続されている。
【００２６】
上記構成のうち、ＣＰＵ１０１は、ＰＣ１０のＲＡＭ１０２をワークエリアとしてＲＯＭ１０３又はＨＤＤ１０４に記憶されたプログラムを実行し、ＰＣ１０全体の動作を制御する。
Ｉ／Ｆ１０５は、システムバス１０８と各種のハードウェアやネットワーク等を接続し、制御する。ＬＣＤ１０６はユーザがＰＣ１０の状態を確認するための視覚的ユーザインターフェースである。一方、操作部１０７は、キーボードやマウス等、ユーザがＰＣ１０に情報を入力するためのユーザインタフェースである。
【００２７】
次に、図３に示したプリンタ２０のハードウェアの構成を図５に示した。
プリンタ２０は、コントローラ２００とエンジン部７００とを備え、これらがＰＣＩ（Peripheral  Component  Interface）バス８００を介して接続する構成となる。
コントローラ２００は、プリンタ２０全体の制御と描画、通信、不図示の操作部からの入力を制御する機能を備える。
【００２８】
エンジン部７００は、ＰＣＩバス８００に接続可能なプリンタエンジンであり、白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナ、ファックスユニット等を備える。また、誤差拡散やガンマ変換等の画像処理を行う機能も備える。
コントローラ２００は、ＣＰＵ２０１と、ノースブリッジ（ＮＢ）２０２と、システムメモリ（ＭＥＭ−Ｐ）２０４と、サウスブリッジ（ＳＢ）２０７と、ローカルメモリ（ＭＥＭ−Ｃ）２０５と、ＡＳＩＣ（Application  Specific  Integrated  Circuit）２０３と、ハードディスクドライブ（ＨＤＤ）２０６とを備え、ＮＢ２０２とＡＳＩＣ２０３との間をＡＧＰ（Accelerated  Graphics  Port）バス２０８で接続した構成となる。
また、ＭＥＭ−Ｐ２０４は、ＲＯＭ２０４ａとＲＡＭ２０４ｂとを備える。
【００２９】
ＣＰＵ２０１は、プリンタ２０全体の動作を制御する。また、ＮＢ２０２、ＭＥＭ−Ｐ２０４及びＳＢ２０７を備えるチップセットを介して他の機器と接続する。
ＮＢ２０２は、ＣＰＵ２０１をＭＥＭ−Ｐ２０４、ＳＢ２０７、ＡＧＰバス２０８と、各々接続させるためのブリッジであり、ＭＥＭ−Ｐ２０４に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを備える。
ＭＥＭ−Ｐ２０４はシステムメモリであって、プログラムやデータの格納用メモリとして用いる読み出し専用のＲＯＭ２０４ａと、プログラムやデータの展開用メモリ、プリンタの描画用メモリ等して用いる、書き込み及び読み出し可能なメモリであるＲＡＭ２０４ｂとを備える。
【００３０】
ＳＢ２０７は、ＮＢ２０２と不図示のＰＣＩデバイスやその他の周辺デバイスとを接続するためのブリッジであり、ＰＣＩバス２０９を介してＮＢ１３と接続されている。このＰＣＩバス８００には、不図示のネットワークインターフェース（Ｉ／Ｆ）部なども接続される。
ＡＳＩＣ２０３は、画像処理用のハードウェア要素を備える画像処理用途向けのＩＣ（Integrated  Circuit）であり、ＡＧＰバス２０８、ＰＣＩバス４４０、ＨＤＤ２０６及びおよびＭＥＭ−Ｃ２０５をそれぞれ接続するブリッジとして機能する。
【００３１】
ＡＳＩＣ２０３は、いずれも不図示のＰＣＩターゲット、ＡＧＰマスタ、アービタ（ＡＲＢ）、ＭＥＭ−Ｃ２０５を制御するメモリコントローラ、ハードウェアロジック等により画像データの回転等を行う複数のＤＭＡＣ（Direct  Memory  Access  Controller）と、エンジン部７００との間でＰＣＩバス８００を介したデータ転送をおこなうＰＣＩユニットとを備える。
ＡＳＩＣ２０３には、ＰＣＩバスを介してＦＣＵ（Facsimile  Control  Unit）４００、ＵＳＢ（Universal  Serial  Bus）４１０、ＩＥＥＥ１３９４（the  Institute  of  Electrical  and  Electronics  Engineers  １３９４）Ｉ／Ｆ４２０とが接続される。
また、操作表示部３００はＡＳＩＣ２０３に直接接続されている。
【００３２】
ＭＥＭ−Ｃ２０５は、コピー用画像バッファ、符号バッファとして用いるローカルメモリである。
ＨＤＤ２０６は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。また、ＨＤＤ２０６は、プリンタ２０で実行されるアプリケーションのライセンスファイルを保存する。
ＡＧＰバス１５は、グラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ２０４に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速化する。
【００３３】
次に、図６を用いて、図４で示したＰＣ１０のソフトウェアの構成を説明する。
ＰＣ１０のＯＳ３０は、プリンタドライバ４０、印刷ＵＩ（User  Interface）１２０、ＰＰＤ（PostScript  Printer  Description）１２１、アプリケーション１２２、描画エンジン１２３、フィルタ１２４を備える。これらのソフトウェアはＰＣ１０のＣＰＵ１０１が実行する。
なお、ＯＳ３０は、ＰＣ１０のハードウェアを制御する機能を備え、プリンタドライバ４０は、プリンタ２０に接続して、プリンタを制御をする機能を備える。
また、印刷ＵＩ１２０は、プリンタ固有の機能を選択するＵＩ（User  Interface）をユーザに提供する機能を備える。
【００３４】
例えば、ＭａｃＯＳＸの場合、基本的な印刷機能のＵＩはＯＳが提供し、後述のアプリケーション１２２固有の印刷設定を行うために、アプリケーション１２２が印刷ＵＩを拡張する。但し、プリンタ特有の機能を実現するために、プリンタベンダがＵＩを拡張することも可能である。
また、アプリケーション側で細かく印刷データを調整する必要があるアプリケーションの場合は、アプリケーション自身が印刷ＵＩを全て提供する場合もある。
【００３５】
ＰＰＤ１２１は、Ｐｏｓｔｓｃｒｉｐｔプリンタで利用可能な機種依存情報が記載されているテキストファイルであり、プリンタベンダによるカスタマイズが可能であるという特徴がある。図７に示したのは、このテキストファイルの一部のコマンドデータ５１０である。
このコマンドデータ５１０からわかるように、ＰＰＤ１２１には、使用するモジュール（アイコン、カラープロファイル、フィルタ、印刷ＵＩの拡張等）のファイルパス、プリンタの対象機種のモデル名、印刷速度などのプリンタ情報、各種モジュールから参照するためのパラメータ、双方向通信コマンド、ディザパターン、プリント機能とそれに対応する印刷コマンド、機能間の排他等が記載されている。
【００３６】
特に下線付き斜体で記載した印刷コマンド５１１、５１２及び５１３は印刷用紙の設定に関する印刷コマンドである。
印刷データに複数の用紙サイズを設定する情報が含まれる場合は、それぞれの用紙サイズに対してＰＰＤ１２１に記載された対応する印刷コマンドを、印刷データに入れる。例えば、印刷データにＡ４サイズを設定する印刷コマンドが３箇所ある場合は、その３箇所に対応する場所にＰＰＤ１２１に記載されたＡ４サイズの用紙設定用の印刷コマンド５１２を含める。
その他、ＰＰＤ１２１は、印刷ＵＩ１２０がプリンタ固有の機能を選択するＵＩを表示するために参照したり、フィルタ１２４が機種固有の印刷コマンドを参照し、その印刷コマンドを取得するために用いられる。
【００３７】
アプリケーション１２２は、印刷するコンテンツを作成する機能を備える。具体的には、印刷実行時に、印刷ＵＩ１２０を呼び出して印刷の設定をし、更に描画エンジン１２３を呼び出して描画データを生成する。
描画エンジン１２３は、印刷データを生成する機能や、用紙サイズの単位変換を行う機能を備える。
フィルタ１２４は、ジョブ情報に基づいて、ＰＰＤ１２１から取得した印刷コマンド等を描画データに追加し、印刷データを完成させ、プリンタ２０へ送信する機能を備える。また、フィルタ１２４は、複数で構成され、それぞれパイプラインを形成している。なお、プリンタ独自の機能を実現するために、プリンタベンダがフィルタを提供することも可能である。
【００３８】
最後に、図６において点線で囲った部分がプリンタドライバ４０となるが、プリンタベンダは、プリンタドライバ４０として、印刷ＵＩ１２０の一部、ＰＰＤ１２１、フィルタ１２４の一部を供給することができる。
以上が、ＰＣ１０のソフトウェアの構成に関する説明である。
【００３９】
なお、ＭＡＣＯＳＸを始めとして、多くのＰＣでは、ＯＳのアプリケーションが描画エンジンを提供している。しかし、一部のアプリケーションでは、自ら描画エンジンを持っている場合がある。その場合は、アプリケーションに含まれている描画エンジンを利用する。
また、描画エンジン１２３が生成する印刷データには描画データとジョブ情報が付加される。ジョブ情報とは、ジョブの基本的な情報や、印刷ＵＩ１２０を介して提供されるＵＩで設定された値などである。
【００４０】
図８を用いて、ジョブ情報について説明をする。ジョブ情報とは、ユーザ名やジョブ名等の基本的な情報と、印刷ＵＩ１２０で選択した機能の情報等を含む情報のことである。図８に示したジョブ情報の表６００は、アプリケーション１２２が、描画エンジン１２３とフィルタ１２４を用いて生成する印刷データに含められるジョブ情報の一例である。各項目と、その項目に対応する値とが関連付けられた状態で印刷データに含められる。
ジョブ情報のうち、ＪｏｂＩＤ６０１、Ｕｓｅｒ  Ｎａｍｅ６０２、Ｔｉｔｌｅ６０３、部数６０４に関する情報は、最低限必要な情報として印刷データに含められる。一方、それ以外の項目は、適宜追加することが可能な、任意の項目であり、その項目に関する情報がなくても、印刷は可能である。
【００４１】
ここで、図８に示した表６００には、Ｍｅｄｉａ６０５の値として、カスタム用紙サイズの丸める前の値である生データ、Ｐａｇｅ  Ｓｉｚｅ６０６の値として、カスタム用紙サイズが丸めた後の値が表示されているが、これらの値は任意の項目に関する情報になる。但し、アプリケーション１２２が描画エンジンを用いて生成する印刷データには、所定の形式で必ず印刷データに含められる情報である。
【００４２】
一方、アプリケーション自身が提供する描画エンジンを用いてを生成する印刷データに上述の情報が含められるかは、アプリケーションの仕様次第となる。そして、アプリケーション自身が提供する描画エンジンがジョブ情報に丸める前の値（生データ）を含める場合であっても、その丸める前の値はアプリケーション独自の形式でジョブ情報に含められるため、フィルタがこの値を取得することは困難となる。
したがって、ジョブ情報に、任意の情報である丸める前の値が含まれる場合であっても、現実に丸める前の値を取得することが可能なのは、ＯＳが標準で描画エンジンを提供する場合に限られるといってよい（図２参照）。
【００４３】
次に、図９にフィルタ１２４の機能とプリンタの機能とを説明するための機能ブロックの図を示した。本発明を実現するための動きは、主として、ここで説明する機能を用いて行われることになる。
フィルタ１２４は、ジョブ情報解析部１２４ａ、印刷データ制御部１２４ｂ、カスタム用紙サイズＵＩ入力値挿入部１２４ｃ、印刷コマンド取得部１２４ｄ、印刷コマンド挿入部１２４ｅ、印刷データ送信部１２４ｆを備える。
以下、各部の機能について説明する。
【００４４】
ジョブ情報解析部１２４ａは、印刷データに含まれるジョブ情報を解析し、ＵＩで選択された機能や入力された値を特定する機能を備える。このとき、カスタム用紙サイズが選択されている場合は、入力された丸める前の値を特定して取得する。
印刷データ制御部１２４ｂは、印刷データ自体を解析し、印刷コマンドを挿入する場所を検出する機能を備える。また、ジョブ情報を参照して、ジョブ名等を描画データに追加する機能も備える。
【００４５】
カスタム用紙サイズＵＩ入力値挿入部１２４ｃは、ジョブ情報解析部１２４ａが取得した丸める前の値を取得する機能と、印刷データ制御部１２４ｂから印刷コマンドを挿入する場所の情報を取得する機能と、プリンタが丸める前の値を定義するために用いる印刷コマンドに丸める前の値を書き込む機能を備える。
【００４６】
ここで、挿入するコマンドについて丸める前の値を定義するための印刷コマンドの一例を挙げて説明する。
まず、丸める前の値を定義するには、プリンタ２０内に設けられている86f6369627という辞書の_REAL_PageSizeというkeyに対して、カスタム用紙サイズの丸める前の値の配列を定義するれば実現できる。そこで、これを実行するためのコマンドを、印刷データに挿入する。そのコマンドは、下記の印刷コマンドになる。
userdict/86f6369627  get  /_Real_Pagesize[510.23456  992.026458]  
上記印刷コマンドは、カスタム用紙サイズの設定値を、丸める前の値に置き換える処理を実行させるための置換の印刷コマンドである。
この印刷コマンドを挿入することで、印刷データ内の他の場所からも、丸める前の値
[510.23456  992.026458]を参照することが可能となる。
【００４７】
次に、印刷コマンド取得部１２４ｄは、ジョブ情報解析部１２４ａが解析して特定した、ユーザがＵＩで選択した機能の情報（ジョブ情報）を取得し、該当する機能に対応する印刷コマンドをＰＰＤ１２１から取得する機能を備える。
印刷コマンド挿入部１２４ｅは、印刷コマンド取得部１２４ｄが取得した印刷コマンドを取得する機能と、印刷データ制御部１２４ｂが取得した印刷コマンドを挿入する場所の情報を取得する機能と、取得した印刷コマンドを印刷コマンドを挿入する場所へ挿入する機能を備える。
印刷データ送信部１２４ｆは、全ての印刷コマンドが挿入された印刷データをプリンタ２０へ送信する機能を備える。
以上が、フィルタ１２４の各部が備える機能である。
【００４８】
次に、プリンタ２０の各部が備える機能について説明する。
まず、プリンタ２０は印刷データ受信部２０ａ、印刷データ解析部２０ｂ、辞書２０ｃ、印刷実行部２０ｄを備える。
印刷データ受信部２０ａは、フィルタ１２４の印刷データ送信部１２４ｆが送信した印刷データを受信する機能を備える。
印刷データ解析部２０ｂは、印刷データ受信部２０ａが受信した印刷データを解析し、印刷データに含まれる印刷コマンドに従って、辞書２０ｃにジョブ情報を記憶させたり、辞書２０ｃに記憶されているジョブ情報を削除したりする機能を備える。
【００４９】
辞書２０ｃは、プリンタ２０のＲＡＭ等に用意された特定の記憶領域である。印刷データに含まれるカスタム用紙サイズの丸める前の値（生データ）を記憶しておく。
印刷実行部２０ｄは、印刷データ受信部２０ａが受信した印刷データに基づき、印刷を実行する機能を備える。
以上が、プリンタ２０が備える各部の機能である。
【００５０】
次に、ＰＣ１０が、プリンタ２０に実行させる印刷の内容を規定する印刷データを生成し、該印刷データを用いてプリンタ２０が印刷を実行する処理について説明する。
まず、この実施形態の特徴的な処理を含まない比較例について、図１０を用いて説明する。
図１０は、ユーザからの印刷要求を受け付けて、ＰＣ１０が印刷データを生成し、完成した印刷データをプリンタ２０に送信する処理である。また、図１０の処理においてユーザは、カスタム用紙サイズで印刷を実行することを要求している。但し、ここでは、いわゆる丸め処理を行い、丸めた後の値をカスタム用紙サイズの設定値として印刷を実行する。また、丸め処理を行ったことによる用紙サイズ不一致の問題は生じていないものとする。
この処理は、ＰＣ１０のＣＰＵ１０１が制御して行う。また、ここで用いるＰＣ１０は、ＯＳ３０が標準で描画エンジン１２３を提供しているＰＣ１０である。
なお、ＭＡＣＯＳＸはＯＳ標準の描画エンジンを用いているので、この例に該当する。また、この処理は、ＰＣ１０のＣＰＵ１０１がユーザからの印刷要求を受け付けると開始する。
【００５１】
まず、ＰＣ１０のＣＰＵ１０１は、ユーザが選択した機能等が含まれるジョブ情報を取得すると、（Ｓ１１）その取得したジョブ情報を基に印刷データを生成する（Ｓ１２）。次に、ステップＳ１１で取得したジョブ情報の中から、ユーザが定義したカスタム用紙サイズの値を取得し、その値をｍｍ単位からｐｔ単位に変換する（Ｓ１３）。この変換が丸める前の値を取得する処理となる。変換が完了すると、ＣＰＵ１０１は、ステップＳ１３で変換したｐｔ単位のカスタム用紙サイズの値に対して、丸め処理を行う（Ｓ１４）。次に、ステップＳ１４で丸め処理を行った値をカスタム用紙サイズの設定値として、印刷データに追加する（Ｓ１５）。
【００５２】
次に、ＣＰＵ１０１は印刷データを解析し、印刷コマンドを挿入する場所を検出する（Ｓ１６）。次に、生成した印刷データを解析し、そのユーザが選択した機能等を特定し、その機能に対応する印刷コマンドをＰＰＤ１２１から取得する（Ｓ１７）。
ＣＰＵ１０１は、ステップＳ１６で検出した印刷コマンドを挿入する場所に、ステップＳ１７で取得した印刷コマンドを挿入する（Ｓ１８）。印刷コマンドの挿入が完了すると、生成した印刷データを再度解析し、印刷データの中からジョブ情報を参照して、ジョブ名等を描画データに追加し、印刷データを完成させ（Ｓ１９）、完成した印刷データを印刷実行指示と共にプリンタに送信する（Ｓ２０）。以上でこの処理は終了する。
【００５３】
次に、図１１に、プリンタ２０のＣＰＵ２０１が行う処理を示す。この処理は図１０のステップＳ１７でＰＣ１０のＣＰＵ１０１が送信した印刷データをプリンタ２０のＣＰＵ２０１が受信したことをもって開始する。
プリンタ２０のＣＰＵ２０１は、印刷データを受信すると、その受信した印刷データを解析し（Ｓ２１）、印刷データに含まれる印刷コマンドに応じて、辞書に記憶すべきデータは、辞書に記憶する（Ｓ２２）。その後、印刷コマンドに従って、受信した印刷データを印刷して（Ｓ２３）、この処理は終了となる。
なお、図１０及び図１１を用いた処理は、ユーザが定義したカスタム用紙サイズを用いて行う場合に、上述した丸め誤差の問題が発生する可能性がある。
【００５４】
次に、上述した図１０及び１１の比較例を踏まえて、この発明の一実施形態である画像形成システムＸが印刷を実行する場合の処理について、図１２及び１３を用いて説明する。まず、図１２を用いて、ユーザがカスタム用紙サイズを選択し且つ、ユーザが定義したカスタム用紙サイズの値として、いわゆる丸める前の値を用いて印刷を実行する場合の処理の流れについて説明する。
図１２の処理はＰＣ１０のＣＰＵ１０１が制御して行う。また、この処理はＰＣ１０のＣＰＵ１０１がユーザからの印刷要求を受け付けると開始する。
ＰＣ１０のＣＰＵ１０１は、ユーザからの印刷要求を受け付けると、図１０のステップＳ１１及びＳ１２の処理を行う（Ｓ３１）。この処理は共通しているので、説明は省略する。
【００５５】
次に、ＣＰＵ１０１は、ステップＳ１１で取得したジョブ情報の中から、ユーザが定義したカスタム用紙サイズの値を取得し、その値をｍｍ単位からｐｔ単位に変換し、更に丸め処理を行う（Ｓ３２）。ＣＰＵ１０１は、ここで丸めた後の値をカスタム用紙サイズの設定値として取得し、丸める前の値をカスタム用紙サイズの生データとして取得する。この丸める前の値を取得する処理は、ジョブ情報解析部１２４ａの機能と対応する。また、ｍｍ単位からｐｔ単位の値に変換をして、丸める前の値を取得する処理は、ジョブ情報解析部１２４そして、ＣＰＵ１０１は、この処理において、カスタム用紙サイズの設定値の丸める前の値（生データ）を取得する取得手段として機能する。また、この丸める前の値の取得にかかる処理は、取得手順の処理である。
【００５６】
次に、ＣＰＵ１０１は、ｐｔ単位に変換したカスタム用紙サイズの値の設定値である丸めた後の値とその丸める前の値を印刷データに追加する（Ｓ３３）。この丸める前の値を追加する処理は、印刷制御部１２４ｂの機能と対応するものである。そして、この処理は、上記取得手段が取得した生データを印刷データに追加する手段である。この処理において、ＣＰＵ１０１は、第１追加手段として機能する。また、この上記取得手段が取得した生データの、印刷データへの追加に係る処理は、第１追加手順の処理である。
次に、ＣＰＵ１０１は、印刷データを解析し、印刷コマンドを挿入する場所を検出する（Ｓ３４）。印刷コマンドを挿入する場所は、印刷データの「印刷ジョブ全体にかかる設定」である。この処理も、印刷データ制御部１２４ｂの機能と対応するものである。
【００５７】
次に、ＣＰＵ１０１は、図１０のステップＳ１２で生成した印刷データを解析し、ユーザが選択した機能等を特定し、その機能に対応する印刷コマンドをＰＰＤ１２１から取得する（Ｓ３５）。そして、ステップＳ３５で取得した印刷コマンドの中から、丸める前の値を定義するための印刷コマンドを取得し、その印刷コマンドに丸める前の値を書き込む（Ｓ３６）。
次に、ＣＰＵ１０１は、ステップＳ３４で検出した印刷コマンドを挿入する場所のうち、丸める前の値を定義するための印刷コマンドを挿入する場所に、ステップＳ３６で書き込みを行った印刷コマンドを挿入する（Ｓ３７）。この処理は、カスタム用紙サイズＵＩ入力値挿入部１２４ｃの機能に対応するものである。
【００５８】
なお、上述の印刷コマンドは、カスタム用紙サイズの設定値（丸めた後の値）を、上述の第１追加手段が追加した生データに置き換える処理を実行させるための置換コマンドである。これを印刷データに挿入する処理は、該置換コマンドを印刷データに追加する手段であり、ＣＰＵ１０１は、この処理において、第２追加手段として機能する。また、上述の置換コマンドを印刷データの挿入に係る処理は、第２追加手順の処理である。
【００５９】
次に、ＣＰＵ１０１は、ステップＳ３４で検出した印刷コマンドを挿入する場所に、ステップＳ３５で取得した印刷コマンドを挿入し、印刷データを完成させる（Ｓ３８）。この処理は、印刷コマンド挿入部１２４ｅの機能に対応するものである。また、ここで挿入される印刷コマンドは、ステップＳ３７で既に挿入された印刷コマンド以外の印刷コマンドである。次にＣＰＵ１０１は、生成した印刷データを再度解析し、印刷データの中からジョブ情報を参照して、ジョブ名等を描画データに追加し、印刷データを完成させると（Ｓ３９）、完成した印刷データを印刷実行指示と共に、プリンタに送信し（Ｓ４０）、この処理は終了となる。
以上が、カスタム用紙サイズが選択された場合に、この発明の一実施形態である画像形成システムＸに含まれるＰＣ１０のＣＰＵ１０１が行う動きである。ここで、ＣＰＵ１０１が行うステップＳ３１〜Ｓ３７までの処理は、画像形成装置に実行させる印刷の内容を規定する印刷データを生成する印刷データ生成の手段であり、この処理において、ＣＰＵ１０１は印刷データ生成手段として機能する。
【００６０】
次に、上述の画像形成システムＸに含まれるプリンタ２０が、完成した印刷データを受信してからの、プリンタ２０のＣＰＵ２０１が行う処理を、図１３を用いて説明する。
図１３の処理は、図１２のステップＳ３９でＣＰＵ１０１が送信した印刷データを受信すると、開始する。また、この処理は、プリンタのＣＰＵ２０１が制御して行う処理である。
まず、プリンタ２０のＣＰＵ２０１は、受信した印刷データ及びその印刷データに含まれる印刷コマンドを解析する（Ｓ４１）。この処理は、印刷データ解析部２０ｂの機能に対応するものである。
次に、ＣＰＵ２０１は、受信した印刷データに含まれる丸める前の値を辞書に記憶させ（Ｓ４２）、印刷データ中のカスタム用紙サイズの設定値、即ち、丸めた後の値を、辞書に記憶させた丸める前の値に置き換える（Ｓ４３）。
ステップＳ４２の処理は、ＣＰＵ２０１が、上述した置換コマンドを用いて、画像形成装置に実行させる処理のうち、印刷データに含まれる生データを、画像形成装置内に用意された特定の記憶領域である辞書２０ｃに記憶させる処理である。なお、辞書２０ｃはプリンタ２０のＲＡＭ２０４ｂに設けられた記憶領域である。
【００６１】
また、ステップＳ４３の処理は、上記置換コマンドにより画像形成装置に実行させる処理のうち、印刷データ中のカスタム用紙サイズの設定値をその特定の記憶領域に記憶させた生データに置き換える処理である。
ステップＳ４３までの処理が終了すると、ＣＰＵ２０１は、印刷データ及び印刷データに含まれる印刷コマンドに基づいて、印刷を実行して（Ｓ４４）、この処理を終了する。
【００６２】
なお、ここでは、カスタム用紙サイズがユーザに選択されていることを前提として説明をしてきたが、定型用紙サイズとカスタム用紙サイズのどちらを選択するかはユーザしだいである。したがって、上記置換コマンドは、印刷データ中に丸める前の値が含まれているか否かを判断する処理と、該判断において含まれていると判断した場合に、その印刷データ中のカスタム用紙サイズの設定値を丸める前の値に置き換える処理とを画像形成装置に実行させるためのコマンドでもある。
【００６３】
本発明の一実施形態であるＰＣ１０とプリンタ２０を用いて、上記図１２及び図１３の処理を行うことにより、丸める前の値である生データがプリンタ２０の辞書２０ｃに定義されることになるため、プリンタ２０において、ｐｔ単位からｍｍ単位への変換を行った場合に、いわゆる丸め誤差が生じることはなくなり、これにより丸め誤差によって生じる用紙不一致の問題は解消される。
しかし、印刷ジョブ全体にかかる設定において、定形サイズと丸める前の値が設定されている場合、ユーザは定形サイズでの印刷を望んでいるのに、辞書２０ｃには丸める前の値が定義されてしまうため、上記の置換コマンドによって、用紙サイズが丸める前の値に置き換わってしまう。
【００６４】
そこで、このような事態を回避するための処理として、図１４及び１５に示すフローチャートの処理が考えられる。以下、この処理について図を用いて説明する。
なお、この処理は、この発明の一実施形態である画像形成システムＸの変形例の一つである。
まず、図１４に示した処理は、定型用紙サイズをユーザが選択した場合の、ＰＣ１０のＣＰＵ１０１が制御する動きである。
なお、ここでは、用紙サイズが意に反して丸める前の値に置き換わってしまうことを防ぐために行う処理のみ説明する。実際の動きとしては、図１０に説明した処理に、この処理が適宜追加される。
【００６５】
ＰＣ１０のＣＰＵ１０１は、丸める前の値を辞書２０ｃから削除する印刷コマンドをＰＰＤ１２１から取得し（Ｓ５１）、更に、印刷データ中のどの場所に、その印刷コマンドを挿入するかを検出する（Ｓ５２）。
ＣＰＵ１０１はステップＳ５２で検出した場所に、丸める前の値を削除するための印刷コマンドを挿入する（Ｓ５３）。
なお、ステップＳ５３の処理は、何らかの用紙サイズを設定した場合にプリンタ２０の辞書２０ｃに記憶されている丸める前の値を削除するための削除コマンドを印刷データに追加する処理であり、この処理においてＣＰＵ１０１は、第３追加手段として機能する。
【００６６】
図１５は、図１４の処理により、丸める前の値を削除する印刷コマンドが追加されている印刷データをプリンタ２０のＣＰＵ２０１が受信すると、開始する処理である。なお、図１４で行われた処理に対応して行われる処理についてのみ説明する。実際の動きとしては、図１１で説明した処理に、この処理が適宜追加される。
この処理は、プリンタ２０のＣＰＵ２０１が制御して行う処理である。
【００６７】
プリンタ２０のＣＰＵ２０１は、ＰＣ１０のＣＰＵ１０１から、完成した印刷データを受信すると、辞書２０ｃに丸める前の値が定義されているか否かを判断する（Ｓ６１）。
定義されていない場合は（Ｓ６１のＮｏ）、受信した印刷データを印刷して（Ｓ５３）、この処理は終了する。
定義されている場合は（Ｓ５１のＹｅｓ）、印刷データに挿入されている、丸める前の値を削除するための印刷コマンドにより、辞書２０ｃから丸める前の値を削除して（Ｓ５２）、この処理は終了となる。
【００６８】
以上の、図１４及び図１５の処理を行うことにより、定型用紙サイズをユーザが指定しているにもかかわらず、丸める前の値が辞書２０ｃに定義されていたために、ユーザが指定した本来の印刷用紙サイズでの印刷ができなくなるという不具合が解消される。
なお、丸める前の値を削除するための印刷コマンドを図１６Ａに示した。下線を引いたコマンド５２０が、従来の印刷コマンドに追加されるコマンド部分である。
この印刷コマンド５２０により、丸める前の値が辞書２０ｃに定義されている場合は、辞書２０ｃから丸める前の値を削除することが可能となる。なお、丸める前の値が辞書２０ｃに定義されていない場合は、この印刷コマンドを実行しても何も変化は生じない。
【００６９】
また、図１６ＢにＰＰＤ１２１の定型用紙サイズコマンドに、このコマンド５２０を追加した印刷コマンドデータ５３０を示した。
点線枠で囲った部分の印刷コマンドデータ５３１が、定型用紙サイズコマンドが記載されている部分であり、太字斜体を用いて記載をした下線部分の印刷コマンド５３２及び５３３が追加されたコマンドである。
ここでは、Ａ３用紙とＡ４用紙の２つのみを記載しているが、実際には、全ての紙種に対するコマンドが列挙されており、それら全てに対して、同様のコマンドを追加していく。
【００７０】
次に、図１７について説明する。図１７で説明する処理は、この発明の一実施形態である画像形成システムＸの別の変形例である。
ユーザが行った印刷要求において、カスタム用紙サイズが選択されている場合、通常は、用紙サイズ指定の印刷コマンドのうち、印刷ジョブ中の一番初めに現れる、印刷ジョブ全体にかかる用紙サイズの印刷コマンドの時だけ、カスタム用紙サイズの設定値を丸める前の値に置き換える処理を行えばよい。
【００７１】
しかし、このときに、印刷データに現れるカスタム用紙サイズの２回目以降の印刷コマンド（ページ毎の印刷コマンド）で、ページ毎に丸める前の値を辞書２０ｃに定義するコマンドが含まれていると、ユーザの意に反して、丸める前の値でカスタム用紙サイズの値が置き換わってしまう。このような事態を避けるために、カスタム用紙サイズの設定に関する２回目以降の印刷コマンドでは丸める前の値の定義を削除することが望ましい。
ここでは、カスタム用紙サイズが選択されている場合に、ＰＣ１０のＣＰＵ１０１が送信した印刷データをプリンタ２０が受信すると開始される処理を示した。
【００７２】
この処理は、プリンタ２０のＣＰＵ２０１が、後述する図１８Ａに示した印刷コマンドを用いて、プリンタ２０のＣＰＵ２０１が行う処理である。また、この図１８Ａに示した印刷コマンドは、ＰＣ１０から送信される印刷データに含まれる。
まず、プリンタ２０のＣＰＵ２０１はカスタム用紙サイズの設定値が整数値であるか否かを判断する（Ｓ７１）。ここで、整数値とは、丸められた後の値であることを意味する。
この処理は、印刷データ中に含まれているカスタム用紙サイズの設定値が特定の分解能で記述されているか否かを判断する処理に基づいて行われる処理である。
【００７３】
整数値である場合は（Ｓ７１でＹｅｓ）、辞書２０ｃに丸める前の値が定義されているかを判断し（Ｓ７２）、丸める前の値が辞書２０ｃに定義されていれば（Ｓ７２でＹｅｓ）、上述の印刷コマンドを用いて、カスタム用紙サイズの設定値を丸める前の値に置き換える（Ｓ７３）。
一方、ステップＳ７１でＮｏの場合は、丸める前の値が定義されていることになるので、ステップＳ７４に進む。
また、ステップＳ７２でＮｏの場合は、そのままステップＳ７４に進む。
【００７４】
辞書２０ｃに丸める前の値が定義されている場合（Ｓ７４のＹｅｓ）は、プリンタ２０のＣＰＵ２０１は、図１８Ａに示す印刷コマンドを用いて、辞書２０ｃから丸める前の値を削除し（Ｓ７５）、印刷データを印刷して（Ｓ７６）、この処理は終了する。
このような処理を行うことで、最初に用紙サイズを設定したにもかかわらず、２回目以降の印刷データに含まれる丸める前の値を辞書２０ｃに定義する印刷コマンドによって、丸める前の値で用紙サイズが設定されてしまうことを防ぐことができる。
【００７５】
一方、定義されていない場合（Ｓ７４のＮｏ）は、ＣＰＵ２０１は、そのまま受信した印刷データを印刷して（Ｓ７６）、この処理は終了する。
定義されていない場合は、そもそも無駄な処理なので、簡易な処理にすることができる。
なお、印刷コマンドを図１８（Ａ）に示した。下線を引いたコマンド５４０が従来の印刷コマンドに追加される部分である。
この印刷コマンド５４０により、ページ全体の設定を行う最初の印刷コマンドに、丸める前の値が辞書２０ｃに定義されている場合は、丸める前の値と置き換え、２回目以降の印刷コマンドに丸める前の値が定義されている場合は、その値が辞書２０ｃから削除される。
【００７６】
また、図１８（Ｂ）にＰＰＤ１２１の定型用紙サイズコマンドに加えて、このコマンド５４０を追加した印刷コマンドデータ５５０を示した。
点線枠で囲った部分の印刷コマンドデータ５５１が、カスタム用紙サイズコマンドが記載されている部分であり、太字斜体を用いて記載をした下線部分の印刷コマンド５５２及び５５３が、追加されたコマンドである。
このコマンドにより、図１７の処理が実現することになる。
【００７７】
図１９に、この画像形成システムＸでＰＣ１０がプリンタ２０に送信する印刷データのパターンを示した。このリストの仕様は図１に対応する。つまり、印刷データ（Ａ）９１１及び（Ｂ）９１２は、印刷データ全体で１つの用紙サイズを指定し、ページ毎に用紙サイズを指定することはない。一方、印刷データ（Ｃ）９１３及び（Ｄ）９１４はページ毎に用紙サイズを指定する。また、印刷データ（Ｃ）９１３及び（Ｄ）９１４は、印刷データを生成するアプリケーションの仕様により、印刷ジョブ全体にかかる設定９１３ａ、９１４ａに用紙サイズが出力される場合もあるが、この設定は無視され、ページ毎の用紙サイズのみが有効となる。また、印刷データ（Ａ）９１１及び（Ｃ）９１３は丸め処理を行うが、印刷データ（Ｂ）９１２及び（Ｄ）９１４は丸め処理を行わない。
【００７８】
これらの印刷データ（Ａ）９１１乃至（Ｄ）９１４を、上述してきた画像形成システムを用いて印刷処理を行う場合の、カスタム用紙サイズの設定値について説明する。
まず、図１９の印刷データ（Ａ）９１１は、ページ全体で１つの用紙サイズをカスタム用紙サイズとして設定するパターンのデータである。また、設定９１１ａに記載されている値には、カスタム用紙サイズの設定値として丸めた後の値が設定されている。また、実際の用紙サイズである丸める前の値も含まれている。この画像形成システムでは、既に説明した、置き換えの印刷コマンドを用いて、カスタム用紙サイズの設定値を、現在設定されている丸めた後の値から、実際のサイズである丸める前の値に置き換える。よって、カスタム用紙サイズの設定値は「８４３．０２３６２１×５６６．９２９１３８ｐｔ」となる。このように、丸める前の値をカスタム用紙サイズの設定値として置き換えることで、丸め誤差による用紙不一致の問題は解消される。
なお、辞書２０ｃに記憶していた実際のサイズは、置き換えコマンドを実行後は、削除する。これにより、以降は用紙サイズ設定の印刷コマンドは含まれない。
【００７９】
図１９の印刷データ（Ｂ）９１２も、ページ全体で１つの用紙サイズをカスタム用紙サイズとして設定するパターンのデータである。また、設定９１２には、カスタム用紙データの設定値として、丸める前の値が設定されている。また、丸める前の値は、設定９１２、実際の用紙サイズとしても含まれている。このため、実際の用紙サイズの値とカスタム用紙サイズとして設定されている値は同じになる。そこで、この例ではカスタム用紙サイズの設定値の置換えは行わない。なお、辞書２０ｃに記憶しておいた丸められる前の値は削除する。よって、カスタム用紙サイズの設定値は「８４３．０２３６２１×５６６．９２９１３８ｐｔ」となる。この（Ｂ）９１２のようなパターンでは、そもそも印刷データに丸める前の値は含まれない。したがって、丸め誤差による用紙サイズの不一致という問題は、そもそもが発生しない。
【００８０】
図１９の印刷データ（Ｃ）９１３は、ページ毎に用紙設定を行うデータである。したがって、印刷ジョブ全体にかかる設定９１３ａの用紙サイズの設定（定形Ａ４）は無視される。次に、実際のサイズが設定９１３ａに含まれているので、プリンタ２０のＣＰＵ２０１は、辞書２０ｃにこの値を定義する。そこで、図１５のフローに従って、この値を辞書２０ｃから削除する。次に、ページ毎９１３ｂ、９１３ｃ及び９１３ｄにカスタム用紙サイズの印刷コマンドを出す。このとき、辞書２０ｃからは丸める前の値が削除されているので、印刷データ（Ｃ）９１３には、丸める前の値が含まれているが、置換えコマンドが出されても、置き換わることはない。したがって、印刷データ（Ｃ）９１３のカスタム用紙サイズの設定値は「８４３×５６７ｐｔ」となる。（Ｃ）９１３のようなパターンでは、丸める前の値の定義を辞書から削除してしまうので、丸め誤差による用紙サイズの不一致という問題は解消できない。但し、このパターンは一部のアプリケーションでしか提供されないので、あまり気にする必要はないと思われる。
【００８１】
図１９の印刷データ（Ｄ）９１４もページ毎に用紙設定を行うデータである。したがって、印刷データ（Ｃ）と同じように処理され、カスタム用紙サイズの設定値は「８４３．０２３６２１×５６６．９２９１３８ｐｔ」となる。（Ｄ）９１４のパターンも、そもそも丸め処理を行わないパターンなので、丸め誤差による用紙サイズの不一致という問題は生じ得ない。
以上より、この画像形成システムで、丸め誤差による用紙不一致を回避できるのは、印刷データ（Ａ）９１１のパターンであるが、図２で説明したように、ＯＳが標準で描画エンジンを提供しているのがこのパターンである。殆どのアプリケーションが生成する印刷データはこのパターンに該当するので、この画像形成システムにより、丸め誤差による用紙不一致の問題を解消できたといえる。
なお、このように、丸める前の値を丸めた後の値と置き換えるのは、印刷コマンドを用いて実現することができるため、プリンタドライバに大きな変更を加えることもなく、費用的にも安価、時間的にも短時間で実行可能である。
以上で、本発明の一実施形態である、ネットワークを介して接続されたＰＣ１０及びプリンタ２０を備える画像形成システムＸに関する説明を終了する。
【００８２】
以上で本発明の実施形態の説明を終了するが、この発明において、装置の具体的な構成、ネットワークの具体的な構成、具体的な処理の手順等は、実施形態で説明したものに限るものではない。
例えば、本発明の辞書２０ｃに丸める前の値を定義する印刷コマンドを取得する処理と、ＵＩでユーザが選択した機能に対応する印刷コマンドを取得する処理は、処理の順序が変わってもよいし、同時に行ってもよい。
ＰＣ１０及びプリンタ２０の数も任意であり、図３に示した構成に限られるものではない。また、プリンタ２０の代わりに、ＭＦＰ等の画像形成装置を用いてもよい。
【００８３】
また、上述の実施形態におけるＰＣ１０及びプリンタ２０の機能を実現する情報処理装置としてもよい。
また、１又は複数のプロセッサが協働して、上述の実施形態においてＰＣ１０及びプリンタ２０が実行した処理の各手順を実行する情報処理装置が実行する印刷データ生成方法としてもよい。
更に、また、１又は複数のコンピュータに、上述したＰＣ１０とプリンタ２０の機能を実現させるためのプログラムとしてもよい。
【００８４】
本発明におけるＰＣ１０、プリンタ２０が行う処理に関するプログラムは、ＲＯＭ１０３に記憶しておく他、外部の記憶媒体等に記憶しておいてもよい。また、メモリカード、ＣＤ、ＤＶＤ、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムを他の画像形成装置にインストールして実行させることにより、上述した各手順を実行させることができる。
【００８５】
また、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
更に、上述してきた処理を行うプログラムを搭載した情報処理装置としてもよい。
また、この発明の実施形態であるプログラムを搭載した情報処理装置が行う処理の方法としてもよいし、当該プログラムと、それを実行する手段を備える画像形成装置とを備える画像形成システムとしてもよい。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【符号の説明】
【００８６】
１０：ＰＣ、１０１：ＣＰＵ、１０３：ＲＯＭ、２０：プリンタ、２０１：ＣＰＵ、２０４ａ：ＲＯＭ、３０：ＯＳ、４０：プリンタドライバ、１２０：印刷ＵＩ、１２１：ＰＰＤ、１２２：アプリケーション、１２３：描画エンジン、１２４：フィルタ、１２４ａ：ジョブ解析部、１２４ｂ：印刷データ制御部、１２４ｃ：カスタム用紙サイズＵＩ入力値挿入部、１２４ｄ：印刷コマンド取得部、１２４ｅ：印刷コマンド挿入部、１２４ｆ：印刷データ送信部２０ａ：印刷データ受信部、２０ｂ：印刷データ解析部、２０ｃ：辞書、２０ｄ：印刷実行部、Ｘ：画像形成システム
【先行技術文献】
【特許文献】
【００８７】
【特許文献１】特開平１１−３０１０７１号公報
【図１】
2016177694.tif 000003
【図２】
2016177694.tif 000004
【図３】
2016177694.tif 000005
【図４】
2016177694.tif 000006
【図５】
2016177694.tif 000007
【図６】
2016177694.tif 000008
【図７】
2016177694.tif 000009
【図８】
2016177694.tif 000010
【図９】
2016177694.tif 000011
【図１０】
2016177694.tif 000012
【図１１】
2016177694.tif 000013
【図１２】
2016177694.tif 000014
【図１３】
2016177694.tif 000015
【図１４】
2016177694.tif 000016
【図１５】
2016177694.tif 000017
【図１６Ａ】
2016177694.tif 000018
【図１６Ｂ】
2016177694.tif 000019
【図１７】
2016177694.tif 000020
【図１８Ａ】
2016177694.tif 000021
【図１８Ｂ】
2016177694.tif 000022
【図１９】
2016177694.tif 000023