(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、タブレット端末(以下、単に「タブレット」という)やスマートフォン等に搭載されるOSのようにスプーラーを提供していない装置がある。その場合、上述の様な印刷の制御が行われないという課題があった。スプーラーの無いOS上で動くアプリケーション上から、印刷データをデバイス(画像形成装置)へ送信する際、デバイスのプリントバッファが無くなってしまうと、印刷データの送信がそれ以上行えなくなってしまう。例えば、用紙ジャムなどでジョブが一時停止した場合、クライアント(印刷データの送信元)はプリントバッファがフルになるまでジョブを送信することが可能だが、フルになった途端、それ以上のデータは送信できなくなる。その結果、全体的な印刷速度は低下してしまう。近年、タブレットやスマートフォンの普及が進むとともに、それらから印刷出力を行うことが多くなっており、印刷処理の効率を向上させる技術が求められていた。
【0006】
特許文献1に開示の技術では、タブレットやスマートフォンのようなスプーラーが無い機器を想定した技術ではなく、別の技術が求められていた。当然に、画像形成装置においてプリントバッファを大容量にすることで解消はできるが、コストの点から現実的ではなかった。
【0007】
本発明はこのような状況に鑑みてなされたものであり、上記課題を解決できる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、スプーラー機能を用いずに外部機器から送信された印刷ジョブを取得し実行する画像形成装置であって、スプーラー機能を用いずに外部機器から送信された印刷ジョブを取得し実行する画像形成装置であって、
前記画像形成装置は、プリントバッファーと、印刷用ポートと、JAVA(登録商標)によって実装される所定のプラットフォーム上で稼働するアプリケーション
とを有し、
前記アプリケーションは、仮想印刷用ポートを有し、前記仮想印刷用ポートが、前記アプリケーション
が提供するWebサービスにより、前記外部機器からネットワークを介して前記印刷ジョブを受けると、
前記アプリケーションは、(1)前記印刷ジョブにおける印刷データに含まれる認証情報を解析して認証を行い、(2)前記仮想印刷用ポートを介して、前記印刷用ポートに対して
前記プリントバッファーが空いているか否かを確認し、
(3)前記プリントバッファーが
空いておらず利用不可能であれば、利用可能になるまで
前記プリントバッファーが空いているか否かを確認するとともに、所定期間スリープするループ処理を行うことで、前記印刷
データの送信を停止するように前記外部機器に通知
し、(4)前記プリントバッファーが利用可能になれば、前記外部機器から再送された前記印刷データを、前記仮想印刷用ポートを介して、前記印刷用ポートに対して転送する。
本発明は、スプーラー機能を用いずに外部機器から送信された印刷ジョブを取得し実行する画像形成装置であって、
前記画像形成装置は、プリントバッファーと、印刷用ポートと、JAVA(登録商標)によって実装される所定のプラットフォーム上で稼働するアプリケーションと、前記アプリケーションに対して利用可能に設定された
アプリケーション用作業記憶領域とを有し、
前記アプリケーションは、仮想印刷用ポートを有し、前記仮想印刷用ポートが、前記アプリケーション
が提供するWebサービスにより、前記外部機器からネットワークを介して前記印刷ジョブを受けると、
前記アプリケーションは、(1)前記印刷ジョブにおける印刷データに含まれる認証情報を解析して認証を行い、(2)前記仮想印刷用ポートを介して、前記印刷用ポートに対して
前記プリントバッファーが空いているか否かを確認し、
(3)前記プリントバッファーが
空いておらず利用不可能であれば、利用可能になるまで
前記プリントバッファーが空いているか否かを確認するとともに、前記外部機器から取得した前記印刷
データを一時的に
前記アプリケーション用作業記憶領域に保存する
ループ処理を行い、(4)前記プリントバッファーが利用可能になれば、前記アプリケーション用作業記憶領域に保存された前記印刷データを、前記印刷用ポートに対して転送し、続いて、前記外部機器から取得した前記印刷データを、前記仮想印刷用ポートを介して、前記印刷用ポートに対して転送する
。
本発明は、スプーラー機能を有さない外部機器と、前記外部機器から送信された印刷ジョブを取得し実行する画像形成装置とを有する画像形成システムであって、前記画像形成装置は、
プリントバッファーと、印刷用ポートと、JAVA(登録商標)によって実装される所定のプラットフォーム上で稼働するアプリケーション
とを有し、
前記アプリケーションは、仮想印刷用ポートを有し、前記仮想印刷用ポートが、前記アプリケーション
が提供するWebサービスにより、前記外部機器からネットワークを介して前記印刷ジョブを受けると、
前記アプリケーションは、(1)前記印刷ジョブにおける印刷データに含まれる認証情報を解析して認証を行い、(2)前記仮想印刷用ポートを介して、前記印刷用ポートに対して
前記プリントバッファーが空いているか否かを確認し、
(3)前記プリントバッファーが
空いておらず利用不可能であれば、利用可能になるまで
前記プリントバッファーが空いているか否かを確認するとともに、所定期間スリープするループ処理を行うことで、前記印刷
データの送信を停止するように前記外部機器に通知
し、(4)前記プリントバッファーが利用可能になれば、前記外部機器から再送された前記印刷データを、前記仮想印刷用ポートを介して、前記印刷用ポートに対して転送する。
本発明は、スプーラー機能を有さない外部機器と、前記外部機器から送信された印刷ジョブを取得し実行する画像形成装置とを有する画像形成システムであって、前記画像形成装置は、
プリントバッファーと、印刷用ポートと、JAVA(登録商標)によって実装される所定のプラットフォーム上で稼働するアプリケーションと、前記アプリケーションに対して利用可能に設定された
アプリケーション用作業記憶領域
とを有し、
前記アプリケーションは、仮想印刷用ポートを有し、前記仮想印刷用ポートが、前記アプリケーション
が提供するWebサービスにより、前記外部機器からネットワークを介して前記印刷ジョブを受けると、
前記アプリケーションは、(1)前記印刷ジョブにおける印刷データに含まれる認証情報を解析して認証を行い、(2)前記仮想印刷用ポートを介して、前記印刷用ポートに対して
前記プリントバッファーが空いているか否かを確認し、
(3)前記プリントバッファーが
空いておらず利用不可能であれば、利用可能になるまで
前記プリントバッファーが空いているか否かを確認するとともに、前記外部機器から取得した前記印刷
データを一時的に
前記アプリケーション用作業記憶領域に保存する
ループ処理を行い、(4)前記プリントバッファーが利用可能になれば、前記アプリケーション用作業記憶領域に保存された前記印刷データを、前記印刷用ポートに対して転送し、続いて、前記外部機器から取得した前記印刷データを、前記仮想印刷用ポートを介して、前記印刷用ポートに対して転送する。
【発明の効果】
【0009】
本発明によると、タブレットやスマートフォンのようなスプーラーが無い機器から画像形成装置に印刷出力をした場合であっても、印刷出力処理を円滑に行う技術を提供できる。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態(以下、「実施形態」という)について図面を参照して説明する。
【0012】
図1は、本実施形態に係る画像形成システム1の概略構成を示す機能ブロック図である。図示のように、画像形成システム1は、ネットワーク2を介して相互に接続される画像形成装置10と、モバイル機器60とを備える。
【0013】
モバイル機器60は、タブレットやスマートフォンであって、ネットワーク2を介して画像形成装置10に対して印刷出力を行う。モバイル機器60のOSは、印刷出力に関してスプーラーを有していない。このような構成の場合には、上述の様に、画像形成装置10のプリンタバッファがフルになると処理が停止してしまい、場合によってはエラーになる。そこで本実施形態では、モバイル機器60のOSの様にスプーラーを有しない機器であっても、印刷処理を適正に行うことができる技術を示す。以下では、ダイレクト印刷処理に着目して説明する。
【0014】
画像形成装置10は、システム拡張性を実現する連携プラットフォーム処理部20を備え、モバイル機器60やその他ネットワークを中心にさまざまな機器と連携を可能となっている。
【0015】
図2は、画像形成装置10の概略構成を示す機能ブロック図であって、おもに、ダイレクト印刷処理に着目して示しており、他の処理に関する構成については図示及び説明を適宜省略する。
【0016】
画像形成装置10は、例えば、MFPであって、制御部12と、操作部14と、表示部16と、印刷実行処理部30と、画像読取部40と、通信インターフェイス50とを備える。
【0017】
操作部14は、実行キー等の所定の機能ボタンやテンキー等を備えたユーザーインターフェイスである。表示部16は、液晶パネル等で構成され、動作状態等を表示する。なお、操作部14と表示部16とが一体に構成されたタッチキー等が用いられてもよい。
【0018】
印刷実行処理部30は、一般的な印刷実行機能を有し、制御部12からの指示により印刷動作を実行する。また、印刷実行処理部30は、プリントバッファー32を有する。このプリントバッファー32は、モバイル機器60から画像形成装置10へ送る印刷データを一時的に保存するRAM(Random Access Memory)等のFIFOタイプの高速記憶手段である。
【0019】
画像読取部40は、例えばA3サイズやA4サイズの原稿を読み取り可能とする一般的な構成であって、スキャナー、プラテンガラス、原稿読取スリット、原稿給紙装置等を備える。
【0020】
制御部12は、MPU(Micro-Processing Unit)、ROM(Read Only Memory)、RAM等を備え、各種の処理を行う。ここで、制御部12は、画像形成装置10の統括的処理を行う機能として、主制御部19を備える。また、制御部12は、本実施形態で特徴的な構成として、連携用プラットフォーム処理部20及びアプリケーション用作業記憶領域26を備える。
【0021】
連携プラットフォーム処理部20は、連携用プラットフォーム22及び連携用アプリケーション23を備える。
【0022】
連携用プラットフォーム22は、WebブラウザやWebサービスといったインターネット標準技術をベースとしたソリューションプラットホームであって、例えばJAVA(登録商標)によって実装される。
【0023】
連携用アプリケーション23は、連携用プラットフォーム22上で稼働するアプリケーションであって、画像形成装置10の機能を用いてモバイル機器60やその他の機器とネットワーク連携を可能にするものである。
【0024】
連携プラットフォーム処理部20は、連携用アプリケーション23(より具体的には仮想ダイレクト印刷用ポート24)を用いてモバイル機器60からの印刷処理を受けた場合に、いわゆるダイレクト印刷を実現する構成となっている。ダイレクト印刷を実現するために、連携用アプリケーション23は、仮想的なダイレクト印刷用ポート(以下、「仮想ダイレクト印刷用ポート24」という)をホストしている。
【0025】
より具体的には、仮想ダイレクト印刷用ポート24は、タブレットやスマートフォンのようなモバイル機器60のOSであってスプーラー機能の無いOSのアプリケーションからのジョブをWebサービスを用いて受信する。また、連携用アプリケーション23における印刷処理をサポートするために、連携用アプリケーション23は連携用プリンティングサービス25を有する。
【0026】
その仮想ダイレクト印刷用ポート24を指定した印刷データを受信した場合に、連携用プリンティングサービス25が、モバイル機器60のOSのスプーラーに代替して実行して、現実のダイレクト印刷用ポート54に印刷データを転送する。
【0027】
アプリケーション用作業記憶領域26は、連携用アプリケーション23の処理が実行される場合に、作業領域及び所定の保存領域として利用されるメモリ領域である。例えば、RAMやHDD等が用いられる。アプリケーション用作業記憶領域26は、専用に設けられてもよいが、他の用途・機能と共用されてもよい。
【0028】
通信インターフェイス50は、外部機器と通信するためのインターフェイスであって、LANインターフェイスやUSBインターフェイス等のローカル接続用を備える。ここではLANインターフェイスを想定して説明する。
【0029】
通信インターフェイス50は、モバイル機器60等からの印刷に関するデータ(印刷データや印刷指示等)を受ける印刷用インターフェイス52を備える。印刷用インターフェイス52は、ダイレクト印刷用ポート54を有する。ダイレクト印刷用ポート54は、RAWポート56やIPP(Internet Printing Protocol)ポート58を有する。
【0030】
一般に、画像形成装置10のダイレクト印刷ポート54に、モバイル機器60から印刷データを直接送信するダイレクト印刷の場合、画像形成装置10が備えるRIP(Routing Information Protocol)コンポーネントがプリンタブルデータ(印刷データ)に含まれている認証情報を解析し、必要に応じて認証を行うというプロセスがなされる。
【0031】
しかしながら、連携プラットフォーム処理部20の連携用アプリケーション23を用いた印刷処理等の場合、モバイル機器60から画像形成装置10へのアクセスに関する認証の責務は連携用アプリケーション23が担う。ここでは、仮想ダイレクト印刷用ポート24がダイレクト印刷のデータを取得した後、連携用アプリケーション23が認証情報を解析し認証を行い、その後、内部的にダイレクト印刷のデータをダイレクト印刷用ポート54に転送する。
【0032】
図3は、モバイル機器60からダイレクト印刷をする際の処理を示すチャート図であって、プリントバッファー32がフルでなく円滑に処理される場合の処理を示している。
【0033】
クライアントであるモバイル機器60は連携用アプリケーション23に対して、より具体的には連携用アプリケーション23が提供するWebサービスに対して、印刷データを複数回(所定のデータ量のチャンク)に分けて送信する。
【0034】
データを受け取った連携用アプリケーション23は、ダイレクト印刷が可能であるか、つまり、ダイレクト印刷用ポート54(ここではRAWポート56)へ送信できるかどうか確認したあと、プリントバッファー32に空きがあり印刷処理に支障がなければデータをそのままダイレクト印刷用ポート54へ送信する。
【0035】
具体的には、仮想ダイレクト印刷用ポート24は、印刷データをモバイル機器60から取得すると、連携用プリンティングサービス25に対してジョブデータ送信準備確認処理を行う(S11a)。つまり、印刷データを送信しても良いか否かを確認する。連携用プリンティングサービス25は、準備が出来ていれば印刷権限(token)を返答する(S11b)。
【0036】
次に、仮想ダイレクト印刷用ポート24は、連携用プリンティングサービス25へのジョブデータ送信処理を実行する(S12a)。このとき、印刷データが適正に送信されている状態であるので、「status=SENDING」となる。
【0037】
つづいて、連携用プリンティングサービス25は、印刷データをRAWポート56に送信するとともにRAWポート56のポートステータスのチェックを行う(S12b)。RAWポート56は、適正に受信している旨の応答(OK)を返信する(S12c)。返信を受けた連携用プリンティングサービス25は、仮想ダイレクト印刷用ポート24に送信が成功した旨を返信を通知する(S12d)。この処理は、チャンクに分けられた全データが完了するまでループ処理される。
【0038】
印刷データの送信が完了すると、仮想ダイレクト印刷用ポート24は連携用プリンティングサービス25にその旨を通知する(S13a)。つまり、例えば「status=SENT」のジョブデータが送信される。連携用プリンティングサービス25は、成功した旨の応答を仮想ダイレクト印刷用ポート24に通知し(S13b)、ダイレクト印刷処理が完了する。
【0039】
図4はモバイル機器60からダイレクト印刷をする際の処理を示すチャート図であって、プリントバッファー32がフルの場合の処理を示している。
【0040】
このような状況は、大容量の印刷プリントデータを送信する際に、画像形成装置10の印刷データのRIP処理が、送信速度に追いついていない場合や、あるジョブを印刷中に、用紙ジャムなどが発生してジョブが停止してしまった場合などが想定される。
【0041】
この場合では、連携用アプリケーション23がRAWポート56の状態を確認後、プリントバッファー32がフルだった場合、その旨をモバイル機器60へ返答する。それを受け取ったモバイル機器60は、スリープを行い、再度データの送信を試みる。
【0042】
具体的には、次の様な処理が実行される。即ち、仮想ダイレクト印刷用ポート24は、印刷データをモバイル機器60から取得すると、連携用プリンティングサービス25に対してジョブデータ送信準備確認処理を行う(S21a)。連携用プリンティングサービス25は、準備が出来ていれば印刷権限(token)を返答する(S21b)。
【0043】
次に、仮想ダイレクト印刷用ポート24は、連携用プリンティングサービス25へのジョブデータ送信処理を実行する(S22a)。このとき、印刷データが適正に送信されている状態であるので、「status=SENDING」となる。印刷データを受信すると、連携用プリンティングサービス25は成功した旨を通知する(S22b)。この処理は、チャンクに分けられた全データが完了するまでループ処理される。
【0044】
ここで、連携用プリンティングサービス25がRAWポート56に確認により、プリントバッファー32がフルであり利用できない旨が通知される状況が発生したことを想定する(S23)。
【0045】
プリントバッファー32がフルの状態になった場合、仮想ダイレクト印刷用ポート24は、印刷データを連携用プリンティングサービス25に送信する処理を継続する(S24a)。このとき、印刷データが適正に送信されている状態であるので、「status=SENDING」となる。
【0046】
連携用プリンティングサービス25は、RAWポート56に対してポートステータスのチェック、つまり、プリントバッファー32が空になったかフルのままかを確認する(S24b)。フルの状態であるので、その旨がRAWポート56から連携用プリンティングサービス25に通知される(S24c)。
【0047】
つづいて、連携用プリンティングサービス25は、仮想ダイレクト印刷用ポート24に対してプリントバッファー32がフルである旨の応答をする(S24d)。仮想ダイレクト印刷用ポート24は、所定期間スリープ後(S25)、S24aの処理に戻り、プリントバッファー32がフルの間ループする。つまり、仮想ダイレクト印刷用ポート24は、モバイル機器60に対してプリントバッファー32がフルであることを通知することで、所定期間スリープするように通知する。モバイル機器60は、所定のスリープ後、再度データ送信を行う。
【0048】
プリントバッファー32が空になると、次の処理に移行することになる。即ち、仮想ダイレクト印刷用ポート24は、上述同様に、印刷データを連携用プリンティングサービス25に送信する処理を継続する(S26a)。連携用プリンティングサービス25がRAWポート56にポートステータスのチェックをすると(S26b)、プリントバッファー32が空になっているので、利用出来る旨の応答(OK)がRAWポート56から連携用プリンティングサービス25に帰ってくる(S26c)。印刷データの送信がされると、連携用プリンティングサービス25は、仮想ダイレクト印刷用ポート24に対して成功した旨の通知をする(S26d)。この処理は、チャンクに分けられた全データが完了するまでループ処理される。
【0049】
印刷データの送信が完了すると、仮想ダイレクト印刷用ポート24は連携用プリンティングサービス25にその旨を通知する(S27a)。連携用プリンティングサービス25は、成功した旨の応答を仮想ダイレクト印刷用ポート24に通知し(S27b)、ダイレクト印刷処理が完了する。
【0050】
図5はモバイル機器60からダイレクト印刷をする際の処理を示すチャート図であって、プリントバッファー32がフルの場合の別の処理を示している。
図4で示した処理では、画像形成装置10のプリントバッファー32が空になった場合、印刷データが即時に処理されず、再度バッファの送信を行う必要がある。そのため、パフォーマンスの低下につながることがある。
【0051】
そこで、
図5で示す処理では、連携用アプリケーション23が利用することが可能なアプリケーション用作業記憶領域26に、送信されたバッファを一時的に保存する処理を実行する。保存されたバッファは、プリントバッファー32が空き次第、RAWポート56に送信され、パフォーマンスの低下を最小限に抑えることが可能になる。
【0052】
具体的には、次の様な処理が実行される。即ち、仮想ダイレクト印刷用ポート24は、印刷データをモバイル機器60から取得すると、連携用プリンティングサービス25に対してジョブデータ送信準備確認処理を行う(S31a)。連携用プリンティングサービス25は、準備が出来ていれば印刷権限(token)を返答する(S31b)。
【0053】
次に、仮想ダイレクト印刷用ポート24は、連携用プリンティングサービス25へのジョブデータ送信処理を実行する(S32a)。このとき、印刷データが適正に送信されている状態であるので、「status=SENDING」となる。印刷データを受信すると、連携用プリンティングサービス25は成功した旨を通知する(S32b)。
【0054】
ここで、プリントバッファー32がフルであり利用できない旨が通知される状況が発生したことを想定する(S33)。
【0055】
プリントバッファー32がフルの状態になった場合、仮想ダイレクト印刷用ポート24は、印刷データを連携用プリンティングサービス25に送信する処理を継続する(S34a)。
【0056】
連携用プリンティングサービス25は、RAWポート56に対してポートステータスのチェック、つまり、プリントバッファー32が空になったかフルのままかを確認する(S34b)。フルの状態であるので、その旨がRAWポート56から連携用プリンティングサービス25に通知される(S34c)。つづいて、連携用プリンティングサービス25は、仮想ダイレクト印刷用ポート24に対してプリントバッファー32がフルである旨の応答をする(S34d)。そして、連携用プリンティングサービス25は、アプリケーション用作業記憶領域26に取得した印刷データを一時的に保存する(S35)。
【0057】
プリントバッファー32が空になると、次の処理に移行することになる。即ち、仮想ダイレクト印刷用ポート24は、上述同様に、印刷データを連携用プリンティングサービス25に送信する処理を継続する(S36a)。連携用プリンティングサービス25がRAWポート56にポートステータスのチェックをすると(S36b)、プリントバッファー32が空になっているので、利用出来る旨の応答(OK)がRAWポート56から連携用プリンティングサービス25に帰ってくる(S36c)。
【0058】
この場合、まず、アプリケーション用作業記憶領域26の印刷データがRAWポート56に送信され、つづいて仮想ダイレクト印刷用ポート24から送られる印刷
データがRAWポート56に送られる。その後、連携用プリンティングサービス25は、仮想ダイレクト印刷用ポート24に対して成功した旨の通知をする(S36d)。この処理は、チャンクに分けられた全データが完了するまでループ処理される。
【0059】
印刷データの送信が完了すると、仮想ダイレクト印刷用ポート24は連携用プリンティングサービス25にその旨を通知する(S37a)。連携用プリンティングサービス25は、成功した旨の応答を仮想ダイレクト印刷用ポート24に通知し(S37b)、ダイレクト印刷処理が完了する。
【0060】
以上、本実施形態によると、スプーラーを有しないOSによる動作するモバイル機器60から印刷処理がなされた場合であって画像形成装置10でプリントバッファー32がフルとなる場合であっても、円滑な印刷処理を実現できる。特に、ダイレクト印刷処理の場合、画像形成装置10の印刷データの解釈に十分な処理能力を求められることもあり、従来ではプリントバッファの容量がデータ量に対して不十分で処理能力が大幅に低下することもあったが、本実施形態によれば、そのような処理能力の大幅低下を低減することができる。
【0061】
以上、本発明を実施形態をもとに説明した。この実施形態は例示であり、それらの各構成要素の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。