(57)【要約】【課題】異なるアーキテクチャーにおける環境で、印刷設定を変更した印刷処理を行えるようにすること【解決するための手段】第１のアーキテクチャーのプログラムを実行することが可能な第２のアーキテクチャーのオペレーションシステムを備える情報処理装置であって、第１のアーキテクチャーで構築された印刷制御アプリケーションから、前記第１のアーキテクチャーのインターフェースライブラリを呼び出し、前記インターフェースライブラリにより、前記第１のアーキテクチャーとのインターフェースとなる、前記第２のアーキテクチャーの実行プログラムの実行要求をし、実行要求された前記実行プログラムに対して、前記インターフェースライブラリから、変更する印刷設定情報を出力する。前記実行プログラムから、前記第２のアーキテクチャーの印刷ジョブ生成ライブラリを呼び出して、印刷設定情報を変更させる。【選択図】図４
2018101303.tif 000002
【特許請求の範囲】
【請求項１】
第１のアーキテクチャーで構築された印刷制御アプリケーションと、前記第１のアーキテクチャーのプログラムを実行することが可能な第２のアーキテクチャーのオペレーションシステムと、印刷に用いる印刷設定情報を記憶する記憶手段とを含む情報処理装置であって、
前記印刷制御アプリケーションから、前記第１のアーキテクチャーのインターフェースライブラリを呼び出す呼出手段と、
前記インターフェースライブラリにより、前記第１のアーキテクチャーとのインターフェースとなる、前記第２のアーキテクチャーの実行プログラムの実行要求をする実行要求手段と、
前記実行要求手段により実行要求された前記実行プログラムに対して、前記インターフェースライブラリから、変更する印刷設定情報を出力する出力手段と、
前記実行プログラムから、前記第２のアーキテクチャーの印刷ジョブ生成ライブラリを呼び出して、前記変更する印刷設定情報を用いて、前記記憶手段の印刷設定情報を変更させる変更制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記変更制御手段により印刷設定情報が変更された場合に、前記印刷ジョブ生成ライブラリが、前記印刷制御アプリケーションにより出力されたデータと、変更された印刷設定情報とを取得して出力する印刷データ出力手段を
更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記変更制御手段による制御により、前記第２のアーキテクチャーの印刷ジョブ生成ライブラリで印刷設定情報が変更できた場合に、プリンタオブジェクトに印刷設定情報を反映するか否か判定する判定手段と、
前記プリンタオブジェクトに印刷設定情報を反映すると判定された場合には、前記印刷制御アプリケーションがプリンタオブジェクトに対して、前記印刷設定情報を反映する設定処理を実行する設定処理実行手段と
を更に備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記プリンタオブジェクトに印刷設定情報を反映すると判定された場合には、前記印刷制御アプリケーションが、印刷対象となるデータと前記印刷設定情報とを用いて描画処理を実行する描画処理実行手段
を更に備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２のアーキテクチャーの印刷ジョブ生成ライブラリは、拡張インターフェースとなるライブラリと、当該拡張インターフェースからの要求に従って印刷設定情報を変更可能な印刷ジョブを生成するライブラリを含み、
前記実行プログラムは、前記拡張インターフェースとなるライブラリを呼び出して、前記記憶手段の印刷設定情報を変更させることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記呼出手段による呼び出しは、前記第１のアーキテクチャーのインターフェースライブラリの関数コールによる、前記記憶手段の印刷設定情報のポインタと、変更する印刷設定情報とを引き渡すことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
第１のアーキテクチャーで構築された印刷制御アプリケーションと、前記第１のアーキテクチャーのプログラムを実行することが可能な第２のアーキテクチャーのオペレーションシステムと、印刷に用いる印刷設定情報を記憶する記憶手段とを含む情報処理装置の処理方法であって、
前記印刷制御アプリケーションから、前記第１のアーキテクチャーのインターフェースライブラリを呼び出す呼出ステップと、
前記インターフェースライブラリにより、前記第１のアーキテクチャーとのインターフェースとなる、前記第２のアーキテクチャーの実行プログラムの実行要求をする実行要求ステップと、
前記実行要求ステップにより実行要求された前記実行プログラムに対して、前記インターフェースライブラリから、変更する印刷設定情報を出力する出力ステップと、
前記実行プログラムから、前記第２のアーキテクチャーの印刷ジョブ生成ライブラリを呼び出して、前記変更する印刷設定情報を用いて、前記記憶手段の印刷設定情報を変更させる変更制御ステップと
を含むことを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
印刷設定の変更を制御する情報処理装置とその処理方法。
【背景技術】
【０００２】
従来から印刷するにはプリンタドライバをインストールして、文書作成アプリケーション等で作成されたデータをＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）を介して取得し、プリンタに出力することが行われている。
【０００３】
ここで、上位サーバから自動で印刷を実行するために、プリンタドライバの拡張Ｉ／Ｆ（プリンタドライバＳＤＫ）を用いて印刷できるような構成が準備されている。
【０００４】
上位サーバのアプリケーションからの印刷において、印刷設定（プリンタドライバで変更可能な印刷設定）を変更して印刷する場合には、印刷設定を含むＤＥＶＭＯＤＥ構造体をＳＤＫが参照してプリンタドライバの印刷設定を内部的に変更して、ＧＤＩから受け取った印刷データをプリンタに出力する。
【０００５】
近年６４ｂｉｔ版のオペレーティングシステム（以下、６４ｂｉｔＯＳ）に置き換わってきており、６４ｂｉｔＯＳでの印刷するに関する印刷設定を変更した仕組みが開示されている。（特許文献１）
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１９６５０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
６４ｂｉｔＯＳになっても、３２ｂｉｔのアプリケーションを実行できるため、上位サーバで動作しているアプリケーションは３２ｂｉｔ用のアプリケーションを利用しているケースがある。
なお、Ｍｉｃｒｏｓｏｆｔ（登録商標）では、ＷＯＷ６４を提供し、６４ｂｉｔＯＳ上で３２ｂｉｔのアプリケーションが実行できるようになっている。
【０００８】
一方プリンタドライバは、６４ｂｉｔＯＳを搭載しているＰＣは、６４ｂｉｔ版のプリンタドライバをインストールしている。また、プリンタドライバＳＤＫも同様に、６４ｂｉｔ版であり、且つ、ライブラリであることから、３２ｂｉｔのアプリケーションから６４ｂｉｔのライブラリを呼び出すことができず、自動印刷ができない。
すなわち、印刷設定を動的に変更して、印刷することができないという問題があった。
【０００９】
６４ｂｉｔＯＳの仕様上、６４ｂｉｔのライブラリを呼び出すには６４ｂｉｔのアプリケーションあるいは実行形式のファイル（ｅｘｅファイル）から呼び出しする必要がある。
【００１０】
これを解決するためには、プリンタドライバの印刷設定を予め変更しておくようなケースが考えられるが、マルチプロセスで印刷が実行させる場合には、プリンタドライバを都度変更させてから印刷実行すると処理速度が遅くなるという課題があった。
【００１１】
また、印刷設定を固定化することも考えられるが、印刷データごとに印刷設定を変更させたい場合には、適用が困難であった。
【００１２】
そこで、本発明の目的は、異なるアーキテクチャーにおける環境で、印刷設定を変更した印刷処理を行えるようにすることである。
【課題を解決するための手段】
【００１３】
第１のアーキテクチャーで構築された印刷制御アプリケーションと、前記第１のアーキテクチャーのプログラムを実行することが可能な第２のアーキテクチャーのオペレーションシステムと、印刷に用いる印刷設定情報を記憶する記憶手段とを含む情報処理装置であって、前記印刷制御アプリケーションから、前記第１のアーキテクチャーのインターフェースライブラリを呼び出す呼出手段と、前記インターフェースライブラリにより、前記第１のアーキテクチャーとのインターフェースとなる、前記第２のアーキテクチャーの実行プログラムの実行要求をする実行要求手段と、前記実行要求手段により実行要求された前記実行プログラムに対して、前記インターフェースライブラリから、変更する印刷設定情報を出力する出力手段と、前記実行プログラムから、前記第２のアーキテクチャーの印刷ジョブ生成ライブラリを呼び出して、前記変更する印刷設定情報を用いて、前記記憶手段の印刷設定情報を変更させる変更制御手段とを備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、異なるアーキテクチャーにおける環境で、印刷設定を変更した印刷処理を行えるようにすることができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態における、印刷制御システムの構成の一例を示す図である
【図２】本実施形態における、各種装置のハードウェア構成の一例を示す図である
【図３】本実施形態における、プリンタ３００のハードウェア構成の一例を示す図である
【図４】本実施形態における、印刷制御サーバ２００のモジュール構成を示す図である
【図５】本実施形態における、印刷設定変更制御処理１のフローチャートを示す図である
【図６】本実施形態における、印刷設定変更制御処理２のフローチャートを示す図である
【図７】本実施形態における、印刷設定変更制御処理３のフローチャートを示す図である
【図８】本実施形態における、印刷制御サーバ２００の外部メモリ２１１（記憶部）に記憶されている印刷設定情報の一例を示す図である
【図９】本実施形態における、Ｄｅｖｍｏｄｅ情報の一例を示す図である
【図１０】本実施形態における、プリンタオブジェクトに印刷設定を反映して印刷処理をする概略を示す図である
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施形態を詳細に説明する。図１は、本発明の実施形態における、印刷制御システムの構成の一例を示す図である。
【００１７】
図１に示す通り、本発明の印刷制御システムは、クライアント端末１００と印刷制御サーバ２００と、プリンタ３００がネットワーク６００を介して通信可能に接続されている。ネットワークはＬＡＮでもＷＡＮでもよい。
【００１８】
印刷制御サーバ２００は、記憶部（自身のＨＤＤでも外部のサーバでもよい）に記憶されている文書を取得して印刷の処理を開始する。印刷処理の開始は、文書が登録されたタイミングで自動的に開始されても、クライアント端末１００からの印刷開始要求に従って開始されてもよい。
【００１９】
また、印刷制御サーバ２００はクラウド環境にあってもよく、クラウド環境の印刷制御サーバから、プリンタ３００に印刷を実行できる環境であってもよい。本実施形態では、印刷制御サーバ２００の制御を特徴とするが、印刷制御サーバ２００の機能を備えるクライアント端末１００であれば、クライアント端末１００で実現することも可能であることは言うまでもない。
【００２０】
印刷制御サーバ２００のモジュール構成は図４で後述するが、印刷制御サーバ２００は、第１のアーキテクチャー（例えば、３２ｂｉｔ）で構築された印刷制御アプリケーションと、第１のアーキテクチャーのプログラムを実行することが可能な第２のアーキテクチャーのオペレーションシステム（例えば、６４ｂｉｔ版のＯＳ）と、印刷に用いる印刷設定情報（Ｄｅｖｍｏｄｅ情報）を記憶する記憶手段とを含む情報処理装置である。
【００２１】
また、印刷制御サーバは、印刷制御アプリケーション（例えば、３２ｂｉｔのアプリケーション）から、第１のアーキテクチャーのインターフェースライブラリ（例えば、３２ｂｉｔのＤＬＬ）を呼び出し（第１の呼出）、インターフェースライブラリ（例えば、３２ｂｉｔのＤＬＬ）により、第１のアーキテクチャーとのインターフェースとなる、第２のアーキテクチャー（例えば、６４ｂｉｔ）の実行プログラム（例えば、ｅｘｅ）の実行要求をし（実行要求）、実行要求された実行プログラムに対して、インターフェースライブラリ（例えば、３２ｂｉｔのＤＬＬ）から、変更する印刷設定情報を出力し、実行プログラムから、第２のアーキテクチャーの印刷ジョブ生成ライブラリ（例えば、６４ｂｉｔのプリンタドライバＳＤＫ、プリンタドライバ）を呼び出して、変更する印刷設定情報を用いて、記憶手段の印刷設定情報（例えば、Ｄｅｖｍｏｄｅ情報）を変更させ（変更制御）、変更制御により印刷設定情報が変更された場合に、印刷ジョブ生成ライブラリ（例えば、６４ｂｉｔのプリンタドライバＳＤＫ、プリンタドライバ）が、印刷制御アプリケーションにより出力されたデータと、変更された印刷設定情報とを取得して出力する（印刷データ出力）。
【００２２】
プリンタ３００は、印刷制御サーバ２００から、印刷ジョブ生成ライブラリ（例えば、６４ｂｉｔのプリンタドライバＳＤＫ、プリンタドライバ）を介して印刷データを取得して、印刷を実行する。
クライアント端末１００は、印刷制御サーバ２００にアクセスして、印刷する文書を指定して印刷の開始命令をすることが可能である。
【００２３】
なお、上述した、ＯＳは、一例として示した通り、６４ｂｉｔ版のオペレーティングシステムであって、Ｗｉｎｄｏｗｓ（登録商標）の場合ＷＯＷ６４のエミュレータープログラムにより、３２ｂｉｔ版のプログラム（アプリケーション含む）を動作可能な環境となっている。ＷＯＷ６４を備えるオペレーティングシステムでは、具体的には、Ｗｉｎ３２ＡＰＩをＷｉｎ６４ＡＰＩに呼び変えるエミュレーションをしている。これにより、従来構築した３２ｂｉｔ版のアプリケーション（３２ｂｉｔ版のＯＳ上で実行されている３２ｂｉｔ版のアプリケーション）を６４ｂｉｔ版のＯＳに移行して実行させることが可能となっている。
【００２４】
この時、３２ｂｉｔ版のアプリケーションは、３２ｂｉｔ版のＯＳ上で実行することを目的としてプログラミングされているため、通常は、３２ｂｉｔ版のアプリケーションからは３２ｂｉｔ版のライブラリは呼び出せるが、６４ｂｉｔ版のライブラリは呼び出せない構造となっている。
【００２５】
６４ｂｉｔ版のライブラリを呼び出す構造にするには、３２ｂｉｔ版のアプリケーションの改修が必要となり、３２ｂｉｔ版のアプリケーションを利用している企業や、これらを開発する企業にとって煩雑なものとなるという性質がある。
【００２６】
次に図２を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。図２は、本発明の実施形態における、各種装置のハードウェア構成の一例を示す図である。なお、図２は、図１に示した印刷制御サーバ２００に適用可能な情報処理装置のハードウェア構成として説明するが、クライアント端末１００のハードウェア構成としても適用可能であることは言うまでもない。
【００２７】
図２において、２０１はＣＰＵで、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
【００２８】
２０３はＲＡＭで、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０２あるいは外部メモリ２１１からＲＡＭ２０３にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００２９】
また、２０５は入力コントローラで、キーボード（ＫＢ）２０９や不図示のマウス等のポインティングデバイス等からの入力を制御する。２０６はビデオコントローラで、ＣＲＴディスプレイ（ＣＲＴ）２１０等の表示器への表示を制御する。なお、図２では、ＣＲＴ２１０と記載しているが、表示器はＣＲＴだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
【００３０】
２０７はメモリコントローラで、ブートプログラム，各種のアプリケーション，フォントデータ，ユーザファイル，編集ファイル，各種データ等を記憶するハードディスク（ＨＤ）や、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３１】
２０８は通信Ｉ／Ｆコントローラで、ネットワーク（例えば、図１に示したＬＡＮ６００）を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００３２】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３３】
本発明を実現するための後述する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ２１１に格納されており、これらについての詳細な説明も後述する。
【００３４】
次に、図３を用いて、図１に示したプリンタ３００のハードウェア構成について説明する。なお、本説明においては、プリンタを複合機として説明する。すなわち、シングルファンクションプリンタであっても、マルチファンクションプリンタであってもよい。
図３は、図１に示したプリンタ３００としての複合機のハードウェア構成の一例を示すブロック図である。
【００３５】
図３において、３１６はコントローラユニットで、画像入力デバイスとして機能するスキャナ３１４や、画像出力デバイスとして機能するプリンタ部３１２と接続する一方、ＬＡＮ（例えば、図１に示したＬＡＮ６００）や公衆回線（ＷＡＮ）（例えば、ＰＳＴＮまたはＩＳＤＮ等）と接続することで、画像データやデバイス情報の入出力を行う。
【００３６】
コントローラユニット３１６において、３０１はＣＰＵで、システム全体を制御するプロセッサである。３０２はＲＡＭで、ＣＰＵ３０１が動作するためのシステムワークメモリであり、プログラムを記録するためのプログラムメモリや、画像データを一時記録するための画像メモリでもある。
【００３７】
３０３はＲＯＭで、システムのブートプログラムや各種制御プログラムが格納されている。３０４はハードディスクドライブ（ＨＤＤ）で、システムを制御するための各種プログラム，画像データ等を格納する。
【００３８】
３０７は操作部インタフェース（操作部Ｉ／Ｆ）で、操作部（キーボード）３０８とのインタフェース部である。また、操作部Ｉ／Ｆ３０７は、操作部３０８から入力したキー情報（例えば、スタートボタンの押下）をＣＰＵ３０１に伝える役割をする。
【００３９】
３０５はネットワークインタフェース（Ｎｅｔｗｏｒｋ  Ｉ／Ｆ）で、ネットワーク（ＬＡＮ）６００に接続し、データの入出力を行う。３０６はモデム（ＭＯＤＥＭ）で、公衆回線に接続し、ＦＡＸの送受信等のデータの入出力を行う。
【００４０】
３１８は外部インタフェース（外部Ｉ／Ｆ）で、ＵＳＢ、ＩＥＥＥ１３９４，プリンタポート，ＲＳ−２３２Ｃ等の外部入力を受け付けるＩ／Ｆ部であり、本実施形態においては認証で必要となる携帯端末のＩＣカード（記憶媒体）の読み取り用のカードリーダ３１９が外部Ｉ／Ｆ部３１８に接続されている。そして、ＣＰＵ３０１は、この外部Ｉ／Ｆ３１８を介してカードリーダ３１９による携帯端末のＩＣカードからの情報読み取りを制御し、該携帯端末のＩＣカードから読み取られた情報を取得可能である。以上のデバイスがシステムバス３０９上に配置される。
【００４１】
３２０はイメージバスインタフェース（ＩＭＡＧＥ  ＢＵＳ  Ｉ／Ｆ）であり、システムバス３０９と画像データを高速で転送する画像バス３１５とを接続し、データ構造を変換するバスブリッジである。
画像バス３１５は、ＰＣＩバスまたはＩＥＥＥ１３９４で構成される。画像バス３１５上には以下のデバイスが配置される。
【００４２】
３１０はラスタイメージプロセッサ（ＲＩＰ）で、例えば、ＰＤＬコード等のベクトルデータをビットマップイメージに展開する。３１１はプリンタインタフェース（プリンタＩ／Ｆ）で、プリンタ部３１２とコントローラユニット３１６を接続し、画像データの同期系／非同期系の変換を行う。また、３１３はスキャナインタフェース（スキャナＩ／Ｆ）で、スキャナ３１４とコントローラユニット３１６を接続し、画像データの同期系／非同期系の変換を行う。
【００４３】
３１７は画像処理部で、入力画像データに対し補正、加工、編集を行ったり、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。また、これに加えて、画像処理部３１７は、画像データの回転や、多値画像データに対してはＪＰＥＧ、２値画像データはＪＢＩＧ、ＭＭＲ、ＭＨ等の圧縮伸張処理を行う。
【００４４】
スキャナ部３１４は、原稿となる紙上の画像を照明し、ＣＣＤラインセンサで走査することで、ラスタイメージデータとして電気信号に変換する。原稿用紙は原稿フィーダのトレイにセットし、装置使用者が操作部３０８から読み取り起動指示することにより、ＣＰＵ３０１がスキャナ３１４に指示を与え、フィーダは原稿用紙を１枚ずつフィードし原稿画像の読み取り動作を行う。
【００４５】
プリンタ部３１２は、ラスタイメージデータを用紙上の画像に変換する部分であり、その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、ＣＰＵ３０１からの指示によって開始する。なお、プリンタ部３１２には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセットがある。
【００４６】
操作部３０８は、ＬＣＤ表示部を有し、ＬＣＤ上にタッチパネルシートが貼られており、システムの操作画面を表示するとともに、表示してあるキーが押されるとその位置情報を操作部Ｉ／Ｆ３０７を介してＣＰＵ３０１に伝える。また、操作部３０８は、各種操作キーとして、例えば、スタートキー、ストップキー、ＩＤキー、リセットキー等を備える。
【００４７】
尚、表示部はプリンタによって表示性能が異なり、タッチパネルを介して操作をできるプリンタ、単に液晶画面を備え文字列を表示（印刷状態や印刷している文書名の表示）させるだけのプリンタによって本発明は構成されている。
【００４８】
ここで、操作部３０８のスタートキーは、原稿画像の読み取り動作を開始する時などに用いる。スタートキーの中央部には、緑と赤の２色ＬＥＤがあり、その色によってスタートキーが使える状態にあるかどうかを示す。また、操作部３０８のストップキーは、稼働中の動作を止める働きをする。また、操作部３０８のＩＤキーは、使用者のユーザＩＤを入力する時に用いる。リセットキーは、操作部からの設定を初期化する時に用いる。
【００４９】
カードリーダ３１９は、ＣＰＵ３０１からの制御により、携帯端末内に備えられたＩＣカードに記憶されている情報を読み取り、該読み取った情報を外部Ｉ／Ｆ３１８を介してＣＰＵ３０１へ通知する。
【００５０】
以上のような構成によって、プリンタ３００は、スキャナ３１４から読み込んだ画像データをＬＡＮ６００上に送信したり、ＬＡＮ６００から受信した印刷データをプリンタ部３１２により印刷出力することができる。
【００５１】
また、スキャナ３１４から読み込んだ画像データをモデム３０６により、公衆回線上にＦＡＸ送信したり、公衆回線からＦＡＸ受信した画像データをプリンタ部３１２により出力することできる。
このプリンタ３００は印刷制御サーバに登録されているプリンタオブジェクト（プリンタ管理画面に表示されるアイコンに関連するプリンタ情報）に対応する。
【００５２】
次に、図４を用いて本実施形態における印刷制御サーバ２００のモジュール構成について説明する。図４は、本実施形態における印刷制御サーバ２００のモジュール構成図である。各モジュールは、印刷制御サーバ２００のＣＰＵ２０１により実行されるものである。
【００５３】
６４ｂｉｔ版のオペレーティングシステム４０１は、印刷制御サーバ２００の基本的な動作を実現するソフトウェアである。なお、このオペレーティングシステムには、ＷＯＷ６４といった、３２ｂｉｔ版のアプリケーションを６４ｂｉｔ版オペレーティングシステムで動作させるためのエミュレーションプログラムが含まれている。すなわち、第１のアーキテクチャーのプログラムを実行することが可能な第２のアーキテクチャーのオペレーションシステムの一例を示すものである。
【００５４】
なお、３２ｂｉｔ版のアプリケーションやプログラムが異なるアーキテクチャーの６４ｂｉｔのライブラリ（ＤＬＬ）を組み込み、直接呼び出すことはできない構成となっている。
【００５５】
３２ｂｉｔ版の印刷制御アプリケーション４０２は、印刷対象の文書データを取得して、印刷を実行する３２ｂｉｔ（第１のアーキテクチャー）で構築されたアプリケーションである。なお、第１のアーキテクチャーで構築された印刷制御アプリケーションの一例を示すものである。
【００５６】
３２ｂｉｔ版の印刷制御アプリケーション４０２は、Ｄｅｖｍｏｄｅ情報４００のポインタを取得して、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３に対して、ポインタと変更する印刷設定を渡す。また、印刷設定が変更されると、印刷処理を実行するアプリケーションである。
Ｄｅｖｍｏｄｅ情報４００は、印刷に用いる印刷設定情報を記憶する記憶手段の一例を示すものである。
【００５７】
３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３は、３２ｂｉｔ版の印刷制御アプリケーション４０２から呼び出される３２ｂｉｔで構築されたライブラリであり、部品化されたプログラムである。ライブラリ自体が単体で実行することはできず、アプリケーションなど実行形式のプログラム（アプリケーションやｅｘｅファイルなど）により、呼び出されてＤＬＬのプログラムによる処理が実現できる。
【００５８】
６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４は、６４ｂｉｔ（第２のアーキテクチャー）で構築された実行形式のプログラムであり、他のプログラムからの命令等により、単体で実行することができる。
【００５９】
６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５は、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６の拡張インターフェースであり、６４ｂｉｔで構築されたライブラリである。この拡張インターフェースを用いることで、プリンタドライバの設定画面を開くことなく印刷設定などを変更したりすることができ、動的な印刷制御を可能となる。また、６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５へ印刷設定を渡すことで、後述の６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６により、ＯＳが管理するＤｅｖｍｏｄｅ情報のプライベート領域（メーカー固有の印刷設定の領域）を変更することが可能となる。すなわち、第２のアーキテクチャーの印刷ジョブ生成ライブラリであり、拡張インターフェースとなるライブラリの一例を示すものである。
【００６０】
６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６は、６４ｂｉｔで構築されたライブラリである。プリンタ３００を制御するプログラムであり、対応するプリンタ３００が解釈可能なプリンタ記述言語に変換する。また、設定された印刷設定情報（Ｄｅｖｍｏｄｅ情報）に基づき、プリンタ３００に出力する印刷データを生成する。また、Ｄｅｖｍｏｄｅ情報を用いず、プリンタオブジェクトに設定された印刷設定情報を用いて印刷データを生成することも可能である。すなわち、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６は、拡張インターフェースからの要求に従って印刷設定情報を変更可能な印刷ジョブを生成するライブラリの一例を示すものであり、印刷制御アプリケーションにより出力されたデータと、変更された印刷設定情報とを取得して出力するものである。
【００６１】
なお、本実施形態における、上記のモジュール構成を備える意義について詳述する。まず、３２ｂｉｔ版のアプリケーション（ｅｘｅ含む）が、６４ｂｉｔ版のライブラリを呼び出し、３２ｂｉｔ版のアプリケーションが６４ｂｉｔ版のライブラリを取り込むことが、アーキテクチャー上できない。一方、３２ｂｉｔ版のアプリケーションが６４ｂｉｔ版のアプリケーション（ｅｘｅ含む）を実行するように要求し、６４ｂｉｔ版のアプリケーションを実行させることはアーキテクチャー上できるが、３２ｂｉｔ版のアプリケーションの呼び出し機構を変更しなければならないため、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３をモジュールが必要となっている。
【００６２】
また、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４を備えることにより、６４ｂｉｔ版のアプリケーションのプロセスで、６４ｂｉｔ版のライブラリを取り込み、処理を実行させることが可能となる。
【００６３】
プリンタオブジェクト４０７は、プリンタ３００に対応するプリンタ情報群であり、プリンタオブジェクトアイコンや、印刷設定を含むプリンタ情報を管理している。このプリンタオブジェクトに対しては、ＡＰＩにより、Ｄｅｖｍｏｄｅ情報の印刷設定を反映させることが可能であり、プリンタドライバがこの印刷設定に応じて、印刷を実行することが可能となっている。
【００６４】
ここで、それぞれのモジュール間の動作の概略を説明する。まず、印刷設定情報としてのＤｅｖｍｏｄｅ情報が印刷制御サーバ２００に記憶されている。このＤｅｖｍｏｄｅ情報のポインタを３２ｂｉｔ版の印刷制御アプリケーション４０２が取得する。
【００６５】
このポインタと印刷する文書に対応する変更する印刷設定を、３２ｂｉｔ版の印刷制御アプリケーション４０２から３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３に受け渡す。ポインタが受け渡されると、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３は、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４を呼び出し通信を確立し、ポインタと印刷設定を受け渡す。
【００６６】
６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４は、実行時に６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５を取り込み、６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５へポインタと印刷設定を受け渡す。
【００６７】
６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５は、ポインタを基にＤｅｖｍｏｄｅ情報を読み出し、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６に、印刷設定を含む書き換え要求を行い、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６によりＤｅｖｍｏｄｅ情報の変更をする。
【００６８】
その後、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６は、変更した結果（成功、失敗）を６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５に戻り値として返し、６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５は、同様に６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４に結果を戻り値として返す。
【００６９】
６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４と３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３は通信（パイプ通信）を確立しているため、この通信において、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３へ結果を出力する。
【００７０】
３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３は、３２ｂｉｔ版の印刷制御アプリケーション４０２に戻り値として結果を返し、３２ｂｉｔ版の印刷制御アプリケーション４０２は、結果が成功の場合に、プリンタオブジェクト４０７に対して、Ｄｅｖｍｏｄｅ情報による印刷設定の変更要求を行う。なお、プリンタオブジェクトを利用しない設定の場合には、３２ｂｉｔ版の印刷制御アプリケーション４０２がデバイスコンテキストに描画する際に、印刷データとともに、印刷設定も書き込むようにする。
【００７１】
３２ｂｉｔ版の印刷制御アプリケーション４０２は、取得した文書データを、変更されたプリンタドライバに対応するプリンタに出力するように、オペレーティングシステム４０１に要求をし、オペレーティングシステムのＧＤＩを介して、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６が出力データを受け付ける。６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６は、プリンタオブジェクト４０７に設定された印刷設定、または、デバイスコンテキストに書き込まれた印刷設定を用いて、プリンタ３００に対応する印刷データを生成して、プリンタ３００に出力する。
【００７２】
次に、本実施形態のシステムにおける処理について図５、図６、図７のフローチャートを用いて説明する。各フローチャートに示す処理は、印刷制御サーバ２００のＣＰＵ２０１が実行するものとする。
【００７３】
まず、図５を参照して、本実施形態における、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４の処理まで説明する。図５は、印刷設定変更制御処理１のフローチャートの一例を示す図である。
【００７４】
ステップＳ５０１では、所定の文書に対する印刷制御命令を実行する。なお、所定の文書とは、上位サーバから所定のフォルダに文書が登録された場合に実行する、或いは、定時になった場合に、所定のフォルダに登録されている文書などである。また、クライアント端末１００から指定された文書であってもよい。
【００７５】
ステップＳ５０２では、印刷対象の文書に対応する印刷設定を取得する。具体的には、図８の印刷設定定義情報を記憶している印刷設定テーブルを参照し、文書名（文書識別情報）に基づき印刷設定を取得する。なお、印刷設定テーブルは、テキストファイルとして印刷設定の情報を保持する形態であってもよい。
【００７６】
ここで、図８について、説明する。図８は、印刷制御サーバ２００の外部メモリ２１１（記憶部）に記憶されている印刷設定情報を示す図である。
【００７７】
文書ごとに、変更する印刷設定が対応付いて記憶されている。また、出力するプリンタ名が対応付いて記憶されている。８０１には、文書名が記憶されている。８０２と８０３が印刷設定であり、８０２は標準印刷設定であり、Ｄｅｖｍｏｄｅ情報のパブリック領域に設定できる印刷設定が記憶されている。また、８０３は、拡張印刷設定であり、Ｄｅｖｍｏｄｅ情報のプライベート領域に設定できる印刷設定が記憶されている。
【００７８】
８０４は、印刷対象のプリンタ名が記憶されている。このプリンタ名はプリンタオブジェクト名称であり、プリンタオブジェクト名称を基に、対象のプリンタ３００やそのプリンタドライバ、プリンタオブジェクトとして管理している印刷設定を取得できる。
【００７９】
ステップＳ５０３では、８０４に設定されているプリンタ名を指定して、Ｄｅｖｍｏｄｅ情報のポインタを取得する。本実施形態ではポインタを用いて、Ｄｅｖｍｏｄｅ情報を取得する構成としたが、Ｄｅｖｍｏｄｅ構造体で得られるＤｅｖｍｏｄｅ情報を取得するようにしてもよい。
なお、ステップＳ５０３で取得できるＤｅｖｍｏｄｅ情報は、プリンタオブジェクトで管理する印刷設定でデフォルト設定の情報である。
【００８０】
ここで、Ｄｅｖｍｏｄｅ情報について、図９を用いて説明する。Ｄｅｖｍｏｄｅ情報は、６４ｂｉｔ版のオペレーティングシステム４０１が管理している情報であり、Ｄｅｖｍｏｄｅ構造体９０１として定義されている。このＤｅｖｍｏｄｅ構造体９０１のポインタは、ＥｎｕｍＰｒｉｎｔｅｒｓ等の関数を利用することで取得できる。
【００８１】
Ｄｅｖｍｏｄｅ構造体９０１は、パブリック領域９０２とプライベート領域９０３に分かれており、それぞれ印刷設定等が登録される領域である。パブリック領域９０２は、印刷制御アプリケーション等から変更できる領域であり、標準的な印刷設定が登録されている。
【００８２】
また、プライベート領域９０３は、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６が参照できる領域であり、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６から変更でき、メーカ独自、プリンタ独自の拡張的な印刷設定が登録されている。
【００８３】
なお、パブリック領域９０２は、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６からも変更できる領域であることは言うまでもない。また、プライベート領域９０３は、６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５から変更させる構成をとることも可能である。
【００８４】
すなわち、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６と６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５は一体として構成することも可能である。
【００８５】
ステップＳ５０４では、３２ｂｉｔ版の印刷制御アプリケーション４０２に取り込まれた３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３を呼び出し、Ｄｅｖｍｏｄｅ情報のポインタと、変更する印刷設定を渡す。より詳細には、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３の公開関数コールを行い、その関数コール時の引数でポインタと印刷設定の引渡しをする。すなわち、印刷制御アプリケーションから、第１のアーキテクチャーのインターフェースライブラリを呼び出す第１の呼出手段の一例を示すステップである。
ステップＳ５０５では、Ｄｅｖｍｏｄｅ情報のポインタと、変更する印刷設定を取得する。
【００８６】
ステップＳ５０６では、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４の実行要求を行い、ステップＳ５０８にて、ＣＰＵ２０１が指定された６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４を実行する。すなわち、インターフェースライブラリにより、第１のアーキテクチャーとのインターフェースとなる、第２のアーキテクチャーの実行プログラムの実行要求をする実行要求手段の一例を示すステップである。
【００８７】
６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４が実行されると、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３と６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４とでパイプによるプロセス間通信が確立される。
【００８８】
ステップＳ５０７では、確立されたパイプによるプロセス間通信により、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４にポインタと印刷設定を出力する。すなわち、実行要求手段により実行要求された実行プログラムに対して、インターフェースライブラリから、変更する印刷設定情報を出力する出力手段の一例を示すステップである。
ステップＳ５０９では、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３からポインタと印刷設定の入力を受け付ける。
【００８９】
ステップＳ５１０では、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４に取り込まれた６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５を呼び出す。Ｄｅｖｍｏｄｅ情報を変更させるべく、ポインタと印刷設定を６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５に渡す。すなわち、実行プログラムから、第２のアーキテクチャーの印刷ジョブ生成ライブラリを呼び出して、変更する印刷設定情報を用いて、記憶手段の印刷設定情報を変更させる変更制御手段の一例を示すステップである。
【００９０】
次に、図６を参照して、図５に続く処理について説明する。図６では、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６でＤｅｖｍｏｄｅ情報の書き換えまで説明する。図６は、印刷設定変更制御処理２のフローチャートの一例を示す図である。
ステップＳ６０１では、６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５が、ポインタと印刷設定を取得する。
【００９１】
ステップＳ６０２では、６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５が、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６に対して印刷設定の変更要求として、ポインタと変更する印刷設定を渡す。６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６の関数の引数としてポインタと印刷設定を渡すものとする。
ステップＳ６０３では、印刷設定の変更要求として、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６がポインタと印刷設定を受け付ける。
【００９２】
ステップＳ６０４では、受け付けたポインタを基に、Ｄｅｖｍｏｄｅ情報を特定して、受け付けた印刷設定を元に書き換えを行う。なお、標準印刷設定については、パブリック領域９０２を書き換え、拡張印刷設定については、プライベート領域９０３を書き換える。
【００９３】
次に、図７を参照して、図６に続く処理について説明する。図７では、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６からプリンタへの出力処理まで説明する。図６は、印刷設定変更制御処理３のフローチャートの一例を示す図である。
【００９４】
まず、ステップＳ６０４で、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６がＤｅｖｍｏｄｅ情報を書き換えた結果（成功、失敗）を取得し、６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５に戻り値として返す。
【００９５】
ステップＳ７０１では、６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５が、書き換えた結果（成功、失敗）を取得し、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４に戻り値として返す。
【００９６】
ステップＳ７０２では、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４が、書き換えた結果（成功、失敗）を取得し、確立した通信を用いて３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３に書き換えた結果（成功、失敗）を出力する。
【００９７】
ステップＳ７０３では、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３が戻り値として、書き換えた結果（成功、失敗）を３２ｂｉｔ版の印刷制御アプリケーション４０２に返す。
ステップＳ７０４では、３２ｂｉｔ版の印刷制御アプリケーション４０２により書き換えた結果（成功、失敗）を取得する。
【００９８】
ステップＳ７０５では、書き換え結果を判定する。書き換えが成功した（ＯＫ）場合、ステップＳ７０７へ処理を移し、書き換えが失敗した（ＮＧ）場合、ステップＳ７０６へ処理を移す。
【００９９】
ステップＳ７０６では、書き換えが失敗したため、印刷のエラー通知をする。エラー通知は、管理者へのメール通知やログとして残す通知などいずれの方法を用いてもよい。
ステップＳ７０７では、書き換えが成功したため、印刷対象の文書を取得する。
ステップＳ７０８では、ポインタを基に、印刷設定が書き換えられたＤｅｖｍｏｄｅ情報を取得する。
【０１００】
ステップＳ７０９では、取得したＤｅｖｍｏｄｅ情報をプリンタオブジェクトの印刷設定として反映させるかを判定する。３２ｂｉｔ版の印刷制御アプリケーション４０２が保持する設定値で、プリンタオブジェクト反映させるかを判断する。マルチプロセスによる印刷を実行させる場合には、プリンタオブジェクトに反映しない設定とし、マルチプロセスを用いない印刷（順次印刷処理をする）場合には、プリンタオブジェクトに反映する設定とする。プリンタオブジェクトに反映させる場合には、ステップＳ７１０へ処理を移し、プリンタオブジェクトに反映させない場合（マルチプロセスによる印刷実行）には、ステップＳ７１２へ処理を移す。すなわち、プリンタオブジェクトに印刷設定情報を反映するか否か判定する判定手段の一例を示すステップである。
【０１０１】
ステップＳ７１０では、印刷対象の文書に対応するプリンタのプリンタ名（図８の８０４）に基づき、プリンタオブジェクトに対して印刷設定を反映する。なお、プリンタオブジェクトへの印刷設定の反映は、オペレーションシステムのＡＰＩを用いて反映する。すなわち、プリンタオブジェクトに印刷設定情報を反映すると判定された場合には、印刷制御アプリケーションがプリンタオブジェクトに対して、印刷設定情報を反映する設定処理を実行する設定処理実行手段の一例を示すステップである。
ステップＳ７１１では、印刷対象の文書データを、オペレーティングシステムのデバイスコンテキストに出力する。
【０１０２】
ステップＳ７１２では、印刷対象の文書データとＤｅｖｍｏｄｅ情報とを、オペレーティングシステムのデバイスコンテキストに出力する。すなわち、プリンタオブジェクトに印刷設定情報を反映すると判定された場合には、印刷制御アプリケーションが、印刷対象となるデータと変更された印刷設定情報とを用いて描画処理を実行する描画処理実行手段の一例を示すステップである。
【０１０３】
ステップＳ７１３では、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６が、オペレーションシステムを介して、描画情報として印刷データを取得する。なお、ステップＳ７１２の場合には、Ｄｅｖｍｏｄｅ情報も合わせて取得する。
【０１０４】
ステップＳ７１４では、プリンタオブジェクトに反映された印刷設定、または、ステップＳ７１３で取得したＤｅｖｍｏｄｅ情報（印刷設定）を反映した印刷データを生成する。すなわち、変更制御手段により印刷設定情報が変更された場合に、印刷ジョブ生成ライブラリ（プリンタドライバ）が、印刷制御アプリケーションにより出力されたデータと、変更された印刷設定情報とを取得して出力する印刷データ出力手段の一例を示すステップである。
ステップＳ７１５では、生成された印刷データを対象のプリンタに出力する。
【０１０５】
次に、図１０を用いて、プリンタオブジェクトに印刷設定を反映して印刷処理をする概略について説明する。図１０は、プリンタオブジェクトに印刷設定を反映して印刷処理をする概略図である。
上位プログラムは、上述の３２ｂｉｔ版の印刷制御アプリケーション４０２に相当するものである。
ＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（３２ｂｉｔ）とインタフェースが同じ３２ｂｉｔＤＬＬは、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３に相当するものである。
【０１０６】
ＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（６４ｂｉｔ）を呼び出す６４ｂｉｔプロセスは、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４に相当するものである。
ＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（６４ｂｉｔ）は、６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）４０５に相当するものである。
ＰｒｉｎｔｅｒＤｒｉｖｅｒ（６４ｂｉｔ）は、６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）４０６に相当するものである。
【０１０７】
（１）上位プログラムがＯＳのＡＰＩを用いて、Ｄｅｖｍｏｄｅ情報のポインタを取得する。
（２）ＤＥＶＭＯＤＥ拡張領域の印刷設定変更するため、上位プログラムが取得したポインタと変更する印刷設定（例えば、４ｉｎ１のレイアウト情報）を、ＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（３２ｂｉｔ）とインタフェースが同じ３２ｂｉｔＤＬＬに渡す。ＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（３２ｂｉｔ）と同じインタフェースとは、上位プログラムが３２ｂｉｔ版のＯＳ上で実行されていた場合に、利用していたＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（３２ｂｉｔ）の関数を用いることであり、例えば、上位プログラムがもともと呼び出していたＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（３２ｂｉｔ）の関数Ａ（引数，引数）というインターフェースを有している。これにより、上位プログラムを修正することなく、異なるアーキテクチャーにおいてシームレスにやり取りして、動的に印刷設定を変更した印刷制御を行うことができる。
ＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（３２ｂｉｔ）とインタフェースが同じ３２ｂｉｔＤＬＬは、ＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（６４ｂｉｔ）を呼び出す６４ｂｉｔプロセスを実行させ、ポインタと変更する印刷設定を渡す。ＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（６４ｂｉｔ）を呼び出す６４ｂｉｔプロセスは、ＰｒｉｎｔｅｒＤｒｉｖｅｒＳＤＫ（６４ｂｉｔ）に、ポインタと変更する印刷設定を渡し、ＰｒｉｎｔｅｒＤｒｉｖｅｒ（６４ｂｉｔ）に印刷設定の書き換えを要求する。ＰｒｉｎｔｅｒＤｒｉｖｅｒ（６４ｂｉｔ）は、Ｄｅｖｍｏｄｅ情報を変更し、変更した結果（例えば、成功を示すＯＫ）を、それぞれのモジュールを介して上位プログラムに返す。
【０１０８】
（３）上位プログラムは、ＯＳのＡＰＩを用いて、変更されたＤｅｖｍｏｄｅ情報をプリンタオブジェクトに反映する。
【０１０９】
（４）プリンタオブジェクトの印刷設定を変更後、印刷対象のドキュメントの印刷処理を実行し、プリンタオブジェクトに対応するプリンタ３００に、変更された印刷設定が適用された印刷データを出力する。
これにより、異なるアーキテクチャーを用いた構成においても、動的に変更された印刷設定を用いた印刷が可能となる。
【０１１０】
以上、本実施形態について説明したが、本実施形態によれば、異なるアーキテクチャーにおける環境で、印刷設定を変更した印刷処理を行えるようにすることができる。
【０１１１】
特に、３２ｂｉｔ版の連携インターフェース（ＤＬＬ）４０３を備えることで、３２ｂｉｔ版の印刷制御アプリケーション４０２の構成を変更することなく、動的に印刷設定を変更した印刷処理が可能となる。
【０１１２】
また、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４を備えることで、６４ｂｉｔ版のオペレーティングシステム４０１において、異なるアーキテクチャー（３２ｂｉｔ）から、６４ｂｉｔ版の連携インターフェース（ｅｘｅ）４０４を実行させることができ、シームレスに印刷設定を受け渡し、ＤＬＬである６４ｂｉｔ版のプリンタドライバでＤｅｖｍｏｄｅ情報を書き換えることができる。このように、異なるアーキテクチャーで動的にＤｅｖｍｏｄｅ情報を書き換えることで、印刷設定を変更した印刷処理をスムーズに行うことが可能となる。
【０１１３】
また、デバイスコンテキストに印刷対象のデータと書き換えられたＤｅｖｍｏｄｅ情報を書き込むことで、マルチプロセスによる印刷処理においても、適切な印刷設定が反映された印刷データを生成することができ、効率的な印刷処理を実現することができる。
【０１１４】
尚、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１１５】
なお、本発明は、前述したモジュールを、装置に直接、或いは遠隔から供給するものを含む。そして、装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１１６】
したがって、コンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明を実現するためのコンピュータプログラム自体も含まれる。
【０１１７】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１１８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１１９】
また、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の処理が実現されてもよい。
【０１２０】
尚、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１２１】
１００  クライアント端末
２００  印刷制御サーバ
３００  プリンタ
６００  ネットワーク（ＬＡＮ）
２０１  ＣＰＵ
４０１  ６４ｂｉｔ版のオペレーティングシステム
４０２  ３２ｂｉｔ版の印刷制御アプリケーション
４０３  ３２ｂｉｔ版の連携インターフェース（ＤＬＬ）
４０４  ６４ｂｉｔ版の連携インターフェース（ｅｘｅ）
４０５  ６４ｂｉｔ版のプリンタドライバＳＤＫ（ＤＬＬ）
４０６  ６４ｂｉｔ版のプリンタドライバ（ＤＬＬ）
４０７  プリンタオブジェクト
【図１】
2018101303.tif 000003
【図２】
2018101303.tif 000004
【図３】
2018101303.tif 000005
【図４】
2018101303.tif 000006
【図５】
2018101303.tif 000007
【図６】
2018101303.tif 000008
【図７】
2018101303.tif 000009
【図８】
2018101303.tif 000010
【図９】
2018101303.tif 000011
【図１０】
2018101303.tif 000012