(57)【要約】【課題】プリンタを制御するプログラムなどの用意および更新を従来よりも容易にする。【解決手段】端末装置２に、印刷に関しかつユーザに対して示す第一の項目１つまたは複数によって構成される組合せごとに、この組合せについて設定され得る第一の条件とＰＪＬにおける１つまたは複数の第二の項目それぞれについて設定され得る第二の条件との対応関係を示すテーブル５２を記憶する、分解ＰＪＬテーブル記憶部２０３と、ドキュメントを画像形成装置１に印刷させるためにユーザの操作に応じて第一の項目について設定された第一の設定条件に対応する、ＰＪＬにおける第二の設定条件を、テーブル５２に基づいて求める、値変換部２０６と、求めた第二の設定条件に基づいてドキュメントを印刷するための、ＰＪＬによる印刷データ５３を生成し画像形成装置１へ送信するジョブ指令部２０７と、を設ける。【選択図】図４
2017111700.tif 000002
【特許請求の範囲】
【請求項１】
プリンタにドキュメントを印刷させる印刷制御装置であって、
印刷に関しかつユーザに対して示す第一の項目１つまたは複数によって構成される組合せごとに、当該組合せについて設定され得る第一の条件と前記プリンタで使用される言語における１つまたは複数の第二の項目それぞれについて設定され得る第二の条件との対応関係を示す条件関係データを記憶する、条件関係データ記憶手段と、
前記ドキュメントを前記プリンタに印刷させるために前記ユーザの操作に応じて前記第一の項目について設定された第一の設定条件に対応する、前記言語における第二の設定条件を、前記条件関係データに基づいて求める、設定条件導出手段と、
求められた前記第二の設定条件に基づいて前記ドキュメントを印刷するための、前記言語による印刷データを生成する、印刷データ生成手段と、
生成された前記印刷データを前記プリンタへ送信する印刷データ送信手段と、
を有することを特徴とする印刷制御装置。
【請求項２】
前記組合せごとに、当該組合せを構成する前記第一の項目を示す構成データを記憶する、構成データ記憶手段と、
前記構成データに基づいて前記第一の設定条件を前記組合せごとに分類する分類手段と、
を有し、
前記設定条件導出手段は、前記組合せごとに前記第二の設定条件を求める、
請求項１に記載の印刷制御装置。
【請求項３】
前記条件関係データ記憶手段は、前記第一の条件に基づいて前記第二の条件を求める導出方法を示すデータを前記条件関係データとして記憶する、
請求項２に記載の印刷制御装置。
【請求項４】
前記条件関係データ記憶手段は、前記導出方法として、前記第一の条件を変数とする数式または前記第一の条件の値ごとに対応する前記第二の条件の選択肢を示すデータを前記条件関係データとして記憶し、
前記設定条件導出手段は、前記組合せに対応する前記第二の設定条件を、当該組合せの前記導出方法が前記数式である場合は、当該組合せに分類された前記第一の設定条件を当該数式に代入することによって求め、当該導出方法が前記選択肢である場合は、当該第一の設定条件に対応する前記選択肢を選出することによって求める、
請求項３に記載の印刷制御装置。
【請求項５】
前記設定条件導出手段は、前記ドキュメントが複数のページによって構成され、かつ、当該複数のページを複数に分けたグループごとに前記第一の設定条件が設定された場合は、当該グループごとに前記第二の設定条件を求める、
請求項１ないし請求項４のいずれかに記載の印刷制御装置。
【請求項６】
前記条件関係データ記憶手段は、必要に応じてサーバから送信されてきた前記条件関係データを記憶し、
前記構成データ記憶手段は、必要に応じて前記サーバから送信されてきた前記構成データを記憶する、
請求項１ないし請求項５のいずれかに記載の印刷制御装置。
【請求項７】
プリンタにドキュメントを印刷させるように制御する印刷制御方法であって、
印刷に関しかつユーザに対して示す第一の項目１つまたは複数によって構成される組合せごとに、当該組合せについて設定され得る第一の条件と前記プリンタで使用される言語における１つまたは複数の第二の項目それぞれについて設定され得る第二の条件との対応関係を示す条件関係データを条件関係データ記憶手段に記憶させておき、
前記ドキュメントを前記プリンタに印刷させるために前記ユーザの操作に応じて前記第一の項目について設定された第一の設定条件に対応する、前記言語における第二の設定条件を、前記条件関係データに基づいて求め、
求められた前記第二の設定条件に基づいて前記ドキュメントを印刷するための、前記言語による印刷データを生成し、
生成された前記印刷データを前記プリンタへ送信する、
ことを特徴とする印刷制御方法。
【請求項８】
プリンタにドキュメントを印刷させ、かつ、印刷に関しかつユーザに対して示す第一の項目１つまたは複数によって構成される組合せごとに、当該組合せについて設定され得る第一の条件と前記プリンタで使用される言語における１つまたは複数の第二の項目それぞれについて設定され得る第二の条件との対応関係を示す条件関係データを記憶する条件関係データ記憶手段にアクセスすることができるコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
前記ドキュメントを前記プリンタに印刷させるために前記ユーザの操作に応じて前記第一の項目について設定された第一の設定条件に対応する、前記言語における第二の設定条件を、前記条件関係データに基づいて求める処理を実行させ、
求められた前記第二の設定条件に基づいて前記ドキュメントを印刷するための、前記言語による印刷データを生成する処理を実行させ、
生成された前記印刷データを前記プリンタへ送信する処理を実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタに対して印刷の条件を与える技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータまたはタブレットコンピュータなどのコンピュータに用意されたドキュメントをプリンタで印刷する技術が普及している。
【０００３】
コンピュータには、プリンタに対応したプリンタドライバが予めインストールされている。コンピュータは、ユーザがプリンタドライバに対して設定した条件に合わせて、ドキュメントを印刷するための印刷データをプリンタドライバによって生成する。印刷データは、プリンタに対応したＰＪＬ（Printer Job Language）によって記述される。
【０００４】
プリンタドライバに関する技術として、次のような技術が提案されている。プリントシステムは、ネットワークを介して接続された情報処理装置と画像形成装置とを含む。画像形成装置は、機能情報を情報処理装置に渡す。情報処理装置は、当該機能情報と情報処理装置に登録されるプリンタ設定情報とを対応付ける対応テーブルを生成する。さらに、情報処理装置は、機能情報からプリンタ設定情報を生成してプリンタドライバを作成する。プリンタドライバは、対応テーブルを利用して画像形成装置に送信される印刷設定情報を含むメッセージを生成する（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２１８３４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図１８は、プリンタドライバのソースコードの一部分の例を示す図である。
【０００７】
ところで、プリンタドライバに対してユーザが設定する項目の体系とＰＪＬにおける項目の体系とは、同一ではない。すなわち、両体系の項目またはコマンドが１対１に対応していない。
【０００８】
従来は、ＰＪＬのコマンド（印刷コマンド）を記載したソースコードをコンピュータに用意しておき、コンピュータは、ユーザによって設定された設定値に応じて、このソースコードに従って印刷データを生成する。
【０００９】
しかし、項目またはコマンドが１対１に対応していないような複雑な場合は、ソースコードを作成するのが難しい。
【００１０】
例えば、ＰＪＬにおける項目またはコマンドが、図１８（Ａ）に示すように設定値の条件によって決まったり、図１８（Ｂ）に示すように演算式によって決まったり、図１８（Ｃ）に示すように構造式によって決まったりするので、複雑である。
【００１１】
また、ソースコードが図１８（Ａ）〜（Ｃ）のような様々な形式で記述される場合は、プリンタの仕様の変更またはメンテナンスなどに応じてソースコードを更新することが難しい。
【００１２】
本発明は、このような問題点に鑑み、プリンタに印刷を行わせるためのプログラムなどの用意および更新を従来よりも容易にすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一形態に係る印刷制御装置は、プリンタにドキュメントを印刷させる印刷制御装置であって、印刷に関しかつユーザに対して示す第一の項目１つまたは複数によって構成される組合せごとに、当該組合せについて設定され得る第一の条件と前記プリンタで使用される言語における１つまたは複数の第二の項目それぞれについて設定され得る第二の条件との対応関係を示す条件関係データを記憶する、条件関係データ記憶手段と、前記ドキュメントを前記プリンタに印刷させるために前記ユーザの操作に応じて前記第一の項目について設定された第一の設定条件に対応する、前記言語における第二の設定条件を、前記条件関係データに基づいて求める、設定条件導出手段と、求められた前記第二の設定条件に基づいて前記ドキュメントを印刷するための、前記言語による印刷データを生成する、印刷データ生成手段と、生成された前記印刷データを前記プリンタへ送信する印刷データ送信手段と、を有する。
【００１４】
好ましくは、前記組合せごとに、当該組合せを構成する前記第一の項目を示す構成データを記憶する、構成データ記憶手段と、前記構成データに基づいて前記第一の設定条件を前記組合せごとに分類する分類手段と、を有し、前記設定条件導出手段は、前記組合せごとに前記第二の設定条件を求める。
【００１５】
さらに好ましくは、前記条件関係データ記憶手段は、前記第一の条件に基づいて前記第二の条件を求める導出方法を示すデータを前記条件関係データとして記憶する。さらには、前記導出方法として、例えば、前記第一の条件を変数とする数式または前記第一の条件の値ごとに対応する前記第二の条件の選択肢を示すデータを前記条件関係データとして記憶し、前記設定条件導出手段は、前記組合せに対応する前記第二の設定条件を、当該組合せの前記導出方法が前記数式である場合は、当該組合せに分類された前記第一の設定条件を当該数式に代入することによって求め、当該導出方法が前記選択肢である場合は、当該第一の設定条件に対応する前記選択肢を選出することによって求める。
【００１６】
または、前記設定条件導出手段は、前記ドキュメントが複数のページによって構成され、かつ、当該複数のページを複数に分けたグループごとに前記第一の設定条件が設定された場合は、当該グループごとに前記第二の設定条件を求める。
【００１７】
または、前記条件関係データ記憶手段は、必要に応じてサーバから送信されてきた前記条件関係データを記憶し、前記構成データ記憶手段は、必要に応じて前記サーバから送信されてきた前記構成データを記憶する。
【発明の効果】
【００１８】
本発明によると、プリンタドライバの用意および更新を従来よりも容易にすることができる。
【図面の簡単な説明】
【００１９】
【図１】プリントシステムの全体的な構成の例を示す図である。
【図２】画像形成装置のハードウェア構成の例を示す図である。
【図３】端末装置のハードウェア構成の例を示す図である。
【図４】端末装置の機能的構成の例を示す図である。
【図５】ダイアログボックスの例を示す図である。
【図６】ＰＪＬインデックステーブルの例を示す図である。
【図７】分解ＰＪＬテーブルの例を示す図である。
【図８】分解ＰＪＬテーブルの例を示す図である。
【図９】分解ＰＪＬテーブルの例を示す図である。
【図１０】分解ＰＪＬテーブルの例を示す図である。
【図１１】分解ＰＪＬテーブルの例を示す図である。
【図１２】分解ＰＪＬテーブルの例を示す図である。
【図１３】設定項目分解処理の流れの例を説明するフローチャートである。
【図１４】ＰＪＬデータ生成処理の流れの例を説明するフローチャートである。
【図１５】ＰＪＬ決定処理の流れの例を説明するフローチャートである。
【図１６】クライアントにおけるネットワークプリントジョブの全体的な処理の流れの例を説明するフローチャートである。
【図１７】プリントシステムの全体的な構成の変形例を示す図である。
【図１８】プリンタドライバのソースコードの一部分の例を示す図である。
【発明を実施するための形態】
【００２０】
図１は、プリントシステム４の全体的な構成の例を示す図である。図２は、画像形成装置１のハードウェア構成の例を示す図である。図３は、端末装置２のハードウェア構成の例を示す図である。図４は、端末装置２の機能的構成の例を示す図である。
【００２１】
図１に示すように、プリントシステム４は、画像形成装置１、１台または複数台の端末装置２、および通信回線３などによって構成される。
【００２２】
プリントシステム４によると、ユーザは、端末装置２にデータが用意されたドキュメントを画像形成装置１で用紙に印刷することによって、印刷物を生成することができる。
【００２３】
画像形成装置１および各端末装置２は、通信回線３を介して互いに接続されている。通信回線３として、ＬＡＮ（Local Area Network）回線、インターネット、公衆回線、または専用線などが用いられる。
【００２４】
画像形成装置１は、コピー、ネットワークプリント、ファックス、スキャン、およびボックスなどの機能を集約した装置である。一般に、「複合機」または「ＭＦＰ（Multi Function Peripherals）」などと呼ばれることがある。
【００２５】
ネットワークプリントの機能は、端末装置２から受信した画像データに基づいて画像を用紙に印刷する機能である。「ネットワークプリンティング」または「ＰＣプリント」などと呼ばれることもある。
【００２６】
ボックスの機能は、ユーザごとに「ボックス」または「パーソナルボックス」などと呼ばれる記憶領域を与えておき、各ユーザが自分の記憶領域によって画像データなどを保存し管理するためのサービスである。ボックスは、パーソナルコンピュータにおける「フォルダ」または「ディレクトリ」に相当する。
【００２７】
画像形成装置１は、図２に示すように、ＣＰＵ（Central Processing Unit）１０ａ、ＲＡＭ（Random Access Memory）１０ｂ、ＲＯＭ（Read Only Memory）１０ｃ、補助記憶装置１０ｄ、タッチパネルディスプレイ１０ｅ、操作キーパネル１０ｆ、ＮＩＣ（Network Interface Card）１０ｇ、モデム１０ｈ、スキャンユニット１０ｉ、プリントユニット１０ｊ、およびフィニッシャ１０ｋなどによって構成される。
【００２８】
タッチパネルディスプレイ１０ｅは、ユーザに対するメッセージを示す画面、ユーザがコマンドまたは情報を入力するための画面、およびＣＰＵ１０ａが実行した処理の結果を示す画面などを表示する。また、タッチパネルディスプレイ１０ｅは、タッチされた位置を示す信号をＣＰＵ１０ａへ送る。
【００２９】
操作キーパネル１０ｆは、いわゆるハードウェアキーボードであって、テンキー、スタートキー、ストップキー、およびファンクションキーなどによって構成される。
【００３０】
ＮＩＣ１０ｇは、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）などのプロトコルによって端末装置２と通信する。
【００３１】
モデム１０ｈは、ファックス端末との間でＧ３などのプロトコルで画像データをやり取りする。
【００３２】
スキャンユニット１０ｉは、プラテンガラスの上にセットされたシートに記されている画像を読み取って画像データを生成する。
【００３３】
プリントユニット１０ｊは、スキャンユニット１０ｉによって読み取られた画像を印刷する。さらに、端末装置２からＮＩＣ１０ｇによって受信されたデータに基づいて画像を用紙に印刷する。そのほか、ファックス端末からモデム１０ｈによって受信されたデータに基づいて画像を用紙に印刷する。
【００３４】
フィニッシャ１０ｋは、プリントユニット１０ｊによってドキュメントが印刷された用紙すなわち印刷物に対して仕上げの処理を行うこと。
【００３５】
具体的には、フィニッシャ１０ｋは、ステープル装置、パンチ装置、および紙折り装置などによって構成される。そして、仕上げの処理として、印刷物をステープル装置で綴じる処理、用紙にパンチ穴を開ける処理、および用紙を折り曲げる処理のうちのいずれか１つまたは複数を行う。
【００３６】
ＲＯＭ１０ｃまたは補助記憶装置１０ｄには、上述の機能を提供するためのプログラムが記憶されている。これらのプログラムは、必要に応じてＲＡＭ１０ｂにロードされ、ＣＰＵ１０ａによって実行される。補助記憶装置１０ｄとして、ハードディスクまたはＳＳＤ（Solid State Drive）などが用いられる。
【００３７】
端末装置２は、ドキュメントを印刷するサービスをユーザが画像形成装置１から受けるためのクライアントである。端末装置２として、パーソナルコンピュータ、タブレットコンピュータ、またはスマートフォンなどが用いられる。以下、端末装置２としてパーソナルコンピュータが用いられる場合を例に説明する。
【００３８】
端末装置２は、図３に示すように、ＣＰＵ２０ａ、ＲＡＭ２０ｂ、ＲＯＭ２０ｃ、補助記憶装置２０ｄ、液晶ディスプレイ２０ｅ、ＮＩＣ２０ｆ、キーボード２０ｇ、およびポインティングデバイス２０ｈなどによって構成される。
【００３９】
液晶ディスプレイ２０ｅには、印刷の対象であるドキュメントおよび印刷の指令のための画面などが表示される。
【００４０】
ＮＩＣ２０ｆは、画像形成装置１などとＴＣＰ／ＩＰなどのプロトコルによって通信する。
【００４１】
キーボード２０ｇおよびポインティングデバイス２０ｈは、ユーザが情報およびコマンドを入力するために用いられる。
【００４２】
ＲＯＭ２０ｃまたは補助記憶装置２０ｄには、オペレーティングシステムおよび種々のアプリケーションのほか、プリンタドライバ２０Ｐが記憶されている。プリンタドライバ２０Ｐは、ネットワークプリントジョブを画像形成装置１に行わせるためのプログラムである。ネットワークプリントジョブは、端末装置２にデータが用意されたドキュメントを用紙に印刷し、それによって得られた印刷物に対して適宜、仕上げの処理を施すジョブである。
【００４３】
これらのプログラムは、必要に応じてＲＡＭ２０ｂにロードされ、ＣＰＵ２０ａによって実行される。補助記憶装置２０ｄとして、ハードディスクまたはＳＳＤなどが用いられる。
【００４４】
プリンタドライバ２０Ｐによると、図４に示すジョブ条件受付部２０１、ＰＪＬ（Printer Job Language）インデックステーブル記憶部２０２、分解ＰＪＬテーブル記憶部２０３、項目置換部２０４、直積分解部２０５、値変換部２０６、およびジョブ指令部２０７などの機能が端末装置２に実現される。
【００４５】
以下、ジョブ条件受付部２０１ないしジョブ指令部２０７について、説明する。併せてユーザによる端末装置２の操作についても説明する。
【００４６】
図５は、ダイアログボックス７１の例を示す図である。図６は、ＰＪＬインデックステーブル５１の例を示す図である。図７は、分解ＰＪＬテーブル５２１の例を示す図である。図８は、分解ＰＪＬテーブル５２２の例を示す図である。図９は、分解ＰＪＬテーブル５２３の例を示す図である。図１０は、分解ＰＪＬテーブル５２４の例を示す図である。図１１は、分解ＰＪＬテーブル５２５の例を示す図である。図１２は、分解ＰＪＬテーブル５２６の例を示す図である。図１３は、設定項目分解処理の流れの例を説明するフローチャートである。図１４は、ＰＪＬデータ生成処理の流れの例を説明するフローチャートである。図１５は、ＰＪＬ決定処理の流れの例を説明するフローチャートである。
【００４７】
ジョブ条件受付部２０１は、ネットワークプリントジョブの条件を取得する処理を例えば次のように実行する。
【００４８】
ユーザは、印刷したいドキュメントのファイル６１を端末装置２に用意する。ワープロソフトまたは描画ソフトなどによってドキュメントを作成することによって用意してもよいし、インターネットからドキュメントのファイルをダウンロードし、このファイルをファイル６１として用いてもよい。
【００４９】
そして、ユーザは、ファイル６１をアプリケーションによって開いた状態で、所定のコマンドを端末装置２に入力する。
【００５０】
すると、ジョブ条件受付部２０１は、図５のようなダイアログボックス７１を液晶ディスプレイ２０ｅに表示させる。ダイアログボックス７１は、ネットワークプリントジョブの種々の項目についての条件の値を設定するための画面である。
【００５１】
図５に例示する状態においては、ユーザは、一部の項目についてのみ、条件の値を設定することができる。残りの項目については、タブをタップして切換えを行うことによって、設定することができる。
【００５２】
ここで、ユーザは、ダイアログボックス７１に対して操作を行うことによって、項目それぞれについての条件の値を設定する。
【００５３】
すると、ジョブ条件受付部２０１は、設定された値を受け付ける。以下、受け付けられた値を「設定値」と記載する。ネットワークプリントジョブについて設定する項目を「設定項目」と記載する。また、各設定項目の設定値を「Ｂ１」、「Ｂ２」、「Ｂ３」、…と区別して記載することがある。
【００５４】
ジョブ条件受付部２０１によって得られた、各設定項目の設定値を、直積によって表わすことができる。例えば、設定項目がｎ個ある場合は、Ｂ１×Ｂ２×…×Ｂｎ、という直積によって表わすことができる。
【００５５】
設定値は、一次元の値であることもあれば、多次元の値であることもある。例えば、設定項目が「用紙サイズ」（ドキュメントを印刷する用紙のサイズ）である場合は、設定値として、「Ａ３サイズ」、「Ｂ４サイズ」、または「Ａ４サイズ」などの一次元の値を取る。
【００５６】
または、複数の設定項目についてページごとに異なる条件値（設定値）を設定できるプリンタドライバには、「ページ単位設定」という大きな設定項目（詳細な複数の設定項目を纏めたグループ型の設定項目）が用意されている場合がある。この場合は、
【００５７】
【数１】
2017111700.tif 000003
【００５８】
のような行列が設定値として用いられる。なお、各行の成分は、左から順に、ページ範囲、印刷種類、給紙トレイ、用紙サイズ、およびステープルそれぞれの詳細な設定項目の設定値（条件）である。なお、大きな設定項目を構成する詳細な設定項目を「構成項目」と記載することがある。
【００５９】
例えば、１行目の「１−４  両面  トレイ１  Ａ４  ＯＮ」は、ドキュメントの第１ページから第４ページまでを、トレイ１に格納されているＡ４サイズの用紙に両面印刷し、これらの用紙をステープルで綴じる、という条件を示している。
【００６０】
また、２行目の「５−１０  片面  トレイ３  Ａ３  ＯＦＦ」は、ドキュメントの第５ページから第１０ページまでを、トレイ３に格納されているＡ３サイズの用紙に片面印刷し、これらの用紙をステープルで綴じない、という条件を示している。
【００６１】
ＰＪＬインデックステーブル記憶部２０２は、ＰＪＬインデックステーブル５１を記憶する。
【００６２】
ＰＪＬインデックステーブル５１には、上述の直積すなわちＢ１×Ｂ２×…を構成する設定値のうちの少なくとも１つの設定値からなる直積（以下、「部分直積」と記載する。）ごとのインデックスデータ５１ａが格納されている。
【００６３】
例えば、Ｂ１×Ｂ２×…×Ｂ９のためのＰＪＬインデックステーブル５１として、図６のようなＰＪＬインデックステーブル５１がＰＪＬインデックステーブル記憶部２０２に記憶されている。
【００６４】
ＰＪＬインデックステーブル５１は、主に、直積を複数の部分直積に分解するために使用される。これについては、後述する。
【００６５】
インデックスデータ５１ａには、それに対応する部分直積を構成するアイテムが「ＳｅｔＩｔｅｍ１」、「ＳｅｔＩｔｅｍ２」、…として示される。
【００６６】
さらに、インデックスデータ５１ａには、その部分直積をＰＪＬにおける値に変換するために使用される分解ＰＪＬテーブル５２の識別子が示される。以下、ＰＪＬにおける値を「ＰＪＬ値」と記載し、分解ＰＪＬテーブル５２の識別子を「テーブルＩＤ」と記載する。
【００６７】
ＰＪＬインデックステーブル５１の内容は、プリンタドライバ２０ＰおよびＰＪＬそれぞれの仕様に応じて開発者によって決められる。また、画像形成装置１の仕様の変更またはメンテナンスなどに応じて、管理者または開発者などによって適宜、ＰＪＬインデックステーブル５１が更新される。
【００６８】
分解ＰＪＬテーブル記憶部２０３には、図７〜図１２に示すような複数の分解ＰＪＬテーブル５２が記憶されている。以下、各分解ＰＪＬテーブル５２を「分解ＰＪＬテーブル５２１」、「分解ＰＪＬテーブル５２２」、…と区別して記載することがある。
【００６９】
分解ＰＪＬテーブル５２は、部分直積をＰＪＬ値に変換するために使用される。使用の仕方は、後述する。
【００７０】
分解ＰＪＬテーブル５２には、テーブルＩＤ、テーブルタイプ、およびＰＪＬ算出方法が示される。テーブルＩＤは、上述の通り、分解ＰＪＬテーブル５２の識別子である。
【００７１】
テーブルタイプは、分解ＰＪＬテーブル５２の種類である。テーブルタイプとして、「一次元変換タイプ」および「インデックス付きタイプ」のいずれかが示される。
【００７２】
一次元変換タイプは、一次元の値（１つの値または１×ｔの行列）をＰＪＬ値に変換するために用いられることを意味する。一方、インデックス付きタイプは、ｓ×ｔの行列である設定値をＰＪＬ値に変換するために用いられることを意味する。なお、「ｓ」および「ｔ」は、ともに、２以上の整数である。
【００７３】
ＰＪＬ算出方法は、設定値をＰＪＬ値に変換する方法である。ＰＪＬ算出方法として、「マッピング」および「演算」のいずれかが示される。
【００７４】
マッピングは、選択肢として用意された複数の値の中から設定値に対応するものを選出することによって、ＰＪＬ値に変換する方法である。
【００７５】
一方、演算は、用意された数式（関数）に設定値を代入して演算することによって、ＰＪＬ値に変換する方法である。
【００７６】
さらに、分解ＰＪＬテーブル５２には、入力情報および出力情報が示される。入力情報は、設定値またはそれを算出するための、１組または複数組の設定アイテム情報が含まれる。
【００７７】
一方、出力情報は、ＰＪＬ値またはそれを算出するための、１組または複数組のＰＪＬアイテム情報が含まれる。
【００７８】
この入力情報とこの出力情報とは、互いに対応している。すなわち、この入力情報およびこの出力情報は、同じ条件値を示し、または、近似している。
【００７９】
分解ＰＪＬテーブル５２は、ＰＪＬ算出方法としてマッピングを示す場合は、入力情報に、ＳｅｔＩｔｅｍ＿ｘおよびＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅの組合せを複数有する設定アイテム情報が少なくとも１組、含まれている。この組合せは、「ＳｅｔＩｔｅｍ＿ｘの値がＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅである」という要件を示している。「ｘ」は、シーケンス番号であって、設定アイテム情報ごとに「１」、「２」、…の値を取る。
【００８０】
一方、出力情報には、ＰＪＬ＿Ｉｔｅｍ＿ｙおよびＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅの組合せを複数有するＰＪＬアイテム情報が少なくとも１組、含まれている。この組合せは、同じ行の上述の要件を満たす場合に、ＰＪＬ＿Ｉｔｅｍ＿ｙがＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅになることを示している。設定アイテム情報が複数ある場合は、同じ行のすべての要件を満たす場合に、ＰＪＬ＿Ｉｔｅｍ＿ｙがＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅになる。なお、ＰＪＬ＿Ｉｔｅｍ＿ｙは、ＰＪＬの項目のＰＪＬ値である。「ｙ」は、シーケンス番号であって、ＰＪＬアイテム情報ごとに「１」、「２」、…の値を取る。
【００８１】
このように、同じ行にあるすべての設定アイテム情報それぞれが示す設定値の組合せとすべてのＰＪＬアイテム情報それぞれが示す設定値の組合せとが、対応している。すなわち、同じ条件値であり、または、近似している。
【００８２】
例えば、分解ＰＪＬテーブル５２１（図７参照）においては、２組の設定アイテム情報が入力情報に含まれ、１組のＰＪＬアイテム情報が出力情報に含まれている。そして、２つの行がある。
【００８３】
１行目は、Ｂ１が「ｂ１１」であり、かつ、Ｂ２が「ｂ２１」であれば、Ａ１が「ａ１１」に相当する（等しい、または、近似する）ことを意味する。なお、Ａ１は、ＰＪＬにおける所定の項目の値（ＰＪＬ値）である。後述するＡ２、Ａ３、Ａ４＿１、Ａ４＿２、…についても同様である。
【００８４】
同様に、２行目は、Ｂ１が「ｂ１２」であり、かつ、Ｂ２が「ｂ２２」であれば、Ａ１が「ａ１２」に相当することを意味する。
【００８５】
または、分解ＰＪＬテーブル５２５（図１１参照）においては、２組の設定アイテム情報が入力情報に含まれ、２組のＰＪＬアイテム情報が出力情報に含まれている。そして、３つの行がある。
【００８６】
１行目は、Ｂ７＿２が「ｂ７１」であり、かつ、Ｂ９が「ｂ９１」であれば、Ａ５＿１が「ａ５１」に相当し、Ａ５＿２が「ａ５３」に相当することを意味する。２行目は、Ｂ７＿２が「ｂ７２」であり、かつ、Ｂ９が「ｂ９２」であれば、Ａ５＿１が「ａ５２」に相当し、Ａ５＿２が「ａ５３」に相当することを意味する。３行目は、Ｂ７＿２が「ｂ７３」であり、かつ、Ｂ９が「ｂ９３」であれば、Ａ５＿１が「ａ５１」に相当し、Ａ５＿２が「ａ５４」に相当することを意味する。
【００８７】
または、分解ＰＪＬテーブル５２は、ＰＪＬ算出方法として演算を示す場合は、入力情報に、ＳｅｔＩｔｅｍ＿ｘおよびデータタイプの組合せを有する設定アイテム情報が少なくとも１組、含まれている。または、ＳｅｔＩｔｅｍ＿ｘ、データタイプ、値条件の組合せを有する設定アイテム情報が少なくとも１組、含まれている。
【００８８】
データタイプは、ＳｅｔＩｔｅｍ＿ｘのタイプである。ＰＪＬ算出方法が演算である場合は、データタイプとして、数値、文字列、または二値などが示される。なお、ＰＪＬ算出方法がマッピングである場合は、「値選択」が示されている。
【００８９】
値条件は、ＳｅｔＩｔｅｍ＿ｘを含む条件であって、後述するように、出力情報とともに用いられる。
【００９０】
一方、出力情報には、ＰＪＬ＿Ｉｔｅｍ＿ｙおよびＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅの組合せを１つまたは複数有するＰＪＬアイテム情報が少なくとも１組、含まれている。この組合せの意味は、マッピングの場合と基本的に同様である。ただし、ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅには、固定的な値ではなく、ＳｅｔＩｔｅｍ＿ｘを変数とする数式が示される。すなわち、ＰＪＬ＿Ｉｔｅｍ＿ｙおよびＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅによって、ＳｅｔＩｔｅｍ＿ｘを変数とする、ＰＪＬ＿Ｉｔｅｍ＿ｙ＝ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅ、という関数が示される。
【００９１】
１つの出力情報において、１つのＰＪＬ＿Ｉｔｅｍ＿ｙについて複数のＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅが複数示されることがある。この場合は、入力情報のいずれかの設定アイテム情報に、同じ個数の値条件が示される。そして、これらの値条件のうちの満足しているものに対応する（同じ行にある）ＰＪＬ＿Ｉｔｅｍ＿ｙ＿ＶａｌｕｅがＰＪＬ値を求めるために用いられる。
【００９２】
例えば、分解ＰＪＬテーブル５２２（図８参照）においては、３組の設定アイテム情報が入力情報に含まれ、１組のＰＪＬアイテム情報が出力情報に含まれている。いずれの設定アイテム情報にも値条件がない。そして、ＰＪＬアイテム情報には、ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅとして、３組の設定アイテム情報それぞれに含まれるＳｅｔＩｔｅｍ＿ｘ（Ｂ４、Ｂ５、およびＢ３）を変数とする関数（Ａ２＝Ｂ４＊Ｂ５＊Ｂ３）が１つだけ示されている。
【００９３】
または、分解ＰＪＬテーブル５２３（図９参照）においては、２組の設定アイテム情報が入力情報に含まれ、１組のＰＪＬアイテム情報が出力情報に含まれている。１つの設定アイテム情報に、２つの値条件が示される。そして、ＰＪＬアイテム情報には、ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅとして、２つの値条件それぞれに応じた関数（Ａ３＝Ｂ６＊Ｂ８、および、Ａ３＝Ｂ６＊Ｂ８＊２）が示される。各関数は、２組の設定アイテム情報それぞれに含まれるＳｅｔＩｔｅｍ＿ｘ（Ｂ６、Ｂ８）の少なくとも１つを変数として用いている。
【００９４】
各分解ＰＪＬテーブル５２の内容は、プリンタドライバ２０ＰおよびＰＪＬそれぞれの仕様に応じて開発者によって決められる。また、画像形成装置１の仕様の変更またはメンテナンスなどに応じて、管理者または開発者などによって適宜、分解ＰＪＬテーブル５２が更新される。
【００９５】
ところで、設定値がｓ×ｔの行列である場合は、この設定値の各行に対して１行目から順に１，２，…，ｓというインデックスを付けることができる。例えば、Ｂｋがこのような行列に該当し、かつ、１つの行にｋ’個の成分を有する場合において、インデックスの集合を、
Ｉｋ=（１，２，…）    ……（２）
と表わせば、Ｂｋを、
Ｂｋ＝Ｉｋ×（Ｂｋ＿１×Ｂｋ＿２×…×Ｂｋ＿ｋ’）    ……  （３）
と表わすことができる。
【００９６】
例えば、Ｂａの設定項目が上述のページ単位設定である場合は、ｋ’は「５」であり、かつ、
Ｂａ＝Ｉａ×（Ｂａ＿１×Ｂａ＿２×…×Ｂａ＿５）    ……  （４）
である。Ｂａ＿１、Ｂａ＿２、Ｂａ＿３、Ｂａ＿４、およびＢａ＿５は、ページ範囲、印刷種類、給紙トレイ、用紙サイズ、およびステープルそれぞれの設定値である。
【００９７】
項目置換部２０４は、ジョブ条件受付部２０１によって得られた各設定項目の設定値の集合を表わす直積（以下、「入力直積」と記載する。）のうちの複数の行を有する設定値を、上に示した式（３）の右辺の形式に置換する。
【００９８】
例えば、入力直積が、Ｂ１×Ｂ２×Ｂ３×Ｂ４×Ｂ５×Ｂ６×Ｂ７×Ｂ８×Ｂ９、であり、かつ、Ｂ７が３つの成分からなる複数の行によって構成される（つまり、ｓ×３の行列である）場合は、項目置換部２０４は、この入力直積を、
Ｂ１×Ｂ２×Ｂ３×Ｂ４×Ｂ５×Ｂ６×Ｂ７×Ｂ８×Ｂ９
＝Ｂ１×Ｂ２×Ｂ３×Ｂ４×Ｂ５×Ｂ６×（Ｉ７×Ｂ７＿１×Ｂ７＿２×Ｂ７＿３）
×Ｂ８×Ｂ９    ……  （５）
のように、一部の設定項目の設定値を複数の構成項目の設定値に置換する。
【００９９】
このように、項目置換部２０４によると、一部の設定項目の設定値（例えば、Ｂ７）が複数の設定値に分割される。どの設定値を変換するのかは、プリンタドライバ２０ＰおよびＰＪＬそれぞれの仕様に基づいて開発者によって予め決められている。なお、項目置換部２０４は、１×ｔの行列である設定値を式（３）の形式に置換する場合もある。
【０１００】
直積分解部２０５は、ＰＪＬインデックステーブル記憶部２０２に記憶されているＰＪＬインデックステーブル５１（図６参照）に基づいて、図１３に示す手順で、入力直積を複数の部分直積に分解する。
【０１０１】
直積分解部２０５は、ＰＪＬインデックステーブル５１に格納されている１つ目のインデックスデータ５１ａを参照する（図１３の＃７０１、＃７０２）。
【０１０２】
そして、直積分解部２０５は、参照したインデックスデータ５１ａに示されるＳｅｔＩｔｅｍ１、ＳｅｔＩｔｅｍ２、…の各アイテムに対応する設定値を入力直積から抽出し、抽出した設定値からなる集合を部分直積として取得する（＃７０３）。さらに、そのインデックスデータ５１ａに示されるテーブルＩＤを取得する（＃７０４）。
【０１０３】
直積分解部２０５は、２つ目以降のインデックスデータ５１ａについても同様に、それを参照し、それに基づいて入力直積から部分直積を取得し、テーブルＩＤを取得する（＃７０６、＃７０２〜＃７０４）。
【０１０４】
ただし、項目置換部２０４によって置換の処理がこの入力直積に行われた場合は、ステップ＃７０３において、置換後の入力直積から部分直積を取得する。
【０１０５】
例えば、上記の式（５）の通りに入力直積が項目置換部２０４によって置換され、かつ、ＰＪＬインデックステーブル５１の内容が図６に示す通りである場合は、直積分解部２０５は、Ｂ１×Ｂ２、Ｂ４×Ｂ５×Ｂ３、Ｂ６×Ｂ８、Ｂ７＿１×Ｂ７＿２×Ｂ９、Ｂ７＿２×Ｂ７＿３×Ｂ８、の５つの部分直積に分解する。
【０１０６】
このように入力直積から複数の部分直積を取得することによって、入力直積が複数の部分直積に分解される。
【０１０７】
値変換部２０６は、分解ＰＪＬテーブル記憶部２０３に記憶されている分解ＰＪＬテーブル５２に基づいて、直積分解部２０５によって得られた複数の部分直積それぞれの設定値をＰＪＬ値に変換する処理を行う。
【０１０８】
ここで、ある１つの部分直積に注目し、その部分直積の設定値をＰＪＬ値に変換する処理の流れを、図１４を参照しながら説明する。以下、注目した部分直積を「注目部分直積」と記載する。
【０１０９】
値変換部２０６は、注目部分直積とともに直積分解部２０５によって取得されたテーブルＩＤに対応する分解ＰＪＬテーブル５２を分解ＰＪＬテーブル記憶部２０３から読み出す（＃７１１）。以下、読み出した分解ＰＪＬテーブル５２を「注目分解ＰＪＬテーブル」と記載する。
【０１１０】
値変換部２０６は、注目分解ＰＪＬテーブルに示されるテーブルタイプをチェックする（＃７１２）。
【０１１１】
テーブルタイプが一次元変換タイプである場合は（＃７１３でＹｅｓ）、値変換部２０６は、図１５に示す手順で注目部分直積の設定値をＰＪＬ値に変換する（＃７１４）。なお、この場合は、注目部分直積は、一次元である。つまり、１つの値であり、または、１×ｔの行列である。
【０１１２】
値変換部２０６は、注目分解ＰＪＬテーブルに示されるＰＪＬ算出方法をチェックする（図１５の＃７２１）。
【０１１３】
ＰＪＬ算出方法がマッピングである場合は（＃７２２でＹｅｓ）、注目分解ＰＪＬテーブルに示される複数の行の中から、注目部分直積の設定値をＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅとして示す行を選出し、その行のＰＪＬ＿Ｉｔｅｍ＿ｙ＿ＶａｌｕｅをＰＪＬ＿Ｉｔｅｍ＿ｙの値（つまり、ＰＪＬ値）として抽出する（＃７２３）。
【０１１４】
例えば、注目分解ＰＪＬテーブルが分解ＰＪＬテーブル５２１（図７参照）であり、注目部分直積がＢ１×Ｂ２であり、Ｂ１およびＢ２それぞれが「ｂ１２」および「ｂ２２」である場合は、値変換部２０６は、２行目を選出する。そして、Ａ１として「ａ１２」を抽出する。つまり、これにより、Ａ１＝ａ１２、と決定し、注目部分直積が「ａ１２」に変換される。
【０１１５】
または、ＰＪＬ算出方法が演算である場合は（＃７２２でＮｏ）、値変換部２０６は、注目分解ＰＪＬテーブルの各設定アイテム情報の値条件をチェックする（＃７２４）。
【０１１６】
そして、値変換部２０６は、いずれの設定アイテム情報にも値条件として条件式が示されない場合は（＃７２５でＮｏ）、注目分解ＰＪＬテーブルに示されるＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅへ設定アイテム情報それぞれのＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅを代入することによって、ＰＪＬ＿Ｉｔｅｍ＿ｙを演算する（＃７２６）。
【０１１７】
例えば、注目分解ＰＪＬテーブルが分解ＰＪＬテーブル５２２（図８参照）であり、注目部分直積がＢ４×Ｂ５×Ｂ３であり、Ｂ４、Ｂ５、およびＢ３それぞれが「ｂ４９」、「ｂ５９」、および「ｂ３」であり、ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅが、Ｂ４＊Ｂ５＊Ｂ３、である場合は、値変換部２０６は、「ｂ４９」、「ｂ５９」、および「ｂ３」をＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅに代入し、ｂ４９＊ｂ５９＊ｂ３９、を演算することによって、ＰＪＬ値を得る。これにより、注目部分直積がｂ４９＊ｂ５９＊ｂ３９の演算結果に変換される。
【０１１８】
少なくとも１つの設定アイテム情報に値条件として条件式が示される場合は（＃７２５でＹｅｓ）、値変換部２０６は、これらの条件式のうち満足するほうの条件式と同じ行に示されるＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅへ設定アイテム情報それぞれのＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅを代入することによって、ＰＪＬ＿Ｉｔｅｍ＿ｙを演算する（＃７２７）。
【０１１９】
例えば、注目分解ＰＪＬテーブルが分解ＰＪＬテーブル５２３（図９参照）であり、注目部分直積がＢ６×Ｂ８であり、Ｂ６およびＢ８それぞれが「９７」および「ｂ８９」であり、値条件が「Ｂ６＜１００」のときのＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅが「Ｂ６＊Ｂ８」であり、値条件が「Ｂ６≧１００」のときのＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅが「Ｂ６＊Ｂ８＊２」である場合は、値変換部２０６は、「９７」および「ｂ８９」を、Ｂ６＊Ｂ８、に代入し、ｂ９７＊ｂ８９、を演算することによって、ＰＪＬ値を得る。これにより、注目部分直積がｂ９７＊ｂ８９の演算結果に変換される。
【０１２０】
または、「Ｂ６」が「１０２」である場合は、「１０２」および「ｂ８９」を、Ｂ６＊Ｂ８＊２、に代入し、ｂ９７＊ｂ８９＊２、を演算することによって、ＰＪＬ値を得る。これにより、注目部分直積がｂ９７＊ｂ８９＊２の演算結果に変換される。
【０１２１】
なお、ＰＪＬアイテム情報が注目分解ＰＪＬテーブルに複数含まれる場合は、値変換部２０６は、ステップ＃７２３、＃７２６、＃７２７において、ＰＪＬアイテム情報それぞれのＰＪＬ＿Ｉｔｅｍ＿ｙ（ＰＪＬ＿Ｉｔｅｍ＿１、ＰＪＬ＿Ｉｔｅｍ＿２、…）についてＰＪＬ値を求める。
【０１２２】
図１４に戻って、テーブルタイプがインデックス付きタイプである場合は（＃７１３でＮｏ）、値変換部２０６は、注目部分直積を構成する複数の行を上から１つずつ順に注目し、図１５に示した処理を実行する（＃７１５〜＃７１７）。
【０１２３】
例えば、注目分解ＰＪＬテーブルが分解ＰＪＬテーブル５２５（図７参照）であり、注目部分直積がＢ７＿２×Ｂ９であり、かつ、
【０１２４】
【数２】
2017111700.tif 000004
【０１２５】
である場合は、値変換部２０６は、１行目のＰＪＬ＿Ｉｔｅｍ＿１のＰＪＬ＿Ｉｔｅｍ＿１＿Ｖａｌｕｅ（つまり、Ａ５＿１のＰＪＬ値）および２行目のＰＪＬ＿Ｉｔｅｍ＿２のＰＪＬ＿Ｉｔｅｍ＿２＿Ｖａｌｕｅ（つまり、Ａ５＿２のＰＪＬ値）として、それぞれ、「ａ５２」および「ａ５３」を抽出する。さらに、２行目のＡ５＿１のＰＪＬ値およびＡ５＿２のＰＪＬ値として、それぞれ、「ａ５１」および「ａ５４」を抽出する。
【０１２６】
つまり、注目部分直積が
【０１２７】
【数３】
2017111700.tif 000005
【０１２８】
に変換される。
【０１２９】
値変換部２０６は、直積分解部２０５によって得られた複数の部分直積を１つずつ、以上の処理によってＰＪＬ値に変換する。
【０１３０】
ジョブ条件受付部２０１ないし値変換部２０６の以上の処理によって、ＰＪＬにおける各項目のＰＪＬ値が得られる。例えば、Ｂ１×Ｂ２×…×Ｂ９、の入力直積から、Ａ１×Ａ２×Ａ２×Ａ３×Ａ４＿１×Ａ４＿２×Ａ５＿１×Ａ５＿２×Ａ６、という直積で表わすことができるＰＪＬ値が得られる。
【０１３１】
ジョブ指令部２０７は、これらの部分直積が直積分解部２０５によってＰＪＬ値に変換されたら、これらのＰＪＬ値を示す印刷データ５３をファイル６１を用いて生成し、ネットワークプリントジョブの指令とともに画像形成装置１へ送信する。なお、印刷データ５３は、ＰＪＬによって記述される。
【０１３２】
そして、画像形成装置１は、印刷データ５３およびネットワークプリントジョブの指令を受信すると、印刷データ５３に基づいてネットワークプリントジョブを実行する。
【０１３３】
図１６は、クライアントにおけるネットワークプリントジョブの全体的な処理の流れの例を説明するフローチャートである。
【０１３４】
次に、端末装置２がネットワークプリントジョブを画像形成装置１に実行させる際の全体的な処理の流れの例を、フローチャートを参照しながら説明する。
【０１３５】
端末装置２は、図１６に示す手順で処理を行う。なお、この処理は、プリンタドライバ２０Ｐに基づいて行われる。
【０１３６】
端末装置２は、ファイル６１をアプリケーションによって開いた状態でユーザが所定のコマンドを入力すると、ダイアログボックス７１（図５参照）を表示し、ユーザがダイアログボックス７１に対して行った操作に応じて設定値を受け付ける（図１６の＃１１）。ユーザが設定値を入力しなかった設定項目については、デフォルト値で補えばよい。すべての設定項目の設定値は、直積によって表わされる。この直積が、入力直積である。
【０１３７】
端末装置２は、入力直積を、それを構成する一部の設定値を複数の構成項目の設定値に置換する（＃１２）。例えば、式（５）のように、Ｂ１×Ｂ２×…×Ｂ７×Ｂ８×Ｂ９、という入力直積を、Ｂ１×Ｂ２×…×（Ｉ７×Ｂ７＿１×Ｂ７＿２×Ｂ７＿３）×Ｂ８×Ｂ９、に変換する。
【０１３８】
さらに、端末装置２は、この入力直積を複数の部分直積に分解する（＃１３）。分解の方法は、前に図６で説明した通りである。
【０１３９】
端末装置２は、複数の部分直積を前から順に１つずつ注目し、注目した部分直積（注目部分直積）に対応するＰＪＬ値を算出する（＃１４〜＃１８）。つまり、注目部分直積をＰＪＬ値に変換する。ＰＪＬ値を算出（変換）する方法は、前に図１４および図１６で説明した通りである。
【０１４０】
そして、端末装置２は、算出されたＰＪＬ値およびファイル６１を用いて印刷データ５３を生成し（＃１９）、ネットワークプリントジョブの指令とともに画像形成装置１へ送信する（＃２０）。
【０１４１】
本実施形態によると、プリンタドライバに対してユーザが設定する項目における条件とＰＪＬにおける項目の条件との対応関係をテーブルによって規定するので、プリンタに印刷を行わせるためのプログラムなどの用意および更新を従来よりも容易にすることができる。
【０１４２】
図１７は、プリントシステム４の全体的な構成の変形例を示す図である。本実施形態では、端末装置２は、ＰＪＬインデックステーブル５１および分解ＰＪＬテーブル５２を自らの不揮発性の記録媒体（ＲＯＭ２０ｃまたは補助記憶装置２０ｄ）に記憶しておいたが、次のように取り扱ってもよい。
【０１４３】
プリントシステム４に、サーバ４１を設ける。サーバ４１は、ファイルサーバであってもよいし、クラウドサーバであってもよい。
【０１４４】
サーバ４１にＰＪＬインデックステーブル５１および分解ＰＪＬテーブル５２を記憶させる。画像形成装置１の管理者または開発者は、画像形成装置１の仕様の変更またはメンテナンスなどを行うごとに、必要に応じてＰＪＬインデックステーブル５１または分解ＰＪＬテーブル５２を更新する。
【０１４５】
すると、サーバ４１は、更新されたＰＪＬインデックステーブル５１または分解ＰＪＬテーブル５２を各端末装置２へ送信する。
【０１４６】
そして、各端末装置２は、更新されたＰＪＬインデックステーブル５１または分解ＰＪＬテーブル５２を受信すると、古いＰＪＬインデックステーブル５１または分解ＰＪＬテーブル５２をＰＪＬインデックステーブル記憶部２０２または分解ＰＪＬテーブル記憶部２０３から削除し、受信したＰＪＬインデックステーブル５１または分解ＰＪＬテーブル５２をＰＪＬインデックステーブル記憶部２０２または分解ＰＪＬテーブル記憶部２０３に記憶させる。
【０１４７】
または、端末装置２にＰＪＬインデックステーブル記憶部２０２および分解ＰＪＬテーブル記憶部２０３を設けずに、必要に応じてＰＪＬインデックステーブル５１および分解ＰＪＬテーブル５２を端末装置２から画像形成装置１からダウンロードし、ＲＡＭ１０ｂによって記憶するように、構成してもよい。例えば、ダイアログボックス７１を表示する際に、ダウンロードすればよい。そして、ネットワークプリントジョブを画像形成装置１へ指令し、または、ダイアログボックス７１を閉じたら、ＲＡＭ１０ｂから削除する。つまり、端末装置２は、サーバ４１のＰＪＬインデックステーブル５１および分解ＰＪＬテーブル５２を動的に参照すればよい。この場合も、管理者または開発者は、画像形成装置１の仕様の変更またはメンテナンスなどを行うごとに、サーバ４１に記憶されているＰＪＬインデックステーブル５１または分解ＰＪＬテーブル５２を適宜、更新する。
【０１４８】
ＰＪＬインデックステーブル記憶部２０２および分解ＰＪＬテーブル記憶部２０３をプリンタドライバ２０Ｐによって実現するのではなく、補助記憶装置２０ｄに特定のフォルダを用意し、そのフォルダにＰＪＬインデックステーブル５１および分解ＰＪＬテーブル５２を記憶させることによって実現してもよい。
【０１４９】
その他、プリントシステム４、画像形成装置１、端末装置２の全体または各部の構成、処理の内容、処理の順序、テーブルの構成などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【０１５０】
１  画像形成装置（プリンタ）
２  端末装置（印刷制御装置）
２０２  ＰＪＬインデックステーブル記憶部（構成データ記憶手段）
２０３  分解ＰＪＬテーブル記憶部（条件関係データ記憶手段）
２０５  直積分解部（分類手段）
２０６  値変換部（設定条件導出手段）
２０７  ジョブ指令部（印刷データ生成手段、印刷データ送信手段）
５１  ＰＪＬインデックステーブル（構成データ）
５２  分解ＰＪＬテーブル（条件関係データ）
５３  印刷データ
【図１】
2017111700.tif 000006
【図２】
2017111700.tif 000007
【図３】
2017111700.tif 000008
【図４】
2017111700.tif 000009
【図５】
2017111700.tif 000010
【図６】
2017111700.tif 000011
【図７】
2017111700.tif 000012
【図８】
2017111700.tif 000013
【図９】
2017111700.tif 000014
【図１０】
2017111700.tif 000015
【図１１】
2017111700.tif 000016
【図１２】
2017111700.tif 000017
【図１３】
2017111700.tif 000018
【図１４】
2017111700.tif 000019
【図１５】
2017111700.tif 000020
【図１６】
2017111700.tif 000021
【図１７】
2017111700.tif 000022
【図１８】
2017111700.tif 000023