[go: up one dir, main page]

JP2013168112A - Function adding program and print control system - Google Patents

Function adding program and print control system Download PDF

Info

Publication number
JP2013168112A
JP2013168112A JP2012032608A JP2012032608A JP2013168112A JP 2013168112 A JP2013168112 A JP 2013168112A JP 2012032608 A JP2012032608 A JP 2012032608A JP 2012032608 A JP2012032608 A JP 2012032608A JP 2013168112 A JP2013168112 A JP 2013168112A
Authority
JP
Japan
Prior art keywords
function
information
printer driver
printed
processing
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
Application number
JP2012032608A
Other languages
Japanese (ja)
Inventor
Koichi Iida
浩一 飯田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012032608A priority Critical patent/JP2013168112A/en
Publication of JP2013168112A publication Critical patent/JP2013168112A/en
Pending legal-status Critical Current

Links

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】 モノリシックプリンタドライバに対して、そのソースコードを書き換えて再コンパイルし、再インストールすることなく、後から機能の追加を実現することができ、かつ印刷処理にかかる時間の遅延を最小限にすることができるプログラムを提供する。
【解決手段】 このプログラムは、印刷に際して実行すべき処理以外の処理を実行させる機能をプリンタドライバに追加することを可能にするコンピュータ可読な機能追加プログラムであり、印刷対象の情報を出力する出力元からの呼び出しを受け、その出力元から印刷対象の情報を受け取るステップと、プリンタドライバを呼び出し、当該プリンタドライバへ印刷対象の情報を送信するステップと、印刷対象の情報を送信する処理とは非同期に、印刷対象の情報を使用してその機能に基づく処理を実行するステップとをコンピュータに実行させるものである。
【選択図】図4
PROBLEM TO BE SOLVED: To add a function to a monolithic printer driver later without rewriting and recompiling and re-installing the source code, and minimizing a delay in printing processing time Provide a program that can do.
This program is a computer-readable function addition program that makes it possible to add a function for executing processing other than processing to be executed at the time of printing to a printer driver, and an output source that outputs information to be printed The step of receiving the print target information from the output source, the step of calling the printer driver and transmitting the print target information to the printer driver, and the process of transmitting the print target information are asynchronous. And causing the computer to execute a process based on the function using the information to be printed.
[Selection] Figure 4

Description

本発明は、モノリシックプリンタドライバに対して内容の変更を行うことなく、後からそのプリンタドライバに機能を追加することを可能にするプログラム、およびそのプログラムを実装して機能を追加し、それを利用できるようにした印刷制御システムに関する。   The present invention provides a program that allows a function to be added to the printer driver later without changing the contents of the monolithic printer driver, and adds the function by implementing the program and uses the program. The present invention relates to a print control system that can be used.

過去機種のプリンタに対して提供されているプリンタドライバの多くは、モノリシックプリンタドライバである。モノリシックプリンタドライバは、全体が1つのモジュールで構成されたプリンタドライバである。   Many printer drivers provided for printers of the past models are monolithic printer drivers. The monolithic printer driver is a printer driver composed entirely of one module.

市場では、まだ、このような過去機種のプリンタも数多く使用されており、そのプリンタで印刷を行うためにモノリシックプリンタドライバも数多く使用されている。このモノリシックプリンタドライバに対して機能を追加する場合は、ソースコードを書き換えて再コンパイルし、再インストールすることが必要とされている。   In the market, many printers of such past models are still used, and many monolithic printer drivers are also used for printing with the printers. When adding a function to the monolithic printer driver, it is necessary to recompile and recompile the source code and reinstall it.

例えば、性能を重視するためにログを出力しないプリンタドライバに対して、障害解析を行う必要が出てきたときに、後にログを出力する機能を追加することが考えられる。従来の技術では、そのログを出力する機能を追加するためだけに、ソースコードを書き換えて再コンパイルし、再インストールしなければならない。このような方法では、追加する機能の割に手間がかかり、コスト面でも望ましいとは言えない。   For example, it is conceivable to add a function for outputting a log later when it becomes necessary to perform a failure analysis on a printer driver that does not output a log in order to place importance on performance. In the conventional technique, the source code must be rewritten and recompiled and reinstalled only in order to add a function for outputting the log. In such a method, it takes time for the function to be added, which is not desirable in terms of cost.

ところで、機能の追加を簡単に行うことができるプリンタドライバとして、プラグイン機能を備えたプリンタドライバが提案されている(例えば、特許文献1参照)。プラグイン機能とは、プリンタドライバの機能を拡張するために、再コンパイルや再インストールを行うことなく、プラグインとしてプリンタドライバに機能を追加する技術である。このプラグイン機能を備えたプリンタドライバを実装することで、プリンタドライバを変更することなく、後から機能を追加することができるようになる。   By the way, a printer driver having a plug-in function has been proposed as a printer driver capable of easily adding functions (for example, see Patent Document 1). The plug-in function is a technique for adding a function as a plug-in to the printer driver without recompilation or re-installation in order to expand the function of the printer driver. By mounting a printer driver having this plug-in function, functions can be added later without changing the printer driver.

また、オペレーティングシステムにインタフェースするデバイスドライバとして、1つ以上のドライバプラグインモジュールを検出し、検出されたドライバプラグインモジュールに対応する情報をオペレーティングシステムに提供し、その後、検出された各ドライバプラグインモジュールの機能を動的にアクセスする構成とされたデバイスドライバも提案されている(特許文献2参照)。   In addition, one or more driver plug-in modules are detected as device drivers that interface with the operating system, information corresponding to the detected driver plug-in modules is provided to the operating system, and then each detected driver plug-in is detected. A device driver configured to dynamically access module functions has also been proposed (see Patent Document 2).

このデバイスドライバを実装することにより、デバイスドライバを再設計、再コンパイルおよび再試験することなく、このデバイスドライバにより検出されたドライバプラグインモジュールの数や型に基づき動的に機能を拡張することができる。   By implementing this device driver, you can dynamically expand the functionality based on the number and type of driver plug-in modules detected by this device driver without having to redesign, recompile, and retest the device driver. it can.

しかしながら、特許文献1および2に記載されたドライバを用い、拡張した機能を使用するためには、既にモノリシックドライバが実装され、それが使用されている装置においては、その装置の機種に対応したプラグイン機能を備えたドライバを構成から作り直してインストールし直さなければならない。例えば、ログを出力する機能のみを追加したいときに、この機能を追加するためだけに、ドライバを作り直して再インストールするのでは手間がかかり、コスト面でも望ましくはない。このようなドライバの作成には、ソースコードを書き換える以上に時間、労力、コストがかかるからである。   However, in order to use the extended functions using the drivers described in Patent Documents 1 and 2, in a device in which a monolithic driver has already been mounted and used, a plug corresponding to the model of the device is used. You must re-install the driver with in-function from the configuration and reinstall it. For example, when it is desired to add only a function for outputting a log, it is troublesome to re-create and reinstall a driver just to add this function, which is not desirable in terms of cost. This is because the creation of such a driver requires more time, labor, and cost than rewriting the source code.

また、機能が追加されると、印刷に要する時間は、その追加した機能による処理時間だけ長くなる。新たに追加する機能には、モノリシックプリンタドライバが画像のみの描画機能を備える場合、文字および画像の描画機能のように、印刷に直接関係する機能もあるが、上記のログを出力する機能のように、印刷に直接関係のない機能もある。追加された機能が、印刷に直接関係のない機能である場合、印刷処理に関係なくても、その機能による処理が終了するまで、印刷処理が待たされることになる。追加する機能によっては、その処理が終了するまでに相当の時間を要するものもあり、これでは、生産性を大きく低下させることになってしまう。   When a function is added, the time required for printing becomes longer by the processing time for the added function. Newly added functions include functions that are directly related to printing, such as the character and image drawing function, if the monolithic printer driver has an image-only drawing function, such as the function that outputs the log described above. Some functions are not directly related to printing. If the added function is a function that is not directly related to printing, the print process is waited until the process by the function is completed, regardless of the print process. Depending on the function to be added, it may take a considerable amount of time until the processing is completed, and this greatly reduces productivity.

したがって、モノリシックプリンタドライバに対して、そのソースコードを書き換えて再コンパイルし、再インストールすることなく、後から機能の追加を実現することができ、かつ印刷処理にかかる時間の遅延を最小限にすることができるプログラムやシステムの提供が望まれていた。   Therefore, functions can be added later to the monolithic printer driver without rewriting and recompiling and re-installing the source code, and minimizing the delay in the printing process. It has been desired to provide programs and systems that can be used.

本発明は、上記課題に鑑み、印刷に際して実行すべき処理以外の処理を実行させる機能をプリンタドライバに追加することを可能にするコンピュータ可読なプログラムであって、このプログラムは、印刷対象の情報を出力する出力元からの呼び出しを受け、その出力元から印刷対象の情報を受け取るステップと、プリンタドライバを呼び出し、受け取った印刷対象の情報をプリンタドライバへ送信するステップと、印刷対象の情報をプリンタドライバへ送信する処理とは非同期に、受け取った印刷対象の情報を使用して当該機能に基づく処理を実行するステップとをコンピュータに実行させる、プログラムが提供される。   In view of the above problems, the present invention is a computer-readable program that enables a printer driver to add a function for executing processing other than processing to be executed at the time of printing, and this program stores information to be printed. A step of receiving a call from an output source to output, receiving information on a print target from the output source, a step of calling a printer driver, transmitting the received print target information to the printer driver, and a step of sending the print target information to the printer driver A program is provided that causes a computer to execute a step of executing a process based on the function by using received information to be printed asynchronously with a process to be transmitted to the computer.

印刷システムの全体構成図。1 is an overall configuration diagram of a printing system. 印刷制御システムのソフトウェア構成を示した図。The figure which showed the software structure of the printing control system. 各ソフトウェアのDLL名を例示した図。The figure which illustrated the DLL name of each software. ログを出力する処理の流れを示したフローチャート。The flowchart which showed the flow of the process which outputs a log. ログを出力する処理の流れを示したシーケンス図。The sequence diagram which showed the flow of the process which outputs a log. 画像データのみ描画可能なプリンタドライバに対し、図形や文字も描画可能な機能と、ログを出力することが可能な機能とをもつ機能追加プログラムを追加した場合に実行される処理の流れを示したフローチャート。Shown is the flow of processing executed when a function addition program with a function that can draw figures and characters and a function that can output logs is added to a printer driver that can draw only image data. flowchart. 描画DDIをサポートしていないプリンタドライバに対し、文字の描画が可能な機能と、ログを出力することが可能な機能とをもつ機能追加プログラムを追加した場合に実行される処理の流れを示したシーケンス図。Shown is the flow of processing executed when a function addition program having a function that can draw characters and a function that can output logs is added to a printer driver that does not support drawing DDI. Sequence Diagram. 印刷制御システムの機能ブロック図。The functional block diagram of a printing control system.

図1は、印刷を実行するための印刷システムの全体構成図である。この印刷システムは、印刷を実行する画像形成装置としてのプリンタ10と、そのプリンタ10の制御を行う印刷制御システムとしてのPC11とを含み、プリンタ10とPC11とがネットワーク12を介して接続された構成とされている。   FIG. 1 is an overall configuration diagram of a printing system for executing printing. This printing system includes a printer 10 as an image forming apparatus that executes printing, and a PC 11 as a printing control system that controls the printer 10, and the printer 10 and the PC 11 are connected via a network 12. It is said that.

図1では、プリンタ10とPC11とを1台ずつ備える構成とされているが、2台以上のプリンタおよびPCを含んでいてもよく、また、プリンタ10とPC11とがケーブルにより接続された構成であってもよい。また、複数のPCを備える場合には、プリンタを共有することができるように制御を行うプリンタサーバを設けることができる。   In FIG. 1, the printer 10 and the PC 11 are provided one by one, but two or more printers and PCs may be included, and the printer 10 and the PC 11 are connected by a cable. There may be. When a plurality of PCs are provided, a printer server that performs control so that the printer can be shared can be provided.

プリンタ10は、PC11からの印刷命令を受けて印刷を実行する。プリンタ10としては、レーザプリンタやインクジェットプリンタを採用することができ、印刷機能のほか、スキャナ機能やFAX機能等の複数の機能を備えるMFP(Multi Function Peripheral)を採用することも可能である。プリンタ10は、印刷命令に基づき、印刷を実行するエンジンと、そのエンジンを制御するコントローラと、ネットワーク12に接続するためのネットワークI/Fとを含んで構成される。   The printer 10 receives a print command from the PC 11 and executes printing. As the printer 10, a laser printer or an ink jet printer can be adopted. In addition to a printing function, an MFP (Multi Function Peripheral) having a plurality of functions such as a scanner function and a FAX function can also be adopted. The printer 10 includes an engine that executes printing based on a print command, a controller that controls the engine, and a network I / F that is connected to the network 12.

PC11は、印刷すべき文書等を作成するためのアプリケーションと、作成した文書等のファイルをプリンタ10が解釈可能な印刷命令へ変換するプリンタドライバと、アプリケーションにより作成した文書等のファイルをプリンタドライバへ送る処理を含む、PC11全体の制御を行うOSと、その他のソフトウェアおよびデータを記憶するための記憶装置と、アプリケーション、プリンタドライバ、OSおよびその他のソフトウェアを実行するCPUと、ネットワーク12に接続するためのネットワークI/Fと、作成した文書等を表示するための表示装置と、文字等の入力を行うキーボードや表示装置の画面上に表示されたアイコン等を選択するマウスといった入力装置とを含んで構成される。   The PC 11 has an application for creating a document to be printed, a printer driver for converting the created document file into a print command that can be interpreted by the printer 10, and a file such as a document created by the application to the printer driver. To connect to the network 12, an OS that controls the entire PC 11, including a sending process, a storage device that stores other software and data, a CPU that executes an application, a printer driver, the OS, and other software Network I / F, a display device for displaying a created document, and a keyboard for inputting characters and an input device such as a mouse for selecting an icon displayed on the screen of the display device. Composed.

ここで、PC11に実装されるプリンタドライバは、プラグイン機能を備えておらず、そのソースコードを書き換えて再コンパイルし、再インストールしなければ、新たな機能の追加を行うことができない、過去機種で採用されていたモノリシックプリンタドライバである。以下、モノリシックプリンタドライバとして、Windows(登録商標)のプリントアーキテクチャを用いたモノリシックプリンタドライバを実装するものとして詳細に説明する。   Here, the printer driver mounted on the PC 11 does not have a plug-in function, and a new model cannot be added unless the source code is rewritten and recompiled and reinstalled. It is a monolithic printer driver used in Hereinafter, the monolithic printer driver will be described in detail as a monolithic printer driver using a Windows (registered trademark) print architecture.

図2は、印刷制御システムとしてのPC11のソフトウェア構成を示した図である。PC11は、上述したアプリケーション20と、OS21と、プリンタドライバ22と、プリンタ10との間の通信を実現するための通信モジュール23とを含む。さらに、PC11は、追加の機能を実現するための機能追加プログラムとして、非同期モジュール24と、OS21およびプリンタドライバ22と非同期モジュール24との間のやりとりを実現するための中間モジュール25とを含んで構成される。なお、機能追加プログラムは、機能を追加するために、後から追加されるプログラムであり、アプリケーション20およびOS21は、印刷対象の情報を、機能追加プログラムに対して出力する出力元として機能する。   FIG. 2 is a diagram illustrating a software configuration of the PC 11 as the print control system. The PC 11 includes the above-described application 20, OS 21, printer driver 22, and communication module 23 for realizing communication between the printer 10. Further, the PC 11 includes an asynchronous module 24 and an intermediate module 25 for realizing exchange between the OS 21 and the printer driver 22 and the asynchronous module 24 as a function addition program for realizing an additional function. Is done. The function addition program is a program that is added later to add a function, and the application 20 and the OS 21 function as an output source that outputs information to be printed to the function addition program.

いずれのソフトウェアも、記憶装置に記憶されており、CPUによりその記憶装置から読み出されて実行される。そして、その実行により各処理を行うが、説明を容易にするために、各ソフトウェアが各処理を実行するものとして以下に説明する。   Any software is stored in the storage device, and is read from the storage device and executed by the CPU. Then, each process is performed by the execution, but in order to facilitate the explanation, it will be described below that each software executes each process.

アプリケーション20は、文書ファイル等を生成するために使用される。ユーザは、アプリケーション20を使用して印刷対象の情報を生成し、出力することができるが、アプリケーション20が出力した印刷対象の情報は、OS21を介してプリンタドライバ22へ送られることから、OS21に渡される。   The application 20 is used for generating a document file or the like. The user can generate and output information to be printed using the application 20, but the information to be printed output by the application 20 is sent to the printer driver 22 via the OS 21. Passed.

印刷対象の情報には、文字、図形、画像等のデータのほか、印刷設定情報として、フォント、モノクロ/カラー、印刷枚数、集約印刷の有無、両面印刷の有無、用紙サイズ、給紙向き、印刷範囲、拡大/縮小等の情報が含まれる。   In addition to data such as characters, graphics, and images, the print target information includes font, monochrome / color, number of copies, presence / absence of aggregate printing, presence / absence of double-sided printing, paper size, paper feed direction, printing Information such as range and enlargement / reduction is included.

本発明では、OS21は、その印刷対象の情報をプリンタドライバ22へ送るのではなく、まず中間モジュール25へ送り、中間モジュール25が、追加の機能を有する場合には、印刷対象の情報に対して何らかの処理を行った後、その処理の実行結果を含む印刷対象の情報をプリンタドライバ22へ送り、追加の機能を有しない場合には、何も処理することなく、印刷対象の情報をプリンタドライバ22へ送る。プリンタドライバ22は、受け取った印刷対象の情報をプリンタ10が解釈可能な印刷命令へ変換し、その印刷命令を、通信モジュール23を介してプリンタ10へ送信する。   In the present invention, the OS 21 does not send the information to be printed to the printer driver 22, but first sends it to the intermediate module 25, and if the intermediate module 25 has an additional function, After performing some processing, the information to be printed including the execution result of the processing is sent to the printer driver 22, and when there is no additional function, the information to be printed is processed without any processing. Send to. The printer driver 22 converts the received information to be printed into a print command that can be interpreted by the printer 10, and transmits the print command to the printer 10 via the communication module 23.

また、中間モジュール25は、上記の何らかの処理を行い、あるいは何もすることなく、印刷対象の情報をプリンタドライバ22へ送る処理を実行する際、機能として追加された通信、検索、ログの保存等の、印刷に際して実行すべき処理以外の処理を非同期モジュール24に委託する。   Further, the intermediate module 25 performs the above-described processing or performs processing to send information to be printed to the printer driver 22 without performing anything, and communication, search, log storage, etc. added as functions are performed. The processing other than the processing to be executed at the time of printing is outsourced to the asynchronous module 24.

非同期モジュール24は、中間モジュール25が印刷に際して実行すべき処理を行っている間(例えば、追加の機能により描画を行っている間)に、それとは非同期に、その委託された処理を実行する。すなわち、中間モジュール25は、印刷処理に直接必要とされる処理を実行し、その間に、非同期モジュール24が、印刷処理に直接必要とされない処理を実行する。このように並列に処理を行うことで、機能追加に伴う印刷処理の遅延を最小限に留めることができる。   The asynchronous module 24 executes the entrusted process asynchronously with the intermediate module 25 while performing the process to be executed at the time of printing (for example, while performing drawing with an additional function). That is, the intermediate module 25 executes a process that is directly required for the printing process, while the asynchronous module 24 executes a process that is not directly required for the printing process. By performing the processes in parallel in this way, it is possible to minimize the delay in the printing process that accompanies the function addition.

アプリケーション20は、OS21へ印刷対象の情報を送って描画処理を実行させるために、OS21が有するGDI(Graphic Driver Interface)関数を呼び出す。なお、関数は、引数と呼ばれるデータを受け取り、定義された通りに処理を実行し、その実行結果を返す一群の命令である。OS21は、GDI関数の呼び出しに応答して、アプリケーション20から印刷対象の情報を受け取る。   The application 20 calls a GDI (Graphic Driver Interface) function of the OS 21 in order to send information to be printed to the OS 21 and execute a drawing process. A function is a group of instructions that receive data called an argument, execute processing as defined, and return the execution result. The OS 21 receives information to be printed from the application 20 in response to the GDI function call.

OS21は、図3に示すように、描画処理を実行させ、印刷命令へ変換させるために、DDI(Device Driver Interface)関数を呼び出す。OS21によって呼び出されるDDI関数は、中間モジュール25がエクスポートしている。このため、OS21は、中間モジュール25がもつDDI関数を呼び出すことになる。   As shown in FIG. 3, the OS 21 executes a drawing process and calls a DDI (Device Driver Interface) function to convert it into a print command. The DDI function called by the OS 21 is exported by the intermediate module 25. Therefore, the OS 21 calls the DDI function that the intermediate module 25 has.

なお、OS21がDDI関数を呼び出す際、中間モジュール25を意識することはない。これは、中間モジュール25にWindows(登録商標)のプリンタアーキテクチャで定められたDDI関数がエクスポートされており、OS21がそのDDI関数を呼び出すことしか意識していないため、そのDDI関数がどのモジュールに存在するかを意識することはないからである。   Note that the OS 21 is not aware of the intermediate module 25 when calling the DDI function. This is because the DDI function defined in the printer architecture of Windows (registered trademark) is exported to the intermediate module 25, and the OS 21 is only aware of calling the DDI function, so in which module the DDI function exists. This is because there is no awareness of what to do.

このようなDDI関数は、プリンタドライバ22にも同様にエクスポートされている。このため、中間モジュール25は、プリンタドライバ22がもつDDI関数を呼び出す際、そのDDI関数がプリンタドライバ22に存在することを意識することなく呼び出すことができる。   Such a DDI function is also exported to the printer driver 22 in the same manner. Therefore, the intermediate module 25 can call the DDI function of the printer driver 22 without being aware that the DDI function exists in the printer driver 22.

中間モジュール25は、図2に示すようにOS21とプリンタドライバ22との間に配置され、OS21からのDDI関数の呼び出しを受け、OS21から印刷対象の情報を受け取る。また、中間モジュール25は、プリンタドライバ22によりその後の処理を実行させるために、プリンタドライバ22がエクスポートするDDI関数を呼び出す。   As shown in FIG. 2, the intermediate module 25 is arranged between the OS 21 and the printer driver 22, receives a DDI function call from the OS 21, and receives information to be printed from the OS 21. Further, the intermediate module 25 calls a DDI function exported by the printer driver 22 in order to cause the printer driver 22 to execute subsequent processing.

中間モジュール25は、印刷対象の情報に対して何らかの処理を実行したり、その印刷対象の情報をプリンタドライバ22へ送信する処理を実行するほか、プリンタドライバ22に対してプリンタ10の機能についての問い合わせを行い、プリンタドライバ22から返されるプリンタドライバ22がもつ機能に関する情報に対して、処理を行うことも可能である。この処理の例については後述する。   The intermediate module 25 performs some processing on the information to be printed, performs processing to send the information to be printed to the printer driver 22, and inquires the printer driver 22 about the function of the printer 10. It is also possible to perform processing on information relating to the function of the printer driver 22 returned from the printer driver 22. An example of this processing will be described later.

ここで、図2に示すようなソフトウェア構成を実現するための一例として、以下の方法を採用することができる。機能追加プログラムが追加されるまでは、OS21は、プリンタドライバ22のDDI関数を呼び出し、印刷対象の情報を処理させる。プリンタドライバ22は、図3(a)に示すように、OS21が呼び出すDDI関数に対応したDLL(Dynamic Link Library)を有している。このDLLは、OS21から渡される印刷対象の情報をプリンタ10が解釈可能な印刷命令へ変換するものである。   Here, the following method can be adopted as an example for realizing the software configuration as shown in FIG. Until the function addition program is added, the OS 21 calls the DDI function of the printer driver 22 to process information to be printed. As shown in FIG. 3A, the printer driver 22 has a DLL (Dynamic Link Library) corresponding to the DDI function that the OS 21 calls. This DLL converts information to be printed passed from the OS 21 into a print command that can be interpreted by the printer 10.

図3(a)では、DLLを識別するためのDLL名として「driver.dll」という名前が付されている。OS21は、このDLL名を使用して、このDLLのDDI関数を呼び出している。   In FIG. 3A, the name “driver.dll” is assigned as the DLL name for identifying the DLL. The OS 21 uses this DLL name to call the DDI function of this DLL.

そこで、DDI関数をエクスポートする中間モジュール25のDLLを作成する際、そのDLLのDLL名を、プリンタドライバ22のDLL名と同一のものとし、他の名前のDLL名のDDI関数を呼び出す構成として作成する。そして、プリンタドライバ22のDLL名を、当該他の名前のDLL名へ変更する。   Therefore, when creating the DLL of the intermediate module 25 that exports the DDI function, the DLL name of the DLL is made the same as the DLL name of the printer driver 22, and the DDI function with the DLL name of another name is called. To do. Then, the DLL name of the printer driver 22 is changed to the DLL name of the other name.

具体的には、図3(b)に示すようなものとされる。すなわち、中間モジュール25のDLL名を、元々プリンタドライバ22に付されていた「driver.dll」という名前とし、プリンタドライバ22のDLL名を、「driver.dll」からそれとは別の「originaldriver.dll」という名前に変更する。図3(b)では、非同期モジュール24にもDLL名「asynchronous.dll」が付されており、このDLL名は、中間モジュール25が非同期モジュール24を呼び出す際に使用される。   Specifically, it is as shown in FIG. That is, the DLL name of the intermediate module 25 is named “driver.dll” originally assigned to the printer driver 22, and the DLL name of the printer driver 22 is changed from “driver.dll” to another “originaldriver.dll”. To the name. In FIG. 3B, the DLL name “asynchronous.dll” is also given to the asynchronous module 24, and this DLL name is used when the intermediate module 25 calls the asynchronous module 24.

このようにすることで、OS21は、OS21が知っているプリンタドライバ22に元々付与されていたDLL名を使用して、中間モジュール25を呼び出し、印刷対象の情報を送ることができる。中間モジュール25は、その印刷対象の情報を受け取り、追加の機能を有する場合には何らの処理を行った後、プリンタドライバ22に新たに付与されたDLL名を使用して、プリンタドライバ22を呼び出し、その後の処理を実行させることができる。   In this way, the OS 21 can call the intermediate module 25 using the DLL name originally assigned to the printer driver 22 known to the OS 21 and send information to be printed. The intermediate module 25 receives the information to be printed, performs any processing when it has an additional function, and then calls the printer driver 22 using the DLL name newly given to the printer driver 22. Subsequent processing can be executed.

上記の例は一例であり、その他の方法として、OS21が提供するフックを利用し、フック処理として、中間モジュール25を実行させ、追加の機能を有する場合には何らかの処理を行わせることも可能である。   The above example is merely an example. As another method, it is possible to use a hook provided by the OS 21 and execute the intermediate module 25 as a hook process, and to perform some process when it has an additional function. is there.

このように中間モジュール25と非同期モジュール24を追加し、プリンタドライバ22のDLL名を変更するのみで、プリンタドライバ22の内容を一切変更することなく機能の追加を行うことができる。また、印刷に際して実行すべき処理以外の処理については、印刷に直接関係がなく非同期に行うことができるので、上述したように、機能の追加に伴う印刷処理時間の遅延を最小限に留めることができる。   Thus, by adding the intermediate module 25 and the asynchronous module 24 and changing only the DLL name of the printer driver 22, functions can be added without changing the contents of the printer driver 22 at all. Further, since processing other than the processing to be executed at the time of printing is not directly related to printing and can be performed asynchronously, as described above, the delay of the printing processing time due to the addition of the function can be minimized. it can.

アプリケーション20、OS21、プリンタドライバ22、非同期モジュール24、中間モジュール25によって行われる処理の一例として、ログを出力する処理の流れを、図4に示すフローチャートを参照して説明する。この処理は、ステップ400から開始し、ステップ405で、アプリケーション20が印刷を開始させる。ステップ410で、アプリケーション20がOS21を呼び出し、OS21へ印刷対象の情報を送る。   As an example of processing performed by the application 20, the OS 21, the printer driver 22, the asynchronous module 24, and the intermediate module 25, the flow of processing for outputting a log will be described with reference to the flowchart shown in FIG. This process starts from step 400, and in step 405, the application 20 starts printing. In step 410, the application 20 calls the OS 21 and sends information to be printed to the OS 21.

OS21は、ステップ415で、中間モジュール25を呼び出し、中間モジュール25へその印刷対象の情報を送る。ステップ420では、中間モジュール25が非同期モジュール24を呼び出し、非同期モジュール24へ印刷対象の情報を送る。ステップ425では、中間モジュール25が追加の機能を有していないので、中間モジュール25は何も処理を行うことなく、プリンタドライバ22を呼び出し、プリンタドライバ22へその印刷対象の情報を送る。   In step 415, the OS 21 calls the intermediate module 25 and sends information to be printed to the intermediate module 25. In step 420, the intermediate module 25 calls the asynchronous module 24 and sends information to be printed to the asynchronous module 24. In step 425, since the intermediate module 25 has no additional function, the intermediate module 25 calls the printer driver 22 without performing any processing, and sends information to be printed to the printer driver 22.

ステップ430では、非同期モジュール24が、中間モジュール25が印刷対象の情報をプリンタドライバ22へ送る処理とは非同期に、ログを出力する処理を実行する。非同期モジュール24は、印刷対象の情報として画像データ等をログとして出力し、それをメモリ等の記憶装置に保存させる。これにより、後にこのログを使用して障害解析を行うことが可能となる。   In step 430, the asynchronous module 24 executes a process of outputting a log asynchronously with the process in which the intermediate module 25 sends the information to be printed to the printer driver 22. The asynchronous module 24 outputs image data or the like as information to be printed as a log, and stores it in a storage device such as a memory. This makes it possible to perform failure analysis later using this log.

ステップ435では、プリンタドライバ22が、受け取った印刷対象の情報をプリンタ10が解釈可能な印刷命令へ変換し、プリンタ10へ送信する。この送信が終了し、ログを出力する処理が終了したところで、ステップ440へ進み、この処理を終了する。   In step 435, the printer driver 22 converts the received information to be printed into a print command that can be interpreted by the printer 10, and transmits the print command to the printer 10. When this transmission is finished and the process of outputting the log is finished, the process proceeds to step 440 and this process is finished.

図5に示すシーケンス図を参照して、ログを出力する処理の具体的な例について説明すると、OS21は、DLL名を使用して中間モジュール25がもつDDI関数を呼び出す。中間モジュール25は、OS21から印刷対象の情報を受け取り、DDI関数の引数の情報を非同期モジュール24へ送る。このとき、引数の情報として、その情報のアドレスのみが渡される。   A specific example of processing for outputting a log will be described with reference to the sequence diagram shown in FIG. 5. The OS 21 calls a DDI function of the intermediate module 25 using a DLL name. The intermediate module 25 receives information to be printed from the OS 21, and sends information on arguments of the DDI function to the asynchronous module 24. At this time, only the address of the information is passed as argument information.

非同期モジュール24は、中間モジュール25から受け取ったそのアドレスを参照し、引数の情報をログとして出力する。その後、中間モジュール25は、プリンタドライバ22のDLL名からプリンタドライバ22がもつDDI関数のアドレスを取得する。中間モジュール25は、取得したアドレスを使用してプリンタドライバ22がもつDDI関数を呼び出す。   The asynchronous module 24 refers to the address received from the intermediate module 25 and outputs the argument information as a log. Thereafter, the intermediate module 25 acquires the address of the DDI function that the printer driver 22 has from the DLL name of the printer driver 22. The intermediate module 25 calls the DDI function of the printer driver 22 using the acquired address.

なお、プリンタドライバ22は、受け取った印刷対象の情報を印刷命令に変換してプリンタ10へ送信し、プリンタ10から印刷出力が終了した旨の通知を受ける。また、プリンタドライバ22は、プリンタ10において何らかのエラーが発生した場合も通知を受けることができる。エラーとしては、紙づまりやトナー切れ等が挙げられる。プリンタドライバ22は、その通知を中間モジュール25へ返し、中間モジュール25がOS21へ返す。OS21は、その通知を受けて、印刷が終了した旨を表示装置の画面上に表示する。   The printer driver 22 converts the received information to be printed into a print command and transmits it to the printer 10, and receives a notification from the printer 10 that the print output has been completed. In addition, the printer driver 22 can be notified when any error occurs in the printer 10. Examples of the error include a paper jam and out of toner. The printer driver 22 returns the notification to the intermediate module 25, and the intermediate module 25 returns to the OS 21. In response to the notification, the OS 21 displays on the screen of the display device that printing has ended.

画像データをログとして保存する場合、文字や図形のデータに比較してデータサイズが大きいため、多くの時間を要することになる。しかしながら、中間モジュール25が行う処理とは非同期に、非同期モジュール24がこのログを出力する処理を実行するので、中間モジュール25がプリンタドライバ22のDDI関数を呼び出すまでの遅延を小さくすることができ、効率的に印刷処理を実行することができる。   When image data is stored as a log, it takes a lot of time because the data size is large compared to character or graphic data. However, since the asynchronous module 24 executes the process of outputting this log asynchronously with the process performed by the intermediate module 25, the delay until the intermediate module 25 calls the DDI function of the printer driver 22 can be reduced. The printing process can be executed efficiently.

別の処理例として、画像データのみ描画可能なプリンタドライバに対し、機能追加プログラムがログの出力を可能とする機能を有し、画像に加えて図形や文字も描画可能とする機能を有する場合に実行される処理の流れを、図6に示すフローチャートを参照して説明する。この処理は、ステップ600から開始し、ステップ605で、アプリケーション20が印刷を開始させる。ステップ610で、アプリケーション20がOS21を呼び出し、OS21へ印刷対象の情報を送る。   As another example of processing, when a printer driver that can only draw image data has a function that allows the function addition program to output a log and to draw graphics and characters in addition to images The flow of processing to be executed will be described with reference to the flowchart shown in FIG. This process starts from step 600, and in step 605, the application 20 starts printing. In step 610, the application 20 calls the OS 21 and sends information to be printed to the OS 21.

ステップ615では、OS21は、印刷対象の情報を中間モジュール25に送る前に、利用可能な機能についての問い合わせを行う。その問い合わせを受けて、中間モジュール25は、ステップ620で、その機能についてプリンタドライバ22に問い合わせる。   In step 615, the OS 21 inquires about available functions before sending information to be printed to the intermediate module 25. In response to the inquiry, in step 620, the intermediate module 25 inquires of the printer driver 22 about the function.

プリンタドライバ22は、ステップ625で、その機能として、画像のみが描画可能であるので、その旨を機能に関する情報として中間モジュール25へ返す。中間モジュール25は、ステップ630で、自己が文字と図形と画像とを描画する機能を有するので、プリンタドライバ22から受け取った機能に関する情報に代えて、文字と図形と画像とを描画することが可能である旨を機能に関する情報としてOS21へ返す。   In step 625, the printer driver 22 can only draw an image as its function, and returns that information to the intermediate module 25 as information regarding the function. Since the intermediate module 25 has a function of drawing characters, graphics, and images in step 630, the intermediate module 25 can draw characters, graphics, and images instead of the information about the functions received from the printer driver 22. Is returned to the OS 21 as information about the function.

これを受けて、ステップ635で、OS21は、文字データと図形データと画像データを印刷対象の情報として中間モジュール25へ送る。ステップ640で、中間モジュール25は、受け取ったこれらのデータを非同期モジュール24へ送り、ステップ645で、プリンタドライバ22の代わりに、それらのデータを使用して文字、図形、画像の描画を行う。   In response to this, in step 635, the OS 21 sends character data, graphic data, and image data to the intermediate module 25 as information to be printed. In step 640, the intermediate module 25 sends the received data to the asynchronous module 24, and in step 645, characters, graphics, and images are drawn using these data instead of the printer driver 22.

その一方で、非同期モジュール24は、ステップ650で、中間モジュール25が行う描画とは非同期に、ログを出力する処理を実行する。中間モジュール25は、描画が終了すると、その結果をOS21へ返し、ステップ655で、OS21が中間モジュール25へその結果を含む印刷対象の情報を送る。このときの印刷対象の情報は、描画結果および印刷設定情報である。   On the other hand, in step 650, the asynchronous module 24 executes a process of outputting a log asynchronously with the drawing performed by the intermediate module 25. When the drawing is finished, the intermediate module 25 returns the result to the OS 21, and the OS 21 sends information to be printed including the result to the intermediate module 25 in step 655. The information to be printed at this time is a drawing result and print setting information.

中間モジュール25は、ステップ660で、その印刷対象の情報をプリンタドライバ22へ送り、ステップ665で、プリンタドライバ22が、受け取った印刷対象の情報をプリンタ10が解釈可能な印刷命令へ変換し、プリンタ10へ送信する。この送信が終了し、ログを出力する処理が終了したところで、ステップ670へ進み、この処理を終了する。   In step 660, the intermediate module 25 sends the information to be printed to the printer driver 22. In step 665, the printer driver 22 converts the received information to be printed into a print command that can be interpreted by the printer 10. 10 to send. When this transmission is finished and the process of outputting the log is finished, the process proceeds to step 670 and the process is finished.

ここでは、中間モジュール25が、文字と図形と画像とを描画する機能をもつものとされているが、追加する機能はこれに限定されるものではなく、例えば、文字の色を赤に変更して描画する機能や、印刷設定の部数を、例えば1部から2部へ変更し、その情報をプリンタドライバ22へ送り、変更された部数で印刷させる機能等を追加することも可能である。   Here, the intermediate module 25 is assumed to have a function of drawing characters, graphics, and images, but the function to be added is not limited to this. For example, the character color is changed to red. For example, it is possible to add a function for drawing and changing the number of print settings from one to two, for example, sending the information to the printer driver 22 and printing with the changed number of copies.

なお、追加する機能が、描画機能である場合は、OS21は、文字データ、図形データ、画像データのみを中間モジュール25へ送り、中間モジュール25から描画結果を受け取り、その描画結果と印刷設定情報とを印刷対象の情報として中間モジュール25を介してプリンタドライバ22へ送ることができる。また、印刷設定を変更する機能である場合は、OS21は、印刷設定情報のみを中間モジュール25へ送り、中間モジュール25から変更された印刷設定情報を受け取り、その印刷設定情報と画像データ等とを印刷対象の情報として中間モジュール25を介してプリンタドライバ22へ送ることができる。このようにして、様々な機能の追加を実現することができる。   When the function to be added is a drawing function, the OS 21 sends only character data, graphic data, and image data to the intermediate module 25, receives a drawing result from the intermediate module 25, and displays the drawing result, print setting information, and the like. Can be sent to the printer driver 22 via the intermediate module 25 as information to be printed. In the case of a function for changing the print setting, the OS 21 sends only the print setting information to the intermediate module 25, receives the changed print setting information from the intermediate module 25, and displays the print setting information, image data, and the like. Information to be printed can be sent to the printer driver 22 via the intermediate module 25. In this way, various functions can be added.

上記の例では、プリンタドライバ22から取得した機能に関する情報に代えて、中間モジュール25がもつ機能に関する情報をOS21に返しているが、両方の機能に関する情報を返し、一方をユーザが選択することができるようにされていてもよい。この場合、中間モジュール25は、両方の情報をOS21へ返し、OS21は、表示装置の画面上にその両方の情報を表示させ、ユーザの選択を受け付けることができる。これにより、追加した機能だけではなく、プリンタドライバ22の機能も選択して利用することが可能となる。   In the above example, information related to the function of the intermediate module 25 is returned to the OS 21 instead of information related to the function acquired from the printer driver 22, but information related to both functions may be returned, and the user may select one of them. It may be made possible. In this case, the intermediate module 25 returns both pieces of information to the OS 21, and the OS 21 can display both pieces of information on the screen of the display device and accept the user's selection. As a result, not only the added function but also the function of the printer driver 22 can be selected and used.

図7に示すシーケンス図を参照して、描画DDIをサポートしていないプリンタドライバに対してサポートできる描画DDIを増やし、また、ログを出力する機能を、機能追加プログラムの実装により追加した場合に行われる処理について説明する。OS21は、中間モジュール25に対して、利用可能な機能についての問い合わせを行い、それを受けた中間モジュール25は、プリンタドライバ22に、プリンタドライバ22がもつ機能について問い合わせる。   Referring to the sequence diagram shown in FIG. 7, the number of drawing DDIs that can be supported by a printer driver that does not support drawing DDI is increased, and a function for outputting a log is added when a function addition program is implemented. Will be described. The OS 21 inquires about the available functions to the intermediate module 25, and the intermediate module 25 that receives the inquiry inquires the printer driver 22 about the functions of the printer driver 22.

プリンタドライバ22は、描画DDI関数をもっていないので、その旨を中間モジュール25に返答する。中間モジュール25は、自己が文字を描画するDDI関数をもっていることから、文字を描画することが可能である旨を、OS21へ返答する。OS21は、これを受けて、あたかもプリンタドライバ22が文字を描画するDDI関数をサポートしているものと捉える。   Since the printer driver 22 does not have a drawing DDI function, the printer driver 22 returns a message to that effect to the intermediate module 25. The intermediate module 25 replies to the OS 21 that the character can be drawn because it has a DDI function for drawing the character. In response to this, the OS 21 assumes that the printer driver 22 supports a DDI function for drawing characters.

そのため、OS21は、中間モジュール25がもつ文字描画のDDI関数を呼び出す。これを受けて、中間モジュール25は、非同期モジュール24にログの出力を依頼し、また、プリンタドライバ22の代わりに文字を描画し、その結果をOS21へ返す。OS21は、その結果を含む印刷対象の情報を中間モジュール25へ送り、中間モジュール25がそれをプリンタドライバ22へ送り、その後の処理を実行させる。   Therefore, the OS 21 calls a character drawing DDI function of the intermediate module 25. In response to this, the intermediate module 25 requests the asynchronous module 24 to output a log, draws characters instead of the printer driver 22, and returns the result to the OS 21. The OS 21 sends information to be printed including the result to the intermediate module 25, and the intermediate module 25 sends it to the printer driver 22 to execute the subsequent processing.

なお、プリンタドライバ22は、受け取った印刷対象の情報を印刷命令に変換してプリンタ10へ送信し、プリンタ10から印刷出力が終了した旨の通知を受ける。また、プリンタドライバ22は、プリンタ10において何らかのエラーが発生した場合も通知を受ける。プリンタドライバ22は、その通知を中間モジュール25へ返し、中間モジュール25がOS21へ返す。OS21は、その通知を受けて、印刷が終了した旨を表示装置の画面上に表示する。   The printer driver 22 converts the received information to be printed into a print command and transmits it to the printer 10, and receives a notification from the printer 10 that the print output has been completed. The printer driver 22 is also notified when any error occurs in the printer 10. The printer driver 22 returns the notification to the intermediate module 25, and the intermediate module 25 returns to the OS 21. In response to the notification, the OS 21 displays on the screen of the display device that printing has ended.

ここでは、文字のみを描画する機能、文字と図形と画像とを描画する機能について説明したが、プリンタドライバ22が描画DDIをサポートしていない場合は、図形のみを描画する機能や画像のみを描画する機能を追加してもよく、文字と図形、文字と画像、図形と画像、文字と図形と画像を描画する機能を追加してもよいものである。また、プリンタドライバ22が画像のみを描画する機能を有する場合、中間モジュール25は、文字と画像、図形と画像、文字と図形と画像を描画する機能を備え、これらの機能を追加することも可能である。   Here, the function of drawing only characters and the function of drawing characters, graphics, and images have been described. However, when the printer driver 22 does not support drawing DDI, only the function of drawing graphics or drawing only images. It is also possible to add a function to draw characters and graphics, characters and images, graphics and images, and characters, graphics and images. Further, when the printer driver 22 has a function of drawing only an image, the intermediate module 25 has a function of drawing characters and images, graphics and images, characters, graphics and images, and these functions can be added. It is.

また、非同期モジュール24が行う印刷に際して実行すべき処理以外の処理として、上記ではログを出力する処理を1つの例として説明してきたが、上述したように、外部と通信する処理や、文字列を検索する処理等であってもよい。   In addition, as an example of processing other than the processing to be executed at the time of printing performed by the asynchronous module 24, the processing for outputting a log has been described as an example. However, as described above, processing for communicating with the outside, It may be a search process or the like.

外部と通信する処理としては、例えば、印刷対象の情報を、ネットワークを介してサーバ装置等へ送信する処理等が挙げられる。また、文字列を検索する処理としては、PostScript(登録商標)により記述されたファイルに含まれる特定のコマンド文字列を検索する処理等が挙げられる。これらはあくまで例であり、これら以外の処理であってもよいものである。   Examples of the process for communicating with the outside include a process for transmitting information to be printed to a server device or the like via a network. The process for searching for a character string includes a process for searching for a specific command character string included in a file described by PostScript (registered trademark). These are merely examples, and processing other than these may be used.

なお、これらの処理は、図4に示したステップ430および図6に示したステップ650において実行することができる。また、非同期に行うこれらの処理は、ログを出力する処理の1つに限定されるものではなく、ログを出力する処理、外部と通信する処理、文字列を検索する処理のうちの2つあるいは全部を組み合わせたものであってもよい。   These processes can be executed in step 430 shown in FIG. 4 and step 650 shown in FIG. In addition, these processes performed asynchronously are not limited to one of the processes for outputting the log, but two of the process for outputting the log, the process of communicating with the outside, and the process of searching for the character string or It may be a combination of all.

本発明では、上記の中間モジュール25および非同期モジュール24からなる機能追加プログラムを提供することができるが、このプログラムは、フレキシブルディスク、CD−ROM、DVD、SDカード、USBメモリ等の記録媒体に格納して提供することができる。また、このプログラムは、ネットワークに接続されたサーバ装置に格納しておき、ダウンロード要求に応答して、サーバ装置が提供することも可能である。   In the present invention, a function addition program including the intermediate module 25 and the asynchronous module 24 can be provided. This program is stored in a recording medium such as a flexible disk, a CD-ROM, a DVD, an SD card, or a USB memory. Can be provided. In addition, this program can be stored in a server device connected to a network and provided by the server device in response to a download request.

また、上記のプログラムに限らず、このプログラムが実装されたPC11等の印刷制御システムも提供可能である。さらには、この印刷制御システムと、プリンタ10といった画像形成装置とを含む印刷システムも提供することができるものである。   In addition to the above program, a print control system such as the PC 11 in which this program is installed can be provided. Furthermore, a printing system including the printing control system and an image forming apparatus such as the printer 10 can be provided.

ここで、機能追加プログラムが実装された印刷制御システムの機能ブロック図を、図8に示し、これを参照して、システム構成について説明する。なお、このシステムが行う処理については、上記で説明したので、ここでは省略する。システムは、図2に示すようなアプリケーション20、OS21、プリンタドライバ22、通信モジュール23、中間モジュール25、非同期モジュール24を実装するが、これらがCPUにより実行され、各機能部として機能する。このため、システムは、各機能部を備えるものとなる。   Here, a functional block diagram of a print control system in which the function addition program is installed is shown in FIG. 8, and the system configuration will be described with reference to FIG. Note that the processing performed by this system has been described above, and is omitted here. The system includes an application 20, an OS 21, a printer driver 22, a communication module 23, an intermediate module 25, and an asynchronous module 24 as illustrated in FIG. 2, which are executed by the CPU and function as each functional unit. For this reason, a system is provided with each function part.

印刷制御システムは、各機能部として、各ソフトウェアに対応して、アプリケーション実行部30と、制御部31と、印刷制御部32と、通信部33と、中間処理部35と、非同期処理部34とを備える。中間処理部35は、制御部31から印刷対象の情報を受け取り、非同期処理部34へその印刷対象の情報を送る第1処理部36と、印刷対象の情報をプリンタドライバ22へ送る第2処理部37とを含む。追加する機能が、印刷に際して実行すべき処理以外の処理のみである場合には、このような構成により、追加の機能を実施することができる。   The print control system corresponds to each software as the function unit, and includes an application execution unit 30, a control unit 31, a print control unit 32, a communication unit 33, an intermediate processing unit 35, and an asynchronous processing unit 34. Is provided. The intermediate processing unit 35 receives the information to be printed from the control unit 31 and sends the information to be printed to the asynchronous processing unit 34. The second processing unit sends the information to be printed to the printer driver 22. 37. When the function to be added is only a process other than the process to be executed at the time of printing, the additional function can be implemented with such a configuration.

しかしながら、プリンタドライバ22がサポートしない、印刷に際して実行すべき処理として文字と図形と画像とを描画する処理等を実行する場合、印刷制御システムは、この処理を実行するための第3処理部をさらに備えるものとされる。   However, when executing processing such as drawing of characters, graphics, and images that is not supported by the printer driver 22 and should be executed at the time of printing, the print control system further includes a third processing unit for executing this processing. It is supposed to be prepared.

第1処理部36は、印刷対象の情報を出力する出力元となるアプリケーション実行部30および制御部31のうち、制御部31から機能についての問い合わせを受け付け、機能に関する情報を返すことができ、第3処理部が実行した結果も返すことができる。第2処理部37は、第1処理部36が受け付けた問い合わせに対し、プリンタドライバ22に機能についての問い合わせを行い、プリンタドライバ22から機能に関する情報を取得することができる。   The first processing unit 36 can receive an inquiry about a function from the control unit 31 among the application execution unit 30 and the control unit 31 that are output sources that output information to be printed, and can return information about the function. The results executed by the three processing units can also be returned. The second processing unit 37 can inquire about the function to the printer driver 22 in response to the inquiry received by the first processing unit 36, and can acquire information on the function from the printer driver 22.

これまで本発明の機能追加プログラムおよび印刷制御システムについて図面に示した実施形態を参照しながら詳細に説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態や、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、ここではプリンタドライバに機能を追加するためのプログラムとして説明してきたが、他のデバイスドライバに対しても、機能を追加するために、この機能追加プログラムを提供することが可能である。そして、このプログラムを実装したデバイス制御システムも提供することができるものである。   The function addition program and the print control system of the present invention have been described in detail with reference to the embodiments shown in the drawings, but the present invention is not limited to the above-described embodiments, and other embodiments are described. It can be modified within the range that can be conceived by those skilled in the art, such as addition, change, deletion, etc., and any embodiment is included in the scope of the present invention as long as the operation and effect of the present invention are exhibited. is there. Therefore, although described here as a program for adding a function to the printer driver, it is possible to provide this function addition program to add a function to other device drivers. A device control system in which this program is installed can also be provided.

10…プリンタ、11…PC、12…ネットワーク、20…アプリケーション、21…OS、22…プリンタドライバ、23…通信モジュール、24…非同期モジュール、25…中間モジュール、30…アプリケーション実行部、31…制御部、32…印刷制御部、33…通信部、34…非同期処理部、35…中間処理部、36…第1処理部、37…第2処理部 DESCRIPTION OF SYMBOLS 10 ... Printer, 11 ... PC, 12 ... Network, 20 ... Application, 21 ... OS, 22 ... Printer driver, 23 ... Communication module, 24 ... Asynchronous module, 25 ... Intermediate module, 30 ... Application execution part, 31 ... Control part 32 ... Print control unit, 33 ... Communication unit, 34 ... Asynchronous processing unit, 35 ... Intermediate processing unit, 36 ... First processing unit, 37 ... Second processing unit

特開2010−282505号公報JP 2010-282505 A 特許第3745344号公報Japanese Patent No. 3745344

Claims (10)

印刷に際して実行すべき処理以外の処理を実行させる機能をプリンタドライバに追加することを可能にするコンピュータ可読な機能追加プログラムであって、前記機能追加プログラムは、
印刷対象の情報を出力する出力元からの呼び出しを受け、前記出力元から前記印刷対象の情報を受け取るステップと、
前記プリンタドライバを呼び出し、当該プリンタドライバへ前記印刷対象の情報を送信するステップと、
前記印刷対象の情報を送信する処理とは非同期に、前記印刷対象の情報を使用して前記機能に基づく処理を実行するステップとをコンピュータに実行させる、機能追加プログラム。
A computer-readable function addition program that makes it possible to add a function to execute a process other than the process to be executed at the time of printing to a printer driver, wherein the function addition program includes:
Receiving a call from an output source that outputs information to be printed and receiving the information to be printed from the output source; and
Calling the printer driver and transmitting the information to be printed to the printer driver;
A function addition program that causes a computer to execute a step based on the function using the information to be printed asynchronously with the process to transmit the information to be printed.
前記機能追加プログラムは、前記出力元と前記プリンタドライバとの間に配置され、前記出力元が呼び出す前記プリンタドライバがもつ関数と同じ関数を有することにより、前記出力元からの呼び出しを受けることを可能にし、前記プリンタドライバがもつ関数を呼び出すことにより、前記プリンタドライバを呼び出すことを可能にする、請求項1に記載の機能追加プログラム。   The function addition program is arranged between the output source and the printer driver, and can receive a call from the output source by having the same function as that of the printer driver called by the output source. The function addition program according to claim 1, wherein the printer driver can be called by calling a function of the printer driver. 前記プリンタドライバがもつ関数へのアドレスを取得し、前記アドレスを参照して前記プリンタドライバがもつ関数を呼び出すステップをさらに実行させる、請求項2に記載の機能追加プログラム。   The function addition program according to claim 2, further comprising the step of acquiring an address to a function of the printer driver and calling a function of the printer driver with reference to the address. 前記印刷対象の情報を使用して当該印刷に際して実行すべき処理を実行するステップをさらに実行させ、前記印刷対象の情報を送信するステップでは、当該処理の実行結果を含む前記印刷対象の情報を送信する、請求項1〜3のいずれか1項に記載の機能追加プログラム。   The step of executing the process to be executed at the time of printing using the information of the print target is further executed, and the step of transmitting the information of the print target transmits the information of the print target including the execution result of the process The function addition program according to any one of claims 1 to 3. 前記出力元からの機能についての問い合わせを受けて、前記プリンタドライバに問い合わせ、前記プリンタドライバがもつ機能に関する情報を取得するステップと、取得した前記機能に関する情報に代えて、追加した前記機能に関する情報を前記出力元へ返信するステップとをさらに実行させる、請求項1〜4のいずれか1項に記載の機能追加プログラム。   In response to an inquiry about the function from the output source, the printer driver is inquired to obtain information on the function of the printer driver, and information on the added function is substituted for the acquired information on the function. The function addition program according to claim 1, further causing a step of returning to the output source to be executed. 前記プリンタドライバがもつ機能が、画像のみを描画する機能である場合、前記機能追加プログラムがもつ機能は、文字と画像とを描画する機能、もしくは図形と画像とを描画する機能、または文字と図形と画像とを描画する機能である、請求項1〜5のいずれか1項に記載の機能追加プログラム。   When the function of the printer driver is a function of drawing only an image, the function of the function addition program is a function of drawing a character and an image, a function of drawing a figure and an image, or a character and a figure The function addition program according to claim 1, wherein the function addition program is a function for drawing an image and an image. 前記印刷に際して実行すべき処理以外の処理は、前記印刷対象の情報をログとして出力する処理、ネットワークを介して外部と通信する処理、文字列を検索する処理のいずれか、またはこれらの組み合わせである、請求項1〜6のいずれか1項に記載の機能追加プログラム。   The processing other than the processing to be executed at the time of printing is one of processing for outputting the information to be printed as a log, processing for communicating with the outside via a network, processing for searching for a character string, or a combination thereof. The function addition program according to any one of claims 1 to 6. 印刷に際して実行すべき処理以外の処理を実行させる機能をプリンタドライバに追加するために機能追加プログラムを実装し、追加した前記機能を利用可能にした印刷制御システムであって、前記機能追加プログラムを実行することにより前記印刷制御システムを、
印刷対象の情報を出力する出力元からの呼び出しを受け、前記出力元から前記印刷対象の情報を受け取る第1処理部と、
前記プリンタドライバを呼び出し、当該プリンタドライバへ前記印刷対象の情報を送信する第2処理部と、
前記印刷対象の情報を送信する処理とは非同期に、前記印刷対象の情報を使用して当該機能に基づく処理を実行する非同期処理部として機能させる、印刷制御システム。
A print control system in which a function addition program is installed to add a function for executing a process other than the process to be executed at the time of printing to the printer driver, and the added function can be used, and the function addition program is executed. The print control system is
A first processing unit that receives a call from an output source that outputs information to be printed and receives the information to be printed from the output source;
A second processing unit that calls the printer driver and transmits the information to be printed to the printer driver;
A printing control system that functions as an asynchronous processing unit that executes processing based on the function using the information to be printed asynchronously with the processing to transmit the information to be printed.
前記印刷対象の情報を使用して当該印刷に際して実行すべき処理を実行する第3処理部としてさらに機能させ、前記第2処理部は、当該処理の実行結果を含む前記印刷対象の情報を送信する、請求項8に記載の印刷制御システム。   The second processing unit further functions as a third processing unit that executes processing to be executed at the time of printing using the printing target information, and the second processing unit transmits the printing target information including an execution result of the processing. The printing control system according to claim 8. 前記第2処理部は、前記出力元からの機能についての問い合わせを受けて、前記プリンタドライバに問い合わせ、前記プリンタドライバがもつ機能に関する情報を取得し、前記第1処理部は、取得した前記機能に関する情報に代えて、追加する前記機能に関する情報を前記出力元へ返信する、請求項8または9に記載の印刷制御システム。   The second processing unit receives an inquiry about the function from the output source, inquires the printer driver, acquires information about the function of the printer driver, and the first processing unit relates to the acquired function. The print control system according to claim 8 or 9, wherein information relating to the function to be added is returned to the output source instead of the information.
JP2012032608A 2012-02-17 2012-02-17 Function adding program and print control system Pending JP2013168112A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012032608A JP2013168112A (en) 2012-02-17 2012-02-17 Function adding program and print control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012032608A JP2013168112A (en) 2012-02-17 2012-02-17 Function adding program and print control system

Publications (1)

Publication Number Publication Date
JP2013168112A true JP2013168112A (en) 2013-08-29

Family

ID=49178445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012032608A Pending JP2013168112A (en) 2012-02-17 2012-02-17 Function adding program and print control system

Country Status (1)

Country Link
JP (1) JP2013168112A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015011488A (en) * 2013-06-28 2015-01-19 株式会社スプラインネットワーク Print data management system, information processing device, print data acquisition program, and method
JP2025086347A (en) * 2023-11-27 2025-06-06 アウル システムズ インコーポレイテッド Method for encrypting data stored in database and database management system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10155094A (en) * 1996-09-30 1998-06-09 Ricoh Co Ltd Color conversion processing apparatus and method, dynamically linkable program module expansion method, color conversion processing method to which the method is applied, and computer-readable recording medium storing a program for causing a computer to execute those methods
JP2008123471A (en) * 2006-11-10 2008-05-29 Aicompu Ltd Print data processing program and recording medium
JP2008204001A (en) * 2007-02-16 2008-09-04 Canon Inc Information processing apparatus and control method thereof
JP2009064143A (en) * 2007-09-05 2009-03-26 Ricoh Co Ltd Client device, network system, print control method and program
JP2010218310A (en) * 2009-03-17 2010-09-30 Ricoh Co Ltd Printer driver, print control program, printing device, and recording medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10155094A (en) * 1996-09-30 1998-06-09 Ricoh Co Ltd Color conversion processing apparatus and method, dynamically linkable program module expansion method, color conversion processing method to which the method is applied, and computer-readable recording medium storing a program for causing a computer to execute those methods
JP2008123471A (en) * 2006-11-10 2008-05-29 Aicompu Ltd Print data processing program and recording medium
JP2008204001A (en) * 2007-02-16 2008-09-04 Canon Inc Information processing apparatus and control method thereof
JP2009064143A (en) * 2007-09-05 2009-03-26 Ricoh Co Ltd Client device, network system, print control method and program
JP2010218310A (en) * 2009-03-17 2010-09-30 Ricoh Co Ltd Printer driver, print control program, printing device, and recording medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015011488A (en) * 2013-06-28 2015-01-19 株式会社スプラインネットワーク Print data management system, information processing device, print data acquisition program, and method
JP2025086347A (en) * 2023-11-27 2025-06-06 アウル システムズ インコーポレイテッド Method for encrypting data stored in database and database management system

Similar Documents

Publication Publication Date Title
US20240264780A1 (en) Information processing apparatus, control method, and a storage medium
US20250165198A1 (en) Print processing system and control method
US12118252B2 (en) Information processing apparatus, control method, and storage medium for setting a print setting value
JP5924992B2 (en) Information processing apparatus, information processing method and program
US9361056B2 (en) Information processing apparatus and method for generating a conflict confirmation print job
JP7707362B2 (en) PROGRAM, INFORMATION PROCESSING APPARATUS, AND METHOD FOR CONTROLLING INFORMATION PROCESSING APPARATUS
JP2011242950A (en) Information processor, control method and program
JP2010140281A (en) Method of data communication between application program and printer driver, and program therefor
JP2015184915A (en) Information processing apparatus and method, and program
JP6085982B2 (en) Program, information processing apparatus and system
JP2013168112A (en) Function adding program and print control system
JP2012252635A (en) Print control device, print control program, and recording medium
US8547578B2 (en) Print driver, information processing apparatus, and computer-readable storage medium for generating different types of drawing commands and job commands
US8477353B2 (en) Information processing apparatus, printing method, printing system, and non-transitory computer-readable storage medium
US12547357B2 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium
JP2019197250A (en) Information processing device, control method thereof and program
JP2020004273A (en) Print control program, method of updating printer description file of print control program, information processing apparatus, and storage medium
JP2018192740A (en) Image formation device, information processing method and program
JP2025175812A (en) Information processing system, information processing program, and information processing method
JP2013041472A (en) Information processor, driver program and recording medium
JP2008102704A (en) Device apparatus and control method thereof, computer program, and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151222

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160412