[go: up one dir, main page]

JP2014041599A - Program, information processing apparatus, and system - Google Patents

Program, information processing apparatus, and system Download PDF

Info

Publication number
JP2014041599A
JP2014041599A JP2013110270A JP2013110270A JP2014041599A JP 2014041599 A JP2014041599 A JP 2014041599A JP 2013110270 A JP2013110270 A JP 2013110270A JP 2013110270 A JP2013110270 A JP 2013110270A JP 2014041599 A JP2014041599 A JP 2014041599A
Authority
JP
Japan
Prior art keywords
print data
program
driver
print
setting
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
JP2013110270A
Other languages
Japanese (ja)
Inventor
Akiko Kitayama
暁子 北山
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 JP2013110270A priority Critical patent/JP2014041599A/en
Publication of JP2014041599A publication Critical patent/JP2014041599A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】ドライバが生成したデータを利用して対話型サービスを提供することが可能なプログラムを提供すること。
【解決手段】情報処理装置に、設定条件を受け付けるステップと、画像処理プログラムが動作を開始する前に、印刷データを用いた通知画面を表示する通知用プログラムを起動させるステップ(S2.2.2)と、を実行させる設定受付プログラム21と、アプリケーションから文書データを取得し、設定受付プログラムにより受け付けられた前記設定条件に基づいて印刷データに変換するステップと、印刷データを所定のプログラムが有する印刷データ保持プログラムに保持するステップ(S7.2.1)と、を実行させる画像処理プログラム23と、印刷データ保持プログラムから印刷データを取得して、印刷データを用いた通知画面を表示するステップ(S2.2.2.4)を実行させる通知用プログラム252と、を有するプログラムを提供する。
【選択図】図1
A program capable of providing an interactive service using data generated by a driver is provided.
A step of receiving a setting condition in an information processing apparatus; and a step of starting a notification program for displaying a notification screen using print data before the image processing program starts an operation (S2.2.2); , A step of acquiring document data from an application, converting the print data into print data based on the setting condition received by the setting reception program, and holding print data in a predetermined program A step (S7.2.1) of storing in the program, and a step of displaying the notification screen using the print data by acquiring the print data from the print data holding program and the image processing program 23 (S2.2.2.4) And a notification program 252 for executing the program.
[Selection] Figure 1

Description

本発明は、出力対象の文書データを取得して印刷装置に送出するプログラムに関する。   The present invention relates to a program for acquiring document data to be output and sending it to a printing apparatus.

ユーザーがPC(Personal Computer)上で動作するアプリケーションを操作して文書データ(ドキュメント)の印刷を指示したり、FAX送信を指示する場合がある。このため、PCには、印刷設定やFAX送信設定を受け付けるGUI(Graphical User Interface)画面を表示し、文書データを描画データに変換するプリンタドライバ又はPC−FAXドライバ(以下、両者を区別せずに、単にドライバという)がインストールされている。 In some cases, a user operates an application running on a PC (Personal Computer) to instruct printing of document data (document) or instruct FAX transmission. For this reason, a PC (Graphical User Interface) screen for accepting print settings and FAX transmission settings is displayed on the PC, and a printer driver or PC-FAX driver that converts document data into drawing data (hereinafter, without distinguishing both). Is simply installed).

Windows(登録商標。以下、省略する)上で動作するドライバは、通常「UIドライバ」と「描画ドライバ」の2つに分けて実装される。UIドライバは、上記のように印刷設定画面(GUI)を表示してユーザーに印刷設定を表示し変更や設定を受け付ける役割をもつ。一方、描画ドライバは、主にUIドライバによって指定された印刷設定をWindowsから受け取り、プリンタへ送信するための描画データを生成する役割をもつ。   A driver that operates on Windows (registered trademark; hereinafter omitted) is usually divided into two parts, a “UI driver” and a “drawing driver”. The UI driver has a role of displaying a print setting screen (GUI) as described above, displaying print settings to the user, and accepting changes and settings. On the other hand, the drawing driver mainly receives print settings designated by the UI driver from Windows and generates drawing data for transmission to the printer.

ところで、PCのアプリケーションから呼び出されたドライバは、Windowsと連携して処理を行う。このWindowsにおける印刷アーキテクチャとして、2つのスプール形式とサーバーを利用したインストール形式がある。
(1)RAWスプールとEMFスプールという2つのスプール形式
(2)Point & Printというインストール形式
スプールについて説明する。RAWスプールによる印刷では、ドライバのインスタンスが、ユーザーが印刷指示を行った「アプリケーションのプロセス上」で生成される。EMFスプールによる印刷では、ドライバのインスタンスは、ユーザーが印刷指示を行ったアプリケーションのプロセス上でも生成されるが、その後、「OSのスプールプロセス上」でも再度生成される、という違いがある。EMFスプールの後半のスプールプロセスは、ドライバのインスタンスがプリンタへ送信するデータを実際に作成するためのスプールプロセスである(これに対し、アプリケーションとOSとが通信して中間データを生成するプロセスをアプリケーションプロセスという)。
By the way, a driver called from a PC application performs processing in cooperation with Windows. As a print architecture in Windows, there are two spool formats and an install format using a server.
(1) Two spool formats RAW spool and EMF spool (2) Installation format spool called Point & Print In printing using the RAW spool, an instance of a driver is generated “on the application process” for which the user has issued a print instruction. In printing using the EMF spool, the driver instance is generated even on the process of the application for which the user has issued a print instruction, but after that, it is generated again on the “OS spool process”. The spool process in the latter half of the EMF spool is a spool process for actually creating data to be transmitted to the printer by the driver instance (in contrast, a process in which the application and the OS communicate to generate intermediate data is called an application. Process).

Point & Printインストールは、ネットワークを介して、プリンタと、ドライバが既にインストールされたサーバーとなるコンピュータと、それとは別のクライアントとなるコンピュータと、が接続された状態で利用される。クライアントは、サーバーにあるドライバを使ってクライアントにドライバをインストールする。このようにしてクライアントにインストールされたドライバは、描画データの作成をクライアント側で行なわずにサーバー側で行うことができる(「サーバーサイドレンダリング」という。対比してクライアント側で行うことを「クライアントサイドレンダリング」という。)。クライアント側の印刷処理の負荷を軽減することが可能となる。   Point & Print installation is used in a state where a printer, a computer that is a server on which a driver is already installed, and a computer that is a client other than the printer are connected via a network. The client installs the driver on the client using the driver on the server. The driver installed in the client in this way can create drawing data on the server side without performing the client side (referred to as “server side rendering”. In contrast, what is performed on the client side is “client side rendering”. Rendering "). It is possible to reduce the printing processing load on the client side.

なお、Point & Printインストールによって構築されたPoint & Print環境では、クライアント側とサーバー側の双方でLanguage Monitorというモジュールが動作する。このモジュールは、Windowsの印刷アーキテクチャにおいて必要なモジュールの1つである。プリンタメーカが開発しない場合はWindowsに付属のモジュールが動作するが、プリンタメーカが独自の機能を盛り込んで開発してそれを動作させることもできる。   In the Point & Print environment built by Point & Print installation, a module called Language Monitor operates on both the client side and the server side. This module is one of the necessary modules in the Windows printing architecture. If the printer manufacturer does not develop it, the module that comes with Windows will work, but the printer manufacturer can also develop it with its own functions and operate it.

以上のような印刷環境(複数のスプール形式やインストール形式が利用可能な環境)において、ユーザーがアプリケーションから印刷を指示した際に、ドライバが生成したデータを利用してドライバ自身やそれに付随するアプリケーションが対話型サービスを提供する技術が知られている(例えば、特許文献1,2参照。)。対話型サービスを利用することで、印刷プレビューの表示や課金情報をユーザーに通知することができる。   In the printing environment as described above (environment in which multiple spool formats and installation formats are available), when the user instructs printing from the application, the driver itself and the application that accompanies it use the data generated by the driver. Techniques for providing interactive services are known (see, for example, Patent Documents 1 and 2). By using the interactive service, the user can be notified of print preview display and billing information.

特許文献1には、ドライバから通知された情報をもとに課金アプリケーションを起動することで、料金をユーザーに通知したり、その後の出力処理を変更したりする技術が開示されている。特許文献2には、アプリケーションからの印刷指示に対し付与された一意のジョブIDを用いて、ユーザーが印刷指示を出した後にも、UIドライバが印刷設定保存モジュールを介して、ジョブIDを用いて描画ドライバに印刷設定を受け渡す技術が開示されている。   Japanese Patent Application Laid-Open No. 2004-228561 discloses a technique for notifying a user of a fee or changing subsequent output processing by starting a charging application based on information notified from a driver. In Patent Document 2, the UI driver uses the job ID via the print setting storage module even after the user issues a print instruction using the unique job ID assigned to the print instruction from the application. A technique for transferring print settings to a drawing driver is disclosed.

しかしながら、特許文献1,2のような従来のプリンタドライバでは、下記の2つの問題がある。
A.GUIとして対話型画面を表示する際に「対話型サービス検出」画面が表示されることがある
B.UIドライバと描画ドライバが直接データの受け渡しをすることはできないため、UIドライバは描画ドライバが作成したデータを利用して対話型サービスを行うことが困難になる
However, the conventional printer drivers such as Patent Documents 1 and 2 have the following two problems.
A. When displaying an interactive screen as a GUI, an “interactive service detection” screen may be displayed. Since the UI driver and the drawing driver cannot directly exchange data, it becomes difficult for the UI driver to perform an interactive service using the data created by the drawing driver.

A.について説明する。まず、描画ドライバが対話型画面を表示することはWindowsの印刷アーキテクチャとして推奨されていない。そのため、描画ドライバが対話型画面を表示すると、Windowsが警告として「対話型サービス検出」の画面を表示し、ユーザーに起動の可否を問い合わせることがある。   A. Will be described. First, it is not recommended as a Windows print architecture that the drawing driver display an interactive screen. For this reason, when the drawing driver displays an interactive screen, Windows may display a “interactive service detection” screen as a warning and ask the user whether or not activation is possible.

図16は「対話型サービス検出」の画面の一例を示す。図16では「プログラムがタスクを完了するには、情報又はアクセス許可が必要である可能性があります。」と表示されている。この画面が表示されると、ユーザーは
・メッセージを表示する
・数分後に通知する
のいずれかを選択しなければならない。選択しない限り対話型画面が表示されず、ドライバはユーザーに「対話型サービス」を提供できない(印刷プレビュー通知や課金表示できない)ため、ジョブを完了することができない。
FIG. 16 shows an example of the “interactive service detection” screen. In FIG. 16, “The program may need information or access permission to complete the task” is displayed. When this screen is displayed, the user must choose between displaying a message and notifying after a few minutes. Unless selected, the interactive screen is not displayed, and the driver cannot provide the “interactive service” to the user (cannot display a print preview notification or charge), so the job cannot be completed.

また、どちらかを選択するにしても、ユーザーはシステムに影響が大きい操作を許可するかどうかの判断をしなければならず、PCの動作を熟知していないユーザーにとっては判断すること自体が困難である。また、印刷のための操作以外の余分な操作を行う必要があるため、ユーザーの操作手順が増えることになり不便である。   In addition, even if one is selected, the user must determine whether or not to allow an operation having a large influence on the system, and it is difficult for the user who is not familiar with the operation of the PC. It is. Further, since it is necessary to perform an extra operation other than the operation for printing, the user's operation procedure increases, which is inconvenient.

なお、「対話型サービス検出」画面は、UIドライバが対話型画面を表示する場合にも表示されることがある。例えば、PCにログインしているユーザーの権限が低い場合、ユーザーの権限で起動したアプリケーションのプロセス上でUIドライバが対話型画面を表示する際には問題がない。しかし、Windowsのスプールプロセス上でUIドライバが対話型画面を表示する場合には「対話型サービス検出」画面が表示されることがある。   The “interactive service detection” screen may also be displayed when the UI driver displays the interactive screen. For example, when the authority of the user logged in to the PC is low, there is no problem when the UI driver displays the interactive screen on the process of the application started with the user authority. However, when the UI driver displays an interactive screen on the Windows spool process, an “interactive service detection” screen may be displayed.

B.について説明する。UIドライバと描画ドライバは、OSから呼び出されて処理を行うが、それぞれが直接通信をしてデータの受け渡しをすることはできない。ドライバはWindowsから呼び出されるためのI/Fを備えているが、それ以外のI/Fを持つことはできないためである。なお、UIドライバによって指定された印刷設定は、DEVMODEというデータ構造体としてOSを介して描画ドライバへ渡される。   B. Will be described. Although the UI driver and the drawing driver are called from the OS and perform processing, they cannot communicate with each other by directly communicating with each other. This is because the driver has an I / F to be called from Windows, but cannot have any other I / F. Note that the print settings designated by the UI driver are passed to the drawing driver via the OS as a data structure called DEVMODE.

上記の対話型サービスの一例である、印刷プレビューや課金情報をユーザーへ通知する技術では、描画ドライバによる描画データの生成処理が完了した後で、描画ドライバが生成した描画データを使ってドライバがユーザーへの通知を行う必要がある。描画ドライバが通知を行うための対話型画面を表示することは上記Aの通りできない。このため、描画ドライバが生成した描画データをUIドライバへ渡してあげる必要があるが、Bの通り、UIドライバと描画ドライバが直接通信を行ってデータの受け渡しをすることができない。   In the technology for notifying the user of print preview and billing information, which is an example of the above interactive service, after the drawing data generation processing by the drawing driver is completed, the driver uses the drawing data generated by the drawing driver. Need to be notified. It is not possible to display an interactive screen for the drawing driver to notify as described in A above. For this reason, the drawing data generated by the drawing driver needs to be transferred to the UI driver. However, as shown in B, the UI driver and the drawing driver cannot communicate with each other by directly communicating with each other.

そこで、これらの問題を回避するために、描画データ保持用の一時ファイルや専用のモジュールを使う方法が考えられる。描画ドライバが生成した描画データを、一時ファイル等を介してUIドライバに受け渡し(Bの問題を回避)、UIドライバが印刷プレビューなどの通知を行うモジュールを起動する(Aの問題を回避)という手法が考えられる。   In order to avoid these problems, a method of using a temporary file for holding drawing data or a dedicated module can be considered. A method in which the drawing data generated by the drawing driver is transferred to the UI driver via a temporary file or the like (avoids the problem B), and the UI driver starts a module that performs notification such as print preview (avoids the problem A). Can be considered.

しかしながら、この手法でも下記の問題がある。
(1)EMFスプールによる印刷処理の場合に、Windowsによる警告画面が表示されてしまう
(2)Point & Print環境で「サーバーサイドレンダリング」を行う場合、対話型サービスでユーザーに通知することができない
However, this method also has the following problems.
(1) When printing with EMF spool, a warning screen by Windows is displayed. (2) When "Server Side Rendering" is performed in the Point & Print environment, the user cannot be notified by the interactive service.

(1)について説明する。EMFスプールの場合、描画ドライバによる描画データの生成処理はWindowsのスプールプロセス上で生成された描画ドライバのインスタンスの中で行われる。描画ドライバによる描画データの生成が完了した後で、専用のモジュール(これを「印刷データ保持用モジュール」と称す)を使って描画ドライバが生成したデータをUIドライバが取得することは可能である。しかし、そのUIドライバもWindowsのスプールプロセス上で生成されているため、対話型画面の表示を行う際にWindowsによる警告画面(「対話型サービス検出」の画面)が表示されてしまう。   (1) will be described. In the case of EMF spooling, drawing data generation processing by the drawing driver is performed in an instance of the drawing driver generated on the Windows spool process. After generation of drawing data by the drawing driver is completed, it is possible for the UI driver to acquire data generated by the drawing driver using a dedicated module (referred to as a “print data holding module”). However, since the UI driver is also generated on the Windows spool process, a warning screen (“interactive service detection” screen) by Windows is displayed when the interactive screen is displayed.

(2)について説明する。Point & Print環境で「サーバーサイドレンダリング」を行う場合、「印刷データ保持用モジュール」がサーバー側に存在するとしたら、サーバー側でインスタンス化された描画ドライバで生成した描画データをサーバー側のUIドライバに渡すことになる。つまり、通知のための対話型画面がサーバー側で表示されてしまう。印刷の操作はクライアント側から実行されているので、サーバー側に表示された対話型画面はクライアント側の画面を見ているユーザーには通知されないし、操作することもできない。   (2) will be described. When performing “server-side rendering” in the Point & Print environment, if the “print data retention module” exists on the server side, the rendering data generated by the rendering driver instantiated on the server side is used as the server-side UI driver. Will pass. That is, an interactive screen for notification is displayed on the server side. Since the printing operation is executed from the client side, the interactive screen displayed on the server side is not notified to the user watching the client side screen and cannot be operated.

また、「印刷データ保持用モジュール」がクライアント側に存在するとしたら、サーバー側でインスタンス化された描画ドライバで生成した描画データをクライアント側のUIドライバに渡すことができないため、やはりクライアント側に通知をすることはできない。   If the “print data holding module” exists on the client side, the drawing data generated by the drawing driver instantiated on the server side cannot be passed to the UI driver on the client side. I can't do it.

本発明は、上記課題に鑑み、スプール形式やインストール形式に拘わらず、ドライバが生成したデータを利用して対話型サービスを提供することが可能なプログラムを提供することを目的とする。   In view of the above problems, an object of the present invention is to provide a program capable of providing an interactive service using data generated by a driver regardless of a spool format or an installation format.

本発明は、所定のプログラムに基づいて動作する情報処理装置に処理を実行させるプログラムであって、画像データの出力の設定条件を表示し、前記設定条件を受け付けるステップと、画像処理プログラムが動作を開始する前に、印刷データを用いた通知画面を表示する通知用プログラムを起動させるステップと、を前記情報処理装置に実行させる設定受付プログラムと、アプリケーションから文書データを取得し、前記設定受付プログラムにより受け付けられた前記設定条件に基づいて印刷データに変換するステップと、前記印刷データを前記所定のプログラムが有する印刷データ保持プログラムに保持するステップと、を前記情報処理装置に実行させる画像処理プログラムと、前記印刷データ保持プログラムから前記印刷データを取得して、前記印刷データを用いた前記通知画面を表示するステップを前記情報処理装置に実行させる通知用プログラムと、を有するプログラムを提供する。   The present invention is a program for causing an information processing device that operates based on a predetermined program to execute processing, displaying a setting condition for output of image data, and receiving the setting condition; and Before starting, a step of starting a notification program for displaying a notification screen using print data; a setting reception program for causing the information processing apparatus to execute; and obtaining document data from an application, An image processing program for causing the information processing apparatus to execute a step of converting into print data based on the accepted setting condition, and a step of holding the print data in a print data holding program included in the predetermined program; Obtaining the print data from the print data holding program; Provides a program with a notification program to be executed by the information processing apparatus the step of displaying the notification screen using the print data.

スプール形式やインストール形式に拘わらず、ドライバが生成したデータを利用して対話型サービスを提供することが可能なプログラムを提供することができる。   Regardless of the spool format or the installation format, it is possible to provide a program capable of providing an interactive service using data generated by the driver.

プリンタドライバによる処理の概略を示す図の一例である。FIG. 3 is an example of a diagram illustrating an outline of processing by a printer driver. 印刷システムの概略構成図の一例である。1 is an example of a schematic configuration diagram of a printing system. PCのハードウェア構成図の一例である。It is an example of the hardware block diagram of PC. PCの機能ブロック図の一例である。It is an example of a functional block diagram of a PC. RAWスプールにおける印刷アーキテクチャの流れを説明する図の一例である。It is an example of the figure explaining the flow of the printing architecture in a RAW spool. 図5の印刷アーキテクチャのシーケンス図の一例である。FIG. 6 is an example of a sequence diagram of the printing architecture of FIG. 5. EMFスプールにおける印刷アーキテクチャの流れを説明する図の一例である。It is an example of the figure explaining the flow of the printing architecture in an EMF spool. 図7の印刷アーキテクチャのシーケンス図の一例である。It is an example of the sequence diagram of the printing architecture of FIG. RAWスプールの印刷アーキテクチャのシーケンス図の一例である。FIG. 3 is an example of a sequence diagram of a RAW spool printing architecture. EMFスプールの印刷アーキテクチャのシーケンス図の一例である。It is an example of the sequence diagram of the printing architecture of an EMF spool. 通知表示部の処理手順を示すフローチャート図の一例である。It is an example of the flowchart figure which shows the process sequence of a notification display part. クライアントとサーバーの機能ブロック図の一例である。It is an example of a functional block diagram of a client and a server. PCの機能ブロック図の一例である。It is an example of a functional block diagram of a PC. RAWスプールのWindows系OSの印刷アーキテクチャのシーケンス図の一例である(実施例3)。FIG. 10 is an example of a sequence diagram of a RAW spool Windows OS printing architecture (Example 3); プレビュー表示画面の一例を示す図である。It is a figure which shows an example of a preview display screen. 「対話型サービス検出」の画面の一例を示す図である。It is a figure which shows an example of the screen of "interactive service detection". LanguageMonitorの動作を説明する図の一例である。It is an example of the figure explaining operation | movement of LanguageMonitor. DrvDocumentEvent()関数、SendRecvBidiDataFromPort()関数の書式を説明する図の一例である。It is an example of the figure explaining the format of a DrvDocumentEvent () function and a SendRecvBidiDataFromPort () function. ExtEscape()関数の書式を説明する図の一例である。It is an example of a figure explaining the format of ExtEscape () function. Point&Print環境におけるLanguageMonitorの位置づけを説明する図の一例である。It is an example of the figure explaining the positioning of LanguageMonitor in Point & Print environment.

以下、本発明を実施するための形態について図面を参照しながら説明する。
図1は、本実施形態のプリンタドライバによる処理の概略を示す図の一例である。
・プリンタドライバはUIドライバ、描画ドライバ及び通知用モジュールを有する。
・OS(Operating System)は印刷アーキテクチャ(RAWスプール、EMFスプール)にしたがってUIドライバと描画ドライバを呼び出し印刷に必要な処理を実行する。
・Language Monitorは本実施形態では情報の記憶手段として機能する。
(i)まず、本実施形態のUIドライバは、アプリケーションからの印刷指示の直後に通知用モジュールを起動する。
(ii)描画ドライバは印刷設定と文書データから作成した描画データを、Language Monitorのデータ保持部に記憶させる。
(iii)通知用モジュールはLanguage Monitorと通信して、描画データをLanguage Monitorから取得する。
(iv)通知用モジュールは取得した描画データを用いて、対話型サービスを提供する。
Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings.
FIG. 1 is an example of a diagram showing an outline of processing by the printer driver of this embodiment.
The printer driver has a UI driver, a drawing driver, and a notification module.
An OS (Operating System) calls a UI driver and a drawing driver according to a printing architecture (RAW spool, EMF spool) and executes processing necessary for printing.
Language Monitor functions as information storage means in this embodiment.
(I) First, the UI driver according to the present embodiment activates the notification module immediately after the print instruction from the application.
(Ii) The drawing driver stores drawing data created from print settings and document data in the data holding unit of the Language Monitor.
(Iii) The notification module communicates with the Language Monitor and acquires drawing data from the Language Monitor.
(Iv) The notification module provides an interactive service using the acquired drawing data.

このように、通知用モジュールがアプリケーションからの印刷指示の直後に起動されるので、通知用モジュールはアプリケーションプロセスで起動されている。このため、描画ドライバのインスタンスが生成された後も、通知用モジュールはアプリケーションプロセスで動作する。したがって、対話型サービスの表示を行う際に警告画面が表示されることを防止できる。   As described above, since the notification module is activated immediately after the printing instruction from the application, the notification module is activated by the application process. For this reason, the notification module operates in the application process even after the drawing driver instance is generated. Therefore, it is possible to prevent the warning screen from being displayed when the interactive service is displayed.

この説明は、プリンタドライバがローカルインストールされた場合を例示した説明である。しかし、Point & Print環境の場合もサーバー側のLanguage Monitorをクライアント側の通知用モジュールが利用することで、クライアントは対話型サービスを表示することができる。   This description is an example in which the printer driver is locally installed. However, even in the Point & Print environment, the client can display interactive services by using the server side Language Monitor by the client side notification module.

したがって、本実施例のプリンタドライバは、スプール形式やインストール形式に拘わらず、プリンタドライバが生成したデータを利用して対話型サービスを提供することが可能となる。   Therefore, the printer driver according to the present embodiment can provide an interactive service using data generated by the printer driver regardless of the spool format or the installation format.

〔構成例〕
図2は印刷システム500の概略構成図の一例を示す。ネットワーク501に、プリンタ200と三台のPC(Personal Computer)が接続されている。本実施形態では、PC−Cがローカル環境で印刷するPC、PC−BがPoint & Printインストールされたプリンタドライバで印刷するPC、PC−AがPoint & Print環境でサーバーサイドレンダリングを行うPCとする。つまり、PC−AにインストールされているプリンタドライバがPC−Bに対してPoint & Printインストールされている。なお、ユーザーがPC−A上で印刷指示を行なう場合は、PC−Cと同様にPC−Aのローカル環境での印刷となる。
[Configuration example]
FIG. 2 shows an example of a schematic configuration diagram of the printing system 500. A printer 200 and three PCs (Personal Computers) are connected to the network 501. In the present embodiment, PC-C is a PC that prints in a local environment, PC-B is a PC that prints with a printer driver installed with Point & Print, and PC-A is a PC that performs server-side rendering in a Point & Print environment. . That is, the printer driver installed on the PC-A is installed with Point & Print on the PC-B. When the user issues a print instruction on the PC-A, printing is performed in the local environment of the PC-A as in the case of the PC-C.

以下では、
PC−Aをサーバー110
PC−Bをクライアント120
PC−Cを単にPC100と称する。
Below,
PC-A to server 110
PC-B as client 120
PC-C is simply referred to as PC100.

PC100やクライアント120では、文書作成ソフトなどのアプリケーションが動作する。プリンタドライバは、アプリケーションが作成した文書データから印刷データを作成してプリンタ200に送信する。サーバーサイドレンダリングの場合は、サーバー110が印刷データを作成してプリンタ200に送信する。   On the PC 100 and the client 120, an application such as document creation software operates. The printer driver creates print data from the document data created by the application and transmits it to the printer 200. In the case of server side rendering, the server 110 creates print data and transmits it to the printer 200.

サーバー110、PC100及びクライアント120は、情報処理装置であればよく、PCと呼ばれるもの以外に、タブレット、ストレートPC、スマートフォン、PDA(Personal Digital Assistant)、ノートPC、及び、デスクトップPC、等が含まれる。   The server 110, the PC 100, and the client 120 may be any information processing device, and include a tablet, a straight PC, a smartphone, a PDA (Personal Digital Assistant), a notebook PC, a desktop PC, and the like in addition to what is called a PC .

プリンタ200は画像形成機能を有していれば、コピー機、複写機、FAX装置などその呼称は問われない。また、プリンタ200は電子写真方式の画像形成機能又はインクジェット方式の画像形成機能のどちらの機能を有していてもよい。なお、PC100又はクライアント120は、USBケーブルなどでプリンタ200と直接接続されていてもよい。   As long as the printer 200 has an image forming function, the name of a copier, a copier, a fax machine, or the like is not limited. The printer 200 may have either an electrophotographic image forming function or an inkjet image forming function. Note that the PC 100 or the client 120 may be directly connected to the printer 200 with a USB cable or the like.

また、本実施形態ではプリンタドライバを例にして説明するが、本実施形態はPC−FAXドライバにも同様に適用できる。   In the present embodiment, a printer driver will be described as an example. However, the present embodiment can be similarly applied to a PC-FAX driver.

図3は、PC(PC100、サーバー110又はクライアント120)のハードウェア構成図の一例を示す。PCは、それぞれバスで相互に接続されているCPU11、ROM12、RAM13、外部I/F14、通信装置15、入力装置16、表示制御部17及び記憶装置18を有する。CPU11は、OS10、アプリケーション31、及び、プリンタドライバ30を記憶装置18から読み出して、RAM103を作業メモリにして実行する。   FIG. 3 shows an example of a hardware configuration diagram of a PC (PC 100, server 110, or client 120). The PC includes a CPU 11, a ROM 12, a RAM 13, an external I / F 14, a communication device 15, an input device 16, a display control unit 17, and a storage device 18 that are mutually connected by a bus. The CPU 11 reads the OS 10, the application 31, and the printer driver 30 from the storage device 18, and executes them using the RAM 103 as a working memory.

アプリケーション31は、プリンタ200に印刷要求するものであればよく、例えば、文書作成ソフト、ブラウザソフト、プレゼン資料作成ソフト等、種々のものがある。印刷対象となる文書データを、作成、編集、表示、管理などして、印刷可能なアプリケーションであればどのようなものでもよい。なお、文書データは、文字や記号、数値だけを含むものではなく、画像、写真など種々の印刷対象物を含む。   The application 31 only needs to make a print request to the printer 200. For example, there are various applications such as document creation software, browser software, and presentation material creation software. Any application can be used as long as it can print, create, edit, display, and manage document data to be printed. The document data does not include only characters, symbols, and numerical values, but includes various print objects such as images and photographs.

OSは、Windows系のOSであることが好適である。PC100又はクライアント120におけるOSとしては、Windows NT、Windows 98、Windows 2000、Windows Me、Windows XP、Windows Vista、Window 7、Window 8、及び、これ以降のバージョンのOSが含まれる。なお、必ずしもWindows系のOSでなければならないのではなく、本実施形態のプリンタドライバが利用するWindowsと同等の機能を提供するOSであればよい。   The OS is preferably a Windows OS. The OS in the PC 100 or the client 120 includes Windows NT, Windows 98, Windows 2000, Windows Me, Windows XP, Windows Vista, Window 7, Window 8, and later versions of the OS. The OS does not necessarily have to be a Windows OS, but may be an OS that provides a function equivalent to Windows used by the printer driver of the present embodiment.

RAM13は必要なデータを一時保管する作業メモリ(主記憶メモリ)になり、ROM12にはBIOSや初期設定されたデータ、スタートプログラム等が記憶されている。   The RAM 13 is a working memory (main storage memory) for temporarily storing necessary data, and the ROM 12 stores BIOS, initially set data, a start program, and the like.

外部I/F14はUSBケーブル等のケーブルや、可搬型の記憶媒体20を装着するインタフェースである。通信装置15は、LANカードやイーサネット(登録商標)カードであり、CPU11からの指示によりプリンタ200にパケットデータ(本実施形態では主に印刷データ)を送信する。また、外部からパケットデータを受信してCPU11に通知する。   The external I / F 14 is an interface for mounting a cable such as a USB cable or a portable storage medium 20. The communication device 15 is a LAN card or an Ethernet (registered trademark) card, and transmits packet data (mainly print data in this embodiment) to the printer 200 in accordance with an instruction from the CPU 11. In addition, packet data is received from the outside and notified to the CPU 11.

入力装置16は、キーボード、マウスなど、ユーザーの様々な操作指示を受け付けるユーザインターフェイスである。タッチパネルや音声入力装置を入力装置とすることもできる。表示制御部17は、アプリケーション31が指示する画面情報に基づき所定の解像度や色数等でディスプレイ19の描画を制御する。ディスプレイ19は、液晶や有機ELなどのFPD(Flat Panel Display)である。   The input device 16 is a user interface that accepts various user operation instructions such as a keyboard and a mouse. A touch panel or a voice input device can be used as the input device. The display control unit 17 controls the drawing of the display 19 with a predetermined resolution, number of colors, and the like based on screen information instructed by the application 31. The display 19 is an FPD (Flat Panel Display) such as a liquid crystal or an organic EL.

記憶装置18は、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発メモリを実体とし、OS10、プリンタドライバ30、及び、アプリケーション31を記憶している。   The storage device 18 is a nonvolatile memory such as a hard disk drive (HDD) or a flash memory, and stores an OS 10, a printer driver 30, and an application 31.

記憶媒体20は、例えば、SDカードやUSBメモリ、CD−ROMなど不揮発性のメモリである。OS10、アプリケーション31、及び、プリンタドライバ30は、記憶媒体20に記録された状態又は不図示のサーバーからダウンロードされる態様で配布される。   The storage medium 20 is a non-volatile memory such as an SD card, USB memory, or CD-ROM, for example. The OS 10, the application 31, and the printer driver 30 are distributed in a state recorded in the storage medium 20 or downloaded from a server (not shown).

なお、サーバー110においては、ディスプレイ19は接続されていてもいなくてもよい。サーバー110のWindows系OSには、Windows 2000 Server、2003 Server、2008 Server、2011 Server、2012 Server及びこれ以降のバージョンのOSが含まれる。   In the server 110, the display 19 may or may not be connected. The Windows OS of the server 110 includes Windows 2000 Server, 2003 Server, 2008 Server, 2011 Server, 2012 Server, and later versions of the OS.

本実施例ではローカル印刷における印刷手順について説明する。
図4は、PC100の機能ブロック図の一例である。プリンタドライバ30は、主にOS10やLanguage Monitorと通信し、アプリケーション31は主にOSやプリンタドライバと通信する。
In this embodiment, a printing procedure in local printing will be described.
FIG. 4 is an example of a functional block diagram of the PC 100. The printer driver 30 mainly communicates with the OS 10 and Language Monitor, and the application 31 mainly communicates with the OS and printer driver.

プリンタドライバ30は、UIドライバ38、描画ドライバ39及び通知用モジュール25を有している。UIドライバ38は印刷設定表示部21、及び、通知用モジュール起動部22を有する。UIドライバ38の印刷設定表示部21は、ユーザーがアプリケーション31に対して文書の印刷操作を入力することで、印刷設定画面(印刷ダイアログと呼ばれることがある)をディスプレイ19に表示する。ユーザーは、印刷設定画面に対し、「白黒/カラー」の設定、「両面」「集約」「製本」「変倍」の設定、部数の設定等を行うことができる。印刷設定は、DEVMODE構造体(以下、単にDEVMODEという)というデータ構造体(データテーブル)に格納される。DEVMODEはOS上で動作する各種のプリンタドライバ30に対して、UIドライバ38が印刷条件を共通に設定するためのメンバ変数が定義されたデータ構造体である。   The printer driver 30 includes a UI driver 38, a drawing driver 39, and a notification module 25. The UI driver 38 includes a print setting display unit 21 and a notification module activation unit 22. The print setting display unit 21 of the UI driver 38 displays a print setting screen (sometimes called a print dialog) on the display 19 when the user inputs a document print operation to the application 31. The user can set “monochrome / color”, “double-sided”, “combining”, “bookbinding”, “magnification”, and the number of copies on the print setting screen. The print settings are stored in a data structure (data table) called a DEVMODE structure (hereinafter simply referred to as DEVMODE). DEVMODE is a data structure in which member variables for the UI driver 38 to set print conditions in common for various printer drivers 30 operating on the OS are defined.

通知用モジュール起動部22は、通知用モジュール25を起動する。通知用モジュール起動部22は、アプリケーション31からの印刷指示の直後に通知用モジュール25を起動しておく。印刷指示の直後としたのは、EMFスプールにおいてスプールプロセスが開始される前を意図しており、印刷指示の直後でなくてもよい場合がある。しかしながら、スプールプロセスが開始されるタイミングをUIドライバ38が検知できない場合があるため、印刷指示の後、早期のタイミングであることが好ましい。通知用モジュール起動部22はLanguage Monitorの通信部321と通信できる。   The notification module activation unit 22 activates the notification module 25. The notification module activation unit 22 activates the notification module 25 immediately after the print instruction from the application 31. Immediately after the print instruction is intended before the spool process is started in the EMF spool, and may not be immediately after the print instruction. However, since the UI driver 38 may not be able to detect the timing at which the spool process is started, it is preferable that the timing is early after the print instruction. The notification module activation unit 22 can communicate with the communication unit 321 of the Language Monitor.

描画ドライバ39は、描画データ生成部23とドライバ通信部24を有する。描画データ生成部23は、DEVMODEを参照して、アプリケーション31によって作成された印刷対象の文書データから印刷設定を反映した印刷データを作成する。印刷データには描画データ(例えばPDLデータ)と制御データ(例えばPJLの印刷コマンド)が含まれる。   The drawing driver 39 includes a drawing data generation unit 23 and a driver communication unit 24. The drawing data generation unit 23 refers to DEVMODE and creates print data reflecting print settings from the document data to be printed created by the application 31. The print data includes drawing data (for example, PDL data) and control data (for example, a PJL print command).

ドライバ通信部24は、Language Monitor32と通信する。ドライバ通信部24は、描画データ生成部23が作成した印刷データ(又は少なくとも描画データ)をLanguage Monitor32の通信部321へ指示して保持させる。   The driver communication unit 24 communicates with the language monitor 32. The driver communication unit 24 instructs the communication unit 321 of the Language Monitor 32 to hold the print data (or at least drawing data) created by the drawing data generation unit 23.

通知用モジュール25は、通知表示部252とモジュール通信部253を有する。モジュール通信部253は、通信部321と通信することで、Language Monitor32のデータ保持部322が保持していた描画データを取得する。通知表示部252は、描画データを利用してプレビュー表示や課金情報の表示などの対話型画面を表示する(対話型サービスを提供する。)。   The notification module 25 includes a notification display unit 252 and a module communication unit 253. The module communication unit 253 acquires drawing data held by the data holding unit 322 of the Language Monitor 32 by communicating with the communication unit 321. The notification display unit 252 displays an interactive screen such as a preview display or billing information display using drawing data (provides an interactive service).

図15にプレビュー表示画面の一例を示す。プレビュー表示画面には、文書名501、プレビュー502、印刷用紙サイズ503、印刷部数504、カラー/白黒の選択欄505、両面/製本の選択欄506、集約の選択欄507、ソートの選択欄508、パンチの選択欄509、ステープルの選択欄510、拡大ボタン511、印刷ボタン512、及び、キャンセルボタン513等が配置されている。すなわち、プレビュー表示画面は、描画データの作成後も設定可能な印刷設定について選択を受け付けることができる。   FIG. 15 shows an example of a preview display screen. The preview display screen includes a document name 501, a preview 502, a printing paper size 503, the number of copies 504, a color / monochrome selection field 505, a duplex / binding selection field 506, an aggregation selection field 507, a sorting selection field 508, A punch selection field 509, a staple selection field 510, an enlarge button 511, a print button 512, a cancel button 513, and the like are arranged. That is, the preview display screen can accept selection of print settings that can be set even after the drawing data is created.

ユーザーはプレビュー502を目視して印刷結果を確認するだけでなく、拡大ボタン511を押下してプレビュー502を拡大することができる。確認結果が良好であれば、ユーザーは印刷ボタン512を押下し、描画データに満足できなければキャンセルボタン513を押下する。印刷ボタン512が押下された場合、PC100又はクライアント120は印刷を実行し、キャンセルボタン513が押下された場合、PC100又はクライアント120は印刷を中止する(描画データは破棄される)。   The user can not only confirm the print result by visually checking the preview 502 but also can press the enlarge button 511 to enlarge the preview 502. If the confirmation result is good, the user presses the print button 512, and if the user is not satisfied with the drawing data, the user presses the cancel button 513. When the print button 512 is pressed, the PC 100 or the client 120 executes printing, and when the cancel button 513 is pressed, the PC 100 or the client 120 stops printing (drawing data is discarded).

課金情報を表示する場合、通知表示部252は、印刷設定や部数に基づき印刷料金を算出し、プレビュー502の代わりに又はプレビュー502と共に課金情報を表示する。算出規則は例えば以下のように決まっている。
・印刷ページ数Nは、両面は2ページ、A3以上は片面2ページで換算
・単価は白黒がP円、カラーがQ円
したがって、印刷料金=N×P(or Q)×部数
により算出される。
When displaying the accounting information, the notification display unit 252 calculates the printing fee based on the print setting and the number of copies, and displays the accounting information instead of the preview 502 or together with the preview 502. The calculation rule is determined as follows, for example.
・ The number of printed pages N is converted to 2 pages on both sides and 2 pages on one side for A3 and above. ・ The unit price is P yen for black and white and Q yen for color. Therefore, printing fee = N x P (or Q) x number of copies. .

図4に戻り、Language Monitor32はOS10により提供されるが、本実施形態ではプリンタメーカが作成又は改良している。この他、スプーラー35、プリントプロセッサ41、ポートモニター33、及び、ポートドライバー42はOSから提供される。よって、スプーラー35、プリントプロセッサ41、ポートモニター33、及び、ポートドライバー42はOSの一部と捉えることもできる。   Returning to FIG. 4, the Language Monitor 32 is provided by the OS 10, but is created or improved by the printer manufacturer in this embodiment. In addition, the spooler 35, the print processor 41, the port monitor 33, and the port driver 42 are provided from the OS. Therefore, the spooler 35, the print processor 41, the port monitor 33, and the port driver 42 can be regarded as a part of the OS.

Language Monitor32は描画ドライバ39から印刷データを取得する。スプーラー35は、印刷データをスプール(一時的に保存)するモジュールだが、本実施例ではドライバ通信部24と通信部321が通信してLanguage Monitor32に保持させる。また、プリントプロセッサ41は主にEMFスプールにおいてアプリケーションの代わりに印刷に必要な処理を行う。   The Language Monitor 32 acquires print data from the drawing driver 39. The spooler 35 is a module that spools (temporarily saves) print data. In this embodiment, the driver communication unit 24 and the communication unit 321 communicate with each other and are stored in the language monitor 32. The print processor 41 performs processing necessary for printing mainly in the EMF spool instead of the application.

Language Monitor32は通信部321とデータ保持部322を有している。通信部321は、ドライバ通信部24と通信することで、描画データを取得してデータ保持部322に記憶する。また、モジュール通信部253と通信してデータ保持部322の描画データを通知用モジュール25に送出する。ポートモニター33は通信プロトコルに基づく処理を行い、ポートドライバー42に印刷データを送信する。ポートドライバー42は、プリンタ200とPC100との接続インタフェース(USB,NIC等)を制御して、印刷データをプリンタ200に送信する。   The Language Monitor 32 has a communication unit 321 and a data holding unit 322. The communication unit 321 communicates with the driver communication unit 24 to acquire drawing data and store it in the data holding unit 322. Further, it communicates with the module communication unit 253 and sends the drawing data of the data holding unit 322 to the notification module 25. The port monitor 33 performs processing based on the communication protocol and transmits print data to the port driver 42. The port driver 42 controls a connection interface (USB, NIC, etc.) between the printer 200 and the PC 100 and transmits print data to the printer 200.

〔従来の印刷アーキテクチャ〕
説明のため、従来の印刷アーキテクチャについて説明する。
図5は、RAWスプールにおける、Windows系OSの印刷アーキテクチャの流れを説明する図の一例である。なお、GDI(Graphics Device Interface)34はOS10のモジュールの1つであり、OS10とみなすことができる。GDI34はプリンタ200やディスプレイ19などの表示デバイスの制御に用いられる体系的なAPIの総称である。
(1)ユーザーが、UIドライバ38が提供する印刷設定画面(GUI:Graphical User Interface)によって印刷設定を変更する(すでに登録されている初期値を変更する)。
(2)ユーザーがアプリケーション31に印刷開始指示の操作を行う。
(3)アプリケーション31はUIドライバ38と印刷設定が入っているDEVMODEをやりとりして、ユーザーの印刷設定を受け取る。
(4)アプリケーション31はGDI34に印刷命令とDEVMODEをGDIコールとして伝える。
(5)GDI34はGDIコールをDDIコールに変換して描画ドライバ39に伝える。
(6)描画ドライバ39は、プリンタ200が理解できる言語に変換したRAWデータをスプーラー35に送信する。
(7)スプーラー35は、描画ドライバ39から受け取ったRAWデータをプリンタ200に送信する。
[Conventional printing architecture]
For purposes of explanation, a conventional printing architecture will be described.
FIG. 5 is an example of a diagram for explaining the flow of the print architecture of the Windows OS in the RAW spool. The GDI (Graphics Device Interface) 34 is one of the modules of the OS 10 and can be regarded as the OS 10. GDI 34 is a general term for systematic APIs used for controlling display devices such as the printer 200 and the display 19.
(1) A user changes print settings on a print setting screen (GUI: Graphical User Interface) provided by the UI driver 38 (changes an already registered initial value).
(2) The user operates the application 31 to issue a print start instruction.
(3) The application 31 exchanges DEVMODE containing the print settings with the UI driver 38, and receives the user's print settings.
(4) The application 31 transmits a print command and DEVMODE to the GDI 34 as a GDI call.
(5) The GDI 34 converts the GDI call into a DDI call and transmits it to the drawing driver 39.
(6) The drawing driver 39 transmits the RAW data converted into a language understood by the printer 200 to the spooler 35.
(7) The spooler 35 transmits the RAW data received from the drawing driver 39 to the printer 200.

図6は、図5のWindows系OSの印刷アーキテクチャのシーケンス図の一例である。なお、実際にはGDI34とUIドライバ38、又は、GDI34と描画ドライバ39の間では、不図示の通信が行われているが省略している。GDI34からUIドライバ38へのメッセージはUI系のDDI関数で、描画ドライバ39へのメッセージは描画系DDI関数でそれぞれ通知される。   FIG. 6 is an example of a sequence diagram of the print architecture of the Windows OS in FIG. Actually, communication (not shown) is performed between the GDI 34 and the UI driver 38, or between the GDI 34 and the drawing driver 39, but is omitted. A message from the GDI 34 to the UI driver 38 is notified by a UI DDI function, and a message to the drawing driver 39 is notified by a drawing DDI function.

この図6のS1までにUIドライバ38はユーザーが設定した印刷設定を受け付けており、ユーザーが印刷開始指示を入力するとアプリケーション31がDEVMODEに格納された印刷設定を取得する。   By S1 in FIG. 6, the UI driver 38 has received the print settings set by the user, and when the user inputs a print start instruction, the application 31 acquires the print settings stored in DEVMODE.

S1: アプリケーション31はまず、GDI34に印刷準備開始を指示する。具体的には、アプリケーション31はCreateDC()関数で印刷設定(DEVMODE)を引数にしてGDI34をコールする。   S1: The application 31 first instructs the GDI 34 to start printing preparation. Specifically, the application 31 calls the GDI 34 with the print setting (DEVMODE) as an argument using the CreateDC () function.

S1.1:GDI34はDDIをコールすることで、描画ドライバ39に印刷設定を送出する。CreateDC()の引数でアプリーションがGDI34に渡した印刷設定が、DrvEnablePDEV()の引数に格納され描画ドライバ39に通知される。この後、描画ドライバ39は、ジョブが終了するまで(デバイスコンテキストが消去されるまで)印刷設定を参照することができる。   S1.1: The GDI 34 sends a print setting to the drawing driver 39 by calling DDI. The print settings passed by the application to the GDI 34 with the argument of CreateDC () are stored in the argument of DrvEnablePDEV () and notified to the drawing driver 39. Thereafter, the drawing driver 39 can refer to the print setting until the job is completed (until the device context is deleted).

S2:GDI34が印刷準備完了をアプリケーション31に通知すると、アプリケーション31はGDI34に印刷開始を指示する。具体的には、アプリケーション31はStartDoc()関数でDocINFOなどを引数にしてGDI34をコールする。   S2: When the GDI 34 notifies the application 31 that the print preparation is complete, the application 31 instructs the GDI 34 to start printing. Specifically, the application 31 calls the GDI 34 using DocINFO or the like as an argument with the StartDoc () function.

S2.1:GDI34はUIドライバ38に印刷開始を指示する。具体的にはDrvDocumentEvent()DOCUMENTEVENT_STARTDOCPRE()をUIドライバ38に送出する。   S2.1: The GDI 34 instructs the UI driver 38 to start printing. Specifically, DrvDocumentEvent () DOCUMENTEVENT_STARTDOCPRE () is sent to the UI driver 38.

S2.2:GDI34は描画ドライバ39に印刷開始を指示する。具体的にはDrvStartDoc()関数を描画ドライバ39に送出する。OSは、CreateDC()関数により所定のタイミングでJobIDを生成している。GDI34はDrvStartDoc()関数の引数にJobIDを設定するので、描画ドライバ39はJobIDを参照できるようになる。   S2.2: The GDI 34 instructs the drawing driver 39 to start printing. Specifically, the DrvStartDoc () function is sent to the drawing driver 39. The OS generates a JobID at a predetermined timing using the CreateDC () function. Since the GDI 34 sets JobID as an argument of the DrvStartDoc () function, the drawing driver 39 can refer to the JobID.

S2.3: 同様にGDI34はUIドライバ38に印刷開始を指示する。具体的にはDrvDocumentEvent()DOCUMENTEVENT_STARTDOCPOST()をUIドライバ38に送出する。GDI34はこの関数の引数にJobIDを設定するので、UIドライバ38はJobIDを参照できるようになる。   S2.3: Similarly, the GDI 34 instructs the UI driver 38 to start printing. Specifically, DrvDocumentEvent () DOCUMENTEVENT_STARTDOCPOST () is sent to the UI driver 38. Since the GDI 34 sets JobID as an argument of this function, the UI driver 38 can refer to the JobID.

S3: GDI34が印刷開始完了をアプリケーション31に通知すると、アプリケーション31はページ単位の処理を繰り返す。まず、アプリケーション31はGDI34に新しいページの印刷データを受け入れるよう指示する。具体的には、アプリケーション31はStartPage()をGDI34に送出する。   S3: When the GDI 34 notifies the application 31 of the completion of printing start, the application 31 repeats the processing for each page. First, the application 31 instructs the GDI 34 to accept print data for a new page. Specifically, the application 31 sends StartPage () to the GDI 34.

S3.1:GDI34はDrvStartPage()を描画ドライバ39に送出する。   S3.1: The GDI 34 sends DrvStartPage () to the drawing driver 39.

S4:アプリケーション31は、描画ドライバ39から応答を取得すると、描画関数(文書データ)をGDI34に送出する。   S4: Upon receiving a response from the drawing driver 39, the application 31 sends a drawing function (document data) to the GDI 34.

S4.1:GDI34は、描画関数(文書データ)を描画ドライバ39に送出する。描画ドライバ39は印刷設定に従って文書データを印刷データに変換する。   S4.1: The GDI 34 sends a drawing function (document data) to the drawing driver 39. The drawing driver 39 converts the document data into print data according to the print settings.

S5: GDI34が1ページ分の描画処理の完了をアプリケーション31に通知すると、アプリケーション31は1ページ分の書き込みが終了したことをGDI34に通知する。具体的には、アプリケーション31はEndPage()をGDI34に送出する。   S5: When the GDI 34 notifies the application 31 of the completion of the drawing process for one page, the application 31 notifies the GDI 34 that the writing of one page has been completed. Specifically, the application 31 sends EndPage () to the GDI 34.

S5.1:GDI34は描画ドライバ39に1ページ分の書き込みが終了したことを通知する。具体的には、GDI34はDrvSendPage()を描画ドライバ39に送出する。   S5.1: The GDI 34 notifies the drawing driver 39 that the writing of one page has been completed. Specifically, the GDI 34 sends DrvSendPage () to the drawing driver 39.

S6:アプリケーション31は、全てのページの描画処理が終了すると、印刷ジョブの終了をGDI34に通知する。具体的には、アプリケーション31はEndDoc()をGDI34に送出する。   S6: When the drawing process for all pages is completed, the application 31 notifies the GDI 34 of the end of the print job. Specifically, the application 31 sends EndDoc () to the GDI 34.

S6.1:GDI34は印刷ジョブの終了を描画ドライバ39に送出する。具体的には、GDI34はEndDoc()を描画ドライバ39に送出する。   S6.1: The GDI 34 sends the end of the print job to the drawing driver 39. Specifically, the GDI 34 sends EndDoc () to the drawing driver 39.

S6.2: GDI34は印刷ジョブの終了をUIドライバ38に送出する。具体的には、GDI34はDrvDocumentEvent()DOCUMENTEVENT_ENDDOCPOST()をUIドライバ38に送出する。
この後、デバイスコンテキストが消去され、描画ドライバ39は印刷設定を参照できなくなる(描画ドライバにDrvDisablePDEV()のDDIコールが通知される)。
S6.2: The GDI 34 sends the end of the print job to the UI driver 38. Specifically, the GDI 34 sends DrvDocumentEvent () DOCUMENTEVENT_ENDDOCPOST () to the UI driver 38.
Thereafter, the device context is deleted, and the drawing driver 39 cannot refer to the print setting (the DDI call of DrvDisablePDEV () is notified to the drawing driver).

図7は、EMFスプールにおける、Windows系OSの印刷アーキテクチャの流れを説明する図の一例である。
(1)ユーザーが、UIドライバ38が提供する印刷設定画面(GUI)によって印刷設定を変更する(すでに登録されている初期値を変更する)。
(2)ユーザーがアプリケーション31に印刷開始指示の操作を行う。
(3)アプリケーション31はUIドライバ38と印刷設定が入っているDEVMODEをやりとりして、ユーザーの印刷設定を受け取る。
(4)アプリケーション31はGDI34に印刷命令をGDIコールとして通知する。
(5)GDI34はEMFデータをスプールデータとしてスプーラー35に渡す。
(6)EMFデータが一通りスプールされると、スプーラー35がプリントプロセッサ41にデスプールすることを伝え、スプールデータを渡す。
(7)プリントプロセッサ41は、スプールデータをページごとに編集することで、集約・逆順・製本の機能を実現し、編集した内容をGDI34にGDIコールとして通知する。
(8)GDI34はGDIコールをDDIコールに変換して描画ドライバ39に通知する。
(9)描画ドライバ39は、プリンタ200が理解できる言語に変換したRAWデータをスプーラー35に送出する。
(10)スプーラー35は、描画ドライバ39から受け取ったRAWデータをプリンタ200に送信する。
FIG. 7 is an example of a diagram for explaining the flow of the print architecture of the Windows OS in the EMF spool.
(1) The user changes the print setting on the print setting screen (GUI) provided by the UI driver 38 (changes the already registered initial value).
(2) The user operates the application 31 to issue a print start instruction.
(3) The application 31 exchanges DEVMODE containing the print settings with the UI driver 38, and receives the user's print settings.
(4) The application 31 notifies the GDI 34 of a print command as a GDI call.
(5) The GDI 34 passes the EMF data to the spooler 35 as spool data.
(6) When the EMF data is spooled, the spooler 35 informs the print processor 41 that it is despooled and passes the spool data.
(7) The print processor 41 edits the spool data for each page to realize the functions of aggregation, reverse order, and bookbinding, and notifies the edited content to the GDI 34 as a GDI call.
(8) The GDI 34 converts the GDI call into a DDI call and notifies the drawing driver 39 of it.
(9) The drawing driver 39 sends the RAW data converted into a language understood by the printer 200 to the spooler 35.
(10) The spooler 35 transmits the RAW data received from the drawing driver 39 to the printer 200.

図8は、図7のWindows系OSの印刷アーキテクチャのシーケンス図の一例である。なお、実際にはGDI34とUIドライバ38、又は、GDI34と描画ドライバ39の間では、不図示の通信が行われているが省略している。また、EMFスプールでは、アプリケーションプロセスとスプールプロセスが分かれている。   FIG. 8 is an example of a sequence diagram of the print architecture of the Windows OS in FIG. Actually, communication (not shown) is performed between the GDI 34 and the UI driver 38, or between the GDI 34 and the drawing driver 39, but is omitted. In the EMF spool, the application process and the spool process are separated.

なお、この図8のS1までにUIドライバ38はユーザーが設定した印刷設定を受け付けており、ユーザーが印刷開始指示を入力するとアプリケーション31がDEVMODEに格納された印刷設定を取得する。   Note that the UI driver 38 has received print settings set by the user by S1 in FIG. 8, and when the user inputs a print start instruction, the application 31 acquires the print settings stored in DEVMODE.

S1: アプリケーション31はまず、GDI34に印刷準備開始を指示する。具体的には、アプリケーション31はCreateDC()関数で印刷設定を引数にしてGDI34をコールする。   S1: The application 31 first instructs the GDI 34 to start printing preparation. Specifically, the application 31 calls the GDI 34 with the print setting as an argument using the CreateDC () function.

S1.1:GDI34はAPIに対応するDDIをコールすることで、描画ドライバ39に印刷設定を送出する。CreateDC()の引数でアプリーションがGDI34に渡した印刷設定が、DrvEnablePDEV()の引数に格納され描画ドライバ39に通知される。この後、描画ドライバ39は、ジョブが終了するまで(デバイスコンテキストが消去されるまで)印刷設定を参照することができる。   S1.1: The GDI 34 sends a print setting to the drawing driver 39 by calling a DDI corresponding to the API. The print settings passed by the application to the GDI 34 with the argument of CreateDC () are stored in the argument of DrvEnablePDEV () and notified to the drawing driver 39. Thereafter, the drawing driver 39 can refer to the print setting until the job is completed (until the device context is deleted).

S2:GDI34が印刷準備完了をアプリケーション31に通知すると、アプリケーション31はGDI34に印刷開始を指示する。具体的には、アプリケーション31はStartDoc()関数でDocINFOなどを引数にしてGDI34をコールする。   S2: When the GDI 34 notifies the application 31 that the print preparation is complete, the application 31 instructs the GDI 34 to start printing. Specifically, the application 31 calls the GDI 34 using DocINFO or the like as an argument with the StartDoc () function.

S2.1:GDI34はUIドライバ38に印刷開始を指示する。具体的にはDrvDocumentEvent()DOCUMENTEVENT_STARTDOC()をUIドライバ38に送出する。   S2.1: The GDI 34 instructs the UI driver 38 to start printing. Specifically, DrvDocumentEvent () DOCUMENTEVENT_STARTDOC () is sent to the UI driver 38.

S2.2: GDI34はUIドライバ38にJobIDを送出する。具体的にはDrvDocumentEvent()DOCUMENT_STARTDOCPOST()をUIドライバ38に送出する。GDI34はこの関数の引数にJobIDを設定するので、UIドライバ38はJobIDを参照できるようになる。この時点では描画ドライバ39はJobIDを取得していない。   S2.2: The GDI 34 sends a JobID to the UI driver 38. Specifically, DrvDocumentEvent () DOCUMENT_STARTDOCPOST () is sent to the UI driver 38. Since the GDI 34 sets JobID as an argument of this function, the UI driver 38 can refer to the JobID. At this point, the drawing driver 39 has not acquired a JobID.

S3: GDI34が印刷開始完了をアプリケーション31に通知すると、アプリケーション31はページ単位の処理を繰り返す。まず、アプリケーション31はGDI34に新しいページの印刷データを受け入れるよう指示する。具体的には、アプリケーション31はStartPage()をGDI34に送出する。StartPage()によりスプールプロセスが開始される。   S3: When the GDI 34 notifies the application 31 of the completion of printing start, the application 31 repeats the processing for each page. First, the application 31 instructs the GDI 34 to accept print data for a new page. Specifically, the application 31 sends StartPage () to the GDI 34. The spool process is started by StartPage ().

S4:アプリケーション31は、描画関数(文書データ)をGDI34に送出する。GDI34は、印刷設定に基づきEMFデータを作成する。   S4: The application 31 sends a drawing function (document data) to the GDI 34. The GDI 34 creates EMF data based on the print settings.

S5:アプリケーション31は1ページ分の書き込みが終了したことをGDI34に通知する。具体的には、アプリケーション31はEndPage()をGDI34に送出する。   S5: The application 31 notifies the GDI 34 that writing for one page has been completed. Specifically, the application 31 sends EndPage () to the GDI 34.

S6:アプリケーション31は、全てのページの描画処理が終了すると、印刷ジョブの終了をGDI34に通知する。具体的には、アプリケーション31はEndDoc()をGDI34に送出する。   S6: When the drawing process for all pages is completed, the application 31 notifies the GDI 34 of the end of the print job. Specifically, the application 31 sends EndDoc () to the GDI 34.

このように、アプリケーション31のプロセスが終了すると、印刷が完了していなくてもアプリケーション31は印刷を終了したように見える。この後、スプールプロセスで再度印刷処理がかかり、ここでEMFデータからRAWデータへ変換される。   As described above, when the process of the application 31 is finished, the application 31 seems to have finished printing even if printing is not completed. Thereafter, the printing process is performed again in the spool process, where EMF data is converted to RAW data.

OS10はアプリケーション31とGDI34の通信を監視して、所定のタイミングになると(例えばStartPage()の後)、スプーラー35にスプールプロセスを開始させる。   The OS 10 monitors the communication between the application 31 and the GDI 34, and at a predetermined timing (for example, after StartPage ()), causes the spooler 35 to start the spool process.

S7:スプーラー35は、プリントプロセッサ41に印刷準備開始を指示する。   S7: The spooler 35 instructs the print processor 41 to start printing preparation.

S7.1:プリントプロセッサ41はGDI34に印刷準備開始を指示する。   S7.1: The print processor 41 instructs the GDI 34 to start printing preparation.

S7.1.1:GDI34は描画ドライバ39に印刷設定を送出する。具体的には、CreateDC()の引数でアプリーションがGDI34に渡した印刷設定が、DrvEnablePDEV()の引数に格納され描画ドライバ39に通知される。この後、描画ドライバ39は、ジョブが終了するまで(デバイスコンテキストが消去されるまで)印刷設定を参照することができる。   S7.1.1: The GDI 34 sends print settings to the drawing driver 39. Specifically, the print setting that the application has passed to the GDI 34 with the argument of CreateDC () is stored in the argument of DrvEnablePDEV () and notified to the drawing driver 39. Thereafter, the drawing driver 39 can refer to the print setting until the job is completed (until the device context is deleted).

S7.1.2:GDI34は描画ドライバ39に印刷開始を指示する。具体的にはDrvStartDoc()関数を描画ドライバ39に送出する。OSは、CreateDC()関数により所定のタイミングでJobIDを生成している。GDI34はDrvStartDoc()関数の引数にJobIDを設定するので、描画ドライバ39はJobIDを参照できるようになる。   S7.1.2: The GDI 34 instructs the drawing driver 39 to start printing. Specifically, the DrvStartDoc () function is sent to the drawing driver 39. The OS generates a JobID at a predetermined timing using the CreateDC () function. Since the GDI 34 sets JobID as an argument of the DrvStartDoc () function, the drawing driver 39 can refer to the JobID.

S7.2:以降、プリントプロセッサ41はページ単位の処理を繰り返す。まず、プリントプロセッサ41はGDI34に新しいページの印刷データを受け入れるよう指示する。具体的には、プリントプロセッサ41はGdiStartPageEMF()をGDI34に送出する。   S7.2: Thereafter, the print processor 41 repeats the processing for each page. First, the print processor 41 instructs the GDI 34 to accept print data for a new page. Specifically, the print processor 41 sends GdiStartPageEMF () to the GDI 34.

S7.2.1:GDI34はDrvStartPage()を描画ドライバ39に送出する。   S7.2.1: The GDI 34 sends DrvStartPage () to the drawing driver 39.

S7.2.2:GDI34は、描画関数(文書データ)を描画ドライバ39に送出する。描画ドライバ39は印刷設定に従って文書データを印刷データに変換する。   S7.2.2: The GDI 34 sends a drawing function (document data) to the drawing driver 39. The drawing driver 39 converts the document data into print data according to the print settings.

S7.2.3:GDI34は描画ドライバ39に1ページ分の書き込みが終了したことを通知する。具体的には、GDI34はDrvSendPage()を描画ドライバ39に送出する。以降は、ページ単位の繰り返しになる。   S7.2.3: The GDI 34 notifies the drawing driver 39 that the writing of one page has been completed. Specifically, the GDI 34 sends DrvSendPage () to the drawing driver 39. Thereafter, it is repeated in units of pages.

〔本実施形態のWindows系OSの印刷手順〕
印刷設定には、ユーザーが上記の対話型サービスを利用するか否かが設定されている。本実施例では、対話型サービスを利用する設定になっている。また、印刷設定には、印刷開始後に印刷設定の変更を受け付ける印刷ダイアログを表示するか否かが設定されている。この印刷ダイアログにより、PC100やクライアントPC100は、ユーザーIDとパスワードの入力を要求したり、FAXの宛先(FAX番号)の入力を要求することができる。本実施例ではこの印刷ダイアログについて簡単に説明するに留める。
[Printing procedure of Windows OS of this embodiment]
In the print setting, whether or not the user uses the interactive service is set. In this embodiment, settings are made to use an interactive service. In the print settings, whether or not to display a print dialog for accepting the change of the print settings after the start of printing is set. With this print dialog, the PC 100 and the client PC 100 can request input of a user ID and password, or request input of a FAX destination (FAX number). In this embodiment, only a brief description of this print dialog will be given.

・RAWスプール
図9は、RAWスプールのWindows系OSの印刷アーキテクチャのシーケンス図の一例である。なお、実際にはGDI34とUIドライバ38、又は、GDI34と描画ドライバ39の間では、不図示の通信が行われているが省略している。GDI34からUIドライバ38へのメッセージはUI系のDDI関数で、描画ドライバ39へのメッセージは描画系DDI関数でそれぞれ通知される。
RAW Spool FIG. 9 is an example of a sequence diagram of the print architecture of the RAW spool Windows OS. Actually, communication (not shown) is performed between the GDI 34 and the UI driver 38, or between the GDI 34 and the drawing driver 39, but is omitted. A message from the GDI 34 to the UI driver 38 is notified by a UI DDI function, and a message to the drawing driver 39 is notified by a drawing DDI function.

図9のS1までにUIドライバ38はユーザーが設定した印刷設定を受け付けており、ユーザーが印刷開始指示を入力するとアプリケーション31がDEVMODEに格納された印刷設定を取得する。   The UI driver 38 has received the print settings set by the user by S1 in FIG. 9, and when the user inputs a print start instruction, the application 31 acquires the print settings stored in DEVMODE.

S1: アプリケーション31はまず、GDI34に印刷準備開始を指示する。具体的には、アプリケーション31はCreateDC()関数で印刷設定を引数にしてGDI34をコールする。   S1: The application 31 first instructs the GDI 34 to start printing preparation. Specifically, the application 31 calls the GDI 34 with the print setting as an argument using the CreateDC () function.

S1.1:GDI34はAPIに対応するDDIをコールすることで、描画ドライバ39に印刷設定を送出する。CreateDC()の引数でアプリーションがGDI34に渡した印刷設定が、DrvEnablePDEV()の引数に格納され描画ドライバ39に通知される。この後、描画ドライバ39は、ジョブが終了するまで(デバイスコンテキストが消去されるまで)印刷設定を参照することができる。   S1.1: The GDI 34 sends a print setting to the drawing driver 39 by calling a DDI corresponding to the API. The print settings passed by the application to the GDI 34 with the argument of CreateDC () are stored in the argument of DrvEnablePDEV () and notified to the drawing driver 39. Thereafter, the drawing driver 39 can refer to the print setting until the job is completed (until the device context is deleted).

S2:GDI34が印刷準備完了をアプリケーション31に通知すると、アプリケーション31はGDI34に印刷開始を指示する。具体的には、アプリケーション31はStartDoc()関数でDocINFOなどを引数にしてGDI34をコールする。   S2: When the GDI 34 notifies the application 31 that the print preparation is complete, the application 31 instructs the GDI 34 to start printing. Specifically, the application 31 calls the GDI 34 using DocINFO or the like as an argument with the StartDoc () function.

S2.1:GDI34はUIドライバ38に印刷開始を指示する。具体的にはDrvDocumentEvent()DOCUMENTEVENT_STARTDOCPRE()をUIドライバ38に送出する。   S2.1: The GDI 34 instructs the UI driver 38 to start printing. Specifically, DrvDocumentEvent () DOCUMENTEVENT_STARTDOCPRE () is sent to the UI driver 38.

S2.2:GDI34は描画ドライバ39に印刷開始を指示する。具体的にはDrvStartDoc()関数を描画ドライバ39に送出する。OS10は、CreateDC()関数により所定のタイミングでJobIDを生成している。GDI34はDrvStartDoc()関数の引数にJobIDを設定するので、描画ドライバ39はJobIDを参照できるようになる。   S2.2: The GDI 34 instructs the drawing driver 39 to start printing. Specifically, the DrvStartDoc () function is sent to the drawing driver 39. The OS 10 generates a JobID at a predetermined timing using the CreateDC () function. Since the GDI 34 sets JobID as an argument of the DrvStartDoc () function, the drawing driver 39 can refer to the JobID.

S2.3: 同様にGDI34はUIドライバ38に印刷開始を指示する。具体的にはDrvDocumentEvent()DOCUMENTEVENT_STARTDOCPOST()をUIドライバ38に送出する。GDI34はこの関数のIN引数にJobIDを設定するので、UIドライバ38はJobIDを参照できるようになる。   S2.3: Similarly, the GDI 34 instructs the UI driver 38 to start printing. Specifically, DrvDocumentEvent () DOCUMENTEVENT_STARTDOCPOST () is sent to the UI driver 38. Since the GDI 34 sets the JobID in the IN argument of this function, the UI driver 38 can refer to the JobID.

S2.3.1:UIドライバ38は、GDI34からの呼び出しの直後、通知表示部252を起動する。通知表示部252の処理手順については図11のフローチャート図に示す。また、UIドライバ38はこのとき、DrvDocumentEvent(DOCUMENTEVENT_STARTDOCPOST)のIN引数で渡されたJobIDを、通知表示部252の起動と共に通知する。通知表示部252はJobIDによりLanguage Monitor32の描画データを識別する。   S2.3.1: The UI driver 38 activates the notification display unit 252 immediately after calling from the GDI 34. The processing procedure of the notification display unit 252 is shown in the flowchart of FIG. At this time, the UI driver 38 notifies the JobID passed in the IN argument of DrvDocumentEvent (DOCUMENTEVENT_STARTDOCPOST) together with the activation of the notification display unit 252. The notification display unit 252 identifies the drawing data of the Language Monitor 32 by JobID.

このように、印刷開始により動作するUIドライバ38が通知表示部252を起動することで、印刷開始の直後に通知表示部252を起動できる。   In this way, the UI display 38 that operates when printing starts activates the notification display unit 252, so that the notification display unit 252 can be activated immediately after printing starts.

ただし、この時点では通知表示部252はまだ、対話型画面を表示しない。後述するように通知表示部252は、モジュール通信部253が定期的にLanguage Monitorの通信部321と通信をして、JobIDに紐づいた描画データの生成が完了しているかどうかを確認する。   However, at this time, the notification display unit 252 does not display the interactive screen yet. As will be described later, the notification display unit 252 confirms whether or not the module communication unit 253 periodically communicates with the communication unit 321 of the Language Monitor to generate the drawing data associated with the JobID.

S2.3.2: 次に、UIドライバ38は、印刷設定に印刷開始指示後の印刷設定の変更を受け付ける設定があるか否かを判定するため印刷設定を参照するが、描画ドライバ39と直接通信できないので、GDI34にExtEscape()を送出する。   S2.3.2: Next, the UI driver 38 refers to the print setting to determine whether the print setting has a setting for accepting the change of the print setting after the print start instruction, but cannot directly communicate with the drawing driver 39. Therefore, ExtEscape () is sent to the GDI 34.

S2.3.2.1:GDI34は描画ドライバ39にDrvEscape()を通知する。描画ドライバ39はGDI34を介して保持している印刷設定をUIドライバ38に送出する。   S2.3.2.1: The GDI 34 notifies the drawing driver 39 of DrvEscape (). The drawing driver 39 sends the print settings held through the GDI 34 to the UI driver 38.

S2.4:ExtEscape()の処理によりUIドライバ38は、印刷設定を取得できたことになる。印刷設定に、印刷開始指示後(印刷中)に印刷設定を変更するための印刷ダイアログの表示指示が設定されている場合、UIドライバ38は印刷設定の変更を受け付けるためのポップアップ(ダイアログ)を表示し、ユーザーによる印刷設定の変更を受け付ける。   In S2.4: ExtEscape () processing, the UI driver 38 has acquired the print settings. When a print dialog display instruction for changing the print setting is set after the print start instruction (during printing), the UI driver 38 displays a pop-up (dialog) for accepting the change of the print setting. Then, the change of the print setting by the user is accepted.

通知表示部252はプレビューなどを表示してユーザーの操作を受け付けるプログラムであるが、この段階では描画データが作成されていない。このため、起動した通知表示部252は、S2.3.1.1のようにLanguage Monitor32に描画データが作成された否かを周期的に問い合わせる(ポーリング)。   The notification display unit 252 is a program that displays a preview or the like and accepts a user operation, but drawing data is not created at this stage. Therefore, the activated notification display unit 252 periodically inquires whether or not drawing data has been created in the Language Monitor 32 as in S2.3.1.1 (polling).

S2.3.3:次に、UIドライバ38はSendRecvBidiDataFromPort()::setで、JobIDをキーとし、ユーザーが変更した印刷設定をLanguage Monitor32に送出する(「::」は"DOCUMENTEVENT"を省略したことを意味する)。これにより、Language Monitor32はJobIDと印刷設定を対応づけて保持することができる。この時、ユーザーがポップアップ(ダイアログ)を"OK"又は"キャンセル"どちらで閉じたのかという内容も送出される。   S2.3.3: Next, the UI driver 38 sends SendRecvBidiDataFromPort () :: set with the JobID as a key and the print setting changed by the user to the Language Monitor 32 (“::” indicates that “DOCUMENTEVENT” is omitted) means). Thereby, the Language Monitor 32 can hold the JobID and the print setting in association with each other. At this time, the contents indicating whether the user closed the popup (dialog) by “OK” or “Cancel” is also transmitted.

S3: GDI34が印刷開始完了をアプリケーション31に通知すると、アプリケーション31はページ単位の処理を繰り返す。まず、アプリケーション31はGDI34に新しいページの印刷データを受け入れるよう指示する。具体的には、アプリケーション31はStartPage()をGDI34に送出する。   S3: When the GDI 34 notifies the application 31 of the completion of printing start, the application 31 repeats the processing for each page. First, the application 31 instructs the GDI 34 to accept print data for a new page. Specifically, the application 31 sends StartPage () to the GDI 34.

S3.1:GDI34はDrvStartPage()を描画ドライバ39に送出する。   S3.1: The GDI 34 sends DrvStartPage () to the drawing driver 39.

S3.1.1: 描画ドライバ39は、一番最初のDrvStartPage()のDDIコールを受けた時のみ、保持していたJobIDをキーとしてSendRecvBidiDataFromPort()::getでLanguage Monitor32に印刷設定を要求する。ここで、Language Monitor32には、S2.3.3でユーザーが"OK"又は"キャンセル"のどちらで閉じたかの情報を保持している。描画ドライバ39は、"OK"でユーザーが閉じていれば、印刷設定に基づき印刷データを生成する。"キャンセル"で閉じていれば、プリンタ200やFAX装置にデータを送信しないようにする。   S3.1.1: The drawing driver 39 requests print setting from the Language Monitor 32 with SendRecvBidiDataFromPort () :: get using the held JobID as a key only when the DDI call of the first DrvStartPage () is received. Here, the Language Monitor 32 holds information indicating whether the user closed with “OK” or “Cancel” in S2.3.3. If the user is closed with “OK”, the drawing driver 39 generates print data based on the print settings. If it is closed by “Cancel”, data is not transmitted to the printer 200 or the FAX apparatus.

そして、描画ドライバ39は、JobIDをキーにして、印刷データ(描画データが含まれる)の一部をLanguage Monitor32に設定する。   Then, the drawing driver 39 sets a part of print data (including drawing data) in the Language Monitor 32 using JobID as a key.

S4:アプリケーション31は、描画ドライバ39から応答を取得すると、描画関数(文書データ)をGDI34に送出する。   S4: Upon receiving a response from the drawing driver 39, the application 31 sends a drawing function (document data) to the GDI 34.

S4.1:GDI34は、描画関数(文書データ)を描画ドライバ39に送出する。描画ドライバ39は印刷設定に従って文書データを印刷データに変換する。   S4.1: The GDI 34 sends a drawing function (document data) to the drawing driver 39. The drawing driver 39 converts the document data into print data according to the print settings.

S4.2:描画ドライバ39は、JobIDをキーにして、印刷データ(描画データが含まれる)を随時、Language Monitor32に設定する。   S4.2: The drawing driver 39 sets print data (including drawing data) in the Language Monitor 32 as needed using JobID as a key.

S5: GDI34が1ページ分の描画処理の完了をアプリケーション31に通知すると、アプリケーション31は1ページ分の書き込みが終了したことをGDI34に通知する。具体的には、アプリケーション31はEndPage()をGDI34に送出する。   S5: When the GDI 34 notifies the application 31 of the completion of the drawing process for one page, the application 31 notifies the GDI 34 that the writing of one page has been completed. Specifically, the application 31 sends EndPage () to the GDI 34.

S5.1:GDI34は描画ドライバ39に1ページ分の書き込みが終了したことを通知する。具体的には、GDI34はDrvSendPage()を描画ドライバ39に送出する。   S5.1: The GDI 34 notifies the drawing driver 39 that the writing of one page has been completed. Specifically, the GDI 34 sends DrvSendPage () to the drawing driver 39.

S5.2:描画ドライバ39は、JobIDをキーにして、印刷データ(描画データが含まれる)の一部をLanguage Monitor32に設定する。   S5.2: The drawing driver 39 sets a part of print data (including drawing data) in the Language Monitor 32 using JobID as a key.

S6:アプリケーション31は、全てのページの描画処理が終了すると、印刷ジョブの終了をGDI34に通知する。具体的には、アプリケーション31はEndDoc()をGDI34に送出する。   S6: When the drawing process for all pages is completed, the application 31 notifies the GDI 34 of the end of the print job. Specifically, the application 31 sends EndDoc () to the GDI 34.

S6.1:GDI34はUIドライバ38に描画の終了を通知する(具体的にはDOCUMENTEVENT_ENDDOC_PREを通知する)。   S6.1: The GDI 34 notifies the UI driver 38 of the end of drawing (specifically, DOCUMENTEVENT_ENDDOC_PRE).

S6.1.1:UIドライバ38は描画が終わったジョブのJobIDを知るためExtEscape()関数を呼び出す。   S6.1.1: The UI driver 38 calls the ExtEscape () function to know the JobID of the job that has finished drawing.

S6.1.2:UIドライバは、GDI34を経由して描画ドライバ39からJobIDを取得する。   S6.1.2: The UI driver obtains a JobID from the drawing driver 39 via the GDI 34.

S6.1.3:UIドライバ38はSendRecvBidiDataFromPort()をLanguage Monitorに送信して、JobIDと共に描画データの作成完了を設定する。   S6.1.3: The UI driver 38 sends SendRecvBidiDataFromPort () to the Language Monitor, and sets the creation completion of drawing data together with the JobID.

S2.3.1.1:この後、アプリケーション側の処理は従来と同様である。これに対し、通知表示部252(通知用モジュールのモジュール通信部)はLanguage Monitor32に周期的に問い合わせることで、描画データの設定が完了したことを検出する。   S2.3.1.1: After this, the processing on the application side is the same as before. On the other hand, the notification display unit 252 (the module communication unit of the notification module) periodically inquires the Language Monitor 32 to detect that the setting of the drawing data has been completed.

S2.3.1.2: Language Monitor32から描画データの設定が完了したという応答を取得すると、通知表示部252は、JobIDをキーにして描画データをLanguage Monitor32から取得して、印刷プレビューを含む対話型画面を表示する。ユーザーは印刷プレビューを見て印刷のOK(継続)又はキャンセルを選択する。
S2.3.1.3:通知表示部252は、JobIDをキーにして、対話型画面を表示したということと、OK又はキャンセルの選択結果をLanguage Monitor32に設定する。
S2.3.1.4: ユーザーが対話型画面をOKで閉じると、通知表示部252は表示を終了する。これにより「OKで終了した」という情報が通知用モジュールからLanguage Monitor32に渡され、それを描画ドライバが取得し、描画データをプリンタへ送信する処理を開始する。
S2.3.1.2: Upon receiving a response that the drawing data setting is completed from the Language Monitor 32, the notification display unit 252 acquires drawing data from the Language Monitor 32 using the JobID as a key, and an interactive screen including a print preview. Is displayed. The user views the print preview and selects OK (continuation) or cancel of printing.
S2.3.1.3: The notification display unit 252 sets in the Language Monitor 32 that the interactive screen is displayed using the JobID as a key and the selection result of OK or cancellation is displayed.
S2.3.1.4: When the user closes the interactive screen with OK, the notification display unit 252 ends the display. As a result, the information “finished with OK” is passed from the notification module to the language monitor 32, and the drawing driver acquires it and starts the process of sending the drawing data to the printer.

・EMFスプール
図10は、EMFスプールのWindows系OSの印刷アーキテクチャのシーケンス図の一例である。なお、実際にはGDI34とUIドライバ38、又は、GDI34と描画ドライバ39の間では、不図示の通信が行われているが省略している。
EMF spool FIG. 10 is an example of a sequence diagram of the print architecture of the Windows OS of the EMF spool. Actually, communication (not shown) is performed between the GDI 34 and the UI driver 38, or between the GDI 34 and the drawing driver 39, but is omitted.

図10のS1までにUIドライバ38はユーザーが設定した送信設定を受け付けており、ユーザーが送信開始指示を入力するとアプリケーション31がDEVMODEに格納された送信設定を取得する。   The UI driver 38 has received the transmission setting set by the user by S1 in FIG. 10, and when the user inputs a transmission start instruction, the application 31 acquires the transmission setting stored in DEVMODE.

S1: アプリケーション31は、まず、GDI34に印刷準備開始を指示する。具体的には、アプリケーション31はCreateDC()関数で印刷設定を引数にしてGDI34をコールする。   S1: The application 31 first instructs the GDI 34 to start printing preparation. Specifically, the application 31 calls the GDI 34 with the print setting as an argument using the CreateDC () function.

S1.1:GDI34はAPIに対応するDDIをコールすることで、描画ドライバ39に印刷設定を送出する。CreateDC()の引数でアプリーションがGDI34に渡した印刷設定が、DrvEnablePDEV()の引数に格納され描画ドライバ39に通知される。この後、描画ドライバ39は、ジョブが終了するまで(デバイスコンテキストが消去されるまで)印刷設定を参照することができる。   S1.1: The GDI 34 sends a print setting to the drawing driver 39 by calling a DDI corresponding to the API. The print settings passed by the application to the GDI 34 with the argument of CreateDC () are stored in the argument of DrvEnablePDEV () and notified to the drawing driver 39. Thereafter, the drawing driver 39 can refer to the print setting until the job is completed (until the device context is deleted).

S2:GDI34が印刷準備完了をアプリケーション31に通知すると、アプリケーション31はGDI34に印刷開始を指示する。具体的には、アプリケーション31はStartDoc()関数でDocINFOなどを引数にしてGDI34をコールする。   S2: When the GDI 34 notifies the application 31 that the print preparation is complete, the application 31 instructs the GDI 34 to start printing. Specifically, the application 31 calls the GDI 34 using DocINFO or the like as an argument with the StartDoc () function.

S2.1:GDI34はUIドライバ38に印刷開始を指示する。具体的にはDrvDocumentEvent()DOCUMENTEVENT_STARTDOC()をUIドライバ38に送出する。   S2.1: The GDI 34 instructs the UI driver 38 to start printing. Specifically, DrvDocumentEvent () DOCUMENTEVENT_STARTDOC () is sent to the UI driver 38.

S2.2: GDI34はUIドライバ38にJobIDを送出する。具体的にはDrvDocumentEvent()DOCUMENTEVENT_STARTDOCPOST()をUIドライバ38に送出する。GDI34はこの関数のIN引数にJobIDを設定するので、UIドライバ38はJobIDを参照できるようになる。この時点では描画ドライバ39はJobIDを取得していない。   S2.2: The GDI 34 sends a JobID to the UI driver 38. Specifically, DrvDocumentEvent () DOCUMENTEVENT_STARTDOCPOST () is sent to the UI driver 38. Since the GDI 34 sets the JobID in the IN argument of this function, the UI driver 38 can refer to the JobID. At this point, the drawing driver 39 has not acquired a JobID.

S2.2.1:UIドライバ38は、GDI34からの呼び出しの直後、通知表示部252を起動する。通知表示部252の処理手順については図11のフローチャート図に示す。また、UIドライバ38はこのとき、DrvDocumentEvent(DOCUMENTEVENT_STARTDOCPOST)のIN引数で渡されたジョブIDを、通知表示部252の起動と共にJobIDを通知する。通知表示部252はJobIDによりLanguage Monitor32の描画データを識別する。   S2.2.1: The UI driver 38 activates the notification display unit 252 immediately after calling from the GDI 34. The processing procedure of the notification display unit 252 is shown in the flowchart of FIG. At this time, the UI driver 38 notifies the job ID passed by the IN argument of DrvDocumentEvent (DOCUMENTEVENT_STARTDOCPOST) together with the activation of the notification display unit 252. The notification display unit 252 identifies the drawing data of the Language Monitor 32 by JobID.

ただし、この時点では通知表示部252はまだ、対話型画面を表示しない。後述するように通知表示部252は、モジュール通信部253が定期的にLanguage Monitorの通信部321と通信をして、JobIDに紐づいた描画データの生成が完了しているかどうかを確認する。   However, at this time, the notification display unit 252 does not display the interactive screen yet. As will be described later, the notification display unit 252 confirms whether or not the module communication unit 253 periodically communicates with the communication unit 321 of the Language Monitor to generate the drawing data associated with the JobID.

S2.2.2: ここでUIドライバ38は、印刷設定に印刷開始指示後の印刷設定の変更を受け付ける設定があることを検出する。このため、UIドライバ38は、ポップアップ表示の処理を開始する。UIドライバ38は、デバイスコンテキストを引数として、GDI34に対しExtEscape()をコールする。   S2.2.2: Here, the UI driver 38 detects that the print setting has a setting for accepting the change of the print setting after the print start instruction. For this reason, the UI driver 38 starts a pop-up display process. The UI driver 38 calls ExtEscape () on the GDI 34 with the device context as an argument.

S2.2.2.1:GDI34は、DrvEcape()のDDIコールを描画ドライバ39に送出することで、描画ドライバ39が保持している印刷設定を要求する。描画ドライバ39はGDI34を介して保持している印刷設定をUIドライバ38に送出する。   S2.2.2.1: The GDI 34 requests a print setting held by the drawing driver 39 by sending a DDI call of DrvEcape () to the drawing driver 39. The drawing driver 39 sends the print settings held through the GDI 34 to the UI driver 38.

S2.4:ExtEscape()の処理によりUIドライバ38は、印刷設定を取得できたことになる。印刷設定に、印刷開始指示後(印刷中)に印刷設定を変更するための印刷ダイアログの表示指示が設定されている場合、UIドライバ38はユーザーによる印刷設定の変更を受け付ける。   In S2.4: ExtEscape () processing, the UI driver 38 has acquired the print settings. When a print dialog display instruction for changing the print setting is set in the print setting after the print start instruction (during printing), the UI driver 38 accepts the change of the print setting by the user.

S2.2.3:ユーザーが印刷ダイアログを閉じることで、UIドライバ38はSendRecvBidiDataFromPort()::setで、JobIDをキーとし、ユーザーが変更した印刷設定をLanguage Monitor32に送出する。これにより、Language Monitor32はJobIDと印刷設定を対応づけて保持することができる。この時、ユーザーがダイアログを"OK"又は"キャンセル"どちらで閉じたのかという内容も送出される。S3〜S6について従来と同様なので省略する。   S2.2.3: When the user closes the print dialog, the UI driver 38 sends the print setting changed by the user to the Language Monitor 32 using SendRecvBidiDataFromPort () :: set with JobID as a key. Thereby, the Language Monitor 32 can hold the JobID and the print setting in association with each other. At this time, the contents indicating whether the user closed the dialog with "OK" or "Cancel" is also sent. Since S3 to S6 are the same as the conventional ones, they are omitted.

アプリケーションプロセスでの印刷(EMFデータの生成)が終了するが、アプリケーションプロセスにおいてすでに通知表示部252が起動している。   Printing in the application process (generation of EMF data) ends, but the notification display unit 252 is already activated in the application process.

この後、スプーラー35のプロセスで再度印刷処理がかかり、ここでEMFデータからRAWデータへ変換される。OS10はアプリケーション31とGDI34の通信を監視して、所定のタイミングになると(例えばStartPage()の後)、スプーラー35にプロセスを開始させる。   Thereafter, the printing process is again performed in the process of the spooler 35, where EMF data is converted to RAW data. The OS 10 monitors the communication between the application 31 and the GDI 34, and at a predetermined timing (for example, after StartPage ()), causes the spooler 35 to start the process.

S7:スプーラー35は、プリントプロセッサ41に印刷準備開始を指示する。   S7: The spooler 35 instructs the print processor 41 to start printing preparation.

S7.1:プリントプロセッサ41はGDI34に印刷準備開始を指示する。   S7.1: The print processor 41 instructs the GDI 34 to start printing preparation.

S7.1.1:GDI34は描画ドライバ39に印刷設定を送出する。具体的には、CreateDC()の引数でアプリーションがGDI34に渡した印刷設定が、DrvEnablePDEV()の引数に格納され描画ドライバ39に通知される。この後、描画ドライバ39は、ジョブが終了するまで(デバイスコンテキストが消去されるまで)印刷設定を参照することができる。   S7.1.1: The GDI 34 sends print settings to the drawing driver 39. Specifically, the print setting that the application has passed to the GDI 34 with the argument of CreateDC () is stored in the argument of DrvEnablePDEV () and notified to the drawing driver 39. Thereafter, the drawing driver 39 can refer to the print setting until the job is completed (until the device context is deleted).

S7.1.2:GDI34は描画ドライバ39に印刷開始を指示する。具体的にはDrvStartDoc()関数を描画ドライバ39に送出する。OS10は、CreateDC()関数により所定のタイミングでJobIDを生成している。GDI34はDrvStartDoc()関数の引数にJobIDを設定するので、描画ドライバ39はJobIDを参照できるようになる。   S7.1.2: The GDI 34 instructs the drawing driver 39 to start printing. Specifically, the DrvStartDoc () function is sent to the drawing driver 39. The OS 10 generates a JobID at a predetermined timing using the CreateDC () function. Since the GDI 34 sets JobID as an argument of the DrvStartDoc () function, the drawing driver 39 can refer to the JobID.

S7.2:以降、プリントプロセッサ41はページ単位の処理を繰り返す。まず、プリントプロセッサ41はGDI34に新しいページの印刷データを受け入れるよう指示する。具体的には、プリントプロセッサ41はGdiStartPageEMF()をGDI34に送出する。   S7.2: Thereafter, the print processor 41 repeats the processing for each page. First, the print processor 41 instructs the GDI 34 to accept print data for a new page. Specifically, the print processor 41 sends GdiStartPageEMF () to the GDI 34.

S7.2.1:GDI34はDrvStartPage()を描画ドライバ39に送出する。   S7.2.1: The GDI 34 sends DrvStartPage () to the drawing driver 39.

S7.2.1.1: 描画ドライバ39は、一番最初のDrvStartPage()のDDIコールを受けた時のみ、保持していたJobIDをキーとしてSendRecvBidiDataFromPort()::getでLanguage Monitor32に印刷設定を要求する。ここで、Language Monitor32には、S2.2.3の印刷ダイアログをユーザーが"OK"又は"キャンセル"のどちらで閉じたかの情報を保持している。描画ドライバ39は、"OK"でユーザーが閉じていれば、印刷設定に基づき印刷データを生成する。"キャンセル"で閉じていれば、プリンタ200やFAXにデータを送信しないようにする。   S7.2.1.1: The drawing driver 39 requests print setting from the Language Monitor 32 with SendRecvBidiDataFromPort () :: get using the held JobID as a key only when it receives the first DDI call of DrvStartPage (). . Here, the Language Monitor 32 holds information indicating whether the user closed the print dialog in S2.2.3 by “OK” or “Cancel”. If the user is closed with “OK”, the drawing driver 39 generates print data based on the print settings. If it is closed by “Cancel”, data is not transmitted to the printer 200 or FAX.

また、描画ドライバ39は、JobIDをキーにして、印刷データ(描画データが含まれる)の一部をLanguage Monitor32に設定する。   Further, the drawing driver 39 sets a part of print data (including drawing data) in the Language Monitor 32 using JobID as a key.

S7.2.2:GDI34は、描画関数(文書データ)を描画ドライバ39に送出する。描画ドライバ39は印刷設定に従って文書データを印刷データに変換する。   S7.2.2: The GDI 34 sends a drawing function (document data) to the drawing driver 39. The drawing driver 39 converts the document data into print data according to the print settings.

S7.2.2.1:描画ドライバ39は、JobIDをキーにして、印刷データ(描画データが含まれる)を随時、Language Monitor32に設定する。   S7.2.2.1: The drawing driver 39 sets print data (including drawing data) in the Language Monitor 32 as needed using JobID as a key.

S7.2.3:GDI34は描画ドライバ39に1ページ分の書き込みが終了したことを通知する。具体的には、GDI34はDrvSendPage()を描画ドライバ39に送出する。   S7.2.3: The GDI 34 notifies the drawing driver 39 that the writing of one page has been completed. Specifically, the GDI 34 sends DrvSendPage () to the drawing driver 39.

S7.2.3.1:描画ドライバ39は、JobIDをキーにして、印刷データ(描画データが含まれる)の一部をLanguage Monitor32に設定する。   S7.2.3.1: The drawing driver 39 sets a part of print data (including drawing data) in the Language Monitor 32 using JobID as a key.

S7.3:描画ドライバ39が描画を完了すると、プリントプロセッサがGDIにGdEndDocEMF()を出力する。   S7.3: When the drawing driver 39 completes drawing, the print processor outputs GdEndDocEMF () to GDI.

S7.3.1:GDI34はUIドライバ38に、DOCUMENTEVENT(ENDDOC)を出力することで描画の終了を通知する。   S7.3.1: The GDI 34 notifies the UI driver 38 of the end of drawing by outputting DOCUMENTEVENT (ENDDOC).

S7.3.2:UIドライバ38は、(スプール形式がEMFの場合のみ)、ExtExcape()を呼び出して描画ドライバからJobIDを取得する。これは、DrvDocumentEvent(ENDDOC)のIN引数でJobDは通知されないためである。   S7.3.2: The UI driver 38 (only when the spool format is EMF) calls ExtExcape () to acquire the JobID from the drawing driver. This is because JobD is not notified by the IN argument of DrvDocumentEvent (ENDDOC).

S7.3.2.1: GDIは、DrvExcape()を呼び出して描画ドライバからJobIDを取得する。   S7.3.2.1: GDI calls DrvExcape () to obtain JobID from the drawing driver.

S7.3.1.1:次に、UIドライバは、Language Monitor(の通信部)に対して、取得したJobIDにひもづいた描画データの生成が完了したことを通知する(記録する)。   S7.3.1.1: Next, the UI driver notifies (records) to the Language Monitor (the communication unit) that the generation of the drawing data associated with the acquired JobID has been completed.

S7.3.3:GDIは描画ドライバに描画終了を通知する。   S7.3.3: GDI notifies drawing driver of drawing end.

S7.3.3.1:描画ドライバはLanguage Monitorに対話型画面の表示が終わったか否かを問い合わせ、終わったらGDIに通知する。この問い合わせは、描画データの生成が完了したことをLanguage Monitorに通知することで、対話型画面が表示されるためである。   S7.3.3.1: The drawing driver inquires the Language Monitor whether or not the interactive screen has been displayed, and notifies the GDI when it is finished. This inquiry is because an interactive screen is displayed by notifying the Language Monitor that the generation of drawing data has been completed.

S2.2.1.1:この後、通知表示部252はLanguage Monitor32に周期的に問い合わせることで、描画データの設定が完了したことを検出する。   S2.2.1.1: Thereafter, the notification display unit 252 periodically inquires the Language Monitor 32 to detect that the setting of the drawing data has been completed.

S2.2.1.2: Language Monitor32から描画データの設定が完了したという応答を取得すると、通知表示部252は、JobIDをキーにして描画データをLanguage Monitor32から読み出し、印刷プレビューを含む対話型画面を表示する。ユーザーは印刷プレビューを見て印刷の継続(継続)又はキャンセルを選択する。   S2.2.1.2: Upon receiving a response from the Language Monitor 32 that the drawing data setting has been completed, the notification display unit 252 reads the drawing data from the Language Monitor 32 using the JobID as a key, and displays an interactive screen including a print preview. To do. The user views the print preview and selects whether to continue (continue) or cancel printing.

S2.2.1.3:通知表示部252は、JobIDをキーにして、対話型画面を表示したということと、継続又はキャンセルの選択結果をLanguage Monitor32に設定する。   S2.2.1.3: The notification display unit 252 sets, in the Language Monitor 32, the fact that the interactive screen is displayed using the JobID as a key and the selection result of continuation or cancellation.

S2.2.1.4: ユーザーが対話型画面をOKで閉じると、通知表示部252は表示を終了する。描画ドライバが取得した描画データをプリンタへ送信する処理を開始する。   S2.2.1.4: When the user closes the interactive screen with OK, the notification display unit 252 ends the display. The process of transmitting the drawing data acquired by the drawing driver to the printer is started.

・通知表示部252の処理手順
図11は、通知表示部252の処理手順を示すフローチャート図の一例である。
印刷処理が開始されると、UIドライバ38が通知表示部252を起動する(S10)。この処理は図9のS2.3.2、図10のS2.2.2に相当する。
Processing Procedure of Notification Display Unit 252 FIG. 11 is an example of a flowchart illustrating a processing procedure of the notification display unit 252.
When the printing process is started, the UI driver 38 activates the notification display unit 252 (S10). This process corresponds to S2.3.2 in FIG. 9 and S2.2.2 in FIG.

通知表示部252はLanguage Monitor32に対して「描画ドライバによるデータ生成が完了したかどうか」の問い合わせをポーリングし続ける(S20)。   The notification display unit 252 continues to poll the Language Monitor 32 for an inquiry “whether or not data generation by the drawing driver has been completed” (S20).

描画ドライバ39による描画データの生成が完了したら(S30のYes)、通知表示部252はLanguage Monitor32から描画データを取得して対話型画面を表示する(S40)。   When generation of drawing data by the drawing driver 39 is completed (Yes in S30), the notification display unit 252 acquires drawing data from the Language Monitor 32 and displays an interactive screen (S40).

ユーザーはOK(継続)又はキャンセルを押下するので、通知表示部252はOKで終了したか否かを判定する(S50)。OKで終了しなかった場合(S50のNo)、描画ドライバ39は印刷を中止する。Language Monitor32の印刷データは破棄される。   Since the user presses OK (Continue) or Cancel, the notification display unit 252 determines whether or not the process has ended with OK (S50). If the print driver 39 does not end with OK (No in S50), the drawing driver 39 stops printing. The print data of Language Monitor 32 is discarded.

OKで終了した場合(S50のYes)、描画ドライバ39は印刷データをスプーラー35に送信する(S60)。この処理は通常の印刷シーケンスと同様である。   When the processing is completed with OK (Yes in S50), the drawing driver 39 transmits the print data to the spooler 35 (S60). This process is the same as the normal printing sequence.

プリンタ200はスプーラー35から送信された印刷データを印刷する(S60)。   The printer 200 prints the print data transmitted from the spooler 35 (S60).

以上説明したように、通知用モジュール25がアプリケーション31からの印刷指示の直後に起動されるので、アプリケーションプロセスで起動された通知用モジュール25が印刷プレビューなどの対話型サービスの表示を行うことができる。このため、EMFスプールにおいて(RAWスプールにおいても)警告画面が表示されることを防止できる。   As described above, since the notification module 25 is activated immediately after the print instruction from the application 31, the notification module 25 activated in the application process can display an interactive service such as a print preview. . For this reason, it is possible to prevent the warning screen from being displayed in the EMF spool (also in the RAW spool).

本実施例ではプリンタドライバがPoint & Printインストールされた場合の印刷手順について説明する。Point & Print環境でRAWスプールした場合、レンダリング場所はクライアント120になるので、実施例1のRAWスプールと処理手順は同様である。Point & Print環境でEMFスプールした場合、レンダリング場所はクライアント120とサーバー110の2つの場合あるが、このうちレンダリング場所をクライアント120とした場合は、実施例1のEMFスプールと処理手順は同様になる。   In this embodiment, a printing procedure when the printer driver is installed with Point & Print will be described. When RAW spooling is performed in the Point & Print environment, the rendering location is the client 120, so the processing procedure is the same as that of the RAW spool of the first embodiment. When EMF spooling is performed in the Point & Print environment, there are two rendering locations, the client 120 and the server 110. When the rendering location is the client 120, the processing procedure is the same as that of the EMF spool of the first embodiment. .

また、レンダリング場所をサーバー110とした場合は、描画ドライバ39が動作する場所はサーバー110となるが、以下で説明するように、印刷処理全体の処理手順は実施例1のEMFスプールと同様になる。   When the rendering location is the server 110, the location where the drawing driver 39 operates is the server 110. However, as described below, the processing procedure of the entire printing process is the same as that of the EMF spool of the first embodiment. .

図12は、クライアント120とサーバー110の機能ブロック図の一例を示す。図12と図4との共通部については主要部のみを説明する。   FIG. 12 shows an example of a functional block diagram of the client 120 and the server 110. Only the main part of the common part between FIG. 12 and FIG. 4 will be described.

クライアント120のプリンタドライバ30は、UIドライバ38と通知用モジュール25を有している。Point & Printインストールのサーバーサイドレンダリングではクライアント120の描画ドライバは描画データを作成しないが、アプリケーション31が必要な情報を取得する際に動作する。「クライアントサイドレンダリング」の際にはクライアント120の描画ドライバが動作する。   The printer driver 30 of the client 120 has a UI driver 38 and a notification module 25. In the server-side rendering of Point & Print installation, the drawing driver of the client 120 does not create drawing data, but operates when the application 31 acquires necessary information. In “client-side rendering”, the drawing driver of the client 120 operates.

また、サーバーサイドレンダリングでは、実施例1で説明したLanguage Monitor32の機能は、サーバー110のLanguage Monitor32により提供される。しかし、サーバ側のLanguage Monitor32とデータを共有するため、クライアント120でもLanguage Monitor32が使用される。クライアント120のLanguage Monitor32はサーバのLanguage Monitor32と通信して、描画データを取得する。   In the server-side rendering, the function of the language monitor 32 described in the first embodiment is provided by the language monitor 32 of the server 110. However, the language monitor 32 is also used by the client 120 in order to share data with the language monitor 32 on the server side. The language monitor 32 of the client 120 communicates with the language monitor 32 of the server to acquire drawing data.

サーバー110は、プリンタドライバ30、スプーラー35、プリントプロセッサ41、Language Monitor32、ポートモニター33、及び、ポートドライバー42を有する。プリンタドライバ30は、UIドライバ38及び通知用モジュール25を有していないが、実際には描画ドライバ39と共にインストールされている。PC側の通知用モジュール起動部22はスプーラー35と通信できる。   The server 110 includes a printer driver 30, a spooler 35, a print processor 41, a language monitor 32, a port monitor 33, and a port driver 42. The printer driver 30 does not include the UI driver 38 and the notification module 25, but is actually installed together with the drawing driver 39. The notification module activation unit 22 on the PC side can communicate with the spooler 35.

この他の、スプーラー35、プリントプロセッサ41、Language Monitor32、ポートモニター33、及び、ポートドライバー42は実施例1でPC100が有していたものと同じものである。   In addition, the spooler 35, the print processor 41, the language monitor 32, the port monitor 33, and the port driver 42 are the same as those of the PC 100 in the first embodiment.

クライアント120のOSとサーバー110のOSはどちらもWindowsなので、サーバーサイドレンダリングでは、クライアント120とサーバー110から、Language Monitor32を同一のインスタンスとして扱うことができる。   Since the OS of the client 120 and the OS of the server 110 are both Windows, the language monitor 32 can be handled as the same instance from the client 120 and the server 110 in the server-side rendering.

すなわち、EMFスプールのサーバーサイドレンダリングでは、GDI34がクライアント120でEMFデータを作成し、クライアント120のスプーラー35に送出する。クライアント120のスプーラー35は、OSを介してサーバー110のスプーラー35にEMFデータを送信する。この後、スプールプロセスがサーバー110で実行され、Language Monitor32に描画データが格納される。通知用モジュール25がクライアント120のLanguage Monitor32に描画データを要求した場合、OSを介してサーバー100のLanguage Monitor32から描画データを取得できる。   That is, in the server side rendering of the EMF spool, the GDI 34 creates EMF data at the client 120 and sends it to the spooler 35 of the client 120. The spooler 35 of the client 120 transmits EMF data to the spooler 35 of the server 110 via the OS. Thereafter, a spool process is executed by the server 110 and drawing data is stored in the Language Monitor 32. When the notification module 25 requests drawing data from the language monitor 32 of the client 120, the drawing data can be acquired from the language monitor 32 of the server 100 via the OS.

つまり、通知用モジュール25はLanguage Monitor32がどこにあるかを意識する必要がない。このため、印刷手順としてはスプールプロセスがサーバー110で実行されるだけで、全体的な手順は実施例1の図10と同様になる。   That is, the notification module 25 does not need to be aware of where the Language Monitor 32 is. Therefore, as a printing procedure, only the spool process is executed by the server 110, and the overall procedure is the same as that in FIG. 10 of the first embodiment.

図10で示したアプリケーションプロセスのモジュールはクライアント120でインスタンス化され、スプールプロセスのモジュールはサーバー110でインスタンス化される。しかしながら、本実施例で主要の機能を提供するのは図12に示したモジュールである。   The application process module shown in FIG. 10 is instantiated by the client 120, and the spool process module is instantiated by the server 110. However, the module shown in FIG. 12 provides the main functions in this embodiment.

このため、Point & PrintのEMFスプールでは以下のような動作となる。
(i) クライアント120のUIドライバ38は、アプリケーション31からの印刷指示の直後に通知用モジュール25を起動しておく(S2.2.1)。
(ii) EMFデータを作成したクライアント120のOSは、スプールプロセスを開始するようサーバーに指示する。サーバー110にある描画ドライバ39は描画データを作成する(図10のA)。
(iii) サーバー110の描画ドライバ39のドライバ通信部24は、サーバー側のLanguage Monitor32にJobIDと紐づけて描画データを保持させる(S7.2.1.1、S7.2.2.1、S7.2.3.1)。UIドライバ38が描画データの作成完了をサーバー側のLanguage Monitor32に設定する。
(iv) サーバー側のUIドライバがDrvDocumentEvent(ENDDOC)を呼び出されると描画データの生成が完了しているので、UIドライバはExtExcape()を呼び出して描画ドライバからJobIDを取得する。次に、UIドライバの通知用モジュール起動部が、Language Monitorに対して取得したJobIDにひもづいた描画データの生成が完了したことを通知する。
(v) クライアント側の通知用モジュール25のモジュール通信部253は、スプーラー35を介してクライアント120のLanguage Monitor32に描画データの作成が完了したか否かを問い合わせる(S2.2.1.1)。クライアント120のLanguage Monitor32は、OSの機能を使用してサーバー110のLanguage Monitor32に描画データの作成が完了したか否かを問い合わせる。描画データの作成が完了している場合、クライアント120のLanguage Monitor32は、サーバー110のLanguage Monitor32から描画データを取得する。
(vi) 通知表示部252はクライアント120のLanguage Monitor32から描画データを取得して、対話型画面としてユーザーに通知する(S2.2.1.2)。
For this reason, the following operations are performed in the EMF spool of Point & Print.
(i) The UI driver 38 of the client 120 activates the notification module 25 immediately after the print instruction from the application 31 (S2.2.1).
(ii) The OS of the client 120 that created the EMF data instructs the server to start the spool process. The drawing driver 39 in the server 110 creates drawing data (A in FIG. 10).
(iii) The driver communication unit 24 of the drawing driver 39 of the server 110 causes the language monitor 32 on the server side to hold drawing data in association with the JobID (S7.2.1.1, S7.2.2.1, S7.2.3.1). ). The UI driver 38 sets completion of drawing data creation in the language monitor 32 on the server side.
(iv) When the server-side UI driver calls DrvDocumentEvent (ENDDOC), the generation of drawing data is completed. Therefore, the UI driver calls ExtExcape () to acquire the JobID from the drawing driver. Next, the UI driver notification module activation unit notifies the Language Monitor that generation of drawing data associated with the acquired JobID has been completed.
(v) The module communication unit 253 of the notification module 25 on the client side inquires of the language monitor 32 of the client 120 via the spooler 35 whether or not the creation of the drawing data has been completed (S2.2.1.1). The Language Monitor 32 of the client 120 inquires of the Language Monitor 32 of the server 110 whether or not the creation of the drawing data has been completed using the OS function. When the creation of the drawing data is completed, the language monitor 32 of the client 120 acquires the drawing data from the language monitor 32 of the server 110.
(vi) The notification display unit 252 acquires drawing data from the language monitor 32 of the client 120 and notifies the user as an interactive screen (S2.2.1.2).

このように、Point & Print環境の「サーバーサイドレンダリング」において、プリンタドライバ30は対話型サービスでユーザーに通知することができる。   As described above, in the “server side rendering” of the Point & Print environment, the printer driver 30 can notify the user by the interactive service.

したがって、本実施例によれば、インストール環境に関係なくプリンタドライバ30は対話型サービスでユーザーに通知することができる。   Therefore, according to the present embodiment, the printer driver 30 can notify the user by the interactive service regardless of the installation environment.

なお、図12の構成は一例であって、クライアント120とサーバー110のいずれかが図4の機能を提供すればよいものである。   The configuration of FIG. 12 is an example, and any one of the client 120 and the server 110 may provide the function of FIG.

また、サーバー110が複数台あってもよい。クライアント110と複数のサーバー120のいずれかが図4の機能を提供すればよいものである。また、例えば、プリンタドライバ30のインストール用のサーバーと、レンダリング用のサーバーが異なっていてもよい。   In addition, a plurality of servers 110 may be provided. Any one of the client 110 and the plurality of servers 120 may provide the function of FIG. For example, the server for installing the printer driver 30 and the server for rendering may be different.

以上説明したように、本実施形態のプリントドライバは、スプール形式やインストール形式に拘わらず、プリントドライバが生成したデータを利用して対話型サービスを提供することが可能なプログラムを提供することができる。   As described above, the print driver of this embodiment can provide a program that can provide an interactive service using data generated by the print driver regardless of the spool format or the installation format. .

また、この実施形態で説明するシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることはいうまでもない。   Further, the system configuration described in this embodiment is an example, and it goes without saying that there are various system configuration examples depending on the application and purpose.

実施例1、2では、
(1)EMFスプールによる印刷処理の場合に、Windowsによる警告画面が表示されてしまう
(2)Point & Print環境で「サーバーサイドレンダリング」を行う場合、対話型サービスでユーザーに通知することができない
という課題を解決できた。
In Examples 1 and 2,
(1) When printing with EMF spool, a Windows warning screen is displayed. (2) When performing “server-side rendering” in the Point & Print environment, users cannot be notified with interactive services. We were able to solve the problem.

しかしながら、なお、以下のような課題がある。
(3)RAWスプールによる印刷処理の場合に、64bit OS上で32bitアプリケーションから印刷指示を行うとExtEscape() APIが正しく動作しない場合がある。
However, there are still the following problems.
(3) In the case of print processing by RAW spool, if a print instruction is issued from a 32-bit application on a 64-bit OS, the ExtEscape () API may not operate correctly.

32bitアプリケーションはWOW64(Windows 32-bit on Windows 64-bit)というWindowsの機能によって64bit OS上で動作することができる。64bit OS上で32bitアプリケーションから印刷指示を行うと、RAWスプールによる印刷処理の場合、32bitアプリケーション上のプロセスから64bit版のプリンタドライバのインスタンスが生成されることから、ある特定のタイミングでExtEscape() APIの呼び出しが正しく行えない現象が生じる。   A 32-bit application can run on a 64-bit OS by a Windows function called WOW64 (Windows 32-bit on Windows 64-bit). When a print instruction is issued from a 32-bit application on a 64-bit OS, an instance of a 64-bit printer driver is generated from a process on the 32-bit application in the case of print processing using a RAW spool. The phenomenon that cannot be called correctly occurs.

より具体的には、UIドライバ38がExtEscape()を呼び出して描画ドライバ39からJobIDを取得し、JobIDに紐付いた描画データの生成が完了したことをLanguage Monitor32に対して通知することで、通知用モジュールの表示が行える。しかし、64bit OS上で動作する32bitアプリケーションから印刷指示された場合には、この処理シーケンスが正しく動作しない。   More specifically, the UI driver 38 calls ExtEscape () to acquire the JobID from the drawing driver 39, and notifies the Language Monitor 32 that the generation of the drawing data associated with the JobID has been completed. The module can be displayed. However, when a print instruction is issued from a 32-bit application operating on a 64-bit OS, this processing sequence does not operate correctly.

64bit OS上で動作する32bitアプリケーションから印刷指示された場合、DrvDocumentEvent()のENDDOCイベント時にUIドライバ38がExtEscape()をコールすると、splwow64.exe(64bitのWindows系OSが印刷時にWOW64の機能として、実行する代理プロセス)で例外が発生し、描画ドライバ39のDrvEscape()が正しく呼び出されないためである。   When a print instruction is issued from a 32-bit application running on a 64-bit OS, if the UI driver 38 calls ExtEscape () at the ENDDOC event of DrvDocumentEvent (), splwow64.exe (a 64-bit Windows OS will be This is because an exception occurs in the proxy process) and DrvEscape () of the drawing driver 39 is not correctly called.

そこで、本実施例では、下記の処理シーケンスにより上記の不都合を回避する。なお、下記の処理シーケンスはRAWスプールでの印刷時にのみ有効である。なぜならば、EMFスプール時にはUIドライバ38のインスタンスはアプリケーションから生成されたものではなく、スプーラープロセスから新たにインスタンス化されたものであるため、UIドライバ38は後述するグローバルメモリが利用できないからである。   Therefore, in this embodiment, the above-described inconvenience is avoided by the following processing sequence. The following processing sequence is valid only when printing with the RAW spool. This is because at the time of EMF spooling, the instance of the UI driver 38 is not generated from the application, but is newly instantiated from the spooler process, so that the UI driver 38 cannot use the global memory described later.

しかし、EMFスプール時にはスプーラープロセスから新たにUIドライバ38がインスタンス化されるため、ExtEscape()のコール時にsplwow64.exeで例外が発生するという問題は発生しないので不都合はない。   However, since the UI driver 38 is newly instantiated from the spooler process at the time of EMF spooling, there is no inconvenience because an exception does not occur in splwow64.exe when ExtEscape () is called.

図13は、本実施例のPCの機能ブロック図の一例である。本実施例ではPC内にグローバルメモリ43が配置される。このグルーバルメモリはインスタンス化されたUIドライバ38が任意のタイミングでアクセスできるメモリである。具体的にはRAM13上の一部である。   FIG. 13 is an example of a functional block diagram of the PC of this embodiment. In this embodiment, a global memory 43 is arranged in the PC. This global memory is a memory that can be accessed by the instantiated UI driver 38 at an arbitrary timing. Specifically, it is a part on the RAM 13.

本実施例では、RAMスプールでの印刷時には、UIドライバ38が、OSから渡されたJobIDをデバイスコンテキストと紐付けてグローバルメモリ43に記憶する。そして、UIドライバ38が、OSから描画データ生成完了の通知を受けた際に、デバイスコンテキストと紐付けてグローバルメモリ43に保持していたJobIDを読み出す。そして、Language Monitor32に対してJobIDと紐付いている描画データの生成完了を通知する。通知用モジュールはLanguage Monitor32と通信して、描画データをLanguage Monitor32から取得する。通知用モジュールは取得した描画データを用いて、対話型サービスを提供する。   In this embodiment, when printing on the RAM spool, the UI driver 38 stores the JobID passed from the OS in the global memory 43 in association with the device context. When the UI driver 38 receives a drawing data generation completion notification from the OS, the UI driver 38 reads out the JobID stored in the global memory 43 in association with the device context. Then, it notifies the Language Monitor 32 of the completion of generation of the drawing data associated with the JobID. The notification module communicates with the language monitor 32 and acquires drawing data from the language monitor 32. The notification module provides an interactive service using the acquired drawing data.

したがって、描画データ生成完了時に、UIドライバ38がExtEscape()を呼び出して描画ドライバ39からJobIDを取得しないので、splwow64.exeの例外が発生することがない。   Therefore, when the drawing data generation is completed, the UI driver 38 calls ExtEscape () and does not acquire the JobID from the drawing driver 39, so that no splwow64.exe exception occurs.

図14は、本実施例のRAWスプールのWindows系OSの印刷アーキテクチャのシーケンス図の一例である。全体的な流れは実施例1の図9と同様であるので、主に本実施例の特徴部を説明する。   FIG. 14 is an example of a sequence diagram of the print architecture of the RAW spool Windows-based OS of this embodiment. Since the overall flow is the same as that of FIG. 9 of the first embodiment, the characteristic part of the present embodiment will be mainly described.

S2.3.1.1:通知用モジュールを起動したUIドライバ38は、デバイスコンテキストのハンドル(HDC)と紐付けてJobIDをグローバルメモリ43に記録しておく。   S2.3.1.1: The UI driver 38 that has activated the notification module records the JobID in the global memory 43 in association with the device context handle (HDC).

S6.1: 描画ドライバ39が描画を完了するとGDI34はUIドライバ38に描画の終了を通知する(具体的にはDOCUMENTEVENT_ENDDOC_PREを通知する)。   S6.1: When the drawing driver 39 completes drawing, the GDI 34 notifies the UI driver 38 of the end of drawing (specifically, DOCUMENTEVENT_ENDDOC_PRE).

S6.1.1:UIドライバ38はHDCをキーにして、グローバルメモリ43からJobIDを読み出す。   S6.1.1: The UI driver 38 reads JobID from the global memory 43 using HDC as a key.

S6.1.2:UIドライバ38はSendRecvBidiDataFromPort()をLanguage Monitor32に送信して、JobIDと共に描画データの作成完了を設定する。   S6.1.2: The UI driver 38 sends SendRecvBidiDataFromPort () to the Language Monitor 32, and sets the creation completion of drawing data together with the JobID.

すなわち、DOCUMENTEVENT_ENDDOC_PRE関数の引数にはJobIDが含まれないため、UIドライバ38が ExtEscape()を呼び出して描画ドライバ39からJobIDを受け取りたることが考えられる。しかし、64bit OS上で動作する32bitアプリケーションから印刷指示をされた場合は、このExtEscape()の呼び出しが失敗してしまう。そこで、本実施例では、DrvDocumentEvent(ENDDOCPRE)の引数にHDCがふくまれることを利用して、HDCに紐付いているJobIDをグローバルメモリ43から取得する。   That is, since the job ID is not included in the argument of the DOCUMENTEVENT_ENDDOC_PRE function, the UI driver 38 may call ExtEscape () to receive the Job ID from the drawing driver 39. However, when a print instruction is issued from a 32-bit application operating on a 64-bit OS, this ExtEscape () call fails. Therefore, in this embodiment, the JobID associated with the HDC is acquired from the global memory 43 by using the fact that the HDC is included in the argument of the DrvDocumentEvent (ENDDOCPRE).

UIドライバ38がLanguage Monitor32にJobIDと描画データの作成完了を記録することで、Language Monitor32を監視していた通知用モジュールが描画データの完了を検出できるので、描画データを取得し、対話型画面を表示できる。   The UI driver 38 records the job ID and drawing data creation completion in the Language Monitor 32, so that the notification module that has monitored the Language Monitor 32 can detect the completion of the drawing data. Therefore, the drawing data is acquired and the interactive screen is displayed. Can be displayed.

ユーザーが対話型画面で"OK"を選択すると、「OKで終了した」という情報が通知用モジュールからLanguage Monitor32に記録される。この後、描画ドライバ39は、描画処理終了の通知を受けて、Language Monitor32の「OKで終了した」という情報を読み出すと、プリンタ側に描画データを送信する。Point & Print環境の場合は、サーバー側の描画ドライバ39がLanguage Monitor32の「OKで終了した」という情報を取得し、描画データをプリンタへ送信する処理を開始する。   When the user selects “OK” on the interactive screen, the information “completed with OK” is recorded in the language monitor 32 from the notification module. Thereafter, when the drawing driver 39 receives a notice of completion of the drawing process and reads the information “finished with OK” in the Language Monitor 32, the drawing driver 39 sends drawing data to the printer side. In the case of the Point & Print environment, the server-side drawing driver 39 acquires information “Ended with OK” from the Language Monitor 32 and starts processing for sending drawing data to the printer.

以上説明したように、本実施形態のプリンタドライバは、RAWスプールによる印刷処理の場合に、64bit OS上で32bitアプリケーションから印刷指示を行っても、描画データを用いた対話型画面を表示することができる。   As described above, the printer driver according to the present embodiment can display an interactive screen using drawing data even when a print instruction is issued from a 32-bit application on a 64-bit OS in the case of print processing using a RAW spool. it can.

〔コマンド例などについて〕
以下では、本実施形態で使用したWindows系OSのAPIや機能について補足する。これらの機能はWindows系OSの説明だが、同等の機能を有する他のOSにおいても適用可能である。
[About command examples]
The following supplements the APIs and functions of the Windows OS used in this embodiment. These functions are explanations of the Windows OS, but can also be applied to other OSs having equivalent functions.

図17は、LanguageMonitor32の動作を説明する図の一例である。LanguageMonitor32はプリントプロセッサ41から送信された印刷データを受け取り、ポートモニタ33に送信する。ポートモニタ33は、通信プロトコルに基づく処理を行い、ポートドライバ42に印刷データを送信する。ポートドライバ42は、プリンタ200とPC100との接続インタフェース(USB,NIC等)を制御して、印刷データをプリンタ200に送信する。   FIG. 17 is an example of a diagram for explaining the operation of the Language Monitor 32. The LanguageMonitor 32 receives the print data transmitted from the print processor 41 and transmits it to the port monitor 33. The port monitor 33 performs processing based on the communication protocol and transmits print data to the port driver 42. The port driver 42 controls a connection interface (USB, NIC, etc.) between the printer 200 and the PC 100 and transmits print data to the printer 200.

図18(a)は、DrvDocumentEvent()関数の書式を説明する図の一例である。DrvDocumentEvent()関数は、文書データの印刷に関連する特定のイベントを処理するDLLである。
・hPrinterは、プリンタのハンドルである。
・hdcは、デバイスコンテキストのハンドルである。
・iEscは、呼び出し元のモジュールが提供する、処理対象のイベントを識別するためのエスケープコードである。
・cbInはpvInで送信されるデータのサイズである。
・pvInは送信されるデータのポインタである。
・cbOutは、iEscがDOCUMENTEVENT_ESCAPEの場合は、ExtEscape()のcbOutputパラメータとして関数が指定した値が格納される。iEscがDOCUMENTEVENT_QUERYFILTERの場合、受け取り側が受け取る構造体pvOutのサイズが格納される。
・pvOutは、受け取り側が受け取る構造体pvOutのポインタである。
FIG. 18A is an example of a diagram illustrating the format of the DrvDocumentEvent () function. The DrvDocumentEvent () function is a DLL that processes a specific event related to printing of document data.
HPrinter is the handle of the printer.
Hdc is a device context handle.
IEsc is an escape code provided by the calling module for identifying the event to be processed.
CbIn is the size of data transmitted with pvIn.
PvIn is a pointer to the data to be transmitted.
CbOut stores the value specified by the function as the cbOutput parameter of ExtEscape () when iEsc is DOCUMENTEVENT_ESCAPE. When iEsc is DOCUMENTEVENT_QUERYFILTER, the size of the structure pvOut received by the receiving side is stored.
PvOut is a pointer to the structure pvOut received by the receiving side.

本実施例では、DrvDocumentEvent()関数は、CreateDC()以降の印刷中、GDI34等が描画ドライバ39を呼び出すDDIコールの間に、適宜、コールされる。DrvDocumentEvent()は単独の処理を行うためのDDIなので、前後のDrvDocumentEvent()間でデータの共有はできない。この点で、描画ドライバ39を呼び出すDDIとは異なる。UI系のDDIなのでダイアログ表示をすることも可能である。   In this embodiment, the DrvDocumentEvent () function is called as appropriate during a DDI call that the GDI 34 or the like calls the drawing driver 39 during printing after CreateDC (). Since DrvDocumentEvent () is a DDI for performing a single process, data cannot be shared between the preceding and succeeding DrvDocumentEvent (). This is different from DDI that calls the drawing driver 39. Since it is a UI type DDI, it is possible to display a dialog.

また、引数にデバイスコンテキスト(hdc)があるため、DrvDocumentEvent()のDDIコールの後、モジュールがデバイスコンテキストを必要とするAPIをコールすることができる。例えば、UIドライバ38がデバイスコンテキストを引数に描画系APIをコールすると、対応している描画ドライバ39に対して描画命令を通知することができる。   Since the device context (hdc) is included in the argument, after the DDI call of DrvDocumentEvent (), the module can call an API that requires the device context. For example, when the UI driver 38 calls a drawing system API with a device context as an argument, a drawing command can be notified to the corresponding drawing driver 39.

図18(b)は、SendRecvBidiDataFromPort()の書式を説明する図の一例である。SendRecvBidiDataFromPort()関数は、LanguageMonitor32に実装される関数である。プリンタドライバ30と同じようにLanguageMonitor32にもOS10によって決められたI/Fが存在する。SendRecvBidiDataFromPort()関数は、その1つであり、アプリケーションとプリンタ間、アプリケーションとプリントサーバ間の双方向通信をサポートする。
・hPortは、呼び出し元のモジュールによって与えられるポートのハンドルである。
・dwAccessBitは、呼び出し元のモジュールによって与えられ、プリンタ又はプリントサーバへのアクセスを許可するACCESS_MASK構造体である。
・pActionは、呼び出し元のモジュールによって与えられるリクエストアクションである。
・pReqDataは、リクエストデータを有しているPBIDI_REQUEST_CONTAINER構造体のポインタである。
・ppResDataは、レスポンスデータを有しているBIDI_RESPONSE_CONTAINER構造体のアドレスを受け取るメモリ領域へのポインタである。
FIG. 18B is an example of a diagram illustrating the format of SendRecvBidiDataFromPort (). The SendRecvBidiDataFromPort () function is a function implemented in the LanguageMonitor 32. Similar to the printer driver 30, the Language Monitor 32 has an I / F determined by the OS 10. The SendRecvBidiDataFromPort () function is one of them, and supports bidirectional communication between the application and the printer and between the application and the print server.
HPort is the handle of the port given by the calling module.
DwAccessBit is an ACCESS_MASK structure that is given by the calling module and allows access to the printer or print server.
PAction is a request action given by the calling module.
PReqData is a pointer to the PBIDI_REQUEST_CONTAINER structure that has the request data.
PpResData is a pointer to a memory area that receives the address of the BIDI_RESPONSE_CONTAINER structure having response data.

図19(a)はExtEscape()関数の書式を説明する図の一例である。ExtEscape()関数は、モジュール(シーケンス図や機能ブロック図の各ブロック)がGDI経由ではアクセスできない特定のモジュールにアクセスするためのAPIである。アプリケーションがGDI34を関与させずにドライバにデータを送信する場合、モジュールからGDI34を関与させずにデータを取得する場合に利用されることがある。
・hdcはデバイスコンテキストのハンドルである。
・nEscapeはExtEscape()関数の機能をチェックしたり設定するための引数になる。
・cbInputは、ExtEscape()関数で送信する構造体のサイズである。
・lpszInDataは、ExtEscape()関数で送信する構造体のポインタである。
・cbOutputは、ExtEscape()関数で送信される構造体を受け取る構造体のサイズである。
・lpszOutDataは、ExtEscape()関数で送信される構造体を受け取る構造体のポインタである。
FIG. 19A is an example for explaining the format of the ExtEscape () function. The ExtEscape () function is an API for accessing a specific module that cannot be accessed via the GDI by a module (each block in the sequence diagram and functional block diagram). When the application transmits data to the driver without involving the GDI 34, the application may be used when acquiring data without involving the GDI 34 from the module.
Hdc is a device context handle.
NEscape is an argument for checking and setting the function of the ExtEscape () function.
CbInput is the size of the structure to be sent with the ExtEscape () function.
LpszInData is a structure pointer that is sent with the ExtEscape () function.
CbOutput is the size of the structure that receives the structure sent with the ExtEscape () function.
LpszOutData is a structure pointer that receives the structure sent by the ExtEscape () function.

ExtEscape()関数は、CreateDC()により取得されたデバイスコンテキストに対して、コール可能なAPIである。よって、UIドライバ38等はシーケンス処理中のデバイスコンテキストがある範囲でExtEscape()関数をコールすることができる。   The ExtEscape () function is an API that can be called with respect to the device context acquired by CreateDC (). Therefore, the UI driver 38 and the like can call the ExtEscape () function within a certain range within the device context during the sequence processing.

図19(b)は、アプリケーションがExtEscape()をコールした場合のシーケンス図の一例を示す。
(i)アプリケーションがGDI34に対しExtEscape()をコールする。
(ii)GDI34はExtEscape()をDrvEscape()というDDIコールに変換して描画ドライバ39に通知する。
FIG. 19B shows an example of a sequence diagram when the application calls ExtEscape ().
(i) The application calls ExtEscape () on the GDI 34.
(ii) The GDI 34 converts ExtEscape () into a DDI call called DrvEscape () and notifies the drawing driver 39 of it.

また、この逆に描画ドライバ39又はUIドライバ38がExtEscape()をコールすることも可能である。ExtEscape()はCreateDC()〜DeleteDC()間であれば、各モジュールがコールできる。   Conversely, the drawing driver 39 or the UI driver 38 can also call ExtEscape (). Each module can call ExtEscape () between CreateDC () and DeleteDC ().

図20は、Point&Print環境におけるLanguageMonitor32の位置づけを説明する図の一例である。LanguageMonitor32はWindows系OSの印刷アーキテクチャの中に組み込まれる一モジュールである。このため、Point&PrintによりクライアントPC側がUIドライバ38の処理を、サーバPC側が描画ドライバ39の処理を受け持ったとしても、LanguageMonitor32はサーバPC側で1つだけ機能する。このため、クライアントPCのプリンタドライバ30とサーバPC110のプリンタドライバ30は1つのLanguageMonitor32にアクセスする。すなわち、クライアントPCのOS10とサーバPCのOS10は、クライアントPCのUIドライバ38がLanguageMonitor32にアクセスする場合、クライアントPCとサーバPC110の通信を確立する(例えば、RPC(Remote Procedure Call)を利用する)。そして、UIドライバ38がクライアントPCのLanguageMonitor32にアクセスしているように見せる。   FIG. 20 is an example for explaining the positioning of the Language Monitor 32 in the Point & Print environment. LanguageMonitor 32 is a module incorporated in the printing architecture of the Windows OS. Therefore, even if the client PC side handles the processing of the UI driver 38 and the server PC side handles the processing of the drawing driver 39 by Point & Print, only one Language Monitor 32 functions on the server PC side. For this reason, the printer driver 30 of the client PC and the printer driver 30 of the server PC 110 access one Language Monitor 32. That is, the OS 10 of the client PC and the OS 10 of the server PC establish communication between the client PC and the server PC 110 when the UI driver 38 of the client PC accesses the Language Monitor 32 (for example, using RPC (Remote Procedure Call)). Then, the UI driver 38 appears to be accessing the Language Monitor 32 of the client PC.

このようにクライアントPCとサーバPC110が同じWindows系のOS10をインストールしているので、Windows系OSの印刷アーキテクチャのLanguageMonitor32を共通に利用できる。このため、メーカ独自で開発したモジュールなどで生じやすいアクセス権限や通信エラーなどが起こりにくい。また、同様の理由で、OS10との親和性も高い。   As described above, since the client PC and the server PC 110 have the same Windows OS 10 installed, the Language Monitor 32 of the Windows OS print architecture can be used in common. For this reason, the access authority and communication error that are likely to occur in a module developed by a manufacturer are unlikely to occur. For the same reason, the affinity with OS10 is also high.

なお、Point&Printでもスプール形式にはRAWスプールとEMFスプールがあるが、RAWスプールの場合、サーバサイドレンダリングが存在しない。RAWスプールはアプリケーションのプロセスなので、レンダリング場所が制限されるためである。   Note that Point & Print also has RAW spools and EMF spools as spool formats, but in the case of RAW spools, there is no server-side rendering. This is because the RAW spool is a process of an application, so that the rendering location is limited.

その他の場合、RAWスプールのクライアントサイドレンダリング、EMFスプールのクライアントサイドレンダリング、及び、EMFスプールのサーバサイドレンダリング、のいずれの場合も、図20のようにLanguageMonitor32が利用される。   In other cases, the Language Monitor 32 is used as shown in FIG. 20 in any of the client side rendering of the RAW spool, the client side rendering of the EMF spool, and the server side rendering of the EMF spool.

10 OS
22 通知用モジュール起動部
25 通知用モジュール
30 プリンタドライバ
32 Language Monitor
38 UIドライバ
39 描画ドライバ
43 グローバルメモリ
100 PC
110 クライアント
120 サーバー
200 プリンタ
500 印刷システム
10 OS
22 Notification Module Starter 25 Notification Module 30 Printer Driver 32 Language Monitor
38 UI driver 39 Drawing driver 43 Global memory 100 PC
110 Client 120 Server 200 Printer 500 Printing System

特開2002‐333968号公報JP 2002-333968 A 特開2010‐066876号公報JP 2010-066876 A

Claims (14)

所定のプログラムに基づいて動作する情報処理装置に処理を実行させるプログラムであって、
画像データの出力の設定条件を表示し、前記設定条件を受け付けるステップと、
画像処理プログラムが動作を開始する前に、印刷データを用いた通知画面を表示する通知用プログラムを起動させるステップと、を前記情報処理装置に実行させる設定受付プログラムと、
アプリケーションから文書データを取得し、前記設定受付プログラムにより受け付けられた前記設定条件に基づいて印刷データに変換するステップと、
前記印刷データを前記所定のプログラムが有する印刷データ保持プログラムに保持するステップと、を前記情報処理装置に実行させる画像処理プログラムと、
前記印刷データ保持プログラムから前記印刷データを取得して、前記印刷データを用いた前記通知画面を表示するステップを前記情報処理装置に実行させる通知用プログラムと、を有するプログラム。
A program that causes an information processing device that operates based on a predetermined program to execute processing,
Displaying image data output setting conditions and receiving the setting conditions;
Before starting the operation of the image processing program, starting a notification program for displaying a notification screen using print data; a setting reception program for causing the information processing apparatus to execute;
Obtaining document data from an application, and converting the print data into print data based on the setting condition received by the setting receiving program;
Holding the print data in a print data holding program included in the predetermined program; an image processing program for causing the information processing apparatus to execute;
A notification program that causes the information processing apparatus to execute a step of acquiring the print data from the print data holding program and displaying the notification screen using the print data.
前記通知用プログラムは、前記通知画面にて印刷を継続するか又は印刷を中止するかのいずれかの設定を受け付けるステップと、
前記設定を前記印刷データ保持プログラムに出力するステップと、を前記情報処理装置に実行させ、
前記画像処理プログラムは、前記印刷データ保持プログラムから取得した前記設定が印刷中止の場合、前記印刷データの出力を中止する、
ことを特徴とする請求項1記載のプログラム。
The notification program accepts a setting for either continuing printing or canceling printing on the notification screen;
Outputting the setting to the print data holding program, causing the information processing apparatus to execute,
The image processing program, when the setting acquired from the print data holding program is print stop, stops outputting the print data,
The program according to claim 1.
前記通知用プログラムは、前記通知画面に、前記印刷データを用紙に出力したイメージ画像を表示する処理を前記情報処理装置に実行させる、
ことを特徴とする請求項1項記載のプログラム。
The notification program causes the information processing apparatus to execute a process of displaying an image of the print data output on paper on the notification screen.
The program according to claim 1.
前記通知用プログラムは、
前記印刷データに基づき、前記印刷データが印刷される際の色情報、及び、出力枚数を判別して、印刷に課金される金額を算出し、前記通知画面に、前記金額を表示する処理を前記情報処理装置に実行させる、
ことを特徴とする請求項1記載のプログラム。
The notification program is
Based on the print data, the color information when the print data is printed and the number of output sheets are determined, the amount charged for printing is calculated, and the amount of money displayed on the notification screen is displayed. Let the information processing device execute
The program according to claim 1.
前記通知用プログラムは、前記設定受付プログラムにより起動された後、前記印刷データ保持プログラムに前記印刷データの保持が完了したか否かを問い合わせるステップと、
前記印刷データの保持が完了した場合、前記印刷データ保持プログラムから前記印刷データを取得して前記印刷データを用いた前記通知画面を表示するステップと、を前記情報処理装置に実行させる、
ことを特徴とする請求項1記載のプログラム。
The notification program is started by the setting reception program, and inquires the print data holding program whether or not the holding of the print data is completed;
When the holding of the print data is completed, the information processing apparatus executes the step of acquiring the print data from the print data holding program and displaying the notification screen using the print data.
The program according to claim 1.
前記所定のプログラムは所定のオペレーティングシステムであり、
前記印刷データ保持プログラムはLanguage Monitorである、
ことを特徴とする請求項1項記載のプログラム。
The predetermined program is a predetermined operating system;
The print data holding program is Language Monitor.
The program according to claim 1.
画像データの出力の設定条件を表示し、前記設定条件を受け付ける設定受付手段と、
アプリケーションから文書データを取得し、前記設定受付手段により受け付けられた前記設定条件に基づいて印刷データに変換する画像処理手段と、
前記画像処理手段が生成した前記印刷データを用いた通知画面を表示する通知画面生成手段と、を有し、所定のプログラムに基づいて動作する情報処理装置であって、
前記画像処理手段が動作を開始する前に、前記通知画面生成手段を起動させる起動手段と、
前記所定のプログラムにより提供される、前記画像処理手段が出力した前記印刷データを保持する印刷データ保持手段と、を有し、
前記起動手段により起動された前記通知画面生成手段は、前記印刷データ保持手段から前記印刷データを取得して、取得した前記印刷データを用いた前記通知画面を表示する、
ことを特徴とする情報処理装置。
Setting accepting means for displaying image data output setting conditions and receiving the setting conditions;
Image processing means for obtaining document data from an application and converting the print data into print data based on the setting conditions received by the setting receiving means;
A notification screen generating means for displaying a notification screen using the print data generated by the image processing means, and an information processing apparatus that operates based on a predetermined program,
An activation unit that activates the notification screen generation unit before the image processing unit starts operation;
Print data holding means for holding the print data output by the image processing means provided by the predetermined program;
The notification screen generation unit activated by the activation unit acquires the print data from the print data holding unit, and displays the notification screen using the acquired print data.
An information processing apparatus characterized by that.
前記通知画面生成手段は、前記通知画面にて印刷を継続するか又は印刷を中止するかのいずれかの設定を受け付けて前記設定を前記印刷データ保持手段に出力し、
前記画像処理手段は、前記印刷データ保持手段から取得した前記設定が印刷中止の場合、前記印刷データの出力を中止する、
ことを特徴とする請求項7記載の情報処理装置。
The notification screen generation unit receives a setting for either continuing printing or canceling printing on the notification screen, and outputs the setting to the print data holding unit.
The image processing unit cancels output of the print data when the setting acquired from the print data holding unit is print cancel;
The information processing apparatus according to claim 7.
前記通知画面生成手段は、前記通知画面に、前記印刷データを用紙に出力したイメージ画像を表示する、
ことを特徴とする請求項7項記載の情報処理装置。
The notification screen generation means displays an image of the print data output on paper on the notification screen.
The information processing apparatus according to claim 7.
前記通知画面生成手段は、
前記印刷データに基づき、前記印刷データが印刷される際の色情報、及び、出力枚数を判別して、印刷に課金される金額を算出し、
前記通知画面に前記金額を表示する、
ことを特徴とする請求項7記載の情報処理装置。
The notification screen generation means includes
Based on the print data, determine the color information when the print data is printed, and the number of output sheets, calculate the amount charged for printing,
Displaying the amount on the notification screen;
The information processing apparatus according to claim 7.
前記通知画面生成手段は、前記設定受付手段により起動された後、前記印刷データ保持手段に前記印刷データの保持が完了したか否かを問い合わせ、前記印刷データの保持が完了した場合、前記印刷データ保持手段から前記印刷データを取得して前記印刷データを用いた前記通知画面を表示する、
ことを特徴とする請求項7記載の情報処理装置。
The notification screen generation means, after being activated by the setting accepting means, inquires of the print data holding means whether or not the holding of the print data is completed, and when the holding of the print data is completed, Obtaining the print data from the holding means and displaying the notification screen using the print data;
The information processing apparatus according to claim 7.
前記所定のプログラムは所定のオペレーティングシステムであり、
前記印刷データ保持手段はLanguage Monitorである、
ことを特徴とする請求項7項記載の情報処理装置。
The predetermined program is a predetermined operating system;
The print data holding means is Language Monitor.
The information processing apparatus according to claim 7.
画像データの出力の設定条件を表示し、前記設定条件を受け付ける設定受付手段と、
アプリケーションから文書データを取得し、前記設定受付手段により受け付けられた前記設定条件に基づいて印刷データに変換する画像処理手段と、
前記画像処理手段が生成した前記印刷データを用いた通知画面を生成する通知画面生成手段と、
前記画像処理手段が動作を開始する前に、前記通知画面生成手段を起動させる起動手段と、
所定のプログラムにより提供される、前記画像処理手段が出力した前記印刷データを保持する印刷データ保持手段と、を有し、
前記起動手段により起動された前記通知画面生成手段は、前記印刷データ保持手段から前記印刷データを取得して、取得した前記印刷データを用いた前記通知画面を生成する、ことを特徴とするシステム。
Setting accepting means for displaying image data output setting conditions and receiving the setting conditions;
Image processing means for obtaining document data from an application and converting the print data into print data based on the setting conditions received by the setting receiving means;
Notification screen generation means for generating a notification screen using the print data generated by the image processing means;
An activation unit that activates the notification screen generation unit before the image processing unit starts operation;
Print data holding means for holding the print data output by the image processing means, provided by a predetermined program,
The notification screen generation unit activated by the activation unit acquires the print data from the print data holding unit, and generates the notification screen using the acquired print data.
所定のプログラムに基づいて動作する第1の情報処理装置に、
画像データの出力の設定条件を表示し、前記設定条件を受け付けるステップと、
所定のプログラムに基づいて動作する第2の情報処理装置が有する画像処理手段が動作を開始する前に、印刷データを用いた通知画面を表示する通知用プログラムを起動させるステップと、を実行させる設定受付プログラムと、
前記第1の情報処理装置に、前記第2の情報処理装置で動作する前記所定のプログラムが有する印刷データ保持プログラムから前記印刷データを取得するステップと、
取得した前記印刷データを用いた前記通知画面を表示するステップと、を実行させる通知用プログラムと、を有するプログラムと、
前記第1の情報処理装置で動作するアプリケーションが作成した文書データを取得し、前記設定受付プログラムにより受け付けられた前記設定条件に基づいて前記印刷データに変換する画像処理手段と、
前記画像処理手段が作成した前記印刷データを保持する前記印刷データ保持プログラムと、を有するシステム。
In the first information processing apparatus that operates based on a predetermined program,
Displaying image data output setting conditions and receiving the setting conditions;
A step of starting a notification program for displaying a notification screen using print data before the image processing unit included in the second information processing apparatus operating based on a predetermined program starts the operation. A reception program,
Obtaining the print data from a print data holding program included in the predetermined program operating in the second information processing apparatus in the first information processing apparatus;
A step of displaying the notification screen using the acquired print data, and a program for executing the program,
Image processing means for acquiring document data created by an application operating on the first information processing apparatus and converting the document data into the print data based on the setting condition received by the setting receiving program;
A print data holding program for holding the print data created by the image processing means.
JP2013110270A 2012-07-27 2013-05-24 Program, information processing apparatus, and system Pending JP2014041599A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013110270A JP2014041599A (en) 2012-07-27 2013-05-24 Program, information processing apparatus, and system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012167492 2012-07-27
JP2012167492 2012-07-27
JP2013110270A JP2014041599A (en) 2012-07-27 2013-05-24 Program, information processing apparatus, and system

Publications (1)

Publication Number Publication Date
JP2014041599A true JP2014041599A (en) 2014-03-06

Family

ID=50393769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013110270A Pending JP2014041599A (en) 2012-07-27 2013-05-24 Program, information processing apparatus, and system

Country Status (1)

Country Link
JP (1) JP2014041599A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016062438A (en) * 2014-09-19 2016-04-25 コニカミノルタ株式会社 Print control system, information processing apparatus, and computer program
JP2017134718A (en) * 2016-01-29 2017-08-03 ブラザー工業株式会社 Driver program, and set comprising driver program and printer
JP2020108134A (en) * 2018-12-25 2020-07-09 株式会社リコー Information processing apparatus, information processing method, and program
CN113574499A (en) * 2019-03-28 2021-10-29 兄弟工业株式会社 Support program, information processing apparatus, and printing method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016062438A (en) * 2014-09-19 2016-04-25 コニカミノルタ株式会社 Print control system, information processing apparatus, and computer program
JP2017134718A (en) * 2016-01-29 2017-08-03 ブラザー工業株式会社 Driver program, and set comprising driver program and printer
JP2020108134A (en) * 2018-12-25 2020-07-09 株式会社リコー Information processing apparatus, information processing method, and program
JP7314648B2 (en) 2018-12-25 2023-07-26 株式会社リコー Information processing device, information processing method, and program
CN113574499A (en) * 2019-03-28 2021-10-29 兄弟工业株式会社 Support program, information processing apparatus, and printing method

Similar Documents

Publication Publication Date Title
JP5857611B2 (en) Information processing device, system, program
US11016782B2 (en) Information processing apparatus, information processing method, and storage medium
US9442678B2 (en) Information processing apparatus, information processing system and non-transitory computer-readable information recording medium
JP5919930B2 (en) Program, information processing apparatus, storage medium
JP5763904B2 (en) Printing system, printing method, print server, control method therefor, and program
WO2020004159A1 (en) Information processing device, control method, and program
US9830544B2 (en) Image processing apparatus, control method, and storage medium for executing print processing using a password including selecting a personal identification code type that indicates a purpose for using the password
JP2017102901A (en) Program, information processing apparatus, setting method, and information processing system
US9160888B2 (en) Information processing apparatus, user information management control method, and storage medium
JP5170141B2 (en) Printer and terminal device
JP5919925B2 (en) Program, information processing apparatus, storage medium
US20100097630A1 (en) Printer driver with context based restrictions
JP6737170B2 (en) Server device, image processing unit and program
JP2014106693A (en) Device, information processor, and information processing system
JP2014041599A (en) Program, information processing apparatus, and system
JP2015166918A (en) program, information processing apparatus, information processing method, and information processing system
US9081530B2 (en) Control system for forming and outputting image, control apparatus for forming and outputting image, and recording medium storing a control program for forming and outputting image
JP5961937B2 (en) Information processing system
JP2012216064A (en) Printing system, print execution device, printing method, print execution method, and print execution program
JP2012221198A (en) Printing system
JP2010214725A (en) Printer and printing system and method of controlling printer
JP2019197250A (en) Information processing device, control method thereof and program
JP2025057108A (en) Cloud Print Service
JP2012008792A (en) Information processor and printer driver
JP2013091321A (en) Printer and terminal device