JP2013050935A - 印刷制御装置、印刷制御プログラムおよび印刷制御方法 - Google Patents

印刷制御装置、印刷制御プログラムおよび印刷制御方法 Download PDF

Info

Publication number
JP2013050935A
JP2013050935A JP2011225543A JP2011225543A JP2013050935A JP 2013050935 A JP2013050935 A JP 2013050935A JP 2011225543 A JP2011225543 A JP 2011225543A JP 2011225543 A JP2011225543 A JP 2011225543A JP 2013050935 A JP2013050935 A JP 2013050935A
Authority
JP
Japan
Prior art keywords
print
function
driver
job
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011225543A
Other languages
English (en)
Inventor
Masashi Nakagawa
雅司 中川
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 JP2011225543A priority Critical patent/JP2013050935A/ja
Priority to US13/565,382 priority patent/US8970865B2/en
Publication of JP2013050935A publication Critical patent/JP2013050935A/ja
Pending legal-status Critical Current

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/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/1258Configuration of print job parameters, e.g. using UI at the client by updating job settings at the printer
    • 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
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/393Enlarging or reducing
    • H04N1/3935Enlarging or reducing with modification of image resolution, i.e. determining the values of picture elements at new relative positions
    • 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/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1232Transmitting printer device capabilities, e.g. upon request or periodically
    • 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/1244Job translation or job parsing, e.g. page banding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】出力先のドライバがサポートしていない機能についても、ユーザの印刷設定にしたがってプルプリントを行う。
【解決手段】ステップSC1503において、実際に出力するプリンタドライバが描画処理に関連する項目の機能をサポートしているかどうかを問い合わせる。ステップSC1504における問い合わせの結果、プリンタドライバがその機能をサポートしていない場合、ステップSC1506において、印刷データを加工する処理を行う。一方、ステップSC1504においてプリンタドライバがその機能をサポートしている場合、ステップSC1505において、その機能に該当する印刷設定が有効かどうかを判定する。該当する印刷設定が無効であった場合、ステップSC1506に進み、印刷データを加工する処理を行う。
【選択図】 図15

Description

本発明は、印刷制御装置、印刷制御プログラムおよび印刷制御方法に関する。
従来、ユーザが印刷装置からサーバ上に一時蓄積された印刷データに対して行った印刷要求に応じて、当該印刷装置から印刷データの出力を可能にする所謂「プルプリント」の印刷システムが提案されている(例えば、特許文献1参照)。このプルプリントの印刷システムによれば、ユーザはアプリケーションからの印刷時に特定の印刷装置への出力ではなく、所望の印刷装置からの印刷データ出力を行うことが可能である。また、このプルプリントの印刷システムでは、クライアント上で動作するプリンタドライバが印刷データを作成し、作成した印刷データをサーバに送信している。
また、プルプリントの印刷システムではないが、クライアント/サーバ環境で異なるプリンタドライバを使用する印刷環境において以下のようなシステムが提案されている。例えば、この印刷システムではクライアント上で動作するプリンタドライバがサーバ側で必要となる印刷設定情報が付加されたスプールファイルをサーバに転送する。スプールファイルを受信したサーバ側のスプール連携部は、スプールファイルから付加された印刷設定情報を参照し、この情報を印刷データに反映する(例えば、特許文献2参照)。
特許4033857 特許4119868
従来の印刷システムでは、ユーザが印刷装置からサーバ上に一時蓄積された印刷データに対して印刷要求を行う際に、印刷設定情報の変更を指示することが困難である。サーバ上に一時蓄積される印刷データの形式は、印刷装置に依存したPDL(Page Description Language)であるため、印刷設定変更の指示通りにPDLを編集しなければならないが、この編集は難しい。
具体的な例として以下に示す。ユーザが印刷装置からサーバ上に一時蓄積された印刷データに対して印刷要求を行う際に、4ページを1ページに割り付けるような印刷設定情報(以後、4in1と称する)を指示したとする。このとき、サーバ上に一時蓄積される印刷データ、即ちPDLを4in1に適合するように変更する必要がある。もし、PDLが印刷装置の解像度に依存するラスター形式であるなら、4in1を実現するためにラスター画像を縮小することになるので、細線の消失等、品質上の様々な問題が生じる。
また、PDLは多種多様な仕様が存在するので、それら複数のPDLに対応することは多大な労力を必要とする。そもそも、PDLの仕様が非公開であったら、PDLを変更することもできない。さらに、PDLが変更できないということは、すなわちユーザが印刷データをサーバに蓄積するための指示を行った時点で機種が限定されてしまい、プルプリントをする時に自由に機種を変更できないという課題もある。
これらの課題を解決するために、例えば、サーバ側でデータを再編集できるようなプリントシステムが望まれる。しかし、クライアント上のプリンタドライバでユーザに指定された印刷機能を必ずしもサーバ側のプリンタドライバがサポートしているとは限らない。 例えば、クライアント上のアプリケーションで設定された原稿用紙サイズを実際に出力するプリンタに設置してある用紙に合わせて拡大縮小する機能が該当する。
これはサーバ側のプリンタドライバがその機能をサポートしていれば、そのまま印刷データをサーバのプリンタドライバに送信すれば問題なく印刷できるが、サポートしていない場合は、拡大縮小処理を行わないで原稿用紙サイズのまま出力されてしまう。また、拡大縮小の印刷機能自体はサポートしていても、拡大縮小する対象の用紙がプリンタドライバ毎に異なるので、もしその用紙をサポートしていない場合はやはり期待通りの印刷結果にならない。
本発明は、上記課題を考慮し、ユーザが望む適切な印刷機能、特に拡大縮小印刷機能やカラー/モノクロ印刷機能やページ集約機能などの印刷データ自体の描画処理が必要な印刷処理でプルプリントが可能な印刷制御装置を提供することを目的とする。
本発明の印刷制御装置は、印刷設定がなされた印刷データをドライバへ送信する装置であって、前記ドライバに対して、前記印刷設定のうち所定の機能をサポートしているか否かを判定する機能判定手段と、前記ドライバが前記機能をサポートしていないと判定された場合、前記機能に関して前記印刷データを加工する加工手段とを備えたことを特徴とする。
本発明によれば、ユーザがクライアントPC上で設定した内容に従った印刷結果を提供することが可能になる。
本実施形態のシステムの構成例を示す図である。 情報処理装置のハードウェア構成例を示すブロック図である。 複合機のハードウェア構成例を示すブロック図である。 本実施形態における全体の流れを説明する模式図である。 各データフローの詳細を示す表である。 クライアントPC上の印刷画面の一例を示す模式図である。 本発明の第1の制御処理手順の一例を示すフローチャートである。 本発明の第2の制御処理手順の一例を示すフローチャートである。 本発明の第3の制御処理手順の一例を示すフローチャートである。 本発明の論理プリンタ作成手順を示すフローチャートである。 本発明の第4の制御処理手順の一例を示すフローチャートである。 本発明の第5の制御処理手順の一例を示すフローチャートである。 図7のステップSB703とステップSC701の間を流れるデータ詳細を示す図である 図8のステップSC809とステップSE811の間を流れるデータ詳細を示す図である。 図9のステップSE905とステップSC901の間を流れるデータ詳細を示す図である。 図9のステップSC910とステップSE906の間を流れるデータ詳細を示す図である。 複合機の操作部の表示部に表示される画面の模式図である。 複合機の操作部の表示部に表示される画面の模式図である。 複合機の操作部の表示部に表示される画面の模式図である。 複合機の操作部の表示部に表示される画面の模式図である。 複合機の操作部の表示部に表示される画面の模式図である。 複合機の操作部の表示部に表示される画面の模式図である。 中間形式の印刷ジョブを加工する処理の一例を示すフローチャートである。 中間形式の印刷ジョブを拡大縮小する処理の一例を示すフローチャートである。
以下、本発明を実施するための形態について図面を用いて説明する。
(第1の実施形態)
図1は、クライアントPC、プリントサーバ(印刷制御装置)、アドレス管理サーバ、および印刷装置を含むプリントシステムの構成の一例を示すシステム構成図である。図1の「事業所A」に示すように、本実施形態のプリントシステムは、1又は複数のクライアントPC100、1又は複数のプリントサーバ101、1又は複数の複合機102を含む。一例として、クライアントPC100はユーザ毎に割り当てられ、プリントサーバ101は事業所Aの階毎に設置され、複合機102は事業所Aの階毎に設置されている。さらに、アドレス管理サーバ103、1又は複数のログインサービスPC104(例えば、階毎に設置)、ディレクトリサービスサーバ105は、ローカルエリアネットワーク(LAN)106を介して接続されている。
クライアントPC100には、仮想プリンタドライバがインストールされている。この仮想プリンタドライバは、クライアント・アプリケーションから受け取ったデータに基づいて特定の複合機に依存しない中間形式の印刷ジョブを生成し、プリントサーバ101へ送信する。なお、中間形式の印刷ジョブとは、フォーマットに関する仕様が公開されていて、かつ再編集が容易な形式のデータを意味する。例えば、EMFSPOOL形式(Enhanced Metafile Spool Format)、XPS(XML Paper Specification)等がある。本実施形態においては、EMFSPOOL形式を使って説明するが、XPSやPDFなど他の中間形式の印刷ジョブであってもかまわない。
プリントサーバ101は、受信した印刷ジョブを所定の格納場所に保存する。また、プリントサーバ101は、ジョブ管理データベース(以後、ジョブ管理DBと呼ぶ)を備え、印刷ジョブに関するメタデータをジョブ管理DBにより記憶し管理する。プリントサーバ101は、ジョブ管理DBに記録されているメタデータから印刷ジョブ一覧データを生成し、この印刷ジョブ一覧データを複合機102へ転送する。プリントサーバ101は、ジョブ管理DBに記録管理しているメタデータと複合機102から受信する印刷設定情報を使って、印刷設定情報の更新を行い、複合機102へ更新した印刷設定情報を転送する。さらに、プリントサーバ101は、上記所定の格納場所に保存している印刷ジョブ及とジョブ管理DBに記録管理しているメタデータからPDL(Printer Description Language)データ生成し、複合機102へ転送する。
アドレス管理サーバ103は、アドレス管理データベース(以後、アドレス管理DBと呼ぶ)を備え、「プルプリント」実行時に、印刷ジョブを管理するプリントサーバ101のアドレスとユーザ識別子を、アドレス管理DBにより記憶し、管理する。さらに、アドレス管理サーバ103は、複合機102からの印刷ジョブ一覧要求に応じて、複合機102から受信したユーザ識別子に対応するプリントサーバ101のアドレスを複合機102へ送信する。
ログインサービスPC104は、複合機102のログインサービスを提供する。ログインサービスPC104は、ディレクトリサービスサーバ105で記憶管理されているクライアントPC100のログインユーザ名、パスワードに基づく認証処理(例えば、SSO:Single Sign−ON)を行う。このログインユーザ名、パスワードとは例えば、マイクロソフト社のWindows(登録商標)のログインユーザ名、パスワードを示す。ログインサービスPCの例としては、キヤノン社のセキュリティエージェント(Security Agent)を搭載したパーソナルコンピュータである。
ディレクトリサービスサーバ105は、ネットワーク上に存在するサーバ、クライアント、プリンタ等のハードウェア資源や、それらを使用するユーザの属性、アクセス権等の情報を一元的に記憶し、管理する。ユーザの属性には、クライアントPC100のログインユーザ名、パスワード(例えば、マイクロソフト社のWindows(登録商標)のログインユーザ名、パスワード)を含む。ディレクトリサービスサーバの例としては、アクティブディレクトリ(Active Directory)機能を搭載したサーバである。
また、本実施形態のプリントシステムは、上述した構成の「事業所A」と、「事業所A」と同様の構成が1又は複数の「事業所B」とが、WAN107を介して接続されていてもよい。
図2は、図1に示したクライアントPC100、プリントサーバ101、アドレス管理サーバ103、ログインサービスPC104、ディレクトリサービスサーバ105に適用可能な情報処理装置のハードウェア構成を示すブロック図である。図2において、CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)が記憶されている。さらに、ROM202あるいは外部メモリ211には、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種コンピュータプログラム等も記憶されている。203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。
CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現する。また、205は入力コントローラで、キーボード209や不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、モニター210への表示を制御する。一般に、モニター210は液晶ディスプレイやCRT等の表示器である。これらは必要に応じて管理者が使用するものである。
メモリコントローラ207は、外部メモリ211へのアクセスを制御する。外部メモリとは、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)、SSD(Solid State Drive)、SDメモリーカード等を指す。208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したLAN106)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、モニター210上での表示を可能としている。また、CPU201は、モニター210上の不図示のマウスカーソル等でのユーザ指示を可能とする。本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明も後述する。
図3は、図1に示した複合機102のコントローラユニットのハードウェア構成の一例を示すブロック図である。図3において、316はコントローラユニットで、画像入力デバイスとして機能するスキャナ314や、画像出力デバイスとして機能するプリンタ312と接続する。一方、LAN(例えば、図1に示したLAN106)や公衆回線(WAN)(例えば、PSTNまたはISDN等)と接続することで、画像データやデバイス情報の入出力を行う。
コントローラユニット316において、301はCPUで、システム全体を制御するプロセッサである。302はRAMで、CPU301が動作するためのシステムワークメモリであり、プログラムを記録するためのプログラムメモリや、画像データを一時記録するための画像メモリでもある。303はROMで、システムのブートプログラムや各種制御プログラムが格納されている。304はハードディスクドライブ(HDD)で、システムを制御するための各種プログラム,画像データ等を格納する。
307は操作部インターフェース(操作部I/F)で、操作部(UI)308とのインターフェース部であり、操作部308に表示する画像データを操作部308に対して出力する。また、操作部I/F307は、操作部308から本システム使用者が入力した情報(例えば、ユーザ情報等)をCPU301に伝える役割をする。なお、操作部308はタッチパネルを有する表示部を備え、該表示部に表示されたボタンを、ユーザが押下(指等でタッチ)することにより、各種指示を行うことができる。305はネットワークインターフェース(Network I/F)で、ネットワーク(LAN)に接続し、データの入出力を行う。306はモデム(MODEM)で、公衆回線に接続し、FAXの送受信等のデータの入出力を行う。318は外部インターフェース(外部I/F)で、USB、IEEE1394,プリンタポート,RS−232C等の外部入力を受け付けるI/F部である。
本実施形態においては認証で必要となるICカードの読み取り用のカードリーダ319が外部I/F部318に接続されている。そして、CPU301は、この外部I/F318を介してカードリーダ319によるICカードからの情報読み取りを制御し、該ICカードから読み取られた情報を取得可能である。以上のデバイスがシステムバス309上に配置される。320はイメージバスインターフェース(IMAGE BUS I/F)であり、システムバス309と画像データを高速で転送する画像バス315とを接続し、データ構造を変換するバスブリッジである。
画像バス315は、PCIバスまたはIEEE1394で構成される。画像バス315上には以下のデバイスが配置される。310はラスターイメージプロセッサ(RIP)で、例えば、PDLコード等のベクトルデータをビットマップイメージに展開する。311はプリンタインターフェース(プリンタI/F)で、プリンタ312とコントローラユニット316を接続し、画像データの同期系/非同期系の変換を行う。また、313はスキャナインターフェース(スキャナI/F)で、スキャナ314とコントローラユニット316を接続し、画像データの同期系/非同期系の変換を行う。317は画像処理部で、入力画像データに対し補正、加工、編集を行い、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。また、これに加えて、画像処理部317は、画像データの回転や、多値画像データに対してはJPEG、2値画像データはJBIG、MMR、MH等の圧縮伸張処理を行う。
スキャナ部314は、原稿となる紙上の画像を照明し、CCDラインセンサーで走査することで、ラスターイメージデータとして電気信号に変換する。原稿用紙は原稿フィーダーのトレイにセットし、装置使用者が操作部308から読み取り起動指示することにより、CPU301がスキャナ314に指示を与え、フィーダーは原稿用紙を1枚ずつフィードし原稿画像の読み取り動作を行う。プリンタ部312は、ラスターイメージデータを用紙上の画像に変換する部分である。その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。
プリント動作の起動は、CPU301からの指示によって開始する。なお、プリンタ部312には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセットがある。操作部308は、LCD表示部を有し、LCD上にタッチパネルシートが貼られており、システムの操作画面を表示するとともに、表示してあるキーが押されるとその位置情報を操作部I/F307を介してCPU301に伝える。
操作部308は、各種操作キーとして、例えば、スタートキー、ストップキー、IDキー、リセットキー等を備える。ここで、操作部308のスタートキーは、原稿画像の読み取り動作を開始する時などに用いる。スタートキーの中央部には、緑と赤の2色LEDがあり、その色によってスタートキーが使える状態にあるかどうかを示す。また、操作部308のストップキーは、稼働中の動作を止める働きをする。また、操作部308のIDキーは、使用者のユーザIDを入力する時に用いる。リセットキーは、操作部からの設定を初期化する時に用いる。カードリーダ319は、CPU301からの制御により、ICカード(例えば、ソニー社のフェリカ(FeliCa)(登録商標))内に記憶されている情報を読み取り、該読み取った情報を外部I/F318を介してCPU301へ通知する。
以上のような構成によって、複合機102は、スキャナ314から読み込んだ画像データをLAN106上に送信し、LAN106から受信した印刷データをプリンタ312により印刷出力することができる。また、スキャナ314から読み込んだ画像データをモデム306により、公衆回線上にFAX送信し、公衆回線からFAX受信した画像データをプリンタ312により出力することできる。
図4を用いて、本実施形態のプリントシステムにおけるプルプリントの全体の流れについて説明する。まず、本実施形態のプルプリントを実行するための前提について説明する。本実施形態のプルプリントを実現するための仮想プリンタドライバをプリントサーバ101に共有プリンタとしてインストールしておく。プリンタドライバは、アプリケーションから指示された印字や描画命令の出力に基づいて中間形式の印刷ジョブを生成する。さらに、プリンタドライバやプリンタが持つ機能を制御するための印刷設定を行う機能(ユーザインターフェース)と、その印刷設定をインストールされた論理プリンタ毎に外部記憶装置に記憶する機能等を有する。
この印刷設定は、米国Microsoft社のWindows(登録商標)の場合、DEVMODE構造体に格納される。このDEVMODE構造体とは、プリンタが使用可能な機能,レイアウト設定,仕上げ設定,給・排紙設定,印字品質設定等の論理プリンタに関するデフォルトの動作条件を含む各種設定を記憶するために、米国Microsoft社が規定したものである。この各種設定値は、インストールされた論理プリンタ毎に外部記憶装置に記憶される。各クライアントPC100へは、仮想プリンタドライバを前記プリントサーバ101からポイント&プリント等でダウンロードしてインストールして、該仮想プリンタドライバの論理プリンタを追加しておく。
以下、本実施形態のプルプリントの全体の流れについて説明する。図4は、本実施形態のプリントシステムにおけるプルプリント(通称「どこでもプリント」)の全体の流れを説明する模式図である。図4に示すように、まず、ユーザは、クライアントPC100にログインし、該クライアントPC100で実行されるクライアント・アプリケーション400から仮想プリンタドライバ401に対応する論理プリンタへの印刷指示を行う(1−1)。なお、仮想プリンタドライバは、ドライバ408に対して前段にあるため、「前段プリンタドライバ」と呼称される。
この印刷指示に応じて、クライアントPC100のクライアント・アプリケーション400は、グラフィックエンジンを介して、仮想プリンタドライバ401にデータを送信する。クライアントPC100の仮想プリンタドライバ401は、該クライアント・アプリケーションからグラフィックエンジンを介して受け取ったデータに基づいてデバイスに依存しないEMFSPOOL形式の印刷ジョブを生成する。そして、クライアントPC100は、生成したEMFSPOOL形式の印刷ジョブをプリントプロセッサ402に送信する(1−2)。プリントプロセッサ402は、仮想プリンタドライバ401から送信されてきたEMFSPOOL形式の印刷ジョブを読み取り、印刷ジョブのメタデータを生成する。そして、ジョブ管理サービス403へメタデータとEMFSPOOL形式の印刷ジョブを送信する(1−3)。
プリントサーバ101にて、ジョブ管理サービス403は、プリントサーバ101上の所定の格納場所にEMFSPOOL形式の印刷ジョブを保存し、さらにメタデータをジョブ管理DB404に登録する(1−4)。このジョブ管理DB404はプリントサーバ101の外部記憶装置上に構築される。このとき、プリントサーバ101は、上記所定の格納場所にEMFSPOOL形式の印刷ジョブを保存するだけで、印刷装置への送信は行わない。さらに、プリントサーバ101は、EMFSPOOL形式の印刷ジョブの識別子とユーザ識別子をアドレス管理サーバ103上のアドレス管理サービス405へ登録するために送信する(1−5)。
アドレス管理サービス405は、ジョブ管理サービス403から、印刷ジョブの識別子とユーザ識別子を受信すると、プリントサーバ101のアドレスも加えてアドレス管理DB406に登録する(1−6)。このアドレス管理DB406は、アドレス管理サーバ103の外部記憶装置上に構築される。なお、本実施形態では、機器を判別するためのアドレスとしてIPアドレスを使用する。本実施形態では、ジョブ識別子としてGUID(Global Unique Identifier)を使用する。
複合機102は、カードリーダ319により読み取り可能なICカードを検知すると、該ICカード内の個人認証情報を読み取り、該読み取った個人認証情報を認証要求として不図示の認証サーバに送信する。個人認証情報は、認証に用いられる情報であり該ICカードの製造番号でも良い。認証サーバは、複合機102より個人認証情報を受信すると、該個人認証情報の認証処理を認証サーバの外部記憶装置上に記憶されるICカード認証用テーブルに基づいて行い、認証結果を複合機102に返信する。なお、認証処理に成功した場合には、認証結果として、クライアントPC100のユーザ識別子を送信するものとする。なお、この認証サーバの機能はアドレス管理サーバ103にあってもよい。
複合機102上のパネル・アプリケーション407は、認証に成功した旨の認証結果(クライアントPC100のログインユーザ識別子)を受信する。本実施形態では、ユーザ識別子としてユーザ名を使用する。もちろん、ユーザを識別する手段としてICカードの製造番号などでもかまわない。パネル・アプリケーション407は、プリントサーバ101に印刷ジョブ一覧を要求するが、その前にプリントサーバ101のIPアドレスを取得する前処理を実施する。すなわち、アドレス管理サーバ103上のアドレス管理サービス405にユーザ名を送信する(2−1)。アドレス管理サービス405は、受信したユーザ名に対応するプリントサーバ101のIPアドレスを得る(2−2)。そして、パネル・アプリケーション407へプリントサーバ101のアドレスを返信する(2−3)。パネル・アプリケーション407は、アドレス管理サービス405からプリントサーバ101のIPアドレスを受信すると、プリントサーバ101上のジョブ管理サービス403へ対し印刷ジョブ一覧を要求する(2−4)。ジョブ管理サービス403は、ジョブ管理DB404を参照して(2−5)、該ユーザ名に対応する印刷ジョブ一覧を生成し、パネル・アプリケーション407へ印刷ジョブ一覧を返信する(2−6)。パネル・アプリケーション407は、ジョブ管理サービス403から印刷ジョブ一覧を受信すると、該印刷ジョブ一覧を操作部308のUI上に表示する。
ユーザにより、印刷ジョブが選択され、印刷設定変更及び印刷指示がなされると、パネル・アプリケーション407は、該選択された印刷ジョブの印刷設定情報をジョブ管理サービス403に送信する(3−1)。ジョブ管理サービス403は、パネル・アプリケーション407から印刷設定情報を受信すると、ジョブ管理DB404を参照して(3−2)、印刷設定情報の変更を行う。そして、ジョブ管理サービス403は、パネル・アプリケーション407へ変更した印刷設定情報を返信する(3−3)。パネル・アプリケーション407は送信した印刷設定情報と受信した印刷設定情報を比較し、印刷設定変更が正しく機能したかどうか判定する。正しく機能しなかった場合は、操作部308のUI上にその旨のメッセージを表示する。
そして、パネル・アプリケーション407は、改めてジョブ管理サービス403に対し印刷要求(出力指示)を行う(4−1)。ジョブ管理サービス403は、パネル・アプリケーション407から印刷指示を受信すると、ジョブ管理DB404を参照して印刷に必要な情報を取得する(4−2)。そして、ジョブ管理サービス403は、プリンタドライバ408に対して機能のサポート状況を問い合わせ(4−3)、プリンタドライバ408から回答を取得する(4−4)。ジョブ管理サービス403は、その回答に基づいて印刷処理を実行し、プリンタドライバ408にEMFSPOOL形式の印刷ジョブを送信し(4−5)、複合機102にPDLジョブを送信して複合機102で印刷する(4−6)。なお、プリンタドライバ408は、仮想プリンタドライバの後段にあるため、後段ドライバともいう。
最後に、ユーザにより印刷ジョブの削除が指示されると、パネル・アプリケーション407は、ジョブ管理サービス403に対し指定された印刷ジョブの削除を指示する。ジョブ管理サービス403は、パネル・アプリケーション407から印刷ジョブの削除要求を受信すると、まず、アドレス管理サービス405へ登録した印刷ジョブ識別子の削除を指示する(5−2)。アドレス管理サービス405は、ジョブ管理サービス403から印刷ジョブ識別子の登録解除要求を受信すると、アドレス管理DB406の該当するレコードを削除する(5−3)。次に、ジョブ管理サービス403は、ジョブ管理DBの該当するレコードを削除し(5−4)、EMFSPOOL形式の印刷ジョブファイルも削除する。
図5は、図4のプリントシステムにおけるデータの詳細を表形式で表したものである。以降、フローチャートを使って詳細に説明するが、その際に図5を併用して説明を補足していく。
図1に示したクライアントPC100上で動作するクライアント・アプリケーション400上での印刷指示について説明する。図6は、図1に示したクライアントPC100上で動作するクライアント・アプリケーション400の印刷画面の一例を示す模式図であり、クライアントPC100のCPUの制御により表示器に表示される。610は論理プリンタ選択部で、クライアントPC100に設定されている論理プリンタから、印刷を行う論理プリンタを選択するためのものである。このプリンタ選択部610において、「どこでも印刷」601は、本実施形態のプルプリント設定された仮想プリンタドライバに対応する論理プリンタとする。さらに、「Cxxxx ix3250」602,「Cxxxx ix5051」603は、通常のプリンタドライバに対応する論理プリンタとする。
プリンタ選択部610でいずれかの論理プリンタが選択され、OKボタン605が押下されると、アプリケーションは、印刷のためのデータを、選択された論理プリンタに対応するプリンタドライバにグラフィックエンジンを介して送信する。以下、プリンタ選択部610で「どこでも印刷」601が選択されて印刷指示がなされた場合のプリンタドライバの動作について説明する。
図7は、本発明のプリントシステムにおける第1の制御処理手順の一例を示すフローチャートであり、図4に示した1−1から1−6までの処理手順に対応する。ステップSA700〜ステップSA702は、図4に示した仮想プリンタドライバ401による印刷ジョブ投入処理に対応する。これらフローチャートの処理は、図1に示したクライアントPC100のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。ステップSB700〜ステップSB706は、図4に示したプリントプロセッサ402によるメタデータ生成・送信処理及び印刷ジョブ転送処理に対応する。これらフローチャートの処理は、図1に示したプリントサーバ101のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。ステップSC700〜ステップSC709は、図4に示したジョブ管理サービス403によるメタデータ登録処理及び印刷ジョブ保存処理対応する。これらフローチャートの処理は、図1に示したプリントサーバ101のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。ステップSD700〜ステップSD704は、図4に示したアドレス管理サービス405による印刷ジョブ識別子登録処理に対応する。これらフローチャートの処理は、図1に示したアドレス管理サーバ103のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。
まず、仮想プリンタドライバ401による印刷ジョブ投入処理を説明する。ステップSA700において、仮想プリンタドライバ401の処理が開始する。ステップSA701において、図4のクライアント・アプリケーション400から仮想プリンタドライバ401に入力されたデータをEMFSPOOL形式の印刷ジョブとして出力する。これは図4の1−1と1−2に相当する。米国Microsoft社のWindows(登録商標)の場合、プリンタドライバへの入力はDDI(Device Driver Interface)と呼ばれるOS(Operating System)による関数呼び出しによって実施される。
仮想プリンタドライバ401は、DDIの呼び出しと同時に渡されるパラメーターを解釈して、EMFSPOOL形式の印刷ジョブを生成し、OSが管理するスプーラーへ生成したジョブを出力する。一般に、プリンタドライバの役割は、出力対象のデバイスに依存した印刷ジョブを生成し出力することであるが、本実施形態においては、複合機102に依存しない中間形式の印刷ジョブを生成し、出力することが重要である。これによって、複合機102の構成が変更されたとしても、本発明のプリントシステムにおいて仮想プリンタドライバ401の構成に変更は生じない。つまり、複合機固有の機能をプルプリントシステムで使用することが容易に実現できる。ステップSA702で処理を終了する。
次に、プリントプロセッサ402によるメタデータ生成・送信処理及び印刷ジョブ転送処理を説明する。米国Microsoft社のWindows(登録商標)の場合、OSがプリントプロセッサに対し印刷ジョブの処理を依頼する際に呼び出すPrintDocumentOnPrintProcessor関数の内部処理を示す。ステップSB700において、プリントプロセッサ402はプリントサーバ101上で処理を開始する。ステップSB701において、プリントプロセッサ402は、OSのスプーラーに出力されたジョブの種類がRAW形式かどうか判断する。RAW形式とは、プリンタドライバが出力した印刷ジョブを意味する。つまり、仮想プリンタドライバ401はステップSA701にて印刷ジョブを出力しているので、ここではRAW形式と判断され、ステップSB702へ進む。RAW形式と判断されない場合は、ステップSB706へ進み、処理を終わる。
ステップSB702において、メタデータを生成する。メタデータは、図5の「1−4」行の「送信データ」列にある、GUID(Global Unique Identifier)、ジョブ名、ユーザ名、DEVMODE、仮想プリンタドライバの論理プリンタ名である。具体的には、図13aのようなXML形式で表現される。JobInfo要素のGuid属性には、本発明のプリントシステムにおいて一意となる印刷ジョブの識別子を記述する。JobInfo要素のJobName属性には、図4の1−1の過程で指定されたジョブの名前を記述する。JobInfo要素のUserName属性には、図4の1−1の過程で印刷を実行したユーザの名前を記述する。JobInfo要素のPrintQueueName属性には、図4の1−1の過程で使用された論理プリンタの名前を記述する。DocumentSettings要素のDEVMODESnapshot属性には、図4の1−1の過程で指定された最初ページの印刷設定(DEVMODE)を記述する。なお、DEVMODEはバイナリ形式なので、XMLで記述するためにBase64と呼ばれる手法によりテキスト化している。
ステップSB703おいて、SB702で生成したメタデータをジョブ管理サービス403へ送信する。米国Microsoft社のWindows(登録商標)の場合、送信プロトコルとして名前付きパイプを使うと高効率である。しかも、後述するユーザトークン取得に関しても名前付きパイプの使用は都合が良い。ステップSB704において、OSのスプーラーからスプールデータを読み込む。そして、ステップSB705において、読み込んだスプールデータをジョブ管理サービス403へ送信する。ステップSB706で処理を終了する。
次にジョブ管理サービス403によるメタデータ登録処理及び印刷ジョブ保存処理を説明する。ステップSC700において、ジョブ管理サービス403はプリントサーバ101上で処理を開始する。ステップSC701において、ジョブ管理サービス403は名前付きパイプのサーバとして機能することによって、プリントプロセッサ402からステップSB703で送信されたメタデータを図13aのようなXML形式で受信する。なお、プリントプロセッサ402とのコネクションを確立する際に、ジョブ管理サービス403は、名前付きパイプのクライアント(即ちプリントプロセッサ402)のユーザトークンを取得する(ステップSC702)。ユーザトークンの使用方法については後述する。
ステップSC703において、ジョブ管理サービス403は、EMFSPOOL形式の印刷ジョブを保存するファイルパスを決定する。ステップSC704において、ジョブ管理サービス403は、プリントプロセッサ402のステップSB705から送信されたEMFSPOOL形式の印刷ジョブを受信する。ステップSC705において、受信したEMFSPOOL形式の印刷ジョブをステップSC703で決定したファイル名で保存する。ステップSC706において、ジョブ管理サービス403は、現在の日付・時刻を生成する。これをもって印刷ジョブ投入時刻とする。ステップSC707において、SC701で受信したメタデータとステップSC702で取得したユーザトークンとステップSC703で決定したファイル名とステップSC706で生成した日付・時刻を新規レコードとしてジョブ管理DB404に登録する。ステップSC708において、ジョブ管理サービス403は、アドレス管理サービス405へ印刷ジョブ識別子登録コマンドを送信する。このとき、ステップSC701で受信したメタデータに含まれるGUIDとユーザ名も送信される。ステップSC709で処理を終了する。
次にアドレス管理サービス405による印刷ジョブ識別子登録処理を説明する。ステップSD700において、アドレス管理サービス405は、アドレス管理サーバ103上で処理を開始する。ステップSD701において、アドレス管理サービス405は、ジョブ管理サービス403からステップSC708で送信されたGUIDとユーザ名を受信する。なお、アドレス管理サービス405は、ジョブ管理サービス403とのコネクションを確立する際に、プリントサーバ101のIPアドレスを取得する(ステップSD702)。ステップSD703において、アドレス管理サービス405は、SD701で受信したGUIDとユーザ名とSD702で取得したIPアドレスを図4のアドレス管理DB406に新規レコードとして登録する。ステップSD704で処理を終了する。
図8は、本発明のプリントシステムにおける第2の制御処理手順の一例を示すフローチャートであり、図4に示した2−1から2−6までの処理手順に対応する。ステップSE800〜ステップSE813は、図4に示したパネル・アプリケーション407による印刷ジョブ一覧表示処理に対応する。これらフローチャートの処理は、図1に示した複合機102のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。ステップSD800〜ステップSD807は、図4に示したアドレス管理サービス405によるアドレス解決処理に対応する。これらフローチャートの処理は、図1に示したアドレス管理サーバ103のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。ステップSC800〜ステップSC810は、図4に示したジョブ管理サービス403による印刷ジョブ一覧生成処理に対応する。これらフローチャートの処理は、図1に示したプリントサーバ101のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。
まず、パネル・アプリケーション407による印刷ジョブ一覧表示処理を説明する。ステップSE800において、パネル・アプリケーション407の処理が開始する。ステップSE801において、パネル・アプリケーション407は、ログイン表示画面(図14a)を操作部308に表示する。そして、ステップSE802において、パネル・アプリケーション407は、ICカード等によるユーザ認証を行う。本実施形態において、ユーザ認証は重要なプロセスではないので、ここでは、認証カードの検出方法やICカードの識別ID取得方法や認証サーバによる認証処理といった詳細説明を省略する。
ステップSE803において、パネル・アプリケーション407は、認証結果を判定し、認証エラーである旨の認証結果が得られた場合には、ステップSE804において、エラー表示画面(図14b)を操作部308の表示部に表示する。該エラー表示画面にてOKボタンの押下を受け付けると、ステップSE801に戻り、パネル・アプリケーション407は、再度、ログイン表示画面を表示する。一方、ステップSE803にて認証が成功したと判定した場合、ステップSE805へ進む。
ステップSE805において、パネル・アプリケーション407は、認証に成功したユーザ名を取得する。ステップSE806において、パネル・アプリケーション407は、アドレス管理サーバ405にユーザ名を送信し、ステップSE807において、アドレス管理サーバ405からプリントサーバ101のIPアドレスのリストを受信する。つまり、パネル・アプリケーション407は、アドレス管理サーバ405に対し、ユーザ名で対象となる印刷ジョブを絞り込み、その印刷ジョブを保持するジョブ管理サービスのIPアドレスを返信することを要求している。
続くステップSE808からステップSE811までは、IPアドレスのリストからIPアドレスを列挙するループ処理である。ステップSE808において、パネル・アプリケーション407は、IPアドレスのリストからIPアドレスを取り出す。ステップSE809において、パネル・アプリケーション407は、IPアドレスを取り出せたかどうか判定する。取り出せた場合、ステップSE810へ進み、パネル・アプリケーション407は、ジョブ管理サーバ403に印刷ジョブ一覧要求コマンドを送信する。このときパネル・アプリケーション407は、ユーザ名も送信する。
ステップSE811において、パネル・アプリケーション407は、ジョブ管理サーバ403から印刷ジョブ一覧を受信する。この印刷ジョブ一覧は、図5の「2−6」行の「送信データ」列にある、GUID、ジョブ名、部数、両面、カラーモード、ページ集約、日付・時刻である。具体的には、図13bのようなXML形式で表現される。JobList要素は、ジョブの数だけのJobInfo子要素を保持する。JobInfo要素のGuid属性は図13aで説明したGUIDと同じものである。JobInfo要素のJobName属性も図13aで説明したJobNameと同じものである。
一方、DocumentSettings要素が保持する各種属性は図8のものと大きく異なる。CopyCount属性は、印刷部数を指定する。Duplexing属性は片面印刷を使用するか、両面印刷を使用するかを指定する。具体的には、OneSidedと記述すると、片面印刷を指定する。TwoSideLongEdgeと記述すると、両面(長辺綴じ)を指定する。TwoSidedShortEdgeと記述すると、両面(短辺綴じ)を指定する。OutputColor属性は、色に関する出力方法を指定する。Colorと記述すると、カラーを指定する。Monochromeと記述すると、モノクロを指定する。PagePerSheet属性は、用紙の片面に印刷するように選択できるページ数を指定する。DateTime属性は、ジョブ投入時刻を指定する。
ステップSE808からステップSE811において、パネル・アプリケーション407は、IPアドレスのリストからIPアドレスを取り出し終えると、ステップSE812に進み、印刷ジョブ一覧表示画面(図14c)を操作部308の表示部に表示する。ステップSE813で処理を終了する。
次にアドレス管理サービス405によるアドレス解決処理を説明する。ステップSD800において、アドレス管理サービス405の処理が開始する。ステップSD801において、アドレス管理サービス405は、パネル・アプリケーション407のステップSE806から送信されるユーザ名を受信する。ステップSD802において、アドレス管理サービス405は、図4のアドレス管理DB406からステップSD801で得たユーザ名と一致するレコードを探索する。ステップSD803において、アドレス管理サービス405は、探索したレコードから1つのレコードを取り出す。
ステップSD804において、アドレス管理サービス405は、レコードを取り出せたかどうか判断する。取り出せるときは、ステップSD805へ進み、アドレス管理サービス405は、レコードからジョブ管理サービス403が動作するプリントサーバ101のIPアドレスを取り出す。ステップSD803からステップSD805において、アドレス管理サービス405は、探索した全レコードからIPアドレスを取り出し終えると、ステップSD806へ進み、パネル・アプリケーション407へIPアドレスのリストを返信する。ステップSD807で処理を終了する。
次にジョブ管理サービス403による印刷ジョブ一覧生成処理を説明する。ステップSC800において、ジョブ管理サービス403の処理が開始する。ステップSC801において、ジョブ管理サービス403は、パネル・アプリケーション407のステップSE810から印刷ジョブ一覧要求を受け付ける。このときジョブ管理サービス403は、ユーザ名も受信する。ステップSC802において、ジョブ管理サービス403は、図4のジョブ管理DB404からステップSC801で得たユーザ名と一致するレコードを探索する。ステップSC803において、ジョブ管理サービス403は、探索したレコードから1つのレコードを取り出す。
ステップSC804において、ジョブ管理サービス403は、レコードを取り出せるかどうかを判断する。取り出せるときは、ステップSC805へ進み、レコードからGUIDとジョブ名とDEVMODEと仮想プリンタドライバの論理プリンタ名とユーザトークンと日付・時刻を取り出す。ステップSC806において、ジョブ管理サービス403は、ステップSC804で得たユーザトークンを使って、自身のスレッドを偽装する。スレッドを偽装している間、スレッドは図4のクライアント・アプリケーション400で印刷を実行したユーザのセキュリティコンテキストで実行される。
ステップSC807において、ジョブ管理サービス403は、ステップSC805で得たDEVMODEからカラーモード、両面、ページ集約、部数、といった個々の情報を取り出す。DEVMODEは、プリンタドライバが管理するプリンタドライバ固有のデータ形式であるので、DEVMODEから個々の情報を取り出すためには、DEVMODEを生成したプリンタドライバに問い合わせる必要がある。ステップSC807で仮想プリンタドライバの論理プリンタ名を取得済みなので、ジョブ管理サービス403は、この論理プリンタを使ってDEVMODEから個々の情報を取り出すことになる。一般に、DEVMODEから個々の情報を取り出す手法としては、プリンタドライバにDEVMODEを操作する独自の拡張インターフェースを設けて、そのインターフェースを経由することが多い。近年は、プリントチケットと呼ばれる米国Microsoft社が規定したXMLによる印刷設定格納形式を利用する方法も利用ある。即ち、プリンタドライバがプリントチケットをサポートするならば、DEVMODEをプリントチケットに変換し、プリントチケットから個々の情報を取り出してもよい。
ステップSC808において、ジョブ管理サービス403は、スレッドの偽装を解除する。ステップSC803からステップSC808において、探索した全レコードから個々の印刷設定を取り出し終えると、ステップSC809へ進み、ジョブ管理サービス403は、印刷ジョブ一覧(図13b)を生成する。そして、パネル・アプリケーション407へ印刷ジョブ一覧を返信する。ステップSC810で処理を終了する。
図9は、本発明のプリントシステムにおける第3の制御処理手順の一例を示すフローチャートであり、図4に示した3−1から3−3までの処理手順に対応する。ステップSE900〜ステップSE913は、図4に示したパネル・アプリケーション407による印刷設定変更確認及び印刷指示処理に対応する。これらフローチャートの処理は、図1に示した複合機102のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。ステップSC900〜ステップSC911は、図4に示したジョブ管理サービス403による印刷設定変更処理に対応する。これらフローチャートの処理は、図1に示したジョブ管理サーバ101のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。
まず、パネル・アプリケーション407による印刷設定変更確認及び印刷指示処理を説明する。ステップSE900において、パネル・アプリケーション407の処理が開始する。なお、図8のステップSE812において、パネル・アプリケーション407は、印刷ジョブ一覧表示画面(図14c)を操作部308の表示部に表示している。ステップSE901において、パネル・アプリケーション407は、印刷ジョブの選択とプリントするボタン1422の押下を受け付ける。すると、ステップSE902において、パネル・アプリケーション407は、印刷設定変更画面(図14d)を操作部308の表示部に表示する。
図14dの1431は、カラーモードの指定を意味し、モノクロとカラーのどちらかをチェックできる。図14dの1432は、両面・片面の指定を意味し、片面、両面(長辺綴じ)、両面(短辺綴じ)のうち1つを選択できる。図14dの1433は、ページ集約の指定を意味し、1in1、2in1、4in1、6in1、8in1、9in1、16in1のうち1つを選択できる。図14dの1434は、印刷部数の指定を意味し、1から9999までの値を指定できる。なお、図14dは、パネル・アプリケーション407が、図14cにおいて文書名「決算報告書」の印刷ジョブの選択を受け付けて、プリントするボタン1422の押下を受け付けた場合の印刷設定変更例を示している。
ステップSE903において、パネル・アプリケーション407は、印刷設定変更を受け付ける。ここでは、図14dの1432の両面・片面指定が、ユーザにより片面から両面(長辺綴じ)に変更されたとする。ステップSE904において、パネル・アプリケーション407は、印刷設定情報が変更されたかどうか判定する。変更されていない場合は、以後の印刷設定変更確認処理をスキップし、一気にステップSE911へ進む。印刷設定情報が変更された場合は、ステップSE905へ進む。
ステップSE905において、パネル・アプリケーション407は、ジョブ管理サービス403へ印刷設定情報を送信する。この印刷設定情報は、図5の「3−1」行の「送信データ」列にある、GUID、部数、両面、カラーモード、ページ集約、複合機のモデル名である。具体的には、図13cのようなXML形式で表現される。JobInfo要素のGuid属性は図13aで説明したGuidと同じものである。JobInfo要素のDeviceModelName属性は、図1の複合機102のモデル名を記述する。DocumentSettings要素が保持する各種属性は図13bで説明したものと同様である。ただし、ステップSE903で片面を両面(長辺綴じ)に変更しているので、Duplexing属性はTwoSideLongEdgeになる。
ステップSE906において、パネル・アプリケーション407は、ジョブ管理サービス403から印刷設定変更指示が反映された印刷設定情報を受信する。この印刷設定情報は、図5の「3−3」行の「送信データ」列にある、GUID、部数、両面、カラーモード、ページ集約である。具体的には、図13dのようなXML形式で表現される。内容は図13cとほぼ同じなので説明は省略する。ステップSE907において、パネル・アプリケーション407は、ステップSE905で送信した印刷設定情報とステップSE906で受信した印刷設定情報を比較する。前に述べたようにステップSE905で送信した印刷設定情報ではDuplexing属性をTwoSideLongEdgeと指定した。しかし、ステップSE906で受信した印刷設定情報のDuplexing属性はOneSidedとなったとする。このように送信した印刷設定情報と受信した印刷設定情報が一致しないことは原理的にありえる。
例えば、ステップSE903で変更対象外の設定情報として用紙サイズがあるが、図4の1−1の段階で用紙サイズは「はがき」になっていたとする。そして、印刷設定の禁則条件として、用紙が「はがき」の場合、両面・片面指定は片面しか選択できないとする。かつ、禁則条件適用の優先度は両面・片面指定よりも用紙サイズの指定の方が高いとする。となると、Duplexing属性は常にOneSidedにならざるを得ない。パネル・アプリケーションに407にプリンタドライバと同様の高度な禁則処理を実装すれば、図14dの設定変更入力の時点で両面指定を変更できないようにすることも可能であるが、パネル・アプリケーションの実装難易度が非常に高くなる。本実施形態のように、パネル・アプリケーション407では印刷設定の禁則処理を行わず、印刷設定情報を変更したら都度、変更可能かどうかプリンタドライバに問い合わせる方が容易なうえ汎用性も増す。
パネル・アプリケーション407がステップSE905で送信した印刷設定情報とステップSE906で受信した印刷設定情報を比較した結果、差異が無い場合は、ステップSE911へ進む。一方、差異がある場合は、ステップSE908へ進み、エラー表示画面(図14e)を操作部308の表示部に表示するように制御する。ここでは、ステップSE906で受信した印刷設定のDuplexing属性はOneSidedになっているので、図14eのエラー表示も「片面」から「両面(長辺綴じ)」に変更できなかった旨の内容となっている。
ステップSE909において、パネル・アプリケーション407は、印刷続行指示の入力を受け付ける。ステップSE910において、OKボタン1442の押下を受け付けると、ステップSE911へ進む。ステップSE911の印刷指示処理については後述する。そしてステップSE912へ進む。一方、図14eのエラー表示画面でキャンセルボタン1441の押下を受け付けると、ステップSE912へ進み、図14eのエラー表示画面及び図14dの印刷設定変更画面を閉じる。ステップSE913で処理を終了する。
次にジョブ管理サービス403による印刷設定変更処理を説明する。ステップSC900において、ジョブ管理サービス403の処理を開始する。ステップSC901において、ジョブ管理サービス403は、パネル・アプリケーション407のステップSE905から図13cのようなXML形式で印刷設定情報を受信する。ステップSC902において、ジョブ管理サービス403は、印刷設定変更のための論理プリンタを作成する。詳細は図10にて後述する。ステップSC903において、ジョブ管理サービス403は、図4のジョブ管理DB404からステップSC901で得たGUIDと一致するレコードを探索する。ステップSC904において、ジョブ管理サービス403は、探索して得られたレコードからDEVMODEとユーザトークンを取得する。
ステップSC905において、ジョブ管理サービス403は、ステップSC904で得たユーザトークンを使って、自身のスレッドを変更する。スレッドを変更している間、スレッドは図4のクライアント・アプリケーション400で印刷を実行したユーザのセキュリティコンテキストで実行される。ステップSC906において、ジョブ管理サービス403は、ステップSC901で得た個々の印刷設定情報をステップSC904で得たDEVMODEに適用する。DEVMODEは、プリンタドライバが管理するプリンタドライバ固有のデータ形式であるので、DEVMODEに個々の情報を適用するためには、DEVMODEを生成したプリンタドライバにDEVMODEの更新を依頼する必要がある。ステップSC902で論理プリンタを生成済みなので、この論理プリンタを使ってDEVMODEに対し個々の情報を適用することになる。一般に、DEVMODEに個々の情報を適用する手法としては、プリンタドライバにDEVMODEを操作する独自の拡張インターフェースを設けて、そのインターフェースを経由することが多い。近年は、プリントチケットと呼ばれる米国Microsoft社が規定したXMLによる印刷設定格納形式を利用する方法もある。即ち、プリンタドライバがプリントチケットをサポートするならば、DEVMODEをプリントチケットに変換し、プリントチケットに対し個々の情報を適用し、プリントチケットからDEVMODEに変換してもよい。
ステップSC907において、ジョブ管理サービス403は、ジョブ管理DB404に保存しているDEVMODEをステップSC906で変更したDEVMODEを使って更新する。ステップSC908において、ジョブ管理サービス403は、ステップSC906で更新したDEVMODEからカラーモード、両面、ページ集約、部数、といった個々の情報を取り出す。個々の情報の取り出し方は、図8のステップSC807と同じである。ステップSC909において、ジョブ管理サービス403は、スレッドの偽装を解除する。ステップSC910において、ジョブ管理サービス403は、パネル・アプリケーション407へ図13dのようなXML形式で変更した印刷設定情報を返信する。ステップSC911で処理を終了する。
図10は、図9のステップSC902で呼び出される論理プリンタ作成処理のフローチャートである。ステップSC1000において、ジョブ管理サービス403の処理を開始する。ステップSC1001において、ジョブ管理サービス403は、図1の複合機102のIPアドレスを取得する。この複合機102のIPアドレスは、パネル・アプリケーション407とのデータ送受信のコネクションが確立した際に入手されている。ステップSC1002において、ジョブ管理サービス403は、図1の複合機102のモデル名をサポートしたプリンタドライバがプリントサーバ101上にインストールされているかどうか判定する。インストールされていない場合、ステップSC1003へ進み、ジョブ管理サービス403は、図1の複合機102のモデル名をサポートしたプリンタドライバをプリントサーバ101上にインストールする。そして、ステップSC1004へ進む。一方、ステップSC1002でインストール済みと判定された場合は、ステップSC1004へ進む。なお、この段階でインストール済みとなったプリンタドライバは、図4のプリンタドライバ408に相当する。
ステップSC1004において、インストール済みのプリンタドライバから構成され、かつ、ステップSC1001で得たIPアドレスを出力ポートとして構成される論理プリンタがプリントサーバ101上に存在するかどうか判定する。存在しない場合、ステップSC1005へ進み、ジョブ管理サービス403は、インストール済みのプリンタドライバを使ってステップSC1001で得たIPアドレスを出力ポートとする論理プリンタを作成する。そして、ステップSC1006へ進む。一方、ステップSC1004で存在すると判定された場合は、SC1606へ進む。ステップSC1006で処理を終了する。
図11は、本発明のプリントシステムにおける第4の制御処理手順の一例を示すフローチャートであり、図9のステップSE911で呼び出される印刷指示処理のフローチャートでもある。図4に示した4−1から4−4までの処理手順に対応する。ステップSE1100〜ステップSE1107は、図4に示したパネル・アプリケーション407による印刷指示処理に対応する。これらフローチャートの処理は、図1に示した複合機102のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。ステップSC1100〜ステップSC1109は、図4に示したジョブ管理サービス403による印刷処理に対応する。これらフローチャートの処理は、図1に示したジョブ管理サーバ101のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。
まず、パネル・アプリケーション407による印刷指示処理を説明する。ステップSE1100において、パネル・アプリケーション407の処理を開始する。ステップSE1101において、パネル・アプリケーション407は、ジョブ管理サービス403へ印刷指示要求コマンドを送信する。このとき選択済みの印刷ジョブのGUIDと複合機102のモデル名も送信する。ステップSE1102において、パネル・アプリケーション407は、ジョブ管理サービス403から印刷実行結果(成否)を受信する。ステップSE1103において、印刷実行に成功したかどうかを判定する。失敗した場合は、ステップSE1104へ進み、パネル・アプリケーション407は、エラー表示画面(図14f)を操作部308の表示部に表示する。そしてステップSE1107へ進む。
一方、ステップSE1103において、印刷実行に成功したと判定した場合は、ステップSE1105へ進む。ステップSE1105において、図14cのプリント後文書消去チェックボックス1421がチェックされていたかどうかを判定する。プリント後に削除する指示があった場合、ステップSE1106へ進み、パネル・アプリケーション407は、印刷ジョブを削除する。詳細は図12にて後述する。そしてステップSE1107に進む。ステップSE1107で処理を終了する。
次にジョブ管理サービス403による印刷処理を説明する。ステップSC1100において、ジョブ管理サービス403の処理を開始する。ステップSC1101において、ジョブ管理サービス403は、パネル・アプリケーション407のステップSE1101から印刷指示コマンドを受信する。このとき、印刷対象の印刷ジョブのGUIDと複合機102のモデル名も受信する。ステップSC1102において、ジョブ管理サービス403は、印刷実行変更のための論理プリンタを作成する。処理内容は、図9のステップSC902と同じである。詳細は図10で述べた通りである。
ステップSC1103において、ジョブ管理サービス403は、図4のジョブ管理DB404からステップSC1101で得たGUIDと一致するレコードを探索する。ステップSC1104において、探索して得られたレコードからEMFSPOOLのファイル名とDEVMODEとユーザトークンを取得する。ステップSC1105において、ステップSC1104で得たユーザトークンを使って、自身のスレッドを変更する。スレッドを変更している間、スレッドは図4のクライアント・アプリケーション400で印刷を実行したユーザのセキュリティコンテキストで実行される。
ステップSC1106において、ジョブ管理サービス403は、ステップSC1102で得た論理プリンタに対し、ステップSC1104で得たEMFSPOOLとDEVMODEをレンダリングして印刷処理を実行する。論理プリンタを構成するプリンタドライバはPDLを生成し、複合機102にPDLを送信する。SC1106において送信されたPDLを用いて複合機102は印刷処理を実行する。ステップSC1107において、ジョブ管理サービス403は、スレッドの変更を解除する。ステップSC1108において、ジョブ管理サービス403は、パネル・アプリケーション407へ印刷実行結果(成否)を返信する。ステップSC1109で処理を終了する。
図12は、本発明のプリントシステムにおける第5の制御処理手順の一例を示すフローチャートであり、図4に示した5−1から5−4までの処理手順に対応する。ステップSE1200〜ステップSE1203は、図4に示したパネル・アプリケーション407による印刷ジョブ削除指示処理に対応する。これらフローチャートの処理は、図1に示した複合機102のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。ステップSC1200〜ステップSC1207は、図4に示したジョブ管理サービス403処理による印刷ジョブ削除処理に対応する。これらフローチャートの処理は、図1に示したジョブ管理サーバ101のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。ステップSD1200〜ステップSD1204は、図4に示したアドレス管理サービス405による印刷ジョブ識別子登録解除処理に対応する。これらフローチャートの処理は、図1に示したアドレス管理サーバ103のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。
まず、パネル・アプリケーション407による印刷ジョブ削除指示処理を説明する。ステップSE1200において、パネル・アプリケーション407の処理を開始する。なお、前述した通りステップSE1200の呼び出しは、図11のステップSE1106であるが、もう一つ図12cの消去ボタン1421押下を受け付けた場合も同様に同ステップを呼び出す。ステップSE1201において、パネル・アプリケーション407は、削除対象の印刷ジョブのGUIDを取得する。ステップSE1202において、パネル・アプリケーション407は、印刷管理サービス403へ印刷ジョブ削除指示コマンドを送信する。このときステップSE1201で取得したGUIDも送信する。ステップSE1203で処理を終了する。
次にジョブ管理サービス403による印刷ジョブ削除処理を説明する。ステップSC1200において、ジョブ管理サービス403の処理を開始する。ステップSC1201において、ジョブ管理サービス403は、パネル・アプリケーション407のステップSE1202から印刷ジョブ削除指示コマンドを受信する。このとき、削除対象の印刷ジョブのGUIDも受信する。ステップSC1202において、ジョブ管理サービス403は、アドレス管理サービス405へ印刷ジョブ識別子登録解除コマンドを送信する。このとき、ステップSC1201で得たGUIDも送信する。ステップSC1203において、ジョブ管理サービス403は、図4のジョブ管理DB404からステップSC1201で得たGUIDと一致するレコードを探索する。
ステップSC1204において、ジョブ管理サービス403は、探索して得られたレコードからEMFSPOOLのファイル名を取得する。ステップSC1205において、ジョブ管理サービス403は、EMFSPOOLのファイルを削除する。ステップSC1206において、ジョブ管理サービス403は、図4のジョブ管理DB404からステップSC1203で得たレコードを削除する。ステップSC1207で処理を終了する。
次にアドレス管理サービス405による印刷ジョブ識別子登録解除処理を説明する。ステップSD1200において、アドレス管理サービス405の処理を開始する。ステップSD1201において、アドレス管理サービス405は、ジョブ管理サービス403のステップSC1202から印刷ジョブ識別子登録解除コマンドを受信する。このとき対象の印刷ジョブ識別子であるGUIDも受信する。ステップSD1202において、アドレス管理サービス405は、図4のアドレス管理DB406からステップSD1201で得たGUIDと一致するレコードを探索する。ステップSD1203において、アドレス管理サービス405は、図4のジョブ管理DB404からステップSD1202で得たレコードを削除する。ステップSD1204で処理を終了する。
図15は、本発明のプリントシステムにおける第6の制御処理手順の一例を示すフローチャートであり、図4に示した4−2から4−5までの処理手順に対応する。ステップSC1500〜ステップSC1509は、図4に示したジョブ管理サービス403による印刷処理に対応する。これらフローチャートの処理は、図1に示したジョブ管理サーバ101のCPUが外部メモリに格納されたプログラムをRAM上にロードして実行することにより実現される。この制御処理は、クライアント上のアプリケーション400の機能がプリントサーバ側101のプリンタドライバ408でサポートされていない場合の処理である。具体的には、例えば、クライアント上のアプリケーション400で設定された原稿用紙サイズを、実際に出力するプリンタ102に設置してある用紙に合わせて拡大もしくは縮小して印刷する機能があるとする。プリントサーバ側101のプリンタドライバ408がこの拡大縮小印刷機能をサポートしている場合、そのままEMFSPOOL形式の印刷ジョブをプリンタドライバ408に送信することにより、印刷が行われる。一方、本実施形態のプルプリントシステムでは、プリンタドライバ408がその機能をサポートしていない場合であっても、拡大縮小印刷処理を行わないで原稿用紙サイズのまま出力されてしまうのを回避する処理を行う。また、プリンタドライバ408が拡大縮小印刷機能自体はサポートしていたものの、拡大もしくは縮小する対象の用紙をサポートしてない場合であっても、本実施形態は拡大縮小印刷機能を正しく動作させることができる。なお、以下の制御処理はプリントサーバ101上のジョブ管理サービス403が行うが、特にこれに限定するものではない。
まずジョブ管理サービス403はパネル・アプリケーション407より印刷要求信号を受信すると、ジョブ管理DB404より該当するEMFSPOOL形式の印刷ジョブを取得する。EMFSPOOL形式の印刷ジョブを取得した後、ステップSC1501において、ジョブ管理サービス403は、その印刷ジョブからクライアントPC100のアプリケーション400または仮想プリンタドライバ401が設定した印刷設定情報を取得する。さらに、ステップSC1502において、ジョブ管理サービス403は、取得した印刷設定の中で特に描画処理に関連する項目の設定が有効になっているかどうかを判定する。
ステップSC1502において描画処理に関連する項目の設定が有効である場合、ステップSC1503において、ジョブ管理サービス403は、実際に出力するプリンタドライバ408を起動する。そして、ジョブ管理サービス403(機能判定手段)は、その描画処理に関連する項目の機能をサポートしているかどうかを問い合わせる。問い合わせの方法としては、一般的なWindows(登録商標)のAPIを使って該当する機能が有効かどうかを調べる方法を用いるが、プリンタドライバによっては特別に問い合わせするI/Fを使ってもよい。もしくは、当該I/Fが設けられていない場合は、その機能をサポートしていないと判断してもよい。
ステップSC1504における問い合わせの結果、プリンタドライバ408がその機能をサポートしていない場合、ステップSC1506において、ジョブ管理サービス403(加工手段)はEMFSPOOL形式の印刷ジョブを加工する処理を行う。一方、ステップSC1504においてその機能をサポートしている場合、ステップSC1505において、ジョブ管理サービス403(設定判定手段)は、その機能に該当する印刷設定が有効かどうかを判定する。ステップSC1505において該当する印刷設定が無効であった場合、ステップSC1506に進み、ジョブ管理サービス403は、EMFSPOOL形式の印刷ジョブを加工する処理を行う。一方、ステップSC1505において該当する印刷設定が有効だった場合は、ステップSC1508に進む。ステップSC1505において印刷設定が有効であるかどうかを判定する手段は、ステップSC1503における機能の問い合わせと同様に行われる。例えば、Windows(登録商標)のAPIを使って調べる方法、またはプリンタドライバによっては特別に用意されているI/Fを使って問い合わせを行う方法が用いられる。
次にステップSC1506におけるジョブ管理サービス403が行うEMFSPOOL形式の印刷ジョブの加工処理について具体的に説明する。ジョブ管理サービス403は、仮想プリンタドライバ401に設定されている機能を取得し、それに応じてEMFSPOOL形式の印刷ジョブを加工する。例えばモノクロ印刷の設定が有効になっている場合において、EMFSPOOL形式の印刷ジョブがカラーデータであったとしたら、ジョブ管理サービス403は、EMFSPOOL形式の印刷ジョブを2値化してモノクロデータに変換する。ページ集約印刷の設定が有効になっている場合、ジョブ管理サービス403は、割り付ける数や割り付け方法に応じて1ページごとに縮小処理を行って、適切な位置に割り付ける。拡大縮小印刷の設定が有効になっている場合、ジョブ管理サービス403は、出力用紙に応じて適切なサイズに変換する。拡大縮小印刷の機能に関連する処理については第2の実施形態で詳細に説明する。
ステップSC1506においてEMFSPOOL形式の印刷ジョブの加工処理が完了すると、ステップSC1506において、ジョブ管理サービス403は、プリントサーバ101のプリンタドライバ408に送信する印刷設定の該当する設定を無効にする。ステップSC1508において、ジョブ管理サービス403は、加工したEMFSPOOL形式の印刷ジョブ及び設定を無効にした印刷設定をプリントサーバ101のプリンタドライバ408に送信し、印刷処理を指示する。
本実施形態によれば、出力先となったプリンタドライバ408が描画関連の印刷機能をサポートしていない場合は、ジョブ管理サービス403が代行してEMFSPOOL形式の印刷ジョブを加工する。したがって、出力先のプリンタドライバの機能の有無を問わず、ユーザが意図した印刷結果を提供することが可能になる。一方、プリントサーバ101のプリンタドライバ408がその機能をサポートしている場合は、ジョブ管理サービス403はEMFSPOOL形式の印刷ジョブを加工しない。これにより、描画処理を各プリンタドライバに任せることになるので、それぞれのプリンタドライバの設定を細かく反映した印刷結果を提供することができる。例えば、印字可能領域はプリンタ毎に異なる。この際、プリンタドライバに任せることで、プリンタ毎の印字可能領域を考慮した描画処理を行える。なお、仮想プリンタドライバ401が例えば全てのEMFSPOOL形式の印刷ジョブをモノクロで印刷させる機能(いわゆる「強制モノクロ機能」)を備えており、プリントサーバ101のプリンタドライバ408がその機能を備えていない場合がある。この場合においても、ジョブ管理サービス403がEMFSPOOL形式の印刷ジョブをモノクロに加工してからプリンタドライバ408に送信してもよい。これにより、カラーで作成された文書でも強制的にモノクロで出力させることができる。
以上述べたように、本実施形態によれば、ジョブ管理サービス403がEMFSPOOL形式の印刷ジョブを直接加工するので、プリントサーバのプリンタドライバがサポートする機能の有無に依存せず、ユーザが期待した印刷設定情報で印刷することが可能となる。特に、ユーザがクライアントPC上で設定した描画処理に関連する印刷設定情報において、実際に印刷を行うプリンタドライバがその機能をサポートしていない場合であっても、ユーザが所望した印刷結果を提供することができる。
(第2の実施形態)
続いて、本発明の第2の実施形態であるプリントシステムについて説明する。第2の実施形態であるプリントシステムは、図1に示す第1の実施形態と同様の構成を有し、クライアントPC、プリントサーバ(印刷制御装置)、アドレス管理サーバ、および印刷装置を含む。第2の実施形態であるプリントシステムは、特定の描画処理がカラー/モノクロ印刷機能や集約印刷機能であった場合の特別な処理を含む。具田的には、その処理は、EMFSPOOL形式の印刷ジョブの加工処理に加え、さらに特定の描画処理が拡大縮小印刷機能であった場合のEMFSPOOL形式の印刷ジョブの加工処理を含む。
図16は、本発明のプリントシステムにおける第7の制御処理手順の一例を示すフローチャートであり、図4に示した4−2から4−5までの処理手順に対応する。。ステップSC1600〜ステップSC1609は、図4に示したジョブ管理サービス403による印刷処理に対応する。これらフローチャートの処理は、図1に示したジョブ管理サーバ101のCPUが外部メモリに格納された印刷制御プログラムをRAM上にロードして実行することにより実現される。この制御処理は、特定の描画処理が拡大縮小印刷機能であった場合のEMFSPOOL形式の印刷ジョブの加工処理である。ステップSC1600からステップSC1604までの処理は、第1の実施形態におけるステップSC1500からステップSC1504と同様であるので詳細な説明は省略する。
ステップSC1604において、ジョブ管理サービス403は出力先のプリントサーバ101のプリンタドライバ408が拡大縮小印刷機能をサポートしているかどうかを判定する。サポートしている場合は、ステップSC1605において、ジョブ管理サービス403は、プリンタドライバ408に対して、実際に出力する用紙をサポートしているかどうかを問い合わせる。問い合わせ方法は、第1の実施形態で説明したとおり、一般的なWindows(登録商標)のAPIを使用する方法、またはプリンタドライバよって特別に用意してある特別なI/Fによって行う。具体的な問い合わせ方法ついて以下に説明する。まずジョブ管理サービス403が該当するEMFSPOOL形式の印刷ジョブの中に格納されている印刷設定情報を取得し、その情報から拡大縮小後の出力用紙サイズを取得する。ジョブ管理サービスは、取得した出力用紙サイズを先ほどのI/Fを使ってプリンタドライバに渡し、拡大縮小が行えるかどうかを問い合わせる。そのI/Fの戻り値は、拡大縮小が行えるかどうかを返す。その値がYesの場合、ジョブ管理サービス403は、該当する用紙サイズをサポートしていると判断し、その値がNoの場合は、サポートしていないと判断する(SC1605)。
ステップSC1605における問い合わせの結果、プリンタドライバ408がその用紙をサポートしていない場合、またはステップSC1604においてプリンタドライバ408が拡大縮小印刷機能をサポートしていない場合、ステップSC1606に進む。ステップSC1606において、ジョブ管理サービス403は、EMFSPOOL形式の印刷ジョブにおける描画データを出力用紙サイズに拡大もしくは縮小する加工処理を行う。
ジョブ管理サービス403が拡大縮小処理を行うとき、描画領域を算出する処理を行う。この算出処理は用紙が定形用紙サイズであるか不定形用紙サイズであるかによって異なる。定形用紙サイズとは、OSやドライバ内部に予め定義されている用紙のサイズをいう。不定形用紙サイズとは、ユーザが独自にOSに登録した用紙のサイズ、他のプリンタドライバが内部的に定義している用紙のサイズなどをいう。不定形用紙サイズは、定形用紙サイズ以外のサイズをいう。例えば、不定形用紙サイズとは、印刷時に用紙サイズのID(A4やレターなど)によって指定される用紙のサイズではなく、用紙の幅/高さのみによって指定されたサイズの用紙をいう。また、不定形用紙サイズは、それを意図的に提示するためのID(Microsoft社のWindows(登録商標)では「256」という数値)によって指定された用紙のサイズをいう。出力用紙サイズが定形用紙サイズの場合、ジョブ管理サービス403(用紙判定手段)は、用紙のIDから描画領域の幅/高さを内部的に定義している数値、またはOSに登録している用紙サイズの幅/高さの数値を使用して描画領域を算出する。出力用紙サイズが不定形サイズの場合、ジョブ管理サービス403は印刷設定から拡大縮小後の用紙の幅/高さを取得し、拡大もしくは縮小する描画領域を算出する。
ステップSC1606において、ジョブ管理サービス403は、算出した描画領域に対して、EMFSPOOL形式の印刷ジョブにおける描画データの拡大または縮小の加工処理を行う。続いてステップSC1607において、ジョブ管理サービス403は、印刷設定情報の該当する項目を無効にする。具体的には、ジョブ管理サービス403は、取得した印刷設定情報の原稿用紙サイズの項目に拡大縮小処理を行った出力用紙サイズの値を設定することにより、印刷設定情報の該当する項目を無効にする。ここで、印刷設定情報の出力用紙サイズを設定する項目に対して、拡大縮小しないような値(例えば「原稿用紙サイズと同じ」設定値)を設定する。一方、拡大縮小後の出力用紙サイズが不定形サイズの場合、ジョブ管理サービス403は、取得した印刷設定情報の原稿用紙サイズに不定形サイズを設定し、同時に用紙の幅/高さも設定する。ステップSC1608からステップSC1609の処理は、第1の実施形態のステップSC1508からステップSC1509と同様の処理なので説明は省略する。
第2の実施形態によれば、印刷指示を受けたプリントサーバ101のプリンタドライバ408は拡大縮小設定に関する処理を行わずに、印刷設定情報の原稿用紙サイズの項目に設定されている用紙サイズで印刷データ(PDLデータ)を作成する。これによって、ユーザが所望する拡大縮小処理がされた印刷データが出力される。なお、出力する用紙サイズを強制的に指定してもよい。通常のクライアント・アプリケーション400は原稿用紙サイズに関するデータを保持しているものが多い。したがって、それぞれのクライアント・アプリケーション400に対してそれぞれ原稿用紙サイズを変更することは非効率的であるので、出力する用紙サイズを強制的に指定することによって、効率的に印刷データを出力することができる。
(第3の実施形態)
第2の実施形態で説明した処理は、プリンタドライバ408が拡大縮小印刷機能をサポートしていない場合、実際に出力するプリンタドライバ408に送信する印刷設定の原稿用紙サイズに不定形サイズを設定して、印刷データを送信するものであった。第3の実施形態では、さらに不定形サイズでは使用できない機能(両面印刷など)が存在しても、印刷を行うことができる。第3の実施形態において、ステップSC1600からステップSC1605までの処理は、第2の実施形態と同様であるので詳細な説明を省略する。
ステップSC1604において、プリンタドライバ408が拡大縮小印刷機能をサポートしていない場合、ステップSC1606において、ジョブ管理サービス403は、EMFSPOOL形式の印刷ジョブの拡大もしくは縮小の加工処理を行う。続いてジョブ管理サービス403は、実際に出力するプリンタドライバ408からサポートする用紙サイズのリストを取得する。ジョブ管理サービス403は、取得した用紙サイズのリストの中に拡大または縮小した用紙サイズがあるかどうかを判定する。拡大または縮小した用紙サイズがリストにある場合、ジョブ管理サービス403は、プリンタドライバ408がその用紙サイズをサポートしていると判断する。そして、ステップSC1608において、用紙サイズのIDを印刷設定の原稿用紙サイズの項目に設定してプリンタドライバ408に送信する。ステップSC1608からステップSC1609の処理は、第2の実施形態と同様であるので詳細な説明は省略する。
第3の実施形態によれば、ジョブ管理サービス403より呼び出されたプリンタドライバ408に、定形サイズが設定された印刷設定が送信されるので、不定形サイズでは使用できない機能、例えば両面印刷機能を提供することができる。
(第4の実施形態)
第1の実施形態おいて、プリントサーバ101は「事業所Aの階毎に設置」という例のように社内にサーバPCを設置して運用することを想定しているが、このサーバがクラウドコンピューティングサービスを利用した外部サーバとしてもよい。その場合、クライアントPC100の仮想プリンタドライバ401は中間形式の印刷ジョブを外部サーバに送信する。また、プルプリントするデバイス102は上記外部サーバから該当する中間形式の印刷ジョブに基づいて生成されたPDLジョブを受信する。送受信方法としては内部のサーバに送受信する方法と差異はない。ただし、外部サーバと通信する場合はネットワークトラフィックに関する問題や、セキュリティ面において注意する必要がある。例えば、外部サーバに送受信する場合、ネットワーク負荷を軽減するために印刷ジョブのサイズを縮小する必要がある。この方法としては印刷ジョブの圧縮や、分散処理などの方法がある。またセキュリティ面においては印刷ジョブのコンテンツが外部ネットワークに漏洩する状況が発生する。この状況を回避するためには印刷ジョブの暗号化などの方法がある。これらの問題を解決することにより、外部サーバを利用したプルプリントシステムが実現可能となる。サーバ101内部の処理については、第1の実施形態と同じである。
第4の実施形態によれば、社内やもしくは事業所内にプルプリント用のサーバPCを別途用意する必要がない。またサーバPCのメンテナンスの必要もなくなる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
100 クライアントPC
101 プリントサーバ

Claims (15)

  1. 印刷設定情報が設定された中間形式の印刷ジョブに基づいて印刷データを生成するドライバを備える印刷制御装置であって、
    前記ドライバが前記印刷設定情報のうち所定の機能をサポートしているか否かを判定する機能判定手段と、
    前記ドライバが前記機能をサポートしていないと判定された場合、前記機能に関して前記中間形式の印刷ジョブを加工し、前記ドライバが前記機能をサポートしていると判定された場合、前記機能に関する処理を前記ドライバに実行させるために前記中間形式の印刷ジョブを前記ドライバに送信する加工手段と
    を備えたことを特徴とする印刷制御装置。
  2. 前記機能に該当する前記ドライバの印刷設定が有効であるかどうかを判定する設定判定手段をさらに備え、
    前記印刷設定が無効であると判定された場合、前記加工手段が前記機能に関して前記中間形式の印刷ジョブを加工することを特徴とする請求項1に記載の印刷制御装置。
  3. 前記加工手段が前記中間形式の印刷ジョブを加工した場合、前記ドライバの前記機能に該当する印刷設定を無効にする無効手段をさらに備えたことを特徴とする請求項1または2のいずれかに記載の印刷制御装置。
  4. 前記機能が拡大縮小印刷機能である場合、前記加工手段は、印刷する用紙が定形用紙サイズであるかそれ以外の用紙サイズであるかに基づいて、異なる処理により描画領域を算出することを特徴とする請求項1に記載の印刷制御装置。
  5. 前記機能が拡大縮小印刷機能である場合、拡大または縮小後の用紙のサイズを前記ドライバがサポートしているかどうかを判定する用紙判定手段を備え、
    拡大または縮小後の用紙のサイズを前記ドライバがサポートしていない場合、前記加工手段が前記中間形式の印刷ジョブの描画データを拡大または縮小する処理を行うことを特徴とする請求項1に記載の印刷制御装置。
  6. 前記機能が描画処理に関する機能であることを特徴とする請求項1に記載の印刷制御装置。
  7. 前記描画処理に関する機能は、カラー/モノクロ印刷機能、集約印刷機能、または拡大縮小印刷機能のいずれかであることを特徴とする請求項7記載の印刷制御装置。
  8. 印刷設定情報が設定された中間形式の印刷ジョブに基づいて印刷データを生成するドライバを備える印刷制御装置にて実行される印刷制御プログラムであって、
    前記ドライバが前記印刷設定情報のうち所定の機能をサポートしているか否かを判定する機能判定ステップと、
    前記ドライバが前記機能をサポートしていないと判定された場合、前記機能に関して前記中間形式の印刷ジョブを加工し、前記ドライバが前記機能をサポートしていると判定された場合、前記機能に関する処理を前記ドライバに実行させるために前記中間形式の印刷ジョブを前記ドライバに送信する加工ステップとをコンピュータに実行させることを特徴とする印刷制御プログラム。
  9. 前記機能に該当する前記ドライバの印刷設定が有効であるかどうかを判定する設定判定ステップをさらに前記コンピュータに実行させ、
    前記印刷設定が無効であると判定された場合、前記加工手段が前記機能に関して前記中間形式の印刷ジョブを加工することを特徴とする請求項8に記載の印刷制御プログラム。
  10. 前記加工ステップにおいて前記中間形式の印刷ジョブを加工した場合、前記ドライバの前記機能に該当する印刷設定を無効にする無効ステップをさらに前記コンピュータに実行させることを特徴とする請求項8または9のいずれかに記載の印刷制御プログラム。
  11. 前記機能が拡大縮小印刷機能である場合、前記加工ステップにおいて、印刷する用紙が定形用紙サイズであるかそれ以外の用紙サイズであるかに基づいて、異なる処理により描画領域を算出することを特徴とする請求項8に記載の印刷制御プログラム。
  12. 前記機能が拡大縮小印刷機能である場合、拡大または縮小後の用紙のサイズを前記ドライバがサポートしているかどうかを判定する用紙判定ステップをさらに前記コンピュータに実行させ、
    拡大または縮小後の用紙のサイズを前記ドライバがサポートしていない場合、前記加工ステップにて前記中間形式の印刷ジョブの描画データを拡大または縮小する処理を行うことを特徴とする請求項8に記載の印刷制御プログラム。
  13. 前記機能が描画処理に関する機能であることを特徴とする請求項8に記載の印刷制御プログラム。
  14. 前記描画処理に関する機能は、カラー/モノクロ印刷機能、集約印刷機能、または拡大縮小印刷機能のいずれかであることを特徴とする請求項13記載の印刷制御プログラム。
  15. 印刷設定情報が設定された中間形式の印刷ジョブに基づいて印刷データを生成するドライバを備える印刷制御装置のための印刷制御方法であって、
    前記ドライバが前記印刷設定情報のうち所定の機能をサポートしているか否かを判定する機能判定ステップと、
    前記ドライバが前記機能をサポートしていないと判定された場合、前記機能に関して前記中間形式の印刷ジョブを加工し、前記ドライバが前記機能をサポートしていると判定された場合、前記機能に関する処理を前記ドライバに実行させるために前記中間形式の印刷ジョブを前記ドライバに送信する加工ステップと
    を含むことを特徴とする印刷制御方法。
JP2011225543A 2011-08-04 2011-10-13 印刷制御装置、印刷制御プログラムおよび印刷制御方法 Pending JP2013050935A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011225543A JP2013050935A (ja) 2011-08-04 2011-10-13 印刷制御装置、印刷制御プログラムおよび印刷制御方法
US13/565,382 US8970865B2 (en) 2011-08-04 2012-08-02 Printing control device, storage medium storing printing control program, and printing control method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011171249 2011-08-04
JP2011171249 2011-08-04
JP2011225543A JP2013050935A (ja) 2011-08-04 2011-10-13 印刷制御装置、印刷制御プログラムおよび印刷制御方法

Publications (1)

Publication Number Publication Date
JP2013050935A true JP2013050935A (ja) 2013-03-14

Family

ID=47626767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011225543A Pending JP2013050935A (ja) 2011-08-04 2011-10-13 印刷制御装置、印刷制御プログラムおよび印刷制御方法

Country Status (2)

Country Link
US (1) US8970865B2 (ja)
JP (1) JP2013050935A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015219854A (ja) * 2014-05-21 2015-12-07 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
WO2022202480A1 (ja) * 2021-03-24 2022-09-29 ブラザー工業株式会社 サポートプログラムおよび印刷システム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5754114B2 (ja) * 2010-11-22 2015-07-29 株式会社リコー 画像形成装置、情報設定システム、情報設定方法及び情報設定プログラム
JP5843691B2 (ja) * 2012-05-11 2016-01-13 キヤノン株式会社 情報処理装置、印刷システム、情報処理装置の制御方法、およびコンピュータプログラム
US8924443B2 (en) * 2012-10-05 2014-12-30 Gary Robin Maze Document management systems and methods
US10530970B2 (en) * 2016-09-02 2020-01-07 Microsoft Technology Licensing, Llc Automatic output metadata determination based on output device and substrate
US10348937B2 (en) * 2017-02-22 2019-07-09 Biscom Inc. High-definition facsimile routing
JP2019080138A (ja) * 2017-10-23 2019-05-23 キヤノン株式会社 画像形成装置、情報処理方法、及び、プログラム
JP7224877B2 (ja) * 2018-11-30 2023-02-20 キヤノン株式会社 情報処理装置およびプログラム
JP7234688B2 (ja) * 2019-02-27 2023-03-08 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
JP7263837B2 (ja) 2019-02-27 2023-04-25 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
JP7234687B2 (ja) 2019-02-27 2023-03-08 ブラザー工業株式会社 モジュール及びプログラム
JP2022098997A (ja) * 2020-12-22 2022-07-04 富士フイルムビジネスイノベーション株式会社 画像形成装置、画像形成プログラム及び連携システム
JP2023042652A (ja) * 2021-09-15 2023-03-28 京セラドキュメントソリューションズ株式会社 シート処理装置、処理条件設定方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025325A (en) * 1989-10-13 1991-06-18 Hewlett-Packard Company Graphics scaling method for high resolution printers
US5745659A (en) * 1996-04-25 1998-04-28 Hewlett-Packard Company Versatile scaling of drawings
US6377354B1 (en) * 1998-09-21 2002-04-23 Microsoft Corporation System and method for printing a document having merged text and graphics contained therein
US7054016B2 (en) * 2000-08-18 2006-05-30 Canon Kabushiki Kaisha Information processing apparatus and method with paper size setting and display of an output setting
US6865354B2 (en) * 2002-08-30 2005-03-08 Eastman Kodak Company Method for using a user interface to resolve mismatches between printer resources and print job requirements
US20060017955A1 (en) * 2003-03-31 2006-01-26 Sharp Laboratories Of America, Inc. Selective graphic instance rendering
US7755786B2 (en) * 2004-05-03 2010-07-13 Microsoft Corporation Systems and methods for support of various processing capabilities
JP4119868B2 (ja) 2004-05-18 2008-07-16 株式会社Pfu 印刷システム
JP2005332088A (ja) * 2004-05-18 2005-12-02 Canon Inc 文書生成装置およびファイル変換システム
JP2006040214A (ja) * 2004-07-30 2006-02-09 Canon Inc 情報処理装置、印刷処理方法、及びコンピュータプログラム
JP4033857B2 (ja) 2004-09-03 2008-01-16 キヤノンマーケティングジャパン株式会社 プリントシステムおよび印刷管理サーバおよび印刷方法および印刷管理方法およびプログラム
JP4865580B2 (ja) * 2006-02-23 2012-02-01 キヤノン株式会社 情報処理システム、情報機器、マクロ実行方法、及びプログラム
JP4926807B2 (ja) * 2007-04-24 2012-05-09 キヤノン株式会社 情報処理装置及び情報処理方法
KR101442638B1 (ko) * 2008-09-03 2014-09-24 삼성전자주식회사 화상형성장치 및 화상형성방법
JP5343643B2 (ja) * 2009-03-17 2013-11-13 株式会社リコー プリンタドライバ、記憶媒体、及び情報処理装置
JP5747461B2 (ja) * 2010-08-04 2015-07-15 株式会社リコー 画像形成装置、画像形成プログラム及び記録媒体
JP5201188B2 (ja) * 2010-09-30 2013-06-05 ブラザー工業株式会社 デバイス制御プログラム、及び、印刷プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015219854A (ja) * 2014-05-21 2015-12-07 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
US9952810B2 (en) 2014-05-21 2018-04-24 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method
WO2022202480A1 (ja) * 2021-03-24 2022-09-29 ブラザー工業株式会社 サポートプログラムおよび印刷システム

Also Published As

Publication number Publication date
US8970865B2 (en) 2015-03-03
US20130033714A1 (en) 2013-02-07

Similar Documents

Publication Publication Date Title
JP5854654B2 (ja) プリントシステム、印刷方法、プリントサーバ、制御方法、及びプログラム
JP5763904B2 (ja) プリントシステム、印刷方法、プリントサーバおよびその制御方法、並びにプログラム
JP5680926B2 (ja) プリントシステム、印刷方法、プリントサーバ及びその制御方法、並びにプログラム
JP5719198B2 (ja) プリントシステム、情報処理装置、制御方法、およびプログラム
US8970865B2 (en) Printing control device, storage medium storing printing control program, and printing control method
US9258437B2 (en) Printing system, control method, and computer-readable medium for controlling printing of data stored in a print server
JP5677047B2 (ja) 印刷システム、情報処理装置、印刷方法、及び、プログラム
US8773699B2 (en) Information processing apparatus, printing system, and method for controlling the same
JP2007179197A (ja) プリントシステムおよびプリントサーバおよび印刷管理サーバおよび印刷装置およびプリント方法およびプログラムおよび記録媒体
US8941867B2 (en) Printing system, server apparatus, information processing method, and storage medium
JP6415209B2 (ja) 印刷装置、印刷装置の制御方法、及びプログラム
JP4669037B2 (ja) 画像処理装置、ネットワークインタフェース装置、制御方法、画像処理システム、及びプログラム
JP6786408B2 (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP2012181695A (ja) 情報処理装置、プリントシステム、制御方法、及び、プログラム
JP2012221198A (ja) プリントシステム
JP5764924B2 (ja) 情報処理装置、情報処理装置の制御方法、プログラム、記憶媒体
JP2009223382A (ja) 画像形成装置、印刷ドライバ