JP2019185627A - Information processing apparatus and information processing program - Google Patents
Information processing apparatus and information processing program Download PDFInfo
- Publication number
- JP2019185627A JP2019185627A JP2018078813A JP2018078813A JP2019185627A JP 2019185627 A JP2019185627 A JP 2019185627A JP 2018078813 A JP2018078813 A JP 2018078813A JP 2018078813 A JP2018078813 A JP 2018078813A JP 2019185627 A JP2019185627 A JP 2019185627A
- Authority
- JP
- Japan
- Prior art keywords
- printer driver
- execution request
- module
- information processing
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
Description
本発明は、情報処理装置及び情報処理プログラムに関する。 The present invention relates to an information processing apparatus and an information processing program.
特許文献1には、他の印刷システムにおいて設定された、プリンタドライバ又は印刷装置では解釈できない印刷設定情報を、プリンタドライバ又は印刷装置において解釈できるようにする仕組みを提供することを課題とし、アプリケーションより印刷要求があり、その要求中の印刷設定情報がジョブチケット形式で記述されている場合、ジョブチケットに記述された未知の名前空間を示すタグ文字列があれば、辞書データベースに解釈可のタグ文字列への変換要求を行い、その結果を受け、解釈不可とタグ文字列を解釈可のタグ文字列に置換し、印刷設定を行うことが開示されている。
特許文献2には、複数の情報処理装置においてユーザーが実行を指示したジョブを取り扱う場合に、その取り扱いの条件を、容易かつ柔軟に変更できるようにすることを課題とし、プリンタドライバの形式を備え、上記プリンタドライバが用いる設定データの形式で、1以上の条件毎に該条件が満たされた場合に実行すべき処理を示す条件情報を含む設定データを記憶するダミードライバに対し、上記設定データの送信を要求して上記設定データを取得し、実行要求を受け付けたジョブが上記取得手順で取得した設定データに含まれる条件情報が示す条件に該当するか否か判断し、該当すると判断した場合に、上記実行要求を受け付けたジョブに対してその条件と対応する処理を実行した後、そのジョブの実行をプリンタドライバに要求するようにしたことが開示されている。 Japanese Patent Laid-Open No. 2004-260688 has an object to enable easy and flexible change of handling conditions when handling jobs that the user has instructed to execute in a plurality of information processing apparatuses. The dummy driver storing the setting data including the condition information indicating the process to be executed when the condition is satisfied for each of one or more conditions in the format of the setting data used by the printer driver. If the setting data is acquired by requesting transmission, and it is determined whether or not the job for which the execution request has been received satisfies the condition indicated by the condition information included in the setting data acquired in the acquisition procedure. After executing the processing corresponding to the condition for the job that has received the execution request, the printer driver is requested to execute the job. Unishi was it has been disclosed.
アプリケーションが印刷処理を行う場合、アプリケーションからの印刷の実行要求をOSが受け取り、OSがプリンタドライバにその印刷の実行要求を渡すことを行っている。例えば、プリンタドライバが処理できない機能又は設定を受け付けた場合は、そのプリンタドライバ内で、その機能又は設定を変換することが行われていた。しかし、OSによっては、アプリケーションからの印刷の実行要求をプリンタドライバに渡す際に、そのプリンタドライバが処理できない機能又は設定をデフォルト値に変換することを行ってしまうものがある。このようにした場合、プリンタドライバが予め備えていた変換処理を行うことができなくなるので、アプリケーションからの印刷の実行要求にしたがった印刷が行われなくなってしまう。
本発明は、プリンタドライバが処理できない機能又は設定をデフォルト値に変換するOS下での印刷処理にあって、プリンタドライバに対して、規則にしたがった変換処理を行った後の実行要求にしたがった印刷を行わせることができる情報処理装置及び情報処理プログラムを提供することを目的としている。
When an application performs print processing, the OS receives a print execution request from the application, and the OS passes the print execution request to the printer driver. For example, when a function or setting that cannot be processed by the printer driver is received, the function or setting is converted in the printer driver. However, depending on the OS, when a print execution request from an application is passed to the printer driver, functions or settings that cannot be processed by the printer driver are converted to default values. In such a case, the conversion process provided in advance in the printer driver cannot be performed, and printing according to the print execution request from the application is not performed.
The present invention is a printing process under an OS that converts a function or setting that cannot be processed by the printer driver into a default value, and follows an execution request after performing a conversion process according to a rule to the printer driver. An object of the present invention is to provide an information processing apparatus and an information processing program that can perform printing.
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、印刷の実行要求をOSから受け付ける受付手段と、前記受付手段が受け付けた実行要求を、変換規則にしたがって、プリンタドライバが解釈可能な実行要求に変換する変換手段と、前記変換手段により変換された実行要求を前記プリンタドライバに転送する転送手段を有する情報処理装置である。
The gist of the present invention for achieving the object lies in the inventions of the following items.
The invention of
請求項2の発明は、プリンタドライバが受付可能な実行要求の定義を予め記憶しており、該定義をOSによってアクセス可能にしている記憶手段をさらに有する請求項1に記載の情報処理装置である。
The invention according to claim 2 is the information processing apparatus according to
請求項3の発明は、前記記憶手段は、前記プリンタドライバが処理し得る機能又は設定が定義されているGPDファイルを記憶している、請求項2に記載の情報処理装置である。 A third aspect of the present invention is the information processing apparatus according to the second aspect, wherein the storage means stores a GPD file in which functions or settings that can be processed by the printer driver are defined.
請求項4の発明は、前記変換規則を、前記プリンタドライバの構成情報を用いて生成する生成手段をさらに有し、前記変換手段は、前記生成手段によって生成された変換規則にしたがって変換処理を行う、請求項1に記載の情報処理装置である。
The invention according to
請求項5の発明は、前記転送手段の転送先のプリンタドライバを選択する選択手段をさらに有し、前記生成手段は、前記変換規則を前記選択手段により選択されたプリンタドライバの構成情報を用いて生成する、請求項4に記載の情報処理装置である。
The invention according to claim 5 further includes a selection unit that selects a printer driver as a transfer destination of the transfer unit, and the generation unit uses the configuration information of the printer driver selected by the selection unit as the conversion rule. The information processing apparatus according to
請求項6の発明は、コンピュータを、印刷の実行要求をOSから受け付ける受付手段と、前記受付手段が受け付けた実行要求を、変換規則にしたがって、プリンタドライバが解釈可能な実行要求に変換する変換手段と、前記変換手段により変換された実行要求を前記プリンタドライバに転送する転送手段として機能させるための情報処理プログラムである。 According to a sixth aspect of the present invention, a computer receives a print execution request from an OS, and a conversion unit converts the execution request received by the reception unit into an execution request interpretable by a printer driver according to a conversion rule. And an information processing program for causing the execution request converted by the conversion means to function as transfer means for transferring to the printer driver.
請求項1の情報処理装置によれば、プリンタドライバが処理できない機能又は設定をデフォルト値に変換するOS下での印刷処理にあって、プリンタドライバに対して、規則にしたがった変換処理を行った後の実行要求にしたがった印刷を行わせることができる。 According to the information processing apparatus of the first aspect, in the printing process under the OS for converting the function or setting that cannot be processed by the printer driver into the default value, the conversion process according to the rule is performed on the printer driver. Printing can be performed according to a subsequent execution request.
請求項2の情報処理装置によれば、プリンタドライバが受付可能な実行要求の定義を、OSによってアクセス可能にしておくことができる。 According to the information processing apparatus of the second aspect, the definition of the execution request that can be accepted by the printer driver can be made accessible by the OS.
請求項3の情報処理装置によれば、プリンタドライバが処理し得る機能又は設定が定義されているGPDファイルを用いることができる。 According to the information processing apparatus of the third aspect, it is possible to use a GPD file in which functions or settings that can be processed by the printer driver are defined.
請求項4の情報処理装置によれば、事前に変換規則を設定せずに変換処理を行うことができる。 According to the information processing apparatus of the fourth aspect, the conversion process can be performed without setting the conversion rule in advance.
請求項5の情報処理装置によれば、事前に変換規則を設定せずに変換処理を行うことができる。 According to the information processing apparatus of the fifth aspect, the conversion process can be performed without setting the conversion rule in advance.
請求項6の情報処理プログラムによれば、プリンタドライバが処理できない機能又は設定をデフォルト値に変換するOS下での印刷処理にあって、プリンタドライバに対して、規則にしたがった変換処理を行った後の実行要求にしたがった印刷を行わせることができる。 According to the information processing program of the sixth aspect, in the printing process under the OS for converting the function or setting that cannot be processed by the printer driver into the default value, the conversion process according to the rule is performed on the printer driver. Printing can be performed according to a subsequent execution request.
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係、ログイン等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。また、「A、B、C」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その1つのみを選んでいる場合(例えば、Aのみ)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
Hereinafter, an example of a preferred embodiment for realizing the present invention will be described with reference to the drawings.
FIG. 1 shows a conceptual module configuration diagram of a configuration example of the present embodiment.
The module generally refers to components such as software (computer program) and hardware that can be logically separated. Therefore, the module in the present embodiment indicates not only a module in a computer program but also a module in a hardware configuration. Therefore, the present embodiment is a computer program for causing these modules to function (a program for causing a computer to execute each procedure, a program for causing a computer to function as each means, and a function for each computer. This also serves as an explanation of the program and system and method for realizing the above. However, for the sake of explanation, the words “store”, “store”, and equivalents thereof are used. However, when the embodiment is a computer program, these words are stored in a storage device or stored in memory. This means that control is performed so as to be stored in the apparatus. Modules may correspond to functions one-to-one, but in mounting, one module may be configured by one program, or a plurality of modules may be configured by one program, and conversely, one module May be composed of a plurality of programs. The plurality of modules may be executed by one computer, or one module may be executed by a plurality of computers in a distributed or parallel environment. Note that one module may include other modules. Hereinafter, “connection” is used not only for physical connection but also for logical connection (data exchange, instruction, reference relationship between data, login, etc.). “Predetermined” means that the process is determined before the target process, and not only before the process according to this embodiment starts but also after the process according to this embodiment starts. Also, if it is before the target processing, it is used in accordance with the situation / status at that time or with the intention to be decided according to the status / status up to that point. When there are a plurality of “predetermined values”, they may be different values, or two or more values (of course, including all values) may be the same. In addition, the description of “do B when A” is used to mean “determine whether or not A and do B when A”. However, the case where it is not necessary to determine whether or not A is excluded. In addition, when enumerating things such as “A, B, C”, etc., it is an enumerated list unless otherwise specified, and includes cases where only one of them is selected (for example, only A).
In addition, the system or device is configured by connecting a plurality of computers, hardware, devices, and the like by communication means such as a network (including one-to-one correspondence communication connection), etc., and one computer, hardware, device. The case where it implement | achieves by etc. is also included. “Apparatus” and “system” are used as synonymous terms. Of course, the “system” does not include a social “mechanism” (social system) that is an artificial arrangement.
In addition, when performing a plurality of processes in each module or in each module, the target information is read from the storage device for each process, and the processing result is written to the storage device after performing the processing. is there. Therefore, description of reading from the storage device before processing and writing to the storage device after processing may be omitted. Here, the storage device may include a hard disk, a RAM (Random Access Memory), an external storage medium, a storage device via a communication line, a register in a CPU (Central Processing Unit), and the like.
本実施の形態である情報処理モジュール100は、プリンタドライバ170を介して画像処理装置に印刷させるものであって、図1の例に示すように、実行要求受付モジュール110、実行要求変換モジュール120、実行要求転送モジュール130を有しており、OS160、プリンタドライバ170と接続されている。情報処理モジュール100は、印刷実行を受け付けるプリンタドライバ170が処理し得ない実行要求が行われた際に、その実行要求に類似した処理(機能又は設定)に代替させて実行させることを可能とするものである。
情報処理モジュール100は、OS160とプリンタドライバ170との間を仲介する機能を有する。なお、情報処理モジュール100は、アプリケーション150からの印刷親和性を鑑み、一般的なプリンタドライバを模した中間プリンタドライバの1機能形態をとるのが望ましい。また、情報処理モジュール100とプリンタドライバ170が一対一に対応していてもよいし、情報処理モジュール100に対してプリンタドライバ170が複数あってもよい。前者の場合は、OS160に対して情報処理モジュール100が複数あってもよい。具体的には、OS160が制御できるプリンタドライバ170の数だけ情報処理モジュール100もあることになる。後者の場合は、OS160と情報処理モジュール100が一対一に対応しており、OS160は情報処理モジュール100を介して複数のプリンタドライバ170を制御することが可能である。
The
The
アプリケーション150は、OS160と接続されている。アプリケーション150は、ユーザーの操作又は予め定められたプログラムにしたがって、印刷の実行要求をOS160に対して行う。アプリケーション150として、例えば、文書作成プログラム(いわゆるワープロソフト)等が該当する。ここで、アプリケーション150は、プリンタドライバ170の処理できる機能を印刷要求前に問合せ、その機能範囲内でのみ印刷要求を行うよう作成されていることが一般的である。一方で、ある個別のプリンタ特有の機能又は設定を利用する前提で固定的(「固定的」とは、汎用的にではなく、そのプリンタ専用という意味)に作成される場合もあり、この場合にプリンタドライバ170の処理できない印刷の実行要求を行うことがある。本実施の形態である情報処理モジュール100は、主にそのような実行要求に対応するものであるが、前述の一般的なアプリケーションにも対応できるようにしている。
The
OS160は、情報処理モジュール100、アプリケーション150と接続されている。OS160は、アプリケーション150から受け付けた印刷の実行要求を情報処理モジュール100(プリンタドライバ170)に渡す。ただし、OS160は、プリンタドライバ170が処理できない機能又は設定をデフォルト値に変換することを行う。具体例として、Windows(登録商標)におけるversion4(v4)と呼ばれる新しいプリンタドライバのアーキテクチャを採用したものが該当する。詳細については、図3〜5の例を用いて後述する。
The
プリンタドライバ170は、情報処理モジュール100と接続されている。プリンタドライバ170は、プリンタを制御するためのプログラムであり、プリンタ毎に用意されている。例えば、プリンタがカラー印刷対応であるか(白黒印刷のみか)、給紙手段又は排紙手段の種類(取り扱うことができる用意サイズ等)等によって、制御できる機能又は設定が異なる。
The
実行要求受付モジュール110は、印刷の実行要求をOS160から受け付ける。そして、この印刷の実行要求を解釈する。
実行要求変換モジュール120は、実行要求受付モジュール110が受け付けた実行要求を、変換規則にしたがって、プリンタドライバ170が解釈可能な実行要求に変換する。
また、実行要求変換モジュール120は、変換規則を、プリンタドライバ170の構成情報を用いて生成するようにしてもよい。そして、実行要求変換モジュール120は、その変換規則にしたがって変換処理を行うようにしてもよい。
また、実行要求変換モジュール120は、転送先のプリンタドライバを選択してもよい。そして、実行要求変換モジュール120は、変換規則を選択したプリンタドライバの構成情報を用いて生成するようにしてもよい。
The execution
The execution
Further, the execution
Further, the execution
また、情報処理モジュール100は、プリンタドライバ170が受付可能な実行要求の定義を予め記憶しており、その定義をOS160によってアクセス可能にしている記憶手段を有していてもよい。
OS160側は、この記憶手段内の定義にアクセスし、プリンタドライバ170が処理できない機能又は設定があった場合は、デフォルト値に変換することを行う。ただし、本実施の形態では、「プリンタドライバ170が受付可能な実行要求」であるので、変換前の実行要求についても定義しているので、デフォルト値に変換されることなく、アプリケーション150からの印刷の実行要求がそのまま情報処理モジュール100(中間プリンタドライバ)に渡されることになる。
具体例として、記憶手段は、プリンタドライバ170が処理し得る機能又は設定が定義されているGPDファイルを記憶していてもよい。この記憶手段は、より詳細には、後述する図6の例に示す設定項目/禁則(GPD/PPD)記憶モジュール61111が該当する。
Further, the
The
As a specific example, the storage unit may store a GPD file in which functions or settings that can be processed by the
実行要求転送モジュール130は、実行要求変換モジュール120により変換された実行要求をプリンタドライバ170に転送する。
The execution
図2は、本実施の形態を利用したシステム構成例を示す説明図である。
図2(a)の例は、スタンドアロンとしてのシステム構成を示している。情報処理装置200は、情報処理モジュール100、アプリケーション150、OS160、プリンタドライバ170を有している。情報処理装置200と画像処理装置250は、接続されている。情報処理装置200に対して複数の画像処理装置250が接続されていてもよい。アプリケーション150からの印刷の実行要求にしたがって、画像処理装置250が印刷を行う。
図2(b)の例は、通信回線290を介して、情報処理装置200と画像処理装置250が接続されるシステム構成を示している。情報処理装置200A、情報処理装置200B、情報処理装置200C、画像処理装置250は、通信回線290を介してそれぞれ接続されている。通信回線290は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。いずれかの情報処理装置200からの印刷の実行要求にしたがって、画像処理装置250が印刷を行う。
FIG. 2 is an explanatory diagram showing a system configuration example using the present embodiment.
The example in FIG. 2A shows a stand-alone system configuration. The
The example of FIG. 2B shows a system configuration in which the
情報処理モジュール100を用いないで、印刷の実行要求が行われる場合について、図3〜5を用いて説明する。
例えば、Windowsプリンタドライバは、DEVMODEやPrintTicketといった印刷設定情報を記述する公知のデータ構造をアプリケーション150から受け取って印刷処理を実行する。一方、これらDEVMODEやPrintTicketは構造の大枠や一部既定の設定は定義されているものの、詳細はプリンタドライバによって異なる。このため、例えば、特定のプリンタドライバを利用する前提で特定のDEVMODEやPrintTicketを固定的に指示するようなアプリケーションが存在した場合、プリンタドライバの変更に伴い正常に動作しなくなることがあった。
これに対し、プリンタドライバが、自身の処理し得ない実行要求を受けた段階で、その実行要求を自身が処理し得る要求に自己変換して代替実行させる手段が考え得る。
しかし、Windows8以降に導入されているV4と呼ばれる新しいアーキテクチャに基づくプリンタドライバにおいては、プリンタドライバが実行要求を受ける前にOSが介在して、実行できない要求をデフォルト値に丸め込む(変更する)場合がある。このために、実行要求を受けたプリンタドライバは、元々がどのような実行要求であったかを知る術がなく、本来実施したい代替実行ができない状況にあった。
A case where a print execution request is made without using the
For example, the Windows printer driver receives a known data structure describing print setting information such as DEVMODE and PrintTicket from the
On the other hand, when the printer driver receives an execution request that cannot be processed by the printer driver, a means can be considered in which the execution request is converted into a request that can be processed by the printer driver and executed instead.
However, in a printer driver based on a new architecture called V4 introduced after Windows 8, there is a case where a request that cannot be executed is rounded (changed) to a default value by the OS before the printer driver receives an execution request. is there. For this reason, the printer driver that has received the execution request has no way of knowing what the original execution request was, and was unable to perform the alternative execution originally desired.
図3、図4、図5の例を用いて、V4アーキテクチャにおけるOS160、プリンタドライバ170の機能、処理を説明し、プリンタドライバ170における課題例を示す。
図3は、アプリケーション150、OS160、プリンタドライバA:170A、プリンタドライバB:170Bの処理例を示す説明図である。
図3の例では、あるGDI(Graphic Device Interface)用のアプリケーション150が固定のDEVMODEを用いて給紙手段(InputBin)を指示している例を示している。より具体的には、プリンタドライバA:170AでTray1:325を示すInputBin内部定義値が[101](設定値310)であった前提で、InputBin=[101]を固定的に指示している。
The functions and processing of the
FIG. 3 is an explanatory diagram showing a processing example of the
In the example of FIG. 3, an example in which an
なお、V4プリンタドライバでは自身の処理し得る機能/設定をGPD(Generic Printer Description)ファイル記憶モジュール350に定義する。具体的には、プリンタドライバA:170AのGPDファイル記憶モジュール350Aでは、以下のような定義がなされている。
つまり、GPDファイル記憶モジュール350Aに、例えば、
「*Feature:InputBin{
*Auto{*ID:7}
*Bypass{*ID:4}
*Tray1{*ID:101}
}」
が記憶されている。つまり、プリンタドライバA:170Aでは、“Tray1”を示すInputBin内部定義値を[101]としている(GPDファイル記憶モジュール350A内の定義における「*Tray1{*ID:101}」参照)。
そして、プリンタドライバB:170BのGPDファイル記憶モジュール350Bに、例えば、
「*Feature:InputBin{
*AutoTray{*ID:7}
*Manual{*ID:4}
*Tray1{*ID:1}
}」
が記憶されている。プリンタドライバ毎にIDが違うことがある。つまり、プリンタドライバB:170Bでは、“Tray1”を示すInputBin内部定義値を[1]としている(GPDファイル記憶モジュール350B内の定義における「*Tray1{*ID:1}」参照)。そして、GPDファイル記憶モジュール350B内では[101]は定義されていない。
In the V4 printer driver, functions / settings that can be processed by the V4 printer driver are defined in a GPD (Generic Printer Description) file storage module 350. Specifically, in the GPD
That is, the GPD
“* Feature: InputBin {
* Auto {* ID: 7}
* Bypass {* ID: 4}
* Tray 1 {* ID: 101}
}
Is remembered. That is, in the printer driver A: 170A, the InputBin internal definition value indicating “Tray1” is set to [101] (see “* Tray1 {* ID: 101}” in the definition in the GPD
Then, to the GPD
“* Feature: InputBin {
* AutoRay {* ID: 7}
* Manual {* ID: 4}
* Tray 1 {* ID: 1}
}
Is remembered. The ID may be different for each printer driver. That is, in the printer driver B: 170B, the InputBin internal definition value indicating “Tray1” is set to [1] (see “* Tray1 {* ID: 1}” in the definition in the GPD
アプリケーション150は、プリンタドライバ毎に指示を変えられない場合がある。例えば、同じアプリケーション150からそのままプリンタドライバB:170Bに印刷要求を行うと、設定値310[101]はGPDファイル記憶モジュール350B内に定義されていないので、OS160が「InputBin=[101]はプリンタドライバB:170Bが処理し得ない」と判断して、InputBin=[7](デフォルト値)に変換処理360Bを行う。つまり、OS160は、Devmode値315からPT320への変換処理360を行うものであり、いわゆるGPDの未定義の値を「AutoSelect」(デフォルト値330であるAutoSelect335)に変換している。これにより、本来アプリケーション150では“Tray1”からの給紙を期待していたはずが、“AutoSelect”で給紙されてしまうこととなる。プリンタドライバB:170Bでは、GPDファイル記憶モジュール350B内の定義によってデフォルト値330はAutoSelect335に対応している。
なお、変換処理360Aでは、設定値310は、GPDファイル記憶モジュール350A内に定義されているので、変換処理360Aを行わずに、設定値310をそのままプリンタドライバA:170Aに渡している。プリンタドライバA:170Aでは、GPDファイル記憶モジュール350A内の定義によって設定値310はTray1:325に対応している。
The
In the
図4は、アプリケーション150、OS160、プリンタドライバB:170Bの処理例を示す説明図である。図4の例は、図3の例を改良したものである。具体例として、プリンタドライバB:170B内に代替実行処理モジュール410を加えたものである。
V4アーキテクチャが導入される前、つまり、OS160が変換処理360の処理を行っていない場合は、代替実行処理モジュール410が、“101”を“1”に読みかえて実行すれば、GPDファイル記憶モジュール350B内に“101”の定義がなかったとしても、“101”の対応ができることになる。
しかし、前述したように、V4アーキテクチャが導入された後のOS160では変換処理360Bが行われてしまうので、代替実行処理モジュール410が変換すべきであるか否か、そして、変換すべきとわかったとしても、元々の指示(設定値310の[101])を知ることができないので、代替実行処理モジュール410での処理を行うことができない。
FIG. 4 is an explanatory diagram showing a processing example of the
Before the V4 architecture is introduced, that is, when the
However, as described above, since the
図5は、アプリケーション150、OS160、プリンタドライバB:170Bの処理例を示す説明図である。図5の例は、図4の例を改良したものである。具体例として、GPDファイル記憶モジュール350B内に[101]の定義を加えたものである。つまり、元の実行要求を解釈できるようにGPDファイルにダミーの定義を追加しておくものである。
GPDファイル記憶モジュール350B内に[101]の定義があるので、OS160は、実行要求された値([101])を取得することが可能となる。そして、代替実行処理モジュール410は、“101”を“1”に読みかえて実行することができることになる。
しかし、ユーザー510が印刷指示を行う場合に、表示装置520にドライバユーザーインタフェース550が表示されるが、余計な設定項目が並び、操作性が低下することになる。例えば、ドライバユーザーインタフェース550として、給紙手段の選択があり、その設定項目として、「自動選択」、「手差し」、「トレイ1」、「トレイ1(ダミー1)」、「トレイ1(ダミー2)」、「トレイ1(ダミー3)」、「トレイ1(ダミー4)」等がある。このように、設定項目が多く並ぶことになる。これは、プリンタドライバA:170A(又は、他のプリンタドライバ170)における設定項目を全て網羅して、GPDファイル記憶モジュール350B内に提示するため、多くの設定項目がドライバユーザーインタフェース550内に表示されることになるからである。
FIG. 5 is an explanatory diagram showing a processing example of the
Since [101] is defined in the GPD
However, when the
図6は、本実施の形態の構成例についての具体的なモジュール構成図である。
中間プリンタドライバコンポーネント群600は、図1の例に示した情報処理モジュール100を含んでいる。
中間プリンタドライバコンポーネント群600は、印刷実行するプリンタドライバが処理し得ない実行要求が行われた際にその実行要求に類似する処理に代替させるための処理を行うものである。
まず印刷の実行要求を解釈することが可能な中間プリンタドライバ(中間プリンタドライバコンポーネント群600の1つ)で印刷の実行要求を受け付け、印刷実行するプリンタドライバ(プリンタドライバコンポーネント群670の1つ)が解釈可能な実行要求に変換した後に、印刷実行するプリンタドライバ(プリンタドライバコンポーネント群670の1つ)に印刷の実行要求を転送する。
これによって、例えば特定の基幹アプリケーションにハードコード(特定の動作環境を前提とした処理やデータをソースコードの中に直に記述すること)されたような既定の印刷の実行要求を変更することなく、その実行要求の指示意図を保ったままで任意のプリンタに出力先を変更することができるようになる。また、プリンタそのものを置き換える場合、旧プリンタ(旧プリンタドライバ)への印刷の実行要求にも新プリンタ(旧プリンタドライバ)が対応できるようになる。
FIG. 6 is a specific module configuration diagram for a configuration example of the present embodiment.
The intermediate printer
The intermediate printer
First, an intermediate printer driver (one of intermediate printer driver component group 600) capable of interpreting a print execution request accepts a print execution request, and a printer driver (one of printer driver component group 670) that executes printing executes. After conversion into an interpretable execution request, the print execution request is transferred to a printer driver (one of the printer driver component group 670) that executes printing.
Thus, for example, without changing the default print execution request that is hard-coded into a specific core application (processing or data that assumes a specific operating environment is described directly in the source code) Thus, it is possible to change the output destination to an arbitrary printer while maintaining the instruction intention of the execution request. Further, when replacing the printer itself, the new printer (old printer driver) can cope with a print execution request to the old printer (old printer driver).
図6の例では、実線の矢印で、主な印刷経路(印刷の実行要求の流れ)を示している。
アプリケーション150は、OS160のXPSスプールファイル記憶モジュール605、中間プリンタドライバコンポーネント群600内のプリンタドライバCoreモジュール611のConfigurationモジュール6111と接続されている。アプリケーション150は、印刷の実行を指示するアプリケーションである。
OS160は、XPSスプールファイル記憶モジュール605、プリントスプーラ606、ポートモニタ607を有している。
XPSスプールファイル記憶モジュール605は、アプリケーション150、中間プリンタドライバコンポーネント群600内の情報処理モジュール100の実行要求受付モジュール110と実行要求転送モジュール130、プリンタドライバコンポーネント群670内のプリンタドライバCoreモジュール621のRenderingモジュール6213と接続されている。XPSスプールファイル記憶モジュール605(XPSはXML Paper Specificationの略)は、V4アーキテクチャでは印刷データをXPSファイルフォーマットにてスプールする。OS管理の領域である。
プリントスプーラ606は、ポートモニタ607、プリンタドライバコンポーネント群670内のプリンタドライバCoreモジュール621のRenderingモジュール6213と接続されている。プリントスプーラ606は、印刷処理のスケジュール管理を行う。Rendering(印刷データ生成処理)された印刷データを受け付け、順次送信制御する。OS管理の領域である。
ポートモニタ607は、プリントスプーラ606、プリンタドライバコンポーネント群670内のプリンタドライバCoreモジュール621のConectionモジュール6214、プリンタ690と接続されている。ポートモニタ607は、プリントスプーラ606とプリンタ690とのデータやり取りを仲介する。OS管理の領域である。
プリンタ690は、OS160のポートモニタ607と接続されている。プリンタ690は、画像処理装置250(印刷装置)である。
In the example of FIG. 6, the solid print arrows indicate the main print path (flow of print execution requests).
The
The
The XPS spool
The
The port monitor 607 is connected to the
The
中間プリンタドライバコンポーネント群600は、プリンタドライバCoreモジュール611、情報処理モジュール100を有している。中間プリンタドライバコンポーネント群600は、プリンタドライバの形式を有し、印刷に関する実行応答を行う。なお、WindowsのV4アーキテクチャ形式では、プリンタドライバとしてのCore部分と拡張処理を行うアプリケーション部分があり、これらを連動させて動作させる。ここではこれらコンポーネント群をまとめて1つのプリンタドライバと説明する。
The intermediate printer
プリンタドライバCoreモジュール611は、Configurationモジュール6111を有している。プリンタドライバCoreモジュール611は、プリンタドライバの本体部分である。標準的な構成では、UIモジュール、設定項目/禁則(GPD/PPD)記憶モジュール61111、Renderingモジュール、Connectionモジュールを有する。ここでは、本実施の形態に必要なConfigurationモジュール6111のみを記載しているが、他を併せて有してもよい。
The printer
Configurationモジュール6111は、設定項目/禁則(GPD/PPD)記憶モジュール61111、拡張禁則モジュール61112を有しており、情報処理モジュール100、アプリケーション150と接続されている。Configurationモジュール6111は、プリンタドライバが備える設定項目や禁則定義の情報を保持し、印刷設定(DEVMODE/PrintTicket682)や構成情報(PrintCapabilites686)の応答を行う。
設定項目/禁則(GPD/PPD)記憶モジュール61111は、OS160が規定する形式に則って定義した設定項目(機能又は設定)、禁則定義情報を保持する。
拡張禁則モジュール61112は、各プリンタベンダーで独自拡張した設定項目、その挙動を定義し、処理する。
本実施の形態では、アプリケーション150からの様々な印刷の実行要求を受け付けできるよう(解釈できるよう)、想定でき得る全ての機能又は設定を有しておく。ここで「想定でき得る全ての機能又は設定」として、プリンタドライバコンポーネント群670(複数のプリンタドライバ)が実行可能な機能又は設定の総和をいう。
The
The setting item / prohibition (GPD / PPD)
The
In the present embodiment, all functions or settings that can be assumed are provided so that various print execution requests from the
情報処理モジュール100は、実行要求受付モジュール110、実行要求変換モジュール120、実行要求転送モジュール130を有しており、プリンタドライバCoreモジュール611のConfigurationモジュール6111、プリンタドライバコンポーネント群670のプリンタドライバCoreモジュール621と接続されている。本実施の形態では、情報処理モジュール100は、WindowsのV4アーキテクチャ形式のプリンタドライバにおけるプレプリント機能の拡張コンポーネントとして備える。特に、WindowsのV4アーキテクチャでは、ワークフローアプリケーションともいわれる構成部分である。本実施の形態では、実行要求の解釈、変換、転送の処理を行う。
情報処理モジュール100は、アプリケーション150からの印刷指示後に呼び出され、XPSスプールファイル記憶モジュール605内のXPSスプールデータに加工を施した後、通常はプリントスプーラ606へデータを送る。本実施の形態では、再度スプール領域(XPSスプールファイル記憶モジュール605)へ送り、印刷実行をプリンタドライバコンポーネント群670に転送する。
処理中は、プリンタドライバCoreモジュール611の情報を構成情報(PrintCapabilites684)にて参照する。
後述する実行要求の解釈、変換、転送内容を事後設定、又は、都度設定できるよう、情報処理モジュール100自体に別途UIモジュールを設けてもよい。
The
The
During processing, the information of the printer
A UI module may be separately provided in the
実行要求受付モジュール110は、OS160のXPSスプールファイル記憶モジュール605と接続されている。実行要求受付モジュール110は、印刷の実行要求を受け付け、その受け付けた印刷の実行要求の意味を解釈する。
実装の一例としては、プリンタドライバCoreモジュール611に定義される構成情報(Print Capabilities686)から意味を解釈するが、情報処理モジュール100自体にこれを定義又は都度設定できてもよい。ここでは後段の印刷実行するプリンタドライバコンポーネント群670が解釈できない要求のみを抽出するだけとし、後段の実行要求変換モジュール120の定義ルールにて単純変換させてもよい。
The execution
As an example of the implementation, the meaning is interpreted from the configuration information (Print Capabilities 686) defined in the printer
実行要求変換モジュール120は、実行要求受付モジュール110が受け付けた印刷の実行要求を、後段の印刷実行するプリンタドライバコンポーネント群670が解釈できる要求に変換する。
実装の一例としては、特定の変換ルールを事前設定しておき、このルールにしたがった変換を行う。この変換ルールについては、適当なタイミングでユーザー設定できるようにしてもよい。さらに、それぞれのプリンタドライバCoreモジュール611、プリンタドライバCoreモジュール621の構成情報(Print Capabilities688)を踏まえて変換ルールを自動生成させてもよい。
The execution
As an example of implementation, a specific conversion rule is set in advance, and conversion according to this rule is performed. This conversion rule may be set by the user at an appropriate timing. Furthermore, conversion rules may be automatically generated based on the configuration information (Print Capabilities 688) of each printer
実行要求転送モジュール130は、OS160のXPSスプールファイル記憶モジュール605と接続されている。実行要求転送モジュール130は、実行要求変換モジュール120によって変換された印刷の実行要求を、後段の印刷実行するプリンタドライバコンポーネント群670に転送する。
実装の一例としては、中間プリンタドライバコンポーネント群611設置時に転送先を設定するが、都度転送先を設定できてもよい。
The execution
As an example of implementation, the transfer destination is set when the intermediate printer
プリンタドライバコンポーネント群670は、プリンタドライバCoreモジュール621を有している。プリンタドライバコンポーネント群670は、標準的なプリンタドライバ(WindowsV4アーキテクチャ形式)である。本実施の形態では、実質的な印刷実行(印刷データ生成等を含む)を行う。ここでは、プリンタドライバCoreモジュール621のみを有するが、中間プリンタドライバコンポーネント群600のように拡張アプリケーションである情報処理モジュール100を有してもよい。
The printer
プリンタドライバCoreモジュール621は、Configurationモジュール6211、UIモジュール6212、Renderingモジュール6213、Conectionモジュール6214を有しており、中間プリンタドライバコンポーネント群600の情報処理モジュール100と接続されている。プリンタドライバCoreモジュール621は、プリンタドライバの本体部分である。標準的な構成では、UIモジュール6212、Configurationモジュール6211、Renderingモジュール6213、Connectionモジュール6214を有する。
The printer
Configurationモジュール6211は、設定項目/禁則(GPD/PPD)記憶モジュール62111、拡張禁則モジュール62112を有している。Configurationモジュール6211は、プリンタドライバが備える設定項目や禁則定義の情報を保持し、印刷設定(DEVMODE/PrintTicket682)や構成情報(PrintCapabilites688)の応答を行う。
設定項目/禁則(GPD/PPD)記憶モジュール62111は、OS160が規定する形式に則って定義した設定項目(機能又は設定)、禁則定義情報を保持する。
拡張禁則モジュール62112は、各プリンタベンダーで独自拡張した設定項目、その挙動を定義し、処理する。
ただし、設定項目/禁則(GPD/PPD)記憶モジュール62111、拡張禁則モジュール62112では、出力先のプリンタ690が実行可能な範囲の設定のみを有している。
The
The setting item / prohibition (GPD / PPD)
The
However, the setting item / prohibition (GPD / PPD)
UIモジュール6212は、プリンタドライバの印刷設定画面を表示する。
Renderingモジュール6213は、OS160のXPSスプールファイル記憶モジュール605、プリントスプーラ606と接続されている。Renderingモジュール6213は、XPSスプールファイル記憶モジュール605内のXPSスプールデータからプリンタ690が処理可能な印刷データを生成する。XPS Filterは、この印刷データ生成処理を行う実体であり、一般的に処理要求単位に用意する。
Conectionモジュール6214は、OS160のポートモニタ607と接続されている。Conectionモジュール6214は、プリンタ690との通信制御を行う。プリンタ690の状態を問い合わせたり、プリンタ690の設定を取得したりする。
The
The
The
図7は、本実施の形態の導入例を示すフローチャートである。
なお、特定の印刷の実行要求を固定実行するアプリケーション150(例えば、図3等の例で示した設定[101]等としているアプリケーション150)、印刷実行するプリンタドライバ170(標準ドライバ)が設置されている環境があるとする。図9に示す例を用いて説明する。図9の例では、前述のアプリケーション150、プリンタドライバB:170B(プリンタドライバコンポーネント群670に相当)が設置されているとする。プリンタドライバB:170BのGPDファイル記憶モジュール350Bに、例えば、
「*Feature:InputBin{
*AutoTray{*ID:7}
*Manual{*ID:4}
*Tray1{*ID:1}
}」
が記憶されている。つまり、[101]は定義されていない。
FIG. 7 is a flowchart showing an introduction example of the present embodiment.
Note that an
“* Feature: InputBin {
* AutoRay {* ID: 7}
* Manual {* ID: 4}
* Tray 1 {* ID: 1}
}
Is remembered. That is, [101] is not defined.
ステップS702では、想定される設定をGPDファイルに定義する。アプリケーション150からの様々な印刷の実行要求を受け付けできるよう(解釈できるよう)、想定でき得る設定をGPDファイルに定義しておく。
例えば、給紙トレイ(InputBin)の“Tray1”指定パターンとして、定義値[1]/[11]/[101]/[261]/[901]等を用意しておく。前述したように、他のプリンタドライバ170(例えば、前述のプリンタドライバA:170A)が対応している設定である。
図9の例に示すように、設定項目/禁則(GPD/PPD)記憶モジュール61111内のGPDファイルには、このステップS702によって、
「*Feature:InputBin{
*AutoTray{*ID:7}
*Manual{*ID:4}
*Tray1{*ID:1}
*Tray1_Dummy1{*ID:11}
*Tray1_Dummy2{*ID:101}
*Tray1_Dummy3{*ID:261}
*Tray1_Dummy4{*ID:901}
・・・
}」
を記憶する。
In step S702, an assumed setting is defined in the GPD file. Settings that can be assumed are defined in the GPD file so that various print execution requests from the
For example, definition values [1] / [11] / [101] / [261] / [901] and the like are prepared as the “Tray1” designation pattern of the paper feed tray (InputBin). As described above, this setting is compatible with another printer driver 170 (for example, the above-described printer driver A: 170A).
As shown in the example of FIG. 9, the GPD file in the setting item / prohibition (GPD / PPD)
“* Feature: InputBin {
* AutoRay {* ID: 7}
* Manual {* ID: 4}
* Tray 1 {* ID: 1}
* Tray1_Dummy1 {* ID: 11}
* Tray1_Dummy2 {* ID: 101}
* Tray1_Dummy3 {* ID: 261}
* Tray1_Dummy4 {* ID: 901}
...
}
Remember.
ステップS704では、変換ルールを設定する。印刷の実行要求の変換ルールを実行要求変換モジュール120内に設定しておく。例えば、給紙トレイ(InputBin)の“Tray1”変換ルールとして、定義値[11]/[101]/[261]/[901]を受け付けた場合に[1]に変換するルールを設定しておく。図9に示す例では、実行要求変換モジュール120内で、変換処理915として「Tray1_Dummy2→Tray1」を設定する。
In step S704, a conversion rule is set. A print execution request conversion rule is set in the execution
ステップS706では、中間プリンタドライバ(図6の例では、中間プリンタドライバコンポーネント群600)を設置する。
ステップS708では、印刷の実行要求の転送先として、設置済みのプリンタドライバ170(標準ドライバ)を設定する。
In step S706, an intermediate printer driver (in the example of FIG. 6, the intermediate printer driver component group 600) is installed.
In step S708, the installed printer driver 170 (standard driver) is set as the transfer destination of the print execution request.
図8は、本実施の形態による処理例を示すフローチャートである。図7の例に示すフローチャートによる導入の後に、印刷処理を行うものである。
ステップS802では、アプリケーション150が印刷の実行要求を行う。これによって、中間ドライバ(中間プリンタドライバコンポーネント群600)に対して印刷の実行要求が行われる。図9に示す例では、アプリケーション150が、設定値310として[101]を設定している。なお、OS160では、設定項目/禁則(GPD/PPD)記憶モジュール61111に[101]が定義されているので、変換処理は行われない。
FIG. 8 is a flowchart showing an example of processing according to this embodiment. After the introduction according to the flowchart shown in the example of FIG. 7, the printing process is performed.
In step S802, the
ステップS804では、実行要求受付モジュール110が、印刷の実行要求を受け付け、その内容を解釈する。例えば、給紙トレイ(InputBin)の[101]設定を受け取り、これが“Tray1”を示していることを解釈する。図9に示す例では、実行要求受付モジュール110が、Tray1_Dummy2:910として設定値310を受け付ける。
In step S804, the execution
ステップS806では、実行要求変換モジュール120が、変換ルールに基づいて、印刷の実行要求を変換する。例えば、給紙トレイ(InputBin)の[101]設定を、[1]設定に変換する。図9に示す例では、実行要求変換モジュール120が、具体的変換処理920として「101→1」を行う。
ステップS808では、実行要求転送モジュール130が、変換後の印刷の実行要求をプリンタドライバ170に転送する。例えば、転送先として登録されたプリンタドライバ170に対して印刷の実行要求を行う。図9に示す例では、実行要求転送モジュール130が、Tray1:925の設定値930「1」で転送する。
ステップS810では、標準ドライバであるプリンタドライバ170は、印刷処理を行う。図9に示す例では、プリンタドライバB:170Bが、Tray1:925の設定値930「1」で、画像処理装置250で印刷させる。
In step S806, the execution
In step S <b> 808, the execution
In step S810, the
なお、本実施の形態によれば、ユーザー510が別用途でドライバユーザーインタフェース1050を操作する際には、画像処理装置250に対して印刷実行するプリンタドライバB:170Bを直接操作すればよく、その場合にドライバユーザーインタフェース1050に余分な選択肢が表示されることも無い。
図10は、本実施の形態による処理例を示す説明図である。ドライバユーザーインタフェース1050を表示装置520に表示し、ユーザー510に選択させる。例えば、ドライバユーザーインタフェース1050として。給紙手段の選択があり、プリンタドライバB:170Bにおける設定項目として、「自動選択」、「手差し」、「トレイ1」がある。中間プリンタドライバコンポーネント群600の設定項目/禁則(GPD/PPD)記憶モジュール61111内の定義内の項目を用いるのではなく、プリンタドライバB:170BのGPDファイル記憶モジュール350Bを用いているので、余分な設定項目が表示されることもない。
According to the present embodiment, when the
FIG. 10 is an explanatory diagram showing a processing example according to the present embodiment. The
前述の例では、事前に変換ルールを設定しておかなければならず、基本的には標準ドライバ(プリンタドライバ170)毎に中間ドライバ(情報処理モジュール100、中間プリンタドライバコンポーネント群600における中間ドライバの1つ)を用意する必要がある。
前述の図8の例に示すフローチャートのステップS806にて、実行要求変換モジュール120による処理として、図11の例に示すフローチャートの処理を追加することで、変換ルールを生成でき、標準ドライバ(プリンタドライバ170)によらない中間ドライバ(情報処理モジュール100)を提供することができる。つまり、複数のプリンタドライバ170を1つの情報処理モジュール100で管理することができるようになる。
In the above example, conversion rules must be set in advance. Basically, an intermediate driver (
In step S806 of the flowchart shown in the example of FIG. 8 described above, a conversion rule can be generated by adding the process of the flowchart shown in the example of FIG. 170), an intermediate driver (information processing module 100) can be provided. That is, a plurality of
図11は、本実施の形態(主に実行要求変換モジュール120)による処理例を示すフローチャートである。実行要求変換モジュール120が行う、事前に変換処理が定義されていない機能又は設定が、印刷の実行要求に含まれていた場合の対処例を示すものである。
ステップS1102では、実行要求受付モジュール110から印刷の実行要求と解釈結果を受け取る。
ステップS1104では、中間ドライバ自身のプリンタドライバCoreモジュール611、標準ドライバのプリンタドライバCoreモジュール621から構成情報(Print Capabilities686、Print Capabilities688)を取得する。
FIG. 11 is a flowchart showing an example of processing by the present embodiment (mainly the execution request conversion module 120). The following shows an example of handling when a function or setting for which conversion processing is not defined in advance performed by the execution
In step S1102, a print execution request and interpretation result are received from the execution
In step S1104, configuration information (
ステップS1106では、印刷の実行要求された機能毎(又は設定毎)に以下(ステップS1108〜ステップS1114までの処理)を繰り返す。
ステップS1108では、印刷要求された設定値が標準ドライバの構成情報(Print Capabilities688)に含まれるか否かを判断し、含まれる場合はステップS1114へ進み(変換処理不要)、含まれない場合はステップS1110へ進む(変換処理必要)。
In step S1106, the following (the processing from step S1108 to step S1114) is repeated for each function (or each setting) requested to be printed.
In step S1108, it is determined whether the setting value requested for printing is included in the configuration information (Print Capabilities 688) of the standard driver. If included, the process proceeds to step S1114 (no conversion processing is required). The process proceeds to S1110 (conversion processing is necessary).
ステップS1110では、印刷要求の解釈結果と標準ドライバの構成情報(Print Capabilities688)をつき合わせ、同じ要求を意図する標準ドライバ側の設定値を特定する。例えば、GPDの定義にしたがって設定値[101]は“Tray1”と解釈され、変換規則を持たない実行要求変換モジュール120は、転送先の標準ドライバ(予め定められている標準ドライバ、又は、後述するように標準ドライバを選択する)の構成情報から“Tray1”の設定値を抽出する。その上で、設定値[101]から設定値[1]に変更する変換規則を生成する。
ステップS1112では、印刷要求された設定値を、特定した設定値に変換する。例えば、図3では設定値[101]を“Tray1”である[1]に変換する。
In step S1110, the interpretation result of the print request is combined with the configuration information (Print Capabilities 688) of the standard driver, and the setting value on the standard driver side that intends the same request is specified. For example, the setting value [101] is interpreted as “Tray1” in accordance with the definition of GPD, and the execution
In step S1112, the setting value requested for printing is converted into the specified setting value. For example, in FIG. 3, the set value [101] is converted to [1] which is “Tray1”.
ステップS1114では、対象としている印刷の実行要求内で全ての機能(又は設定)を処理したか否かを判断し、処理した場合はステップS1116へ進み、それ以外の場合はステップS1108へ戻る。
ステップS1116では、実行要求転送モジュール130に処理結果を渡す。
In step S1114, it is determined whether or not all functions (or settings) have been processed within the target print execution request. If processed, the process proceeds to step S1116; otherwise, the process returns to step S1108.
In step S 1116, the processing result is passed to the execution
さらに、この図11の例に示すフローチャートによる処理を追加することと併せて、実行要求転送モジュール130に設定する印刷の実行要求の転送先(プリンタドライバ170)を、中間ドライバ(情報処理モジュール100)の設置後に任意に変更できる仕組みを設けてもよい。例えば、アプリケーション・プリンタドライバ対応テーブル1200を設けてもよい。実行要求転送モジュール130は、アプリケーション・プリンタドライバ対応テーブル1200にしたがって、プリンタドライバ170を選択して転送すればよい。図12は、アプリケーション・プリンタドライバ対応テーブル1200のデータ構造例を示す説明図である。アプリケーション・プリンタドライバ対応テーブル1200は、アプリケーション欄1210、プリンタドライバ欄1220を有している。アプリケーション欄1210は、アプリケーション150の識別子を記憶している。プリンタドライバ欄1220は、プリンタドライバ170の識別子(識別子には名称を含めてもよい)を記憶している。アプリケーション・プリンタドライバ対応テーブル1200は、アプリケーション150が印刷の実行要求を行った際に生成される。そして、その後、ユーザーの操作等によって任意の時期に変更されてもよい。このアプリケーション・プリンタドライバ対応テーブル1200によって、実行要求転送モジュール130は、アプリケーション150に合わせて、プリンタドライバ170を選択することができる。
これらを組み合わせることで、同一環境に複数種の標準ドライバ(プリンタドライバ170)が存在した場合でも、1つの中間ドライバ(情報処理モジュール100)で対処可能となる。
In addition to the addition of the processing according to the flowchart shown in the example of FIG. 11, the transfer destination (printer driver 170) of the print execution request set in the execution
By combining these, even if a plurality of types of standard drivers (printer drivers 170) exist in the same environment, it is possible to cope with one intermediate driver (information processing module 100).
図13を参照して、本実施の形態の情報処理装置200、画像処理装置250のハードウェア構成例について説明する。図13に示す構成は、例えばパーソナルコンピュータ(PC)等によって構成されるものであり、スキャナ等のデータ読み取り部1317と、プリンタ等のデータ出力部1318を備えたハードウェア構成例を示している。
A hardware configuration example of the
CPU(Central Processing Unit)1301は、前述の実施の形態において説明した各種のモジュール、すなわち、アプリケーション150、OS160、情報処理モジュール100、実行要求受付モジュール110、実行要求変換モジュール120、実行要求転送モジュール130、プリンタドライバ170等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
A CPU (Central Processing Unit) 1301 is the various modules described in the above-described embodiments, that is, the
ROM(Read Only Memory)1302は、CPU1301が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)1303は、CPU1301の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバス等から構成されるホストバス1304により相互に接続されている。
A ROM (Read Only Memory) 1302 stores programs used by the
ホストバス1304は、ブリッジ1305を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス1306に接続されている。
The
キーボード1308、マウス等のポインティングデバイス1309は、操作者により操作されるデバイスである。ディスプレイ1310は、液晶表示装置又はCRT(Cathode Ray Tube)等があり、各種情報をテキストやイメージ情報として表示する。また、ポインティングデバイス1309とディスプレイ1310の両方の機能を備えているタッチスクリーン等であってもよい。その場合、キーボードの機能の実現について、キーボード1308のように物理的に接続しなくても、画面(タッチスクリーン)上にソフトウェアでキーボード(いわゆるソフトウェアキーボード、スクリーンキーボード等ともいわれる)を描画して、キーボードの機能を実現するようにしてもよい。
A
HDD(Hard Disk Drive)1311は、ハードディスク(フラッシュ・メモリ等であってもよい)を内蔵し、ハードディスクを駆動し、CPU1301によって実行するプログラムや情報を記録又は再生させる。ハードディスクは、設定項目/禁則(GPD/PPD)記憶モジュール61111、設定項目/禁則(GPD/PPD)記憶モジュール62111等としての機能を実現させる。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
An HDD (Hard Disk Drive) 1311 includes a hard disk (may be a flash memory or the like), drives the hard disk, and records or reproduces a program executed by the
ドライブ1312は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体1313に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース1307、外部バス1306、ブリッジ1305、及びホストバス1304を介して接続されているRAM1303に供給する。なお、リムーバブル記録媒体1313も、データ記録領域として利用可能である。
The
接続ポート1314は、外部接続機器1315を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート1314は、インタフェース1307、及び外部バス1306、ブリッジ1305、ホストバス1304等を介してCPU1301等に接続されている。通信部1316は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部1317は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部1318は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
The
なお、図13に示す情報処理装置200、画像処理装置250のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図13に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図13に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
Note that the hardware configurations of the
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
The program described above may be provided by being stored in a recording medium, or the program may be provided by communication means. In that case, for example, the above-described program may be regarded as an invention of a “computer-readable recording medium recording the program”.
The “computer-readable recording medium on which a program is recorded” refers to a computer-readable recording medium on which a program is recorded, which is used for program installation, execution, program distribution, and the like.
The recording medium is, for example, a digital versatile disc (DVD), which is a standard established by the DVD Forum, such as “DVD-R, DVD-RW, DVD-RAM,” and DVD + RW. Standard “DVD + R, DVD + RW, etc.”, compact disc (CD), read-only memory (CD-ROM), CD recordable (CD-R), CD rewritable (CD-RW), Blu-ray disc ( Blu-ray (registered trademark) Disc), magneto-optical disk (MO), flexible disk (FD), magnetic tape, hard disk, read-only memory (ROM), electrically erasable and rewritable read-only memory (EEPROM (registered trademark)) )), Flash memory, Random access memory (RAM) SD (Secure Digital) memory card and the like.
Then, the whole or a part of the program may be recorded on the recording medium for storage or distribution. Also, by communication, for example, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wired network used for the Internet, an intranet, an extranet, or a wireless communication It may be transmitted using a transmission medium such as a network or a combination of these, or may be carried on a carrier wave.
Furthermore, the program may be a part or all of another program, or may be recorded on a recording medium together with a separate program. Moreover, it may be divided and recorded on a plurality of recording media. Further, it may be recorded in any manner as long as it can be restored, such as compression or encryption.
100…情報処理モジュール
110…実行要求受付モジュール
120…実行要求変換モジュール
130…実行要求転送モジュール
150…アプリケーション
160…OS
170…プリンタドライバ
200…情報処理装置
250…画像処理装置
290…通信回線
310…設定値
315…Devmode値
320…PT
325…Tray1
330…デフォルト値
335…AutoSelect
350…GPDファイル記憶モジュール
360…変換処理
410…代替実行処理モジュール
600…中間プリンタドライバコンポーネント群
605…XPSスプールファイル記憶モジュール
606…プリントスプーラ
607…ポートモニタ
611…プリンタドライバCoreモジュール
6111…Configurationモジュール
61111…設定項目/禁則(GPD/PPD)記憶モジュール
61112…拡張禁則モジュール
621…プリンタドライバCoreモジュール
6211…Configurationモジュール
62111…設定項目/禁則(GPD/PPD)記憶モジュール
62112…拡張禁則モジュール
6212…UIモジュール
6213…Renderingモジュール
6214…Conectionモジュール
670…プリンタドライバコンポーネント群
682…DEVMODE/PrintTicket
684、686、688…Print Capabilities
690…プリンタ
DESCRIPTION OF
170:
325 ... Tray1
330 ...
350 ... GPD file storage module 360 ...
684, 686, 688 ... Print Capabilities
690 ... Printer
Claims (6)
前記受付手段が受け付けた実行要求を、変換規則にしたがって、プリンタドライバが解釈可能な実行要求に変換する変換手段と、
前記変換手段により変換された実行要求を前記プリンタドライバに転送する転送手段
を有する情報処理装置。 Accepting means for accepting a print execution request from the OS;
Conversion means for converting the execution request received by the reception means into an execution request interpretable by a printer driver according to a conversion rule;
An information processing apparatus comprising transfer means for transferring the execution request converted by the conversion means to the printer driver.
をさらに有する請求項1に記載の情報処理装置。 The information processing apparatus according to claim 1, further comprising: a storage unit that stores in advance a definition of an execution request that can be accepted by the printer driver, and makes the definition accessible by the OS.
請求項2に記載の情報処理装置。 The storage means stores a GPD file in which functions or settings that can be processed by the printer driver are defined.
The information processing apparatus according to claim 2.
をさらに有し、
前記変換手段は、前記生成手段によって生成された変換規則にしたがって変換処理を行う、
請求項1に記載の情報処理装置。 Generating means for generating the conversion rule using configuration information of the printer driver;
The conversion means performs conversion processing according to the conversion rule generated by the generation means.
The information processing apparatus according to claim 1.
前記生成手段は、前記変換規則を前記選択手段により選択されたプリンタドライバの構成情報を用いて生成する、
請求項4に記載の情報処理装置。 A selection unit that selects a destination printer driver of the transfer unit;
The generation unit generates the conversion rule using configuration information of a printer driver selected by the selection unit.
The information processing apparatus according to claim 4.
印刷の実行要求をOSから受け付ける受付手段と、
前記受付手段が受け付けた実行要求を、変換規則にしたがって、プリンタドライバが解釈可能な実行要求に変換する変換手段と、
前記変換手段により変換された実行要求を前記プリンタドライバに転送する転送手段
として機能させるための情報処理プログラム。 Computer
Accepting means for accepting a print execution request from the OS;
Conversion means for converting the execution request received by the reception means into an execution request interpretable by a printer driver according to a conversion rule;
An information processing program for causing an execution request converted by the conversion means to function as a transfer means for transferring to the printer driver.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018078813A JP2019185627A (en) | 2018-04-17 | 2018-04-17 | Information processing apparatus and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018078813A JP2019185627A (en) | 2018-04-17 | 2018-04-17 | Information processing apparatus and information processing program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019185627A true JP2019185627A (en) | 2019-10-24 |
Family
ID=68341480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018078813A Pending JP2019185627A (en) | 2018-04-17 | 2018-04-17 | Information processing apparatus and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019185627A (en) |
-
2018
- 2018-04-17 JP JP2018078813A patent/JP2019185627A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5677047B2 (en) | Printing system, information processing apparatus, printing method, and program | |
US8773691B2 (en) | Printing control apparatus, printing control method, and storage medium | |
EP3471389A2 (en) | Program | |
JP2020004158A (en) | Information processing apparatus, method of controlling information processing apparatus, and program | |
US9311036B2 (en) | Data processing system and method of data processing | |
KR100601696B1 (en) | Method and apparatus for processing image file directly | |
US10353646B2 (en) | Information processing apparatus, information processing system, and information processing method | |
JP7230387B2 (en) | Information processing device and information processing program | |
US20230350613A1 (en) | Computer-readable storage medium, information processing device, and method for printing composite image | |
JP7255117B2 (en) | Information processing device, printing method, and program | |
JP6481508B2 (en) | Terminal device, program, and output system | |
US20110055689A1 (en) | Method of performing at least one operation in image forming apparatus, and image forming apparatus and host device to perform the method | |
US8270014B2 (en) | Printing method, recordable medium recorded with a program to execute the method and host apparatus | |
US20180074764A1 (en) | Information processing device, information processing system, and information processing method | |
JP2008158645A (en) | Printing apparatus, data processing apparatus, printing control method, storage medium and program | |
JP2014228954A (en) | Functional description creation program, functional description creation method, and functional description creation system | |
US10891087B2 (en) | Print system, printer and non-transitory computer-readable recording medium storing instructions therefor | |
JP2019185627A (en) | Information processing apparatus and information processing program | |
JP7351126B2 (en) | Information processing system, server device and information processing method | |
US10194038B2 (en) | Information processing apparatus, information processing method, and information processing system | |
US9990168B2 (en) | Recording medium, information processing apparatus, and information processing method | |
JP2008046821A (en) | Image forming system, information processor, and print control method and program | |
JP2015225535A (en) | Information processor, and authentication printing system using same | |
JP2014056424A (en) | Printing control device, printing control method, and printing control system | |
JP2006243840A (en) | Print information processor, print information processing method, print information processing program, and computer-readable storage medium |