JP2015084213A - 情報処理装置、情報処理システム、及びプログラム - Google Patents

情報処理装置、情報処理システム、及びプログラム Download PDF

Info

Publication number
JP2015084213A
JP2015084213A JP2014186701A JP2014186701A JP2015084213A JP 2015084213 A JP2015084213 A JP 2015084213A JP 2014186701 A JP2014186701 A JP 2014186701A JP 2014186701 A JP2014186701 A JP 2014186701A JP 2015084213 A JP2015084213 A JP 2015084213A
Authority
JP
Japan
Prior art keywords
print
application
unit
information processing
processing apparatus
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.)
Granted
Application number
JP2014186701A
Other languages
English (en)
Other versions
JP6331910B2 (ja
Inventor
紘士 小林
Koji Kobayashi
紘士 小林
大輔 玉島
Daisuke Tamashima
大輔 玉島
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 JP2014186701A priority Critical patent/JP6331910B2/ja
Publication of JP2015084213A publication Critical patent/JP2015084213A/ja
Priority to US14/843,188 priority patent/US9442678B2/en
Priority to CN201510567607.2A priority patent/CN105426135B/zh
Application granted granted Critical
Publication of JP6331910B2 publication Critical patent/JP6331910B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1254Automatic configuration, e.g. by driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Abstract

【課題】オペレーティングシステムに印刷実行指示を出すアプリケーションの改変や印刷設定画面の操作を行わずに、そのアプリケーションの印刷設定を変更できるようにする。
【解決手段】管理アプリケーション40は、アプリケーション50を起動し、印刷文書ファイルを与えるだけで文書ファイルをデフォルトの印刷設定で印刷させる印刷実行指示をOS30に行わせるともに、プリンタドライバ60の描画ドライバ63に対して拡張I/F部62を介してアプリケーションの印刷設定を与えることにより、ユーザの意図を反映した印刷を行わせる。
【選択図】図4

Description

本発明は、情報処理装置、情報処理システム、及びプログラムに関し、さらに詳しくは、アプリケーションの改変や印刷設定画面の操作を行わずに、アプリケーションの印刷設定を変更することのできる情報処理装置、情報処理システム、及びプログラムに関する。
〈Windows(登録商標)プリントアーキテクチャ〉
図18にWindows(登録商標)プリントアーキテクチャの概略を示す。Windows(登録商標)プリントアーキテクチャでは、プリンタドライバ60は、アプリケーション50が印刷実行指示を出したとき、印刷設定が格納されたDEVMODE構造体90を受け取ることにより、集約、両面、ステープルなどといった印刷設定を反映させて描画データを生成し、プリンタ5に送信することで印刷を実行する。DEVMODE構造体は、アプリケーション50が印刷実行指示を出した時にOS(Operating System:オペレーティングシステム)のGDI(Graphics Device Interface)31に渡され、それがプリンタドライバ60に渡される。
印刷時にアプリケーション50からプリンタドライバ60にDEVMODE構造体90が渡されることにより、アプリケーション50は描画する領域などをプリンタ5の能力を把握しながら、描画命令をGDI31に対して行える。これは、プリンタドライバ60が印刷実行指示時に渡されたDEVMODE構造体90と自身が繋がっているプリントデバイスであるプリンタ5の情報をもとに、GDI31に対して描画能力(描画可能な能力情報)を返却するからである。
ここで、Windows(登録商標)プリントアーキテクチャの仕組み上、アプリケーション50は、印刷実行指示を出した時にしかDEVMODE構造体90をプリンタドライバ60に渡すことができない。また、アプリケーション50が印刷に使用した印刷設定は、他のアプリケーション(別プロセス)や同一アプリケーション(同一プロセス)でも別スレッドからはアクセスすることができない。
また、プリンタドライバ60は、プリンタフォルダで印刷設定画面(印刷ダイアログと呼ばれることがある)を開き、デフォルトの印刷設定(システムデフォルトのDEVMODE構造体)を決定することができる。この印刷設定はアプリケーションからAPI(Application Programming Interface)で取得することができる。
このとき、プリンタドライバ60に対してはGDI31から、印刷設定の命令がDDI(Device Drive Interface)で通知される。DDIはI/F(インタフェース)のみ定義されているので、DDI内の実装方法(DDIで呼ばれた場合のプリンタドライバの処理)はプリンタドライバのメーカが設計できる。しかし、メーカが、プリンタドライバに独自にI/Fを定義したとしても、Windows(登録商標)系OSはそのI/Fを知ることができないため、そのI/Fがコールされることはない。
〈DEVMODE構造体〉
図19にDEVMODE構造体の一例を示す。図示のようにDEVMODE構造体は、Public領域とPrivate領域に分かれている。Public領域は、OS定義の領域なので、アプリケーションから変更することができる。Public領域には、「印刷方向」「用紙サイズ」などといった、どのようなプリンタドライバでも設定することが必要な項目が存在する。
Private領域はメーカ独自の領域であり、メーカやプリンタドライバ毎にどのような情報を格納するかを定義することができる。アプリケーションやWindows(登録商標)系OSは、Private領域にどのような情報が格納されているかを知ることができないので、Private領域を変更するにはプリンタドライバのUI(User Interface)ドライバがPrivate領域の設定を表示して、変更を受け付けるしか方法がない。Private領域には、「印刷方式」「認証」などといったメーカやプリンタ機種毎の特徴を持った設定項目が存在する。
〈DEVMODE構造体の参照〉
図20は、プリンタドライバによるDEVMODE構造体の参照について説明するための図である。ユーザは、UIドライバ61が作成した用紙サイズや部数、両面印刷などの印刷条件を設定し、印刷を指示する。ユーザが印刷設定指示の操作を行うと、アプリケーション50がGDIコールを生成してDEVMODE構造体90をGDI31に送出する(印刷設定指示)。アプリケーション50は、例えば文書作成プログラム(例.MS−Word:登録商標)である。
GDI31は、アプリケーション50からDEVMODE構造体90を取得すると、DDIコールによりプリンタドライバの描画ドライバ63を呼び出して、DEVMODE構造体90を送出する(印刷実行指示)。描画ドライバ63は、GDI31から取得したDEVMODE構造体を参照して、アプリケーション50によって印刷指示された文書ファイルから、印刷設定を反映させた印刷データを作成し、スプーラに送出する。なお、印刷データには描画データ(例えばPDLのデータ)と制御データ(例えばPJLの印刷コマンド)が含まれる。即ち、UIドライバ61と描画ドライバ63は、いずれもDEVMODE構造体90を参照することができ、UIドライバ61はPrivate領域を表示したり、設定変更を受け付けたりすることができる。
上記のように、DEVMODE構造体90は、UIドライバ61によって印刷設定が格納されたり、描画ドライバ63によって印刷設定が参照されたりする。格納時・参照時、DEVMODE構造体を渡す起点になっているのはアプリケーション50である。実際にはアプリケーション50がメモリを確保し、OS30を介してUIドライバ61に渡し、その中身をUIドライバ61が埋める。また、アプリケーション50がOS30を介して印刷実行指示を行うと、描画ドライバ63がDEVMODE構造体90の中身を参照するようになっている。
〈プリンタドライバの拡張I/Fを用いたDEVMODE構造体へのアクセス〉
このように、Private領域を変更するには、プリンタドライバ60が印刷設定画面を表示し、ユーザ操作を受け付けるしか方法がないため、ユーザの操作が必須となってしまう。
しかし、ユーザによる操作なしに、全自動で処理を完了させたい処理も存在する。例えば、このような処理として、帳票印刷やDM(ダイレクトメール)をFAX送信する処理がある。このような処理において、印刷設定は変わらないのに、1つの帳票毎に又は1つの送信文書の度に、ユーザが印刷設定画面を操作してPrivate領域を変更しなければならないとすると、操作性が低下してしまう。
このため、ユーザの操作を伴わず、処理に適したアプリケーションにプリンタドライバのPrivate領域に格納される印刷設定を変更させたいという要求がある。
この要求に対し、メーカによっては、アプリケーションがプリンタドライバと直接、通信することができるように、プリンタドライバの拡張I/Fを提供している(例えば、特許文献1)。また、ユーザからの要求によっては処理に適したアプリケーションも開発する。
図21は、拡張I/F部、アプリケーション、及び、DEVMODE構造体について説明するための図である。図21におけるアプリケーション51は、ユーザ側の処理に適したアプリケーション又は少なくとも拡張I/F部を呼び出せるアプリケーションである。
アプリケーション51は、拡張I/F部62を呼び出して印刷設定指示を送り、UIドライバ61によりDEVMODE構造体90のPrivate領域の印刷設定を変更できる。描画ドライバ63は、印刷実行指示を受けたとき、DEVMODE構造体90のPrivate領域の印刷設定を参照する。このため、ユーザがアプリケーション51で印刷実行指示を出した後、ユーザによる操作なしに処理を完了させることができる。
〈RAWスプールとEMFスプール〉
Windows(登録商標)系OSのプリントアーキテクチャとして、プリンタドライバの印刷では、RAWスプール形式とEMFスプール形式といった2つのスプール形式が存在する。RAWスプール形式では、アプリケーションのプロセスで、アプリケーションからプリンタドライバが取得した文書データをプリンタが解釈可能なRAWデータに変換する変換処理を行う。ユーザから見ると変換処理が完了するまでアプリケーションの操作ができない。
EMFスプール形式では、アプリケーションのプロセスで、アプリケーションからOSが取得した文書データをプリンタに依存しないEMFデータ形式に変換しスプールする。そして、スプーラプロセスでスプールされたEMFデータをプリンタドライバが、プリンタが解釈可能なRAWデータに変換する変換処理を行う。ユーザから見ると、アプリケーションのプロセスでEMFデータへの変換が終了した時点で、アプリケーションを操作できるようになる。
〈Point & Print〉
次に、プリンタドライバのインストール方式と、印刷開始後の印刷設定の関係について説明する。Windows(登録商標)系OSのプリンタドライバではPoint & Printというインストール形式が存在する。
図22は、Point & Printの概略について説明するための図である。通信ネットワーク2にプリンタ5、クライアントPC7及びサーバPC8が接続されている。クライアントPC7及びサーバPC8にOS(サーバにはサーバ用)がインストールされている。クライアントPC7は、このサーバPC8をプリントサーバとして、プリンタ5に印刷要求を行うことができる。
このようなシステムでは、クライアントPC7にはサーバPC8と同じプリンタドライバ60がインストールされている必要がある。しかし、通信ネットワーク2上の個々のクライアントPCに、管理者などがプリンタドライバをインストールするには多くの時間と労力を必要とする。
そのため、Point & Printではこの不都合を解決する手段として、サーバPC8からクライアントPC7にプリンタドライバをダウンロードしてインストールすることを可能にしている。これは、Windows(登録商標)系OS標準の機能である。なお、Point & Printでインストールしたプリンタドライバ60にも、印刷時にはRAWスプール形式とEMFスプール形式が存在する。
Point & Printによりインストールされたプリンタドライバ60は(EMFスプールの場合)、描画処理(レンダリングともいう、前述した描画ドライバ63による処理)をクライアントPC7が行うかサーバPC8が行うかをユーザが変更することができる。クライアントPC7側で描画処理を行うことを「クライアントサイドレンダリング」という。サーバPC8側で描画処理を行う「サーバサイドレンダリング」という。
〈共有フォルダを監視して印刷を行うソリーション〉
共有フォルダを監視し、ファイルが追加されたことを検知して印刷を行うIT−Boxと呼ばれるソリーションがある。図23はIT−Boxについて説明するための図である。
IT−BoxはWindows(登録商標) OSを利用して構築される。IT−Boxが導入されたサーバPC8は管理アプリケーション40及び共有フォルダ85を備えている。管理アプリケーション40は共有フォルダ85を監視しており、ファイルが追加されたことを検知すると、追加されたファイルの印刷実行指示をOSに出力できるアプリケーションを起動させて印刷を行う。
この図では、管理アプリケーション40は、クライアントPC7により共有フォルダ85にファイルa 86が追加されたことを検知し、ファイルa 86を読み込み、ファイルa 86の印刷実行指示をOS30に対して送出可能なアプリケーションa 50aを起動させ、ファイルa 86を渡して印刷指示を出している。ファイルa 86が例えばdocファイルであれば、アプリケーションa 50aとして、Word Viewer或いはMS-Wordなどが使われる。
アプリケーションa 50aがOS30に印刷実行指示を出し、OSがプリンタドライバ60に印刷実行指示を出し、プリンタドライバ60がプリンタ5に描画データを送信することで、プリンタ5により印刷が行われる。
大部分のOfficeアプリケーションでは、Officeアプリケーションに引数付でファイルを渡すことで印刷できることを利用して、このIT−Boxのソリューションが構築されている。このIT−Boxでは、共有フォルダ85に追加されたファイルを外部のPCやスマートデバイスから参照し、プリンタ5で印刷を行うことが可能となる。IT−Box内にインストールするプリンタドライバ60のインストール形式は顧客環境によって変わる可能性がある。
このIT−Boxには、使用されるプリンタドライバ60での印刷において、アプリケーションの印刷設定が変更できず、デフォルトの印刷設定のままで印刷されてしまうという問題がある。
管理アプリケーション40はソリューション開発ベンダ独自のアプリケーションであるが、Office文書などを印刷するOfficeアプリケーションは他ベンダ開発のものなどで、改変しないもしくは改変できないものが使われている。管理アプリケーション40は、そのOfficeアプリケーションに対して引数でOfficeファイルと印刷指示の出力しかできないため、印刷設定を変更することができない。
よって、共有フォルダ85に転送されたファイルを他のPCやスマートデバイスから印刷をする時に、集約印刷や両面印刷など、他のPCやスマートデバイスのユーザの望む印刷設定で印刷することができない。
前述した拡張I/F部62を用いてDEVMODE構造体へのアクセスを可能にしたプリンタドライバ(特許文献1)の場合、DEVMODE構造体に全ての設定項目を格納することが前提であるため、実際にプリンタドライバに対して印刷を指示するアプリケーションが、プリンタドライバの独自拡張I/F部62を知っている必要がある。従って、IT−Boxのような印刷をかけるトリガとなるアプリケーション(管理アプリケーション)と実際に印刷をかけるアプリケーションとが異なる場合、印刷設定を変更することができないという問題がある。
ここで、特許文献1に記載されたプリンタドライバでは、DEVMODE構造体に全ての設定項目を格納することが前提となる理由を説明する。図21に示したように、プリンタドライバが独自に拡張した拡張I/F部62を利用して、アプリケーション51が印刷設定を変更する場合、(i)アプリケーション51がプリンタドライバの拡張I/F部62に対してDEVMODE構造体90を入力し、(ii)印刷設定の変更を行った後のDEVMODE構造体90を出力として受け取り、(iii)これを印刷開始時に描画ドライバ63に渡すDEVMODE構造体90とする、という処理が必要である。
つまり、拡張I/F部62を用いた場合に、DEVMODE構造体90以外に印刷設定を格納すると、アプリケーション51は拡張I/F部62からDEVMODE構造体90以外の印刷設定を取得できないので、DEVMODE構造体90に全ての印刷設定を格納する必要がある。
また、特許文献1に記載されたプリンタドライバでは、アプリケーションをユーザの処理に適したもの又は拡張I/F部62を呼び出せるものに改変することが必要となる。
また、特許文献1に記載されたプリンタドライバには、特定のスプール形式のみや、ローカル環境へのインストール時のみだけでなく、RAWスプール、EMFスプールの両方とも同じようには動作することができないという問題がある。また、Point & Printでインストールされたプリンタドライバでは動作することができないという問題もある。
〈DEVMODE構造体以外のファイルやレジスタトリによる印刷設定の保持〉
DEVMODE構造体以外のファイルやレジストリや共有メモリ空間などに印刷設定を保持しておき、プリンタドライバ側でその設定を読み込むことで、外部から印刷設定の変更を可能にする方法を採用しているプリンタドライバも存在する。
図24にその方法の一例を示す。図示のように、アプリケーション52は、拡張I/F部62を呼び出して印刷設定指示を送り、UIドライバ61によりDEVMODE構造体以外の設定格納領域91に印刷設定を格納する。描画ドライバ63は、OS30から印刷実行指示を受けたとき、設定格納領域91の印刷設定を参照する。
この方法によれば、DEVMODE構造体に印刷設定を格納しないという点では前述の問題点を解消するが、DEVMODE構造体を用いないことで別の問題が発生する。
以下の2つのケースである。
1.EMFスプールでの印刷シーケンス
2.Point & Printインストールしたプリンタドライバでの印刷シーケンス
まず1番目のケースにおける問題について説明する。上記の方法は、印刷時のDDIコールシーケンスに依存しており、RAWスプールの時は実現可能である。しかし、スプール形式が異なると、OSから呼ばれるDDIコールシーケンスが変化する。即ち、EMFスプールには、OS内部の動作として、アプリケーションからの印刷データをEMFデータに変換する処理と、EMFデータをプリンタが解釈可能なデータに変換する処理という、2回の変換処理シーケンスがある。
この2回の変換処理シーケンスのうち、EMFデータに変換する処理と、EMFデータをプリンタが解釈可能なデータに変換する処理では、プロセスが異なってしまう。プロセスの権限によってアクセス可能/不可能があるため、ファイルやレジストリの場所によっては、最終的にプリンタが解釈可能なデータ変換時に、拡張I/F部62で設定した印刷設定を設定格納領域から取得できない可能性がある。最近のWindows(登録商標) 系OSではセキュリティの観点から、権限が異なると全くアクセスできない場合もある。
次に2番目のケースにおける問題について説明する。上記の方法は、ローカル環境で、ユーザが使用するPCにプリンタドライバをインストールした時は実現可能である。しかし、Point & Printでインストールしたドライバでは実現できないことがある。
即ち、Point & Printでインストールしたドライバでは、UIドライバ61と描画ドライバ63が動作する場所が異なるようにすることもできる。例えば、クライアントサイドレンダリングでは、UIドライバ61、描画ドライバ63ともにクライアントPC7側で動作し、サーバサイドレンダリングでは、UIドライバ61は、クライアントPC側で動作し、描画ドライバ63はサーバPC8側で動作をする。
このサーバサイドレンダリングでは、そもそも動作するPCが物理的に別であるため、プリンタドライバ60の拡張I/F部62によってファイルやレジストリなどの設定格納領域91に一時格納した印刷設定を、描画ドライバ63が、最終的にプリンタ5が解釈可能なデータ変換時に取得できない。
本発明は、このような問題を解決するためになされたものであり、その目的は、オペレーティングシステムに印刷実行指示を出すアプリケーションの改変や印刷設定画面の操作を行わずに、そのアプリケーションの印刷設定を変更できるようにすることである。
本発明に係る情報処理装置は、アプリケーションに印刷指示を送出するアプリケーション管理手段と、オペレーティングシステムで定義されたインタフェース手段を通して、前記アプリケーションからファイル及び印刷設定を伴う印刷実行指示を受け取り、印刷データを生成する印刷データ生成手段と、前記インタフェース手段以外のインタフェース手段である拡張インタフェース手段と、前記アプリケーション管理手段から前記拡張インタフェース手段を通して入力された印刷設定を保持する印刷設定保持手段と、を有し、前記印刷データ生成手段は、前記印刷設定保持手段に保持されている印刷設定を反映させた前記印刷データを生成する機能を有する情報処理装置である。
本発明によれば、オペレーティングシステムに印刷実行指示を出すアプリケーションの改変や印刷設定画面の操作を行わずに、そのアプリケーションの印刷設定を変更することができる。
本発明の情報処理装置の実施形態を含む印刷システムの概略構成を示す図である。 図1におけるPCのハードウェア構成について説明するための図である。 図1におけるPCのソフトウェア構成について説明するための図である。 図3における管理アプリケーション、アプリケーション、プリンタドライバ、及びOSの関係について説明するための図である。 図3に示す各ソフトウェアの基本動作について説明するための図である。 複数の論理プリンタに対する印刷設定を保持する構成について説明するための図である。 IT−Boxを利用した印刷の第1の例について説明するための図である。 印刷設定から印刷データの生成までの手順の第1の例を示すシーケンス図である。 Point & Print環境を備えた印刷システムについて説明するための図である。 Point & Print環境でのランゲージモニタについて説明するための図である。 IT−Boxを利用した印刷の第2の例について説明するための図である。 図11における設定変更部により提供される印刷設定変更UIの例を示す図である。 印刷設定から印刷データの生成までの手順の第2の例を示すシーケンス図である。 サポートしている機能の異なる複数のプリンタドライバを切り替えて印刷するケースについて説明するための図である。 サポートしている機能の異なる複数のプリンタドライバから1つを選択し、印刷する場合の手順を示すシーケンス図である。 新規機能を動的にシステムに組み入れる仕組みを持つ拡張I/Fを示す図である。 新規機能用の拡張I/F部の追加用UIの一例を示す図である。 Windows(登録商標)プリントアーキテクチャの概略を示す図である。 DEVMODE構造体の一例を示す図である。 プリンタドライバによるDEVMODE構造体の参照について説明するための図である。 拡張I/F部、アプリケーション、及び、DEVMODE構造体について説明するための図である。 Point & Printの概略について説明する図である。 IT−Boxについて説明するための図である。 DEVMODE構造体以外のファイルやレジストリや共有メモリ空間などに印刷設定を保持しておき、プリンタドライバ側でその設定を読み込むことで、外部から印刷設定の変更を可能にする方法について説明するための図である。
以下、本発明の実施形態について図面を参照して説明する。なお、以下に示す図面において、「背景技術」で示した図面と同一又は対応する部分には、「背景技術」で示した図面と同じ参照符号を付した。
〈印刷システムの概略構成〉
図1は、本発明の情報処理装置の実施形態を含む印刷システムの概略構成を示す図である。
この印刷システム1は、通信ネットワーク2に接続されたPC(パーソナルコンピュータ)3、スマートデバイス4、及びプリンタ5を備えている。PC3が本発明の実施形態に係る情報処理装置であり、IT−Boxが導入されている。
PC3は、ユーザの操作を受け付け、文書作成ソフトなどのアプリケーションが作成したファイルからプリンタドライバにより印刷データを生成し、通信ネットワーク2を通してプリンタ5に送信することで、ファイルの印刷を行うことができる。スマートデバイス4は、PC3に導入されたIT−Boxを通信ネットワーク2経由で利用することができる。プリンタ5は、インクジェット方式や電子写真方式などの作像部を備えていればよく、複合機であってもよい。
〈PCのハードウェア構成〉
図2は、図1におけるPCのハードウェア構成について説明するための図である。
PC3は、それぞれバス10で相互に接続されているCPU11、ROM12、RAM13、外部I/F14、通信装置15、入力装置16、表示制御部17及び記憶装置18を有する。
CPU11は、OS30、管理アプリケーション40、アプリケーション50、及び、プリンタドライバ60を記憶装置18から読み出して、RAM13を作業メモリにして各種処理を実行する。
ROM12にはBIOSや初期設定されたデータ、スタートプログラム等が記憶されている。RAM13は必要なデータを一時記憶する作業メモリ(主記憶メモリ)になる。
外部I/F14はUSBケーブル等のケーブルや、可搬型の記憶媒体19を装着するインタフェースである。通信装置15は、LANカードやイーサネット(登録商標)カードであり、CPU11からの指示によりプリンタ5にパケットデータ(本実施形態では主に印刷データ)を送信する。
入力装置16は、キーボード、マウスなど、ユーザの様々な操作指示を受け付けるユーザインターフェイスである。タッチパネルや音声入力装置を入力装置とすることもできる。
表示制御部17は、アプリケーション50が指示する画面情報に基づき所定の解像度や色数等でディスプレイ20の描画を制御する。ディスプレイ20は、液晶や有機ELなどのFPD(Flat Panel Display)である。
記憶装置18は、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発メモリを実体とし、OS30、管理アプリケーション40、アプリケーション50、及びプリンタドライバ60を記憶している。また、共有フォルダ(図示せず)が設けられている。記憶媒体19は、例えば、SDカードやUSBメモリなど不揮発性のメモリである。
OS30はWindows(登録商標)系OSである。なお、OS30としてはWindows(登録商標)系OSが好適であるが、Windows(登録商標)系OSと同等の機能を有するOSであればよい。
アプリケーション50は、文書データの作成、編集、表示、管理などを行い、文書データの印刷処理が可能なアプリケーションであればどのようなものでもよい。例えば、文書作成ソフト、文書閲覧ソフト(文書ビューワ、文書リーダ)、ブラウザソフト、プレゼン資料作成ソフト等、種々のものがある。なお、文書データは、文字や記号、数値だけでなく、各種画像フォーマット(例.JPEG、TIFF)のデータを含む。
管理アプリケーション40、プリンタドライバ60、及び共有フォルダの詳細については後述する。
〈PCのソフトウェア構成〉
図3は、PC3のソフトウェア構成、即ち記憶装置18に記憶されているソフトウェアについて説明するための図である。
PC3は、管理アプリケーション40、アプリケーション50、プリンタドライバ60、ランゲージモニタ(Language Monitor)70、及び通信部80を有する。このうち、ランゲージモニタ70は、プリンタドライバ60とプリントデバイスであるプリンタ5との間で双方向通信を行うための双方向通信インタフェース手段(ソフトウェア)としてWindows(登録商標)系OSにより提供されているため、広義ではOSの一部である。この他のGDI、スプーラ、プリンタプロセッサなどは省略したが、OSと共にPC3にインストールされている。
管理アプリケーション40は、共有記憶装置としての共有フォルダを監視し、共有フォルダにファイルが追加されたことを検知したとき、追加されたファイルの印刷処理(OSに対する印刷実行指示の送出など)が可能なアプリケーションを起動させて追加されたファイルを渡し、印刷処理を実行させるためのプログラムである。管理アプリケーション40は、アプリケーション管理手段及びファイル監視手段として機能する(アプリケーション管理手段及びファイル監視手段を兼用する)。
プリンタドライバ60は、UIドライバ61と、拡張I/F部62と、描画ドライバ63を有する。また、UIドライバ61は表示部64を有する。UIドライバ61の表示部64は、ユーザがアプリケーション50に対して文書の印刷操作を入力することで、印刷設定画面をディスプレイ20に表示させる。
ユーザは、印刷設定画面に対し、部数や両面などといった設定、「集約」「製本」「変倍」等の設定を行うことができる。また、表示部64は、ユーザが印刷開始指示を入力した後も、印刷設定画面をディスプレイ20に表示して、印刷設定の変更を受け付けることができる。印刷設定は、DEVMODE構造体という構造体(データテーブル)に格納される。DEVMODE構造体はWindows(登録商標)系OS上で動作する各種のプリンタドライバ60に対して印刷条件を共通に設定するためのメンバ変数が定義されたデータ構造である。DEVMODE構造体は、オペレーティングシステムで定義されたインタフェース手段としてのGDIによりプリンタドライバ60に渡される。
拡張I/F部62は、DEVMODE構造体を介さずに直接印刷設定を受け取ることを可能にしたプリンタドライバ60に独自のインタフェースである。つまり、拡張I/F部62はオペレーティングシステムで定義されたインタフェース手段以外の拡張インタフェース手段である。本実施形態では、拡張I/F部62は、管理アプリケーション40からアプリケーション50の印刷設定を受け取る。また、その印刷設定を印刷設定保持手段としてのランゲージモニタ70が保持する。
印刷データ生成手段としての描画ドライバ63は、DEVMODE構造体に含まれている印刷設定、及びランゲージモニタ70に保持されている印刷設定を参照して、アプリケーション50から送出された印刷実行指示に関わる文書ファイルから、印刷設定を反映させた印刷データを作成する。このとき、ランゲージモニタ70に印刷設定が保持されている場合は、その印刷設定を使用し、保持されていない場合は、DEVMODE構造体に含まれている印刷設定を使用する。つまり、ランゲージモニタ70に保持されている印刷設定を優先的に使用する。
ランゲージモニタ70は、データ保持部71と、通信部72とを有する。このうち、通信部72は、プリンタドライバ60が通信部80に印刷データを送信する際に、Windows(登録商標)プリントアーキテクチャとしての通信制御を行うものであり、Windows(登録商標)系OSに標準の双方向通信インタフェース手段としての従来のランゲージモニタが有している。通信部72は通信部80を介してプリンタ5からのメッセージを受信することもできる。
これに対し、データ保持部71は、本実施形態に特有のものであり、拡張I/F部62から入力された印刷設定を記憶する。データ保持部71は、従来のランゲージモニタの機能を利用してプリンタドライバ60により実現される。このため、Windows(登録商標)系OSの変更は必要ないか、あったとしても僅かである。データ保持部71の詳細については後述する。
通信部80は、通信ネットワーク2上のスマートデバイス4及びプリンタ5と通信を行う部分であり、TCP/IPなどのプロトコルに従う通信処理を実行する。
なお、図3では、拡張I/F部62がUIドライバ61から独立した構成となっているが、UIドライバ61が拡張I/F部62を含む構成でもよい。
〈管理アプリケーション、アプリケーション、プリンタドライバ、及びOSの関係〉
図4は、管理アプリケーション40、アプリケーション50、プリンタドライバ60、及びOS30の関係について説明するための図である。
管理アプリケーション40がプリンタドライバ60の拡張I/F部62を使用することで、アプリケーション50の印刷設定をプリンタドライバ60に渡すことができる。アプリケーション50は、管理アプリケーション40から起動され、印刷対象の文書ファイルを渡されるだけで、OS30に対して、文書ファイル及び印刷設定を伴う印刷実行指示を出すことができる。アプリケーション50はデフォルトの印刷設定をOS30に渡しても、管理アプリケーション40が拡張I/F部62経由で渡した印刷設定を描画ドライバ63が読み込むことで、スマートデバイス4のユーザの意図を反映した印刷が行える。
〈各ソフトウェアの基本動作〉
図5は、図3に示す各ソフトウェアの基本動作について説明するための図である。
管理アプリケーション40は、プリンタドライバの拡張I/F部62に印刷設定を含む設定指示を出し、拡張I/F部62はその印刷設定をランゲージモニタ70に保持させる。ここで、管理アプリケーション40が拡張I/F部62に指示する設定は、管理アプリケーション40に対する外部デバイス(例えばスマートデバイス4)からの設定、特定のパスに保存された設定の取得、または固定値など、管理アプリケーション40が知り得た設定であればどのような手段で取得したものでもよい。
また、管理アプリケーション40は、印刷する文書ファイル毎にアプリケーションを選択し、起動させて文書ファイルを渡し、印刷指示を送出する。ここでは、アプリケーションa 50a及びアプリケーションb 50bに印刷指示を出している。印刷する文書ファイルは、例えばスマートデバイス4からユーザにより指定される。
アプリケーションa 50a、アプリケーションb 50bは、デフォルトの印刷設定のまま、OS30に印刷実行指示を出す。OS30は、描画ドライバ63に印刷実行指示を出す。
描画ドライバ63は、印刷実行指示とともにデフォルトの印刷設定のDEVMODEを受け取る。次いで、描画ドライバ63は、ランゲージモニタ70に対して、拡張I/F部62によって設定された印刷設定を保持しているか否かを問い合わせ、保持している場合はその印刷設定を取得する。描画ドライバ63は、ランゲージモニタ70から印刷設定を取得した場合は、その印刷設定を反映させた印刷データを生成し、プリンタ5に送信する。ランゲージモニタ70から印刷設定を取得しなかった場合は、DEVMODE構造体に格納されたデフォルトの印刷設定を反映させた印刷データを生成し、プリンタ5に送信する。
〈複数の論理プリンタに対する印刷設定の保持〉
一台のPCに複数の論理プリンタが登録されることがある。論理プリンタとは、Windows(登録商標)系OSのプリンタフォルダに、プリンタのアイコンとして表示されている論理的なプリンタである。Windows(登録商標)系OSは、1つのプリンタドライバに対して、複数の論理プリンタを作成することができる。論理プリンタは、アプリケーションからみた仮想的な出力先ともいえ、プリンタドライバが描画した印刷データは、ユーザが指定した論理プリンタに出力され、Windows(登録商標)系OSが論理プリンタから物理プリンタに提供する。
論理プリンタには、1つずつ名前を付与することができ、ユーザなどが任意に付けたり、プリンタドライバのパッケージ名などから自動的に付与されたりする。各論理プリンタには、機能、共有の有無、スプール形式、オプション構成などを設定可能である。即ち、1つの物理的なプリンタの初期設定を変えることができる。
1台のPCに複数の論理プリンタが登録されている場合、論理プリンタ毎に印刷設定を設定することができればユーザの利便性が向上する。そのためには、これらの印刷設定を論理プリンタ毎に保持できればよいことになる。そこで、本実施形態では、拡張I/F部62は、論理プリンタ名をキーにして、印刷設定をランゲージモニタ70に登録する。即ち、論理プリンタ名に紐付けて印刷設定を登録する。
図6は、複数の論理プリンタに対する印刷設定を保持する構成について説明するための図である。この図は、アプリケーション50がプリンタドライバの拡張I/F部62を使用した例であり、ランゲージモニタ70のデータ保持部71に以下の印刷設定71a、71bが保持されている。
印刷設定71a:アプリケーション50が論理プリンタ名=Aに対して印刷設定ABを設定
印刷設定71b:アプリケーション50が論理プリンタ名=Bに対して印刷設定MNを設定
論理プリンタ名は、ユーザが出力先として指定している論理プリンタのIDなので、UIドライバ61及び描画ドライバ63は、参照すべき論理プリンタ名を知ることができる。よって、ランゲージモニタ70には、その論理プリンタ名で問い合わせることで、印刷設定を取得できる。同様に、拡張I/F部62も論理プリンタ名の指定で動作しているので、その論理プリンタ名で設定データをランゲージモニタ70に保持させることができる。
〈IT−Boxを利用した印刷の第1の例〉
図7は、IT−Boxを利用した印刷の第1の例について説明するための図である。
他の情報処理装置としてのスマートデバイス4及びPC6は、PC3内の共有フォルダ85にアクセス可能である。PC6が共有フォルダ85に文書ファイルを転送する。スマートデバイス4が共有フォルダ85内の文書を閲覧し、印刷したい文書ファイルを選択し、そのファイルを指定して管理アプリケーション40に印刷指示を出す。このとき、スマートデバイス4は、印刷設定を行うことができる。
なお、図では、PC6がファイルa 86を転送し、スマートデバイス4がファイルa86を選択しているが、スマートデバイス4は他のファイル(ここではファイルb 87、ファイルc 88)を選択することもできる。また、PC6が印刷したい文書のファイルを選択することもできる。
管理アプリケーション40は、スマートデバイス4からの印刷設定を受け取ると、その印刷設定を拡張I/F部62を介してランゲージモニタ70に格納する。そして、印刷指示で指定されたファイルa 86を共有フォルダ85から読み出し、そのファイルa 86の印刷処理が可能なアプリケーションa 50aを起動させ、印刷指示を出す。
アプリケーションa 50aは、デフォルトの印刷設定のまま、OS30に印刷実行指示を出す。OS30は、描画ドライバ63に印刷実行指示を出す。描画ドライバ63は、印刷実行指示とともにデフォルトの印刷設定のDEVMODEを受け取る。次いで、描画ドライバ63は、ランゲージモニタ70から印刷設定を取得する。そして、その印刷設定を反映させた印刷データを作成し、プリンタ5へ送信する。
このように、スマートデバイス4やPC6から管理アプリケーション40に対して、共有フォルダ85上のファイルを指定し、印刷設定を行い、印刷指示を出すと、指定されたファイルの印刷処理が可能なアプリケーションのデフォルトの印刷設定を変更することができる。
〈印刷設定から印刷データの生成までの手順の第1の例〉
図8は、印刷設定から印刷データの生成までの手順の第1の例を示すシーケンス図である。
PC6又はスマートデバイス4からPC3の管理アプリケーション40に印刷設定とともに印刷設定指示が渡される(ステップS1)。管理アプリケーション40は内部に設定変更部を備えており、PC6又はスマートデバイス4からの要求に応じて設定画面を表示することで印刷設定を受け付けている。
管理アプリケーション40は、プリンタドライバの拡張I/F部62に対し、PC6又はスマートデバイス4から受け取った印刷設定の保持依頼を送出する(ステップS2)。拡張I/F部62は印刷設定の妥当性を検証(判断)し(ステップS3)、ランゲージモニタ70に保持させる(ステップS4)。
このとき、拡張I/F部62は、SendRecvBidiDataFromPort()というWindows(登録商標)系OSのAPIを使用する。SendRecvBidiDataFromPort()関数は、ランゲージモニタ70に実装されるAPIである。プリンタドライバ60と同じようにランゲージモニタ70にもWindows(登録商標)系OSによって決められたI/Fが存在する。SendRecvBidiDataFromPort()関数は、その1つであり、アプリケーションとプリンタ間、アプリケーションとプリントサーバ間の双方向通信をサポートする。
次に、PC6又はスマートデバイス4からPC3の管理アプリケーション40に印刷する文書ファイルの指定とともに印刷指示が渡される(ステップS5)。管理アプリケーション40は、指定された文書ファイルの印刷処理が可能なアプリケーション50を起動させ(ステップS6)、印刷指示を出す(ステップS7)。
アプリケーション50は、OSのGDI31に印刷実行指示とともにデフォルトの印刷設定が格納されたDEVMODE構造体を渡す(ステップS8)。具体的には、アプリケーション50はCreateDC()関数でデフォルトの印刷設定を引数にしてGDI31をコールする。
GDI31は、デフォルトの印刷設定が格納されたDEVMODE構造体を描画ドライバ63に渡す(ステップS9)。具体的には、CreateDC()の引数でアプリーション50がGDI31に渡した印刷設定(DEVMODE構造体)が、DrvEnablePDEV()の引数に格納され描画ドライバ63に通知される。
描画ドライバ63は、印刷開始準備命令(DrvEnablePDEV())で描画能力を返却する必要があるため、ランゲージモニタ70から拡張I/F部62によって設定された印刷設定を取得する(ステップS10)。具体的には、SendRecvBidiDataFromPort()の引数に問い合わせを意味する値を設定し、ランゲージモニタ70に送出する。ランゲージモニタ70は、拡張I/F部62により設定された印刷設定がある場合、SendRecvBidiDataFromPort()にそれを設定して描画ドライバ63に返却する。
次に描画ドライバ63は、ランゲージモニタ70から取得した印刷設定を印刷開始準備命令とともに渡された印刷設定とマージして、GDI31対して描画能力を返却する。
アプリケーション50は、GDI31に描画能力を問い合わせる(ステップS11:GetDeviceCaps())。次にアプリケーション50は、GDI31に印刷開始を指示する(ステップS12)。具体的には、アプリケーション50はStartDoc()関数でDocINFOなどを引数にしてGDI31をコールする。GDI31は、描画ドライバ63に印刷開始命令を送る(ステップS13)。具体的には、DrvStartDoc()関数を描画ドライバ63に送出する。
描画ドライバ63はGDI31から印刷開始命令(DrvStartDoc())を受け取ると、プリンタドライバ60内で反映させる印刷設定(集約、カラーバランスなど)やプリンタ本体で反映させる印刷設定(両面、ステープル)などの設定をランゲージモニタ70から取得する(ステップS14)。なお、実際の印刷では、この後で最終的な設定の妥当性の検証が行われる。
描画ドライバ63は、ランゲージモニタ70から取得した印刷設定を基に印刷データ(PJL、PDL)を生成し、プリンタ5へ送信する。
〈Point & Print環境を備えた印刷システム〉
図9は、Point & Print環境を備えた印刷システムについて説明するための図である。4台のクライアントPC201〜204が通信ネットワーク400を介してサーバPC100と接続されている。サーバPC100にはプリンタ300が接続されているが、プリンタ300は通信ネットワーク400に接続されていてもよい。
サーバPC100にはプリンタドライバ60がインストールされており、サーバPC100が各クライアントPC201〜204にプリンタドライバ60をコピーして配布する。よって、ユーザの手を煩わせることなく、サーバPC100とクライアントPC201〜204が協働してプリンタドライバ60をインストールすることができる。なお、以降の説明では、クライアントPC201がサーバPC100に接続し、Point & Printによりプリンタドライバ60をインストールしたものとする。この場合、クライアントPC201とサーバPC100が情報処理システムを構成する。
Point & Print環境でのサーバサイドレンダリングでは、クライアントPC201がユーザの印刷設定を受け付け、サーバPC100が描画処理を行うため、印刷設定などを共有することが困難である。
しかし、これまで説明したランゲージモニタ70は、Windows(登録商標)系OS内の機能なので、Point & PrintインストールされたクライアントPC201のWindows(登録商標)系OSは、サーバPC100に印刷設定を送信することができる。よって、サーバPC100はクライアントPC201からプリントアーキテクチャ内の処理で印刷設定を取得できる。
〈Point & Print環境でのランゲージモニタ〉
図10は、Point & Print環境におけるランゲージモニタの作用を説明する図の一例である。
前述したように、ランゲージモニタ70はWindows(登録商標)系OSのプリントアーキテクチャの中に組み込まれる1つのモジュールである。このため、Point & PrintによりクライアントPC201側がUIドライバ61の処理を、サーバPC100側が描画ドライバ63の処理を受け持つとしても、ランゲージモニタ70はサーバPC100側で1つだけ機能する。クライアントPC201側にもランゲージモニタはあるが機能しない。
クライアントPC201のプリンタドライバとサーバPC100のプリンタドライバは1つのランゲージモニタ70にアクセスする。クライアントPC201のOSとサーバPC100のOSは、クライアントPC201とサーバPC100の通信を確立している(例えば、RPC(Remote Procedure Call)を利用する)。そして、UIドライバ61がクライアントPC201のランゲージモニタにアクセスする場合、クライアントPC201のランゲージモニタは動作せず、スプーラ90がサーバPC100のランゲージモニタ70に印刷設定を送信する。
このようにクライアントPC201とサーバPC100が同じWindows(登録商標)系OSをインストールしているので、Windows(登録商標)系OSのプリントアーキテクチャのランゲージモニタを共通に利用できる。このため、メーカ独自で開発したモジュールなどで生じやすいアクセス権限の相違によるアクセス不能や通信エラーなどが起こりにくい。また、同様の理由でWindows(登録商標)系OSとの親和性も高い。
〈IT−Boxを利用した印刷の第2の例〉
図7を参照して説明した第1の例は、1ジョブ毎に印刷設定を変更し、印刷する方法に関するものである。したがって、例えば管理アプリケーション40が共有フォルダ85上のアプリケーションを特定の時刻にまとめて印刷するケースは考慮されていない。以下説明する第2の例は、そのようなケースにおいても印刷設定を特定の単位(ジョブ、アプリケーション、ユーザなど)毎に印刷設定を変更して印刷する方法に関するものである。
図11は、IT−Boxを利用した印刷の第2の例について説明するための図である。この図において、図7(第1の例)と同じ部分には図7と同じ参照符号を付すとともに、特に必要な場合を除き、説明を省略した。
設定変更部110は、外部デバイス(ここではスマートデバイス4)から設定変更要求を受け付け、設定変更のためのインタフェースを提供する。設定変更のためのインタフェースを提供する際には、UIドライバ61から印刷範囲の取得を行い、取得した情報を基に設定可能項目を通知し、設定させる。また、設定変更部110は、インタフェースを通じて設定されると、設定された印刷設定を基に設定ファイルを生成し、共有フォルダ85に保存する。
管理アプリケーション40は外部デバイス(スマートデバイス4やPC6)から印刷設定指示を受けると、共有フォルダ85内の設定ファイル89を参照し、設定ファイル89の情報を基に拡張I/F部62を使うことにより印刷設定を行う。また、管理アプリケーション40は外部デバイスから印刷指示を受けると(時刻指定印刷などで印刷指示を受ける場合もある)、印刷対象のファイルを印刷可能な印刷用アプリケーション(ここではアプリケーションa 50a)を起動し、印刷命令をかける。
〈印刷設定変更UIの例〉
図12は、設定変更部110により提供される印刷設定変更UIの例を示す図である。
印刷設定画面500内の設定単位の選択入力枠501で「アプリケーションごと」、「ジョブごと」、「ユーザごと」などの選択肢の中から、「アプリケーションごと」を選択し、アプリケーション名として「AdobeReader」をアプリケーション名入力枠502内に設定すると、AbobeReaderの印刷設定が保存される。なお、ここでは、プリンタドライバの印刷設定画面のような印刷設定変更UIを例示したが、これに限定されるものではない。
〈印刷設定から印刷データの生成までの手順の第2の例〉
図13は、印刷設定から印刷データの生成までの手順の第2の例を示すシーケンス図である。この第2の例は、アプリケーション毎に印刷設定を変える場合のシーケンスである。
まずPC6又はスマートデバイス4は、PC3の設定変更部110に対し、印刷設定変更要求を送出する(ステップS21)。設定変更部110は、UIドライバ61からプリンタドライバ60の能力を取得し(ステップS22)、印刷設定変更UIを立ち上げ、PC6又はスマートデバイス4に提供する(ステップS23)。
PC6又はスマートデバイス4は、印刷設定変更UIを通して、設定するアプリケーションを指定し、印刷設定変更を行う(ステップS24)。設定変更部110は、変更された印刷設定をファイルとして共有フォルダ85に保存する(ステップS25)。
次にPC6又はスマートデバイス4は、管理アプリケーション40に対し、印刷指示を送出する(ステップS26)。管理アプリケーション40は共有フォルダから印刷設定ファイルを取得し(ステップS27)、印刷設定ファイルから印刷対象のアプリケーションの印刷設定を判断する(ステップS28)。
次に管理アプリケーション40は、拡張I/F部62に対し、印刷対象のアプリケーションの印刷設定保持の依頼を送出する(ステップS29)。拡張I/F部62は、印刷設定の妥当性を検証(判断)し(ステップS30)、ランゲージモニタ70に保持させる(ステップS31)。以後のステップS32からS40は、図8(第1の例)におけるステップS6からS14と同じであるから説明を省略する。
なお、ユーザ毎に印刷設定を変える場合のシーケンスでは、ステップS24でPC6又はスマートデバイス4は、印刷設定変更UIを通して、設定するユーザを指定し、ステップS26で印刷指示にユーザIDを付加する。そして、管理アプリケーション40はステップS28でユーザIDに応じて、ユーザの印刷設定を判断する。
〈サポートしている機能の異なる複数のプリンタドライバの切り替え〉
図14は、サポートしている機能の異なる複数のプリンタドライバを切り替えて印刷するケースについて説明するための図である。
ここでは、機能1および機能2をサポートしている第1のプリンタドライバと、機能1および機能3をサポートしている第2のプリンタドライバがあるものとする。
第1の描画ドライバ63a、第2の描画ドライバ63bは、それぞれ第1のプリンタドライバ、第2のプリンタドライバのパッケージに含まれている。また、第1のプリンタドライバ、第2のプリンタドライバのパッケージには拡張I/F部がそれぞれ含まれている。ただし、その拡張I/F部は同一もしくはアップデートされたバージョンの同名のモジュールになるため、2つのプリンタドライバがインストールされた場合、新しいバージョンの拡張I/F部で上書きされ、拡張I/F部としては1つしか存在しない。この1つの拡張I/F部62により、第1のランゲージモニタ70a、第2のランゲージモニタ70bには、それぞれ第1のプリンタドライバ、第2のプリンタドライバを用いて印刷する際の印刷設定が格納される。第1の描画ドライバ63a、第2の描画ドライバ63bは、それぞれ第1のランゲージモニタ70a、第2のランゲージモニタ70bに保存されている印刷設定を取得する。
〈サポートしている機能の異なる複数のプリンタドライバから1つを選択し、印刷する場合の手順〉
図15は、サポートしている機能の異なる複数のプリンタドライバから1つを選択し、印刷する場合の手順を示すシーケンス図である。
まずPC6又はスマートデバイス4は、PC3の設定変更部110に対し、印刷設定変更要求を送出する(ステップS51)。設定変更部110は、PC6又はスマートデバイス4に対し、プリンタドライバ選択UIを提供し、プリンタドライバの選択を求める(ステップS52)。
PC6又はスマートデバイス4によりプリンタドライバが選択されると(ステップS53)、設定変更部110は、選択されたプリンタドライバのUIドライバ61からプリンタドライバの能力を取得する(ステップS54)。ここでは、第1のプリンタドライバが選択されたものとする。
次に設定変更部110は、PC6又はスマートデバイス4に対して、取得したプリンタドライバの能力で印刷設定変更UIを提供する(ステップS55)。PC6又はスマートデバイス4が印刷設定変更UIを通して、設定するアプリケーションを指定し、印刷設定を変更すると(ステップS56)、設定変更部110は変更された印刷設定をファイルとして共有フォルダ85に保存する(ステップS57)。
次にPC6又はスマートデバイス4は、管理アプリケーション40に対し、印刷指示を送出する(ステップS58)。管理アプリケーション40は、共有フォルダ85から印刷設定ファイルを取得し(ステップS59)、設定ファイルから印刷対象のアプリケーションの印刷設定を判断する(ステップS60)。
次に管理アプリケーション40は、印刷設定ファイルから、印刷対象のプリンタドライバをデフォルトのプリンタに設定する(ステップS61)。この手順により、デフォルトのプリンタに設定されたプリンタドライバを使用した印刷が可能になる。
次いで管理アプリケーション40は、プリンタドライバの拡張I/F部62に対し、プリンタアイコン名と印刷設定を渡し、印刷設定保持の依頼を送出する(ステップS62)。
拡張I/F部62は、印刷設定の妥当性を検証し(ステップS63)、プリンタアイコン名から保存先のランゲージモニタを判断し(ステップS64)、対象のランゲージモニタに対し、設定を保持させる(ステップS65)。
次に管理アプリケーション40は、指定された文書ファイルの印刷処理が可能なアプリケーション50を起動させ(ステップS66)、印刷指示を出す(ステップS67)。このとき印刷に使用されるプリンタはデフォルトに設定したプリンタである。以後の手順は、図8におけるステップS8からS14と同じであるから、図示および説明を省略する。
〈機能の追加や削除が可能な拡張I/F部〉
ここまで説明した構成では、拡張I/F部62が1つのモジュールとしてシステム(プリンタドライバ)に組み込まれているため、拡張I/F部62に機能の追加や削除をする際には、拡張I/F部そのものを変更し、再インストールする必要があるなどの手間がかかった。
そこで、本実施形態では、新規機能を動的にシステムに組み入れる仕組みを持つことで、拡張I/F部に対する新規機能の追加、削除などの保守を容易にした。図16は、その仕組みを持つ拡張I/F部の構成を示す図である。
拡張I/F部62は、拡張I/F部62−0と、追加用の第1〜第3の拡張I/F部62−1〜62−3を備えている。第1〜第3の拡張I/F部62−1〜62−3は、それぞれ第1〜第3の機能に対応する機能の設定を行うためのインタフェースである。これらは新規追加毎に別のモジュールに分離されている。
拡張I/F部62−0は、管理アプリケーション40などの実際に拡張I/F部を使用して印刷設定を行いたいモジュールに対する窓口となる。つまり、印刷設定を行いたいモジュールは常にこの拡張I/F部62−0に対して印刷設定を行う。
拡張I/F部62−0は、特定のルールに基づいて第1〜第3の拡張I/F部62−1〜62−3を呼び出す。特定のルールとは、例えば「フォルダ内に存在する拡張I/F部を全て呼び出す」や「読み込む拡張I/F部のパスが記載されたファイルを読み込み、その内容にしたがって拡張I/F部を呼び出す」などである。
このルールとして、「第1のプリンタドライバでは第1の拡張I/F部および第2の拡張I/F部を呼び出す」、「第2のプリンタドライバでは第1の拡張I/F部および第3の拡張I/F部を呼び出す」を定めることで、第1のプリンタドライバに対しては第1の拡張I/F部62−1および第2の拡張I/F部62−2が呼び出され、第2のプリンタドライバに対しては第1の拡張I/F部62−1および第3の拡張I/F部62−3が呼び出される。
拡張I/F部62−0および第1〜第3の拡張I/F部62−1〜62−3は全て同じインタフェース(関数)を持つ。以下にインタフェースを例示する。
bool setPrintSetting(
char* printer_icon,
char* pirntSetting,
)
この例は第一引数に印刷するプリンタアイコンの名前、第二引数に印刷設定一覧を設定するインタフェースである。上記ルールに基づき呼び出されたそれぞれの第1〜第3の拡張I/F部62−1〜62−3は、第二引数として設定されている印刷設定一覧から自分に関係する印刷設定を抜き出し、設定の妥当性を判断し、ランゲージモニタに設定を保存させる。
印刷設定を行いたいモジュールに対する窓口となる拡張I/F部と追加用の拡張I/F部とが同じインタフェースを持つことで、新規機能が追加された場合に、追加された新規機能用の拡張I/F部を作成し、拡張I/F部62−0からの呼び出しルールに則った場所に配置するだけで新規機能の追加が可能となる。
〈拡張I/F部の追加用UI〉
新規機能用の拡張I/F部の追加は、そのためのUIを提供することで、ユーザに実行させることもできる。
図17は、新規機能用の拡張I/F部の追加用UIの一例を示す図である。
UI画面510上の「新規拡張I/Fを追加する」に対応するチェックボックス511にチェックを入れ、追加ファイルの入力枠512に直接追加する拡張I/Fを入力するか、または参照ボタン513から追加する拡張I/Fを選択することで、新規拡張I/Fの追加が可能である。
以上説明したように、本実施形態の情報処理装置によれば、下記(1)〜(6)の効果を有する。
(1)プリンタドライバ60は、OS30で定義されたDDI以外に、独自の拡張I/F部62を持ち、拡張I/F部62で印刷設定の変更を受け付けることができるので、印刷に使用するアプリケーション50の改変や印刷設定画面の操作を行うことなく、アプリケーション50のデフォルトの印刷設定をユーザが望んだ印刷設定に変更することができる。
(2)描画ドライバ63は、ユーザにより指示され、拡張I/F部62により受け取られ、ランゲージモニタ70に保持されている印刷設定を取得し、その印刷設定をもとにGDIに対して返却する描画能力情報を生成することができるので、印刷に使用するアプリケーション50は、ユーザから指示された印刷設定とプリンタ5の能力情報をもとに描画可能な最大限の能力で描画命令を出力することができる。
(3)ユーザにより指示され、拡張I/F部62により受け取られた印刷設定を、Windows(登録商標)系OSのプリントアーキテクチャの中に組み込まれる1つのモジュールであるランゲージモニタ70により保持するので、RAWスプール、EMFスプールのどちらのスプール形式でも、ユーザにより指示され、拡張I/F部62により受け取られた印刷設定で印刷することができる。
(4)ユーザにより指示され、拡張I/F部62により受け取られた印刷設定を、Windows(登録商標)系OSのプリントアーキテクチャの中に組み込まれる1つのモジュールであるランゲージモニタ70により保持するので、Point & Printインストールされたプリンタドライバ60で、スプール形式によらず、ユーザにより指示され、拡張I/F部62により受け取られた印刷設定で印刷することができる。
(5)ランゲージモニタ70に保存する印刷設定をスマートデバイス4やPC6などの外部デバイスから所定の単位(ジョブ、アプリケーション、ユーザ)毎に変更することができるので、予め所定の単位毎の印刷設定を保存しておくことにより、1ジョブ毎の印刷設定の変更が不要になる。
(6)新規機能を動的にシステムに組み入れる仕組みを備えた拡張I/F部を設けたので、拡張I/F部に対する新規機能の追加、削除などの保守が容易である。
3,6…PC、4…スマートデバイス、30…OS、40…管理アプリケーション、50…アプリケーション、60…プリンタドライバ、61…UIドライバ、62,62−0〜62−3…拡張I/F部、63…描画ドライバ、70…ランゲージモニタ、71…データ保持部、72,73…印刷設定、100…サーバPC、110…設定変更部、201〜204…クライアントPC。
特開2005−148928号公報

Claims (10)

  1. アプリケーションに印刷指示を送出するアプリケーション管理手段と、
    オペレーティングシステムで定義されたインタフェース手段を通して、前記アプリケーションからファイル及び印刷設定を伴う印刷実行指示を受け取り、印刷データを生成する印刷データ生成手段と、
    前記インタフェース手段以外のインタフェース手段である拡張インタフェース手段と、
    前記アプリケーション管理手段から前記拡張インタフェース手段を通して入力された印刷設定を保持する印刷設定保持手段と、
    を有し、
    前記印刷データ生成手段は、前記印刷設定保持手段に保持されている印刷設定を反映させた前記印刷データを生成する機能を有する情報処理装置。
  2. 請求項1に記載された情報処理装置において、
    前記印刷設定保持手段は、前記印刷データ生成手段とプリントデバイスとの間で双方向通信を行うための前記オペレーティングシステムに標準の双方向通信インタフェース手段を利用して構成されている、情報処理装置。
  3. 請求項1に記載された情報処理装置において、
    通信ネットワークを介して接続される他の情報処理装置からアクセス可能な共有記憶装置を有し、
    前記アプリケーション管理手段は、前記他の情報処理装置により指定された前記共有記憶装置上のファイルの印刷実行指示の送出が可能な前記アプリケーションに対して印刷指示を出力する、情報処理装置。
  4. 請求項3に記載された情報処理装置において、
    前記アプリケーション管理手段は、前記他の情報処理装置により設定された印刷設定を前記拡張インタフェース手段に出力する、情報処理装置。
  5. 請求項3に記載された情報処理装置において、
    前記共有記憶装置にファイルが追加されたことを検知し、当該追加されたファイルを前記アプリケーション管理手段に転送するファイル監視手段を有し、
    前記アプリケーション管理手段は、当該転送されたファイルの印刷実行指示の送出が可能な前記アプリケーションに対して印刷指示を送出する、情報処理装置。
  6. 請求項4に記載された情報処理装置において、
    前記他の情報処理装置に対し、所定単位で印刷設定を変更するためのインタフェースを提供する設定変更手段を有する、情報処理装置。
  7. 請求項1に記載された情報処理装置において、
    前記拡張インタフェース手段は、複数の独立した印刷設定を行う拡張インタフェース手段を動的に組み込む手段を有する、情報処理装置。
  8. アプリケーションに印刷指示を送出するアプリケーション管理手段と、
    オペレーティングシステムで定義されたインタフェース手段を通して、前記アプリケーションからファイル及び印刷設定を伴う印刷実行指示を受け取り、印刷データを生成する印刷データ生成手段と、
    前記インタフェース手段以外のインタフェース手段である拡張インタフェース手段と、
    前記アプリケーション管理手段から前記拡張インタフェース手段を通して入力された印刷設定を保持する印刷設定保持手段と、
    を有し、
    前記印刷データ生成手段は、前記印刷設定保持手段に保持されている印刷設定を反映させた前記印刷データを生成する機能を有する情報処理システム。
  9. 請求項8に記載された情報処理システムにおいて、
    前記印刷データ生成手段と前記拡張インタフェース手段とが別の情報処理装置に設けられている、情報処理システム。
  10. コンピュータを、請求項1に記載された情報処理装置のアプリケーション管理手段、印刷データ生成手段、拡張インタフェース手段、及び印刷設定保持手段として機能させるためのプログラム。
JP2014186701A 2013-09-17 2014-09-12 情報処理装置、情報処理システム、及びプログラム Active JP6331910B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014186701A JP6331910B2 (ja) 2013-09-17 2014-09-12 情報処理装置、情報処理システム、及びプログラム
US14/843,188 US9442678B2 (en) 2013-09-17 2015-09-02 Information processing apparatus, information processing system and non-transitory computer-readable information recording medium
CN201510567607.2A CN105426135B (zh) 2014-09-12 2015-09-08 信息处理装置和信息处理系统

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013191972 2013-09-17
JP2013191972 2013-09-17
JP2014186701A JP6331910B2 (ja) 2013-09-17 2014-09-12 情報処理装置、情報処理システム、及びプログラム

Publications (2)

Publication Number Publication Date
JP2015084213A true JP2015084213A (ja) 2015-04-30
JP6331910B2 JP6331910B2 (ja) 2018-05-30

Family

ID=53047767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014186701A Active JP6331910B2 (ja) 2013-09-17 2014-09-12 情報処理装置、情報処理システム、及びプログラム

Country Status (2)

Country Link
US (1) US9442678B2 (ja)
JP (1) JP6331910B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153517A (zh) * 2016-03-02 2017-09-12 佳能株式会社 信息处理装置及信息处理方法
JP2018045354A (ja) * 2016-09-13 2018-03-22 富士ゼロックス株式会社 システム、情報処理装置およびプログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9049176B2 (en) * 2011-06-22 2015-06-02 Dropbox, Inc. File sharing via link generation
JP6489880B2 (ja) * 2015-03-09 2019-03-27 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、およびプログラム
US9891878B2 (en) * 2015-03-20 2018-02-13 Ricoh Company, Ltd. Information processing system, information processing apparatus, and computer-readable recording medium
JP2017102901A (ja) 2015-11-19 2017-06-08 株式会社リコー プログラム、情報処理装置、設定方法および情報処理システム
US10275192B2 (en) 2016-09-08 2019-04-30 Ricoh Company, Ltd. Information processing apparatus, image processing system, and printer driver
US10194038B2 (en) * 2016-09-15 2019-01-29 Ricoh Company, Ltd. Information processing apparatus, information processing method, and information processing system
JP6834402B2 (ja) 2016-11-24 2021-02-24 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
US10338857B2 (en) 2016-11-24 2019-07-02 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
US10191697B2 (en) 2017-03-17 2019-01-29 Ricoh Company Ltd. Information processing apparatus, information processing system, and information processing method
JP7263837B2 (ja) 2019-02-27 2023-04-25 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
JP7311982B2 (ja) * 2019-02-27 2023-07-20 キヤノン株式会社 印刷装置および印刷設定の制御方法
JP7234687B2 (ja) 2019-02-27 2023-03-08 ブラザー工業株式会社 モジュール及びプログラム
JP7234688B2 (ja) * 2019-02-27 2023-03-08 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
CN112764695B (zh) * 2021-01-18 2024-04-19 内蒙古恒鼎计算机系统有限公司 一种打印机适配器主机及系统
JP2024016353A (ja) * 2022-07-26 2024-02-07 キヤノン株式会社 情報処理装置、プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006244150A (ja) * 2005-03-03 2006-09-14 Canon Inc 印刷システム及びその制御方法
JP2007042023A (ja) * 2005-08-05 2007-02-15 Konica Minolta Business Technologies Inc 印刷管理方法、プログラム及び印刷管理装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3854876B2 (ja) * 2001-03-08 2006-12-06 キヤノン株式会社 情報処理装置及びその印刷制御方法並びに記憶媒体
JP4310172B2 (ja) 2003-11-12 2009-08-05 キヤノン株式会社 情報処理装置、方法、システム、制御プログラム
JP2010146248A (ja) * 2008-12-18 2010-07-01 Canon Inc 情報処理装置、印刷制御方法、プログラム及び記憶媒体
JP5267337B2 (ja) 2009-06-01 2013-08-21 株式会社リコー プログラム、記憶媒体、情報処理装置、プリンタ装置およびシステム
JP5532770B2 (ja) 2009-09-08 2014-06-25 株式会社リコー 印刷制御プログラム、情報処理装置、および印刷制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5549363B2 (ja) * 2010-05-10 2014-07-16 株式会社リコー 情報処理装置、印刷制御プログラム、記録媒体、画像形成装置、及び印刷システム
JP5793830B2 (ja) 2010-05-18 2015-10-14 株式会社リコー 情報処理装置、印刷制御プログラム、および記憶媒体
JP2012118824A (ja) 2010-12-01 2012-06-21 Ricoh Co Ltd 印刷プログラム、情報処理装置および記録媒体
JP5691455B2 (ja) 2010-12-03 2015-04-01 株式会社リコー 印刷プログラム、情報処理装置および記録媒体
JP5803290B2 (ja) 2011-06-01 2015-11-04 株式会社リコー データ処理装置およびプログラム
JP5821399B2 (ja) 2011-08-17 2015-11-24 株式会社リコー 印刷制御プログラム、情報処理装置及び記録媒体
JP5857611B2 (ja) 2011-10-13 2016-02-10 株式会社リコー 情報処理装置、システム、プログラム
JP5919925B2 (ja) 2012-03-19 2016-05-18 株式会社リコー プログラム、情報処理装置、記憶媒体
JP5919930B2 (ja) 2012-03-21 2016-05-18 株式会社リコー プログラム、情報処理装置、記憶媒体
JP6115340B2 (ja) 2012-08-29 2017-04-19 株式会社リコー 情報処理装置、プリントシステムおよびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006244150A (ja) * 2005-03-03 2006-09-14 Canon Inc 印刷システム及びその制御方法
JP2007042023A (ja) * 2005-08-05 2007-02-15 Konica Minolta Business Technologies Inc 印刷管理方法、プログラム及び印刷管理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153517A (zh) * 2016-03-02 2017-09-12 佳能株式会社 信息处理装置及信息处理方法
CN107153517B (zh) * 2016-03-02 2020-04-28 佳能株式会社 信息处理装置及信息处理方法
JP2018045354A (ja) * 2016-09-13 2018-03-22 富士ゼロックス株式会社 システム、情報処理装置およびプログラム

Also Published As

Publication number Publication date
JP6331910B2 (ja) 2018-05-30
US20160077777A1 (en) 2016-03-17
US9442678B2 (en) 2016-09-13

Similar Documents

Publication Publication Date Title
JP6331910B2 (ja) 情報処理装置、情報処理システム、及びプログラム
JP5857611B2 (ja) 情報処理装置、システム、プログラム
JP5919930B2 (ja) プログラム、情報処理装置、記憶媒体
KR102549370B1 (ko) 정보 처리 장치, 제어 방법 및 프로그램
US8537438B2 (en) Information processing apparatus in which a plurality of types of print drivers and plurality of graphics units run, control method therefor, and program
US20120281245A1 (en) Information processing apparatus, information processing method, and storage medium
JP5293035B2 (ja) データ処理装置、データ処理方法、プログラムおよび記録媒体
US8649030B2 (en) Controlling an information processing apparatus on which a plurality of printer drivers are installed
JP2020004158A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP5170141B2 (ja) プリンタ及び端末装置
US8922823B2 (en) Information processing apparatus and storage medium with the function of adding a cover letter to a print job
JP2014174679A (ja) 情報処理装置及びその方法
JP2014041599A (ja) プログラム、情報処理装置、システム
JP2023018114A (ja) プログラム、情報処理装置、及び情報処理装置の制御方法
JP2016099753A (ja) 端末装置、プリンタ制御方法、およびコンピュータプログラム
JP5961937B2 (ja) 情報処理システム
JP5623465B2 (ja) 画像形成システム及びそのプリントサーバ
JP4973821B1 (ja) 印刷制御装置およびプログラム
CN105426135B (zh) 信息处理装置和信息处理系统
JP5429351B2 (ja) プリンタ及び端末装置
JP2020016951A (ja) 情報処理装置、制御方法、およびプログラム
JP2006148310A (ja) 同報送信方式
JP2015212859A (ja) 情報処理装置、情報処理方法及びプログラム
JP2013200892A (ja) データ処理装置、データ処理方法および記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170822

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180322

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180403

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180416

R151 Written notification of patent or utility model registration

Ref document number: 6331910

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151