JP6466010B2 - 情報処理装置、プログラム - Google Patents

情報処理装置、プログラム Download PDF

Info

Publication number
JP6466010B2
JP6466010B2 JP2018062789A JP2018062789A JP6466010B2 JP 6466010 B2 JP6466010 B2 JP 6466010B2 JP 2018062789 A JP2018062789 A JP 2018062789A JP 2018062789 A JP2018062789 A JP 2018062789A JP 6466010 B2 JP6466010 B2 JP 6466010B2
Authority
JP
Japan
Prior art keywords
filter
printer
device information
protocol
communication
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.)
Active
Application number
JP2018062789A
Other languages
English (en)
Other versions
JP2018116734A (ja
Inventor
鈴木 慎也
慎也 鈴木
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2018062789A priority Critical patent/JP6466010B2/ja
Publication of JP2018116734A publication Critical patent/JP2018116734A/ja
Application granted granted Critical
Publication of JP6466010B2 publication Critical patent/JP6466010B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は双方向通信の技術に関する。
特許文献1は複数のフィルタを用いて印刷処理する技術を開示している。
特開2008−152728
プリンターによってはプリンタードライバーの印刷処理時にプリンターのデバイス情報を取得する必要がある。例えば、出力対象のデバイス毎に特有である「キャリブレーションデータ」は、PDL変換に必要な情報であり、印刷するたびに取得した方が望ましい情報である。しかし、プリンタアーキテクチャによっては特許文献1のプリンタードライバーで双方向通信を用いてこうしたデバイス情報を取得することが困難である。
さらに、前述のプリントアーキテクチャでデバイス情報を取得するように構成したとしても、プリンターによってプロトコルごとに取得できるデバイス情報と取得できないデバイス情報が存在する可能性がある。具体的には取得したいデバイス情報がプリンターから第1のプロトコル(例えば複数のフィルタを有するプリンタアーキテクチャで標準として提供されるプロトコル)で取得できなくとも、第2のプロトコルではプリンターから取得できる可能性がある。こうした関係は例えばファームウェアの異なるプリンターでは逆になることも考えられる。
よって本発明では、第1のプロトコル又は第2のプロトコルを用いた双方向通信でプリンターから取得したデバイス情報を用いて印刷処理することにより、好適な出力結果を得ることができるシステムを提供することを目的とする。
上記の目的を達成するための本発明に係る情報処理装置は、プリンタードライバーに含まれる1以上のフィルタを用いてデータを処理する情報処理装置であって、前記1以上のフィルタは、デバイス情報第1のプロトコルを用いた双方向通信で取得可能である場合は、第1のプロトコルを用いた双方向通信により前記デバイス情報を前記プリンタードライバーに関連するプリンターから取得し、前記デバイス情報前記第1のプロトコルを用いた双方向通信で取得可能でない場合は、前記第1のプロトコルとは異なる第2のプロトコルを用いて前記情報処理装置と前記プリンターとが通信を行うポートのポート種別を取得し、当該取得したポート種別に基づくポート経由で前記第2のプロトコルを用いた双方向通信を実行して前記デバイス情報を前記プリンターから取得する取得手段と、前記取得手段が取得した前記デバイス情報を少なくとも用いて印刷処理を行う処理手段と、して機能することを特徴とする。
本発明により、第1のプロトコル又は第2のプロトコルを用いた双方向通信でプリンターから取得したデバイス情報を用いて印刷処理することにより、好適な出力結果を得ることができる。
コンピューターシステムのハードウェアとソフトウェアのブロック構成図である。 印刷処理システムのブロック構成図である。 プリントマネージャにおける印刷手段を示すフローチャートである。 実施形態1における通信フィルタにおける処理手段を示すフローチャートである。 実施形態1におけるレイアウトフィルタにおける処理手段を示すフローチャートである。 実施形態1におけるレンダラフィルタにおける処理手段を示すフローチャートである。 実施形態2における通信フィルタにおける処理手段を示すフローチャートである。 実施形態2におけるレイアウトフィルタにおける処理手段を示すフローチャートである。 実施形態2におけるレンダラフィルタにおける処理手段を示すフローチャートである。
Microsoft(登録商標)のWindows(登録商標)のV3(Version 3)プリンタードライバーにおける印刷の流れを説明する。
パーソナルコンピューター上で作成した文書や図といったファイルをアプリケーションから印刷する際には、V3プリンタードライバーを使ってユーザーが指定した印刷設定を反映した描画データを、ページ記述言語(PDL)に変換し、プリンターに送信する。V3プリンタードライバーがPDLに変換するためには、出力対象のプリンターが保持しているデバイス情報が必要な場合があり、その時はV3プリンタードライバーが出力対象のプリンターと双方向通信を行うことでデバイス情報を取得する。
V3プリンタードライバーが双方向通信を行うために、プリンターと通信を行う機能を持つポートモニターとランゲージモニターと呼ばれる機構を用意している。
ポートモニターとは、プリンターにアクセスするプリントマネージャとV3プリンタードライバー間で通信を制御することができ、V3プリンタードライバーはポートモニターを経由して印刷処理を行う。また、OSが用意している標準双方向通信機能(例えばBididirectional Printer Communication)を利用してデバイス情報を取得することができる。ここで標準双方向通信によって取得できるデバイス情報はWSDプロトコルによって取得された情報である。OSから提供されている代表的なポートモニターとして、USBポートをサポートするためのUSBMonやStandard TCP/IPを提供するTCPMon、WSDポートを提供するWSDMonなどがある。
ランゲージモニターとは、ポートモニターを経由してデバイス情報を取得することや、ポートモニターでは取得できないデバイス情報を、ランゲージモニターがポートを開き、前述のWSDプロトコルとは異なる独自プロトコルを利用した双方向通信である独自双方向通信を利用することができる。このランゲージモニターは、プリンターベンダーがV3プリンタードライバーインストールセットに同梱することで、ユーザーに提供することができる。
一方でV4(Version 4)プリンタードライバーでは前述のランゲージモニターを利用することができない。よって、当然ながら前述のランゲージモニターによる独自双方向通信を行うことができない。そこで、以降の説明ではV4プリンタードライバー(以降、単にプリンタードライバーと記載)でも独自双方向通信を利用可能とする構成について説明する。
〔実施形態1〕
図1は情報処理装置のハードウェア構成図である。
CPU101は主記憶装置102のROM1021あるいはRAM1022あるいは補助記憶装置105に格納されたプログラムに従って装置全体の制御を行う。RAM1022はCPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105はアプリケーション1051やプリンタードライバー1052、オペレーティングシステム(OS)1053等を記録する。プリンタードライバー1052は、プリンターに対して、印刷指示を行うことができる。キーボード1031やマウス・タッチパネルなどに代表されるポインティングデバイス1032などの入力機器は、入力I/F103を通じて、ユーザーがコンピュータに対して各種指示を与えるためのデバイスである。出力I/F104は、データを外部に出力するためのインターフェースであり、モニタ1041やプリンター1042などの出力機器に対してデータを出力する。プリンター1042とは直接接続されるローカルI/Oのみならず、通信I/F106を通じて接続されるネットワーク1061を通して接続されていてもよい。また、107は共通データシステムバスで、I/Fやモジュール間でデータのやりとりを行う。
図2はドライバー印刷システムの構成を例示するブロック図である。OS1053上で動作するドライバー印刷システムは、XML Paper Specification(以下、XPSと略記する)と呼ばれるファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。プリントマネージャ318、GDItoXPS変換モジュール307、フィルタパイプラインマネージャ312はOS1053に含まれるモジュールである。GDItoXPS変換モジュール307、フィルタパイプラインマネージャ312は、プリンタードライバー1052に含まれているが、OS1053から提供されるプリンタードライバー1052のモジュールという位置づけである。プリンタードライバー1052とフィルタパイプラインマネージャ312の各フィルタは、図1の補助記憶装置105にプリンタードライバー1052として格納されている。GDI印刷アプリケーション301とXPS印刷アプリケーション302は、図1の補助記憶装置105にアプリケーション1051として格納されている。ユーザーは入力装置(キーボード1031やポインティングデバイス1032)を使用して、印刷指示を行う。つまり、ユーザーは、モニタ1041に映し出されたGDI印刷アプリケーション301(以下、GDIアプリという)、またはXPS印刷アプリケーション302(以下、XPSアプリという)のUI画面上で操作して印刷処理を実行させる。
印刷処理では、プリンターの選択、印刷設定の作成、描画データの変換という、3つの処理が順番に実行される。まず、印刷したいプリンター1042の選択処理が行われる。ユーザーから見た場合、プリンター1042の選択は、印刷を実行するプリンター1042に対応したプリンタードライバー1052を選択することと同義である。プリンタードライバー1052の選択には、プリントキューを利用する。
次に印刷設定情報を作成する処理が実行される。印刷設定ではまず、アプリケーション1051が印刷設定用のメモリ領域をRAM1022上に確保する。そして、アプリケーション1051は、プリンタードライバー1052のコンフィギュレーションモジュール308を呼び出して、印刷設定データを作成して格納する。GDIアプリ301では、印刷設定データとしてバイナリのDEVMODE構造体303を用いる。XPSアプリ302では、マークアップ言語XMLで記載されたプリントチケット304を用いる。DEVMODE構造体303は、OSが定義する標準領域と、プリンタードライバーが独自で定義する拡張領域を有する。
プリントチケット304は、XML形式で記述された印刷設定データを有し、標準領域と拡張領域は名前空間によって記載が分かれている。印刷設定データには機種固有の情報も含まれているので、コンフィギュレーションモジュール308は、機種依存ファイル309を利用して、印刷設定データを作成する。DEVMODE構造体303またはプリントチケット304は印刷設定データを保持しており、アプリケーション1051が直接、値を書き換えることで印刷設定を変更する。プリンター1042に依存した専用の設定については、プリンターエクステンション310が持つユーザーインタフェースを使用して設定される。プリンターエクステンション310は、プリンタードライバー1052の一種ではあるが、別のアプリケーションとしてインストールが行われる。プリンターエクステンション310はプロパティバッグ3101というデータ保存領域を有する。このデータ保存領域には、プリンターエクステンション310とコンフィギュレーションモジュール308、フィルタパイプラインマネージャ312の各フィルタからアクセス可能である。
プリンタードライバー1052は、ユーザーインタフェースの設定に従い、DEVMODE構造体303またはプリントチケット304の、プリンター1042に依存した設定データを変更する。印刷設定データは具体的には、出力する用紙サイズを「A4」にする、印刷の向きを「横」にする等のように、印刷を行う際に必要なデータのことを指す。プリントチケット304には印刷設定データがXML形式で記述されているので、XPSアプリ302がすべての設定値を直接変更して書き換えることは容易であるが、プリンターエクステンション310のユーザーインタフェースを使って設定変更しても構わない。印刷設定データは文書印刷処理の度に作成される。プリンター1042のオプション機器や、ユーザーごとの環境設定等のデータを保持しておきたい場合、ユーザーインタフェースにより、OSのレジストリデータベース305に保存される。レジストリデータベース305が使用できない場合には、ユーザーインタフェースにより、アプリケーションデータ320として設定情報が保存される。印刷設定のデフォルト値はOSのプリントマネージャ318が、レジストリデータベース305に保存する。レジストリデータベース305や、アプリケーションデータ320は、補助記憶装置105に保存される。
最後に描画データの変換が実行される。印刷設定が確定した場合、ユーザーはアプリケーション1051から印刷処理を実行させる。GDIアプリ301から印刷する場合、プリンタードライバーの形態を取るGDItoXPS変換モジュール307に描画データが送られ、XPSスプールファイル306が作成される。このとき、GDItoXPS変換モジュール307はコンフィギュレーションモジュール308を呼び出し、印刷設定データをDEVMODE構造体303からプリントチケット304に変換する。この変換の際、DEVMODE−プリントチケット変換モジュール3081が使用される。XPSアプリ302から印刷する場合には、XPSファイルをXPSアプリ自身が生成する方法と、OSがXPSアプリからの描画命令に応じてXPSファイルを生成する方法の2通りの方法がある。どちらの方法であっても、印刷の途中でXPSスプールファイル306が生成される。
XPSスプールファイル306が生成された後、プリントフィルタパイプライン311に処理が渡される。プリントフィルタパイプライン311は、データを複数のフィルタに通過させることで処理が行われる仕組みで、フィルタコンフィギュレーションモジュール316によりフィルタの数や順番を制御する。プリントフィルタパイプライン311で動作するフィルタパイプラインマネージャ312は、フィルタコンフィギュレーションモジュール316に従って処理を実行する。本実施形態では、設定フィルタ313、レイアウトフィルタ314、レンダラフィルタ315の順に処理が実行される。フィルタはプリンタードライバー1052の構成によって、数や種類が異なる。印刷処理はXPSスプールファイル306をフィルタに受け渡すことで行われ、フィルタがそれぞれXPSスプールファイル306を加工し、次のフィルタに渡していくことで処理が進行する。最後に、プリンターが理解できるデータ言語であるプリンター制御言語(Page Description Language:以下、PDLと略記する)の出力が得られる。もちろん、プリンター1042がXPSスプールファイル306を直接読み込んで印刷できるXPSダイレクトプリンターであれば、全てのフィルタを素通りして印刷してもよい。各フィルタはデータをプロパティバッグ317に保存することができる。また、プロパティバッグ317から、OS1053の情報や、他のフィルタのデータを取得することもできる。
設定フィルタ313では、プリントチケット304を読み込んで印刷に必要なデータをプリントチケット304に書き込む処理を行う。レイアウトフィルタ314では、倍率の変更や製本の面付けレイアウトやスタンプ等の、レイアウトに関する処理を行う。最終段のレンダラフィルタ315は、XPSスプールファイル306をレンダリングしてPDLデータに変換する。PDLデータは印刷処理のスケジュール管理を行うプリントマネージャ318で管理され、キュー(待ち行列)に印刷ジョブが次々と登録される。プリンター1042が印刷できる状態になると、キューに登録された順にポートモニター319を通してPDLデータがプリンター1042に送信される。
以上のように、アプリケーションからの印刷データをPDLデータに変換することがプリンタードライバーの主な役目であり、前述の印刷処理が行われる。
以下、本実施形態について図3、図4、図5、図6のフローチャートを使用して説明する。
図3は、印刷時にOSのプリントフィルタパイプライン311で動作するフィルタパイプラインマネージャ312が実行する印刷処理の一例を示すフローチャートである。プリンターベンダーは、このフィルタパイプラインマネージャ312が実行するフィルタを提供することで、ユーザーが設定した印刷設定に応じたレイアウト変更やPDL変換を行うレンダリング機能を有することができる。
まず、ユーザーがアプリケーション1051から印刷実行すると、OSがフィルタパイプラインマネージャ312を実行し、印刷処理をスタートさせる(S400)。そしてS401に進む。
S401において、通信フィルタ313の処理を開始する。S401の通信フィルタの処理に関しては、図4のフローチャートを用いて説明する。
図4は、通信フィルタの処理の一例を示すフローチャートである。図4では、標準双方向通信により後続のフィルタ(レイアウトフィルタ314とレンダラフィルタ315)で利用されるデバイス情報が取得できるか判断し、取得できなかったり取得できても最新でない場合に、独自双方向通信により取得できるデバイス情報を取得する手段について記述する。
S500において、通信フィルタ313の処理を開始する。
S501において、通信フィルタ313は、出力対象のプリンターは双方向通信が必要なプリンターかどうかを判断する。
印刷時に利用する出力形式によっては、印刷時にデバイス情報が必要ない場合もある。例えば、レンダラフィルタ315は、ラスター印刷の場合は印刷処理においてプリンターの色ずれ調整値によって描画データを調整することがあるが、ベクター印刷の場合には印刷処理でこれらを行う必要がなく、デバイス情報を必要としない。そこで、プリンタードライバーの機種依存ファイル309に、プリンタードライバーがラスター印刷により印刷処理するか又はベクター印刷により印刷処理するか、すなわち双方向通信が必要かどうかを記述しておく。これにより、通信フィルタ313が機種依存ファイル309を元に双方向通信が必要なプリンターかどうかを判断できる。
もしくは、最初にプリンターと独自双方向通信を行い、独自双方向通信が失敗した場合を双方向通信が必要でないプリンターと判断してもよい。具体的には通信フィルタ313がプリンターに対して何らかの要求を行い、それに対してプリンターが応答できるか否かによって判断できる。例えば、通信フィルタ313がプリンターに対して双方向通信できるか否かを確認する要求を行い、所定時間内にプリンターから双方向通信できることを示す応答を受信した場合に、S501においてプリンターは双方向通信が必要であると判断するように構成する。
S501で双方向通信が必要ないプリンターであると判断された場合は、S509に進み、通信フィルタ313の処理を終了する。もし、双方向通信が必要なプリンターであると判断された場合は、S502に進む。
S502において、標準双方向通信により後続のフィルタで利用されるデバイス情報が取得できるかを判断する。標準双方向通信とは、OSが提供しているポートモニターを利用した双方向通信手段である。例えばBididirectional PrinterCommunication(Bidiプリンター通信)を利用してプリンターと通信することで実現できる。この標準双方向通信を利用できるかどうかの判断手段として、実際にデバイス情報を標準双方向通信で取得することができるかを試し、取得ができる場合はS503に進む。
S503において、標準双方向通信を利用してデバイス情報を取得し、S504へ進む。
S504において、標準双方向通信を利用して、取得したデバイス情報が最新情報であるかを判断する。接続するポートによっては、ポートモニターがキャッシュ情報を持っている可能性がある。例えば、WSDポートではキャッシュ情報を保持しており、標準双方向通信を行うとWSDポートがキャッシュ情報をデバイス情報として返すことがあり、その場合最新のデバイス情報でない場合がある。そこで、タイムスタンプの情報をデバイス情報から取得し、タイムスタンプの日時と現在の日時の差分を算出して、差分が所定の時間内に収まっている場合に、最新情報であると判断する。例えば所定の時間が24時間ならば、タイムスタンプの日時が2013年11月28日14時00分で現在の日時が2013年11月29日13時00分であれば最新情報であると判断する。
また、TCP/IPポートでは、キャッシュ情報を保持しておらず、取得したデバイス情報が最新のデバイス情報となる。そのため、TCP/IPポートで接続している場合は、最新の情報であると判断してもよい。
S504において最新のデバイス情報であると判断した場合は、S508へ進む。
また、S502において、標準双方向通信を利用して取得できないと判断した場合、もしくはS504にて、最新のデバイス情報でないと判断した場合は、S505へ進む。
S505において、現在設定されている接続ポートの種類を取得し、S506へ進む。
S506において、S505で取得したポートの種類に応じた手段でポートを開き、S507へ進む。
S507において、独自プロトコルを利用した双方向通信を行い、デバイス情報を取得する。そして、S508へ進む。
S508において、取得したデバイス情報をプロパティバッグ317へ保存する。以降のフィルタでは、このプロパティバッグ317に保存されたデバイス情報にアクセスすることになる。保存後にS509へ進み、S509で通信フィルタの処理を終了する。
フィルタパイプラインマネージャ312は、印刷終了後から一定時間経過すると自動的に終了する。その場合保存していたプロパティバッグ317の情報はクリアされてしまうため、取得したデバイス情報をプロパティバッグ317ではなくファイルとして保存してもよい。その場合は、以降のフィルタでは保存したファイルを用いてデバイス情報を取得することとなる。
本実施例では、通信フィルタ313において、標準双方向通信で取得できるか(S502)および最新のデバイス情報か(S504)を判断しているが、この判断基準を後続の各フィルタで行ってもよい。そのような場合は、通信フィルタ313は常に独自のプロトコルで通信を行い、取得したデバイス情報をプロパティバッグ317に保存する。そして後続のフィルタにおいて、標準双方向通信を行うか、プロパティバッグ317のデバイス情報を使用するかを選別して実行する。
加えて、デバイス情報が複数項目ある場合、S502からS508の処理は複数項目のうち項目ごとに処理を行うように構成しても構わない。このように構成した場合はS502からS508の処理を複数項目全てに対して行うまで繰り返す。
以上により、図4のS401の通信フィルタの処理を終了し、S402へ進む。
S402において、レイアウトフィルタ314の処理を開始する。S402のレイアウトフィルタ314の処理に関しては、図5のフローチャートを用いて説明する。
図5は、レイアウトフィルタ314の処理の一例を示すフローチャートである。レイアウトフィルタ314は印刷処理の一部であるレイアウト処理を行う。
S600において、レイアウトフィルタ314の処理を開始する。
S601において、プロパティバッグ317からデバイス情報を取得し、S602に進む。
S602において、デバイス情報や印刷設定に応じたレイアウト処理を行う。具体的には、取得したデバイス情報が「プリンターにハードディスクのような保存領域が存在するか」を判断してレイアウト処理を変更する場合がある。印刷設定として、部数「2部」かつ「ソート印刷」のとき、取得したデバイス情報が、プリンターに保存領域が存在することを示す場合には、レイアウトフィルタ314では後述する複製処理を行わない。そしてプリンターの保存領域を利用することで、部数「2部」かつ「ソート印刷」を実現することができる。一方で、デバイス情報として保存領域が存在しないと判断した場合は、レイアウトフィルタで印刷ジョブを複製する複製処理を実行し、2つのジョブを送信することで部数「2部」かつ「ソート印刷」を実現することとなる。このように、印刷設定とデバイス情報を利用してレイアウト処理を施し、S603に進む。
S603において、レイアウトフィルタ314の処理を終了する。
以上により、図4のS402のレイアウトフィルタ314の処理を終了し、S403へ進む。
S403において、レンダラフィルタ315の処理を開始する。S403のレンダラフィルタ315の処理に関しては、図6のフローチャートを用いて説明する。
図6は、レンダラフィルタ315の処理の一例を示すフローチャートである。レンダラフィルタ315は印刷処理の一部であるレンダリング処理を行う。
S700において、レンダラフィルタ315の処理を開始する。S701において、プロパティバッグ317からデバイス情報を取得する。S702において、デバイス情報に応じたレンダリング処理を行う。具体的には、取得するデバイス情報として色ずれ調整情報がある。レンダラフィルタ315では色ずれ調整情報を利用してレンダリングの調整を行うことができる。このように、取得したデバイス情報を利用してレンダリング処理を施し、S703へ進む。S703において、レンダラフィルタ315の処理を終了する。
以上により、S403のレンダラフィルタ315の処理を終了し、S404へ進む。
S404において、ポートモニター319を経由して印刷ジョブをプリンターへ送信し、S405に進み、印刷処理を終了する。
以上の手段により、ランゲージモニターがインストールできない新しいOS環境においても、適切にプリンターと双方向通信を行うことができ、正しい出力結果を得ることができる。また、レガシープリンターのような、標準双方向通信はサポートしていないが、独自プロトコルによる双方向通信はサポートしている機種に対しても、適切にプリンターと双方向通信を行うことができ、正しい出力結果を得ることができる。
〔実施形態2〕
実施形態1では、通信フィルタ313においてプリンターと双方向通信を行うが、ネットワーク接続に時間がかかる場合、印刷処理にも直接影響を及ぼしてしまう。特に、レイアウトフィルタ314においてデバイス情報を利用することがない場合は、双方向通信処理と同時にレイアウト処理を行う方が効率がよい。そこで本実施形態では、非同期通信を利用することにより印刷処理の動作に影響しない手段について説明する。
以下、本実施形態について図7から図10のフローチャートを使用して説明する。
印刷時にOSのプリントフィルタパイプライン311で動作するフィルタパイプラインマネージャ312が実行する印刷の処理に関しては、実施形態1に記述しているため省略する。本実施形態では、各フィルタの処理に関しての説明を行う。
図7は、非同期通信処理を利用した場合の通信フィルタの処理の一例を示すフローチャートである。なお、S800において、処理を開始する。
S801の処理は、S501と同一のため説明を省略する。S801で双方向通信が必要なプリンターであると判断された場合はS802の処理において、非同期通信処理を行う。非同期通信処理とは、印刷時に動作する処理とは異なるスレッドで通信処理を行い、印刷処理と通信処理を並行して行う処理のことを指す。非同期通信処理における実際の処理内容に関しては、S502からS508と同一のため説明を省略するが、通信処理と並行して印刷処理を進めるため、S802の処理が完了した後は通信の成功・失敗にかかわらずS803へ進む。
そして、S803において、非同期通信処理を除く通信フィルタの処理を終了する。
次にレイアウトフィルタ314の処理を開始する。
図8は、非同期通信処理を利用した場合のレイアウトフィルタ314の処理の一例を示すフローチャートである。レイアウトフィルタ314の処理に関しては、図8のフローチャートを用いて説明する。本実施形態では、レイアウトフィルタ314の処理としてデバイス情報を使用しないことを想定する。
S900において、処理を開始する。S901において、印刷設定に応じたレイアウト処理を行い、S902に進む。S902において、レイアウトフィルタ314の処理を終了する。本実施形態では、前述したようにデバイス情報を利用しない。そのため、レイアウトフィルタ314の処理を行っている最中に非同期通信処理が実行されていたとしても、印刷処理に関しては影響しない。そして、レンダラフィルタ315の処理に進む。
次にレンダラフィルタ315の処理を開始する。図9は、非同期通信処理を利用した場合のレンダラフィルタの処理の一例を示すフローチャートである。レンダラフィルタ315の処理に関しては、図9のフローチャートを用いて説明する。
S1000において、レンダラフィルタの処理を開始する。S1001において、通信フィルタの非同期処理S802が終了しているかを判断する。判断する手段として、プロパティバッグ317にデバイス情報が保存されているか否かで判断する。または、非同期通信が完了したかどうかをプロパティバッグ317にフラグとして情報を持たせてもよい。
もし、デバイス情報が保存されていないと判断した場合はS1002へ進む。S1002において、通信フィルタ313の非同期通信処理が終了し、プロパティバッグ317にデバイス情報が保存されるまで待つ。S1001で非同期通信が完了している、もしくはS1002の処理において非同期通信が完了し、デバイス情報が保存された場合は、S1003へ進む。S1003からS1005の処理は、S701からS703の処理と同一の処理のため説明を省略する。
以上の手段により、通信処理に時間がかかってしまう場合においても、非同期通信処理を行うことで印刷処理への影響を最低限に抑えつつ、プリンターと双方向通信を行うことができ正しい出力結果を得ることができる。また、本実施形態ではレイアウトフィルタ314の処理において、デバイス情報が必要ない場合について記載したが、レイアウトフィルタ314においてデバイス情報が必要な場合では、本実施形態でのレンダラフィルタ315と同様の処理をレイアウトフィルタ314で行ってもよい。

Claims (10)

  1. プリンタードライバーに含まれる1以上のフィルタを用いてデータを処理する情報処理装置であって、
    前記1以上のフィルタは、
    デバイス情報第1のプロトコルを用いた双方向通信で取得可能である場合は、第1のプロトコルを用いた双方向通信により前記デバイス情報を前記プリンタードライバーに関連するプリンターから取得し、前記デバイス情報前記第1のプロトコルを用いた双方向通信で取得可能でない場合は、前記第1のプロトコルとは異なる第2のプロトコルを用いて前記情報処理装置と前記プリンターとが通信を行うポートのポート種別を取得し、当該取得したポート種別に基づくポート経由で前記第2のプロトコルを用いた双方向通信を実行して前記デバイス情報を前記プリンターから取得する取得手段と、
    前記取得手段が取得した前記デバイス情報を少なくとも用いて印刷処理を行う処理手段と、
    して機能することを特徴とする情報処理装置。
  2. 印刷指示を受け付けたことに従って、印刷に使用するコンテンツデータを前記1以上のフィルタに入力する入力手段を更に備え、
    前記処理手段は、前記取得手段が取得した前記デバイス情報と、前記入力手段で入力された印刷すべきコンテンツのデータとを用いて、印刷データを生成する印刷処理を行うことを特徴とする請求項1に記載の情報処理装置。
  3. 前記1以上のフィルタには、前記取得手段として機能する第1のフィルタと、前記処理手段として機能する第2のフィルタが少なくとも含まれており、
    前記第2のフィルタは前記第1のフィルタに後続するフィルタとして機能することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記第1のフィルタは取得した前記デバイス情報を前記1以上のフィルタがアクセス可能なデータ保存領域に保存することを特徴とする請求項3に記載の情報処理装置。
  5. 前記第1のプロトコルを用いた前記双方向通信とはBidiプリンター通信を用いた通信であることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 1以上のフィルタを含むプリンタードライバーを実行可能なコンピュータにおいて実行されるプログラムであって、
    前記コンピュータに、前記1以上のフィルタを実行させ、
    前記1以上のフィルタは、
    デバイス情報が第1のプロトコルを用いた双方向通信で取得可能である場合は、第1のプロトコルを用いた双方向通信により前記デバイス情報を前記プリンタードライバーに関連するプリンターから取得し、前記デバイス情報が前記第1のプロトコルを用いた双方向通信で取得可能でない場合は、前記第1のプロトコルとは異なる第2のプロトコルを用いて前記コンピュータと前記プリンターとが通信を行うポートのポート種別を取得し、当該取得したポート種別に基づくポート経由で前記第2のプロトコルを用いた双方向通信を実行し、前記デバイス情報を前記プリンターから取得する取得手段と、
    前記取得手段が取得した前記デバイス情報を少なくとも用いて印刷処理を行う処理手段と、して機能することを特徴とするプログラム。
  7. 前記コンピュータ上で動作するアプリケーションのコンテンツを印刷する印刷指示を受け付けたことに従って、印刷するコンテンツデータが前記1以上のフィルタに入力され、
    前記処理手段は、前記取得手段が取得した前記デバイス情報と、前記入力された印刷すべきコンテンツのデータとを用いて、印刷データを生成する印刷処理を行うことを特徴とする請求項6に記載のプログラム。
  8. 前記1以上のフィルタには、前記取得手段として機能する第1のフィルタと、前記処理手段として機能する第2のフィルタが少なくとも含まれており、
    前記第2のフィルタは前記第1のフィルタに後続するフィルタとして機能することを特徴とする請求項6又は7に記載のプログラム。
  9. 前記第1のフィルタは取得した前記デバイス情報を前記第2のフィルタがアクセス可能なデータ保存領域に保存することを特徴とする請求項8に記載のプログラム。
  10. 前記第1のプロトコルを用いた前記双方向通信とはBidiプリンター通信を用いた通信であることを特徴とする請求項6乃至9のいずれか1項に記載のプログラム。
JP2018062789A 2018-03-28 2018-03-28 情報処理装置、プログラム Active JP6466010B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018062789A JP6466010B2 (ja) 2018-03-28 2018-03-28 情報処理装置、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018062789A JP6466010B2 (ja) 2018-03-28 2018-03-28 情報処理装置、プログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013255205A Division JP6315965B2 (ja) 2013-12-10 2013-12-10 情報処理装置、プログラム及び制御方法

Publications (2)

Publication Number Publication Date
JP2018116734A JP2018116734A (ja) 2018-07-26
JP6466010B2 true JP6466010B2 (ja) 2019-02-06

Family

ID=62985604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018062789A Active JP6466010B2 (ja) 2018-03-28 2018-03-28 情報処理装置、プログラム

Country Status (1)

Country Link
JP (1) JP6466010B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050225789A1 (en) * 2003-12-09 2005-10-13 Sharp Laboratories Of America, Inc. Print subsystem despooling backplane
JP5022748B2 (ja) * 2007-03-23 2012-09-12 キヤノン株式会社 クライアント装置及び情報処理方法
JP5031514B2 (ja) * 2007-10-31 2012-09-19 キヤノン株式会社 データ処理装置およびデータ処理方法

Also Published As

Publication number Publication date
JP2018116734A (ja) 2018-07-26

Similar Documents

Publication Publication Date Title
US11016782B2 (en) Information processing apparatus, information processing method, and storage medium
EP1835395A2 (en) Information processing apparatus, control method therefor, and program
JP6315965B2 (ja) 情報処理装置、プログラム及び制御方法
EP2388685B1 (en) Information processing apparatus and control method thereof, and storage medium
JP6289276B2 (ja) 情報処理装置およびプログラム、制御方法
JP5581793B2 (ja) 情報処理装置、プログラムおよび記憶媒体
JP7278772B2 (ja) 情報処理装置、制御方法及びアプリケーションプログラム
JP7341647B2 (ja) 情報処理装置、制御方法及びプログラム
JP2014109854A (ja) 情報処理装置および制御方法およびプログラム
US8688864B2 (en) Information processing apparatus, information processing method, and information processing program
JP4144392B2 (ja) 画像処理装置、画像形成システム、画像形成方法、およびプログラム
JP5700938B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2015121974A (ja) 情報処理装置、情報処理方法、およびプログラム
JP2024052771A (ja) 情報処理装置、制御方法およびプログラム
JP4110945B2 (ja) 画像処理装置、画像形成装置、およびプログラム
KR20210098343A (ko) 정보 처리 장치, 제어 방법 및 그 프로그램, 및 정보 처리 장치와 통신할 수 있는 서버 시스템
JP7362475B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP5919925B2 (ja) プログラム、情報処理装置、記憶媒体
JP6827738B2 (ja) 制御方法、プログラム及び情報処理装置
JP6466010B2 (ja) 情報処理装置、プログラム
JP5879807B2 (ja) 印刷制御装置、制御プログラム及び記録媒体
WO2021220695A1 (ja) 画像形成装置と画像形成装置の制御方法、及びプログラム
JP2017033050A (ja) 情報処理装置および制御方法およびプログラム。
JP7350525B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2024018592A (ja) 情報処理装置、方法およびプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180426

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190108

R151 Written notification of patent or utility model registration

Ref document number: 6466010

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151