(58)【調査した分野】(Int.Cl.,DB名)
前記印刷制御手段は、前記指示受付手段で前記印刷指示を受け付けた前記第1の面または前記第2の面の前記範囲が印刷済みであった場合は、当該第1の面または第2の面の前記範囲は印刷しないよう制御することを特徴とする請求項2に記載の情報処理装置。
前記表示制御手段は、前記指示受付手段で前記印刷指示を受け付けた前記第1の面または前記第2の面の前記範囲が印刷済みであった場合は、印刷済みであることを通知可能な画面を表示制御することを特徴とする請求項2または3に記載の情報処理装置。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら本発明の実施形態について説明を行う。
【0012】
図1は、本発明の第1の実施形態における情報処理システムのシステム構成の一例を示す図である。情報処理システムは、コントローラ100(情報処理装置)、検査装置200、プリンタ300がそれぞれ通信可能に接続されている。本実施形態では、検査装置200とプリンタ300が別の装置として説明をしているが、検査装置200の構成がコントローラ100やプリンタ300に含まれるような構成としても構わない。
【0013】
コントローラ100は、プリンタ300での印刷処理を制御する装置である。コントローラ100からプリンタ300に対して印刷指示が行われると、プリンタ300はコントローラ100からの印刷指示に応じて印刷を実行する。検査装置200はプリンタ300が印刷を実行する際に、印刷用紙に印刷されたバーコード(識別情報)を読み取るバーコードリーダ(読取装置)の動作を制御する装置である。これらの装置が相互に通信を行いながら、印刷データを印刷用紙(連帳紙)に印刷することができるシステムが本実施形態の情報処理システムである。
【0014】
本実施形態のプリンタ300は、特開2008−175840号に開示されているように自動で連帳紙の表裏を反転させるような仕組みを設けていない。そのため、自動で連帳紙の表裏を反転させるような仕組みを設けていないプリンタで表裏が正しく印刷された連帳紙を得るためには、表面の印刷を終えスタッカ309に蓄積された連帳紙を再びホッパ301に裏面が印刷されるようにユーザがセットし、ユーザがコントローラ100から裏面の印刷データの印刷指示を行わなければならない。更に連帳紙は、連帳紙の箱ごとに(例えば1箱あたり2000部)印刷をすることができるが、1箱あたりの連帳紙の印刷可能枚数より、ユーザが印刷をしようとする印刷データの印刷枚数の方が多い場合には、何箱もの連帳紙を使って印刷データを印刷しなければならない。このように、ユーザが印刷データを印刷する際には、どの箱にどの印刷データの範囲のどの面(表面か裏面か)を印刷したかを管理しながら進めなければならず、ミスなく印刷するためにはユーザの手間や負荷が多大にかかっていた。
【0015】
次に
図2を用いて本実施形態におけるコントローラ100及び検査装置200のハードウェア構成について説明する。
【0016】
コントローラ100及び検査装置200は、CPU201、RAM202、ROM203、システムバス204、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、通信I/Fコントローラ208、入力デバイス209、ディスプレイ210、外部メモリ211等を備える。
【0017】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0018】
RAM202は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM202にロードして、プログラムを実行することで各種動作を実現するものである。
【0019】
ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムや、各種装置の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
【0020】
入力コントローラ205は、キーボードやマウス等のポインティングデバイス(入力デバイス209)からの入力を制御する。また、検査装置200の場合は読み取り機構310からの入力も制御する。
【0021】
ビデオコントローラ206はディスプレイ210等の表示装置の表示を制御する。ディスプレイ210(表示部)は例えば液晶ディスプレイである。
【0022】
メモリコントローラ207は、ブートプログラム、ブラウザソフトウェア、各種のアプリケーション、フォントデータ、ユーザファイル、各種データ等を記憶するハードディスクやフレキシブルディスク或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ211へのアクセスを制御する。
【0023】
尚、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上での表示を可能としている。また、CPU201は、ディスプレイ210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0024】
本発明のコントローラ100及び検査装置200が後述する各種処理を実行するために用いられる各種プログラム等はそれぞれ外部メモリ211に記憶されており、必要に応じてRAM202にロードされることにより、CPU201によって実行されるものである。さらに、本発明に係るプログラムが用いる定義ファイルや各種情報テーブル等は外部メモリ211に格納されている。
【0025】
以上で本実施形態におけるコントローラ100及び検査装置200のハードウェア構成の説明を終了する。なお、説明したハードウェア構成は一例であってこれに限定されない。
【0026】
次に
図3を用いてプリンタ300のハードウェア構成の説明を行う。
【0027】
プリンタ300は、帯状に設けられた連帳紙の片面に画像を印刷することのできるプリンタである。すなわち1つしか画像形成部を有しないプリンタである。なお、本実施形態では、連帳紙を印刷する例で説明しているが、例えばロール紙やカット紙など他の用紙であっても本発明に含まれるものである。
【0028】
プリンタ300は、ホッパ301、現像器302、転写帯電部303、クリーナブレード・クリーナブラシ304、除電LED305、前帯電部306、光学部307、定着部308、スタッカ309、読み取り機構310 を備える。なお、プリンタ300の電源部分及びソフトウェア制御部分については本実施形態では説明を省略している。
【0029】
以下、それぞれの構成について説明する。ホッパ301は、連帳紙を供給する部分であり、印刷を実行しようとする連帳紙がセットされる部分である。ホッパ301にセットされた連帳紙は筐体内の走行経路上(点線部)を連帳紙の張力を保つテンションロール(不図示)によりその張力を保ったまま、転写帯電部303を経由し、定着部308を経て、スタッカ309に連帳紙が蓄積される。前帯電部306で感光ドラムを一様に帯電させ、光学部307により感光ドラムに露光して潜像が形成され、形成された潜像を現像器302がトナーにより可視像化する。転写帯電部303は、現像器302で可視像化されたトナーを印刷用紙(連帳紙)に転写する。クリーナブレード・クリーナブラシ304は転写帯電部303で連帳紙への転写の際に残ったトナーを回収し、除電LED305は感光ドラムの静電気を除去する。この処理を繰り返し行うことで、トナーを連帳紙に次々と転写していく。なお、トナーの転写方法は一例であり、これ以外の転写方法であっても構わない。定着部308は転写帯電部303で転写されたトナーをキセノンランプ光の照射によって、連帳紙上のトナーを定着させる。なお、プリンタの印刷方式としては、転写方式のみならずインクジェット方式を用いても構わない。
【0030】
本実施形態では
図3に示すように転写帯電部303を通過した連帳紙の、印刷される側の面(第1の面)に印刷されたバーコードを読み取り可能な読み取り機構310が設けられている。当該面と対となるもう一方の面(第2の面)にあらかじめ印刷されたバーコードを読み取り可能な読み取り機構310が連帳紙の転写帯電部303へ送られる経路上(転写帯電部303より上流側)に設けられていて、印刷面の裏面に印刷されたバーコードを読むことが可能である。印刷面の裏面に印刷されたバーコードを読むことにより、ステップS1604の整合性判断の情報を得る。場合によっては印刷面の裏面に印刷されたバーコードを読む読み取り機構310のみを設けた構成としても構わない。
これらの読み取り機構310は検査装置200と通信可能に接続されており、検査装置200の指示に応じて、連帳紙のバーコードを読み取ることができる。読み取り機構310の詳細な動作制御については後述する。なお、1つの読み取り機構310は
図3に示すように連帳紙が転写帯電部303へ送られる経路上(転写帯電部303より上流側)に設けられていて、もう一つの読み取り機構310は転写帯電部303の下流である転写帯電部303と定着部308との間に設けられているとして説明を行うが、転写帯電部303の下流である転写帯電部303と定着部308との間にすべての読み取り機構310を設けてもよい。すべての読み取り機構310を転写帯電部303と定着部308との間に設けた場合にはバーコードを読み取り機構310で読み取った時に、印刷データを印刷する連帳紙の領域が転写帯電部303の位置になるようにする必要がある。なお、本実施形態では、連帳紙上の情報を読み取る方法としてバーコードと読み取り機構310による方法で説明をした。ここで説明するバーコードは1次元バーコードや2次元バーコードを含む。読み取り機構310も連帳紙に印刷された情報を取得することができればバーコード以外を読み取る機構としても構わない。
【0031】
以上で
図3に示すプリンタ300のハードウェア構成の説明を終了する。次に
図4を用いて本実施形態における、コントローラ100、検査装置200、プリンタ300の機能構成について説明を行う。
【0032】
図4は、本実施形態における、コントローラ100、検査装置200、プリンタ300の機能構成について説明する図である。
【0033】
コントローラ100は、受付部401、通信制御部402、指示受付部403、判定部404、印刷制御部405、表示制御部406を備える。
【0034】
受付部401は、複数のページに両面印刷するための印刷データをページ単位で区分けする位置を指定する位置情報をユーザから受け付ける機能部である。通信制御部402は検査装置200やプリンタ300との通信を制御する機能部である。指示受付部403は、受付部401で受け付けた位置情報に基づいて区分けされた範囲ごとに、第1の面または第2の面の印刷データを印刷する印刷指示を受け付ける機能部である。判定部404は、検査装置200が読み取った識別情報に基づいて第2の面の印刷データの印刷が可能か否かを判定する機能部である。印刷制御部405はプリンタ300の印刷を制御する機能部である。表示制御部406は、印刷済みの範囲として管理される範囲と未印刷の範囲とを識別可能に表示制御する機能部である。以上で、コントローラ100の機能構成の説明を終了する。
【0035】
検査装置200は、読取制御部411、通信制御部412を備える。
【0036】
読取制御部411は、読取部(読み取り機構310)の動作を制御する機能部である。通信制御部412は、コントローラ100やプリンタ300との通信を制御する機能部である。以上で、検査装置200の機能構成の説明を終了する。
【0037】
プリンタ300は、印刷処理部421、通信制御部422を備える。
【0038】
印刷処理部421は、コントローラ100の印刷制御部405の制御に応じて印刷を実行処理する機能部である。通信制御部422はコントローラ100や検査装置200との通信を制御する機能部である。
【0039】
以上、
図4に示すコントローラ100、検査装置200、プリンタ300の機能構成の説明を終了する。
【0040】
次に
図5を用いて本実施形態の処理の流れの説明を行う。
図5は本実施形態の全体の処理の流れを説明するフローチャートである。図に沿ってフローチャートを説明する。
【0041】
ステップS501では、コントローラ100のCPU201が、ユーザからの起動指示に基づいて、印刷制御プログラムを起動させる。印刷制御プログラムは、本実施形態の情報処理システムの制御を行うためのプログラムである。
【0042】
ステップS502では、コントローラ100のCPU201が、外部メモリ211に記憶されるメインウインドウ600をディスプレイ210に表示させる。例えば
図6に示すメインウインドウ600がディスプレイ210に表示される。
【0043】
ステップS503では、コントローラ100のCPU201が、ステップS502で表示されたメインウインドウ600のスプールデータ指定領域605がユーザによって選択されたか否かを判定する。スプールデータ指定領域605が選択されたと判定された場合には処理をステップS504に進め、そうでない場合には処理をステップS506に進める。
【0044】
ステップS504では、コントローラ100のCPU201が、スプールデータの指定を受け付けることのできる画面であるスプールデータ指定画面700をディスプレイ210に表示する。例えば
図7に示すスプールデータ指定画面700である。
【0045】
ステップS505では、コントローラ100のCPU201が、ステップS504で表示されたスプールデータ指定画面700でスプールデータの指定を受け付ける。例えばスプールデータ指定画面700上でユーザからマウスなどのポインティングデバイスを介してスプールデータの指定を受け付ける。
図7のスプールデータ指定画面は、「Xx−001−yy−vv−002」を選択していることを示している(選択されると選択されたスプールデータの行が701のように反転する)。以下、「Xx−001−yy−vv−002」が選択された場合を例として説明を進めていく。
【0046】
ステップS506では、コントローラ100のCPU201が、ステップS504で表示されたスプールデータ指定画面700においてスプールデータの指定が済んでいるか否かを判定する。スプールデータの指定が済んでいると判定された場合には処理をステップS507に進め、そうでない場合には処理をステップS509に進める。なお、スプールデータの指定が済んでいる場合にはステップS504で表示されたスプールデータ指定画面をディスプレイ210から消す処理を行う。
【0047】
ステップS507では、コントローラ100のCPU201が、ステップS502で表示されたメインウインドウ600の一括分割シート数602(位置情報に相当する)が指定されたか否かを判定する。一括分割シート数602が指定されたと判定された場合には処理をステップS508に進め、そうでない場合には処理をステップS509に進める。
【0048】
ステップS508では、コントローラ100のCPU201が、ステップS507で一括分割シート数602が選択されることで、入力項目がアクティブとなり、ユーザからの入力(例えばキーボードによる数値の入力)を受け付ける(受付手段に相当する)。
図6のメインウインドウ600ではユーザから2000と入力された場合の例を示している。一括分割シート数602とは、ステップS505で指定を受け付けたスプールデータをページ単位で区分けする位置を指定するための位置情報である。具体的には、一括分割シート数602は、連帳紙の箱ごとの印刷可能枚数を示している。指定された一括分割シート数602ごとに表面と裏面との印刷データを印刷管理可能な仕組みを提供することを可能にする。
【0049】
ステップS509では、コントローラ100のCPU201が、メインウインドウ600の個別分割シート数612が選択されたか否かを判定する。個別分割シート数612(位置情報に相当する)が選択されたと判定された場合には処理をステップS510に進め、そうでない場合には処理をステップS507に戻す。
【0050】
ステップS510では、コントローラ100のCPU201が、ステップS509で個別分割シート数612が選択されることで、入力項目がアクティブとなり、ユーザからの入力(例えばキーボードによる数値の入力)を受け付ける(受付手段に相当する)。入力を受け付けた個別分割シート数612は、
図8に示す印刷管理テーブル800のシート数802に、個別分割シート数612の位置に応じた位置に格納される。具体的には、個別分割シート数612の位置がリストの一番上の位置であれば、印刷管理テーブル800の分割番号801が「1」に対応するシート数802として格納される。リストの上から2番目の位置に個別分割シート数612が入力された場合には、分割番号801が「2」に対応するシート数802として個別分割シート数612が格納される。印刷管理テーブル800は、分割番号801、シート数802、開始ページ803、終了ページ804、表面状態805、裏面状態806、が対応付けられたデータテーブルである。分割番号801は印刷管理テーブル800のレコードを一意に識別することのできる番号である。シート数802は、入力された個別分割シート数を格納する。個別分割シート数が入力されない場合には空欄とする。開始ページ803・終了ページ804は、印刷されるスプールデータのページの指定により区分けされた範囲を示す情報である。表面状態805は開始ページ803・終了ページ804が示す範囲の表面の印刷状況を示すもので「未」は印刷が未だ実行されていない状態を示し、「済」は印刷が実行済である状態を示している。裏面状態806は開始ページ803・終了ページ804が示す範囲の裏面の印刷状況を示すもので、「未」は印刷が未だ実行されていない状態を示し、「済」は印刷が実行済である状態を示している。
【0051】
個別分割シート数612は、上述した一括分割シート数602と異なり、以前使用した余りの連帳紙など、一括分割シート数602以外の範囲で区分けする位置を指定するための位置情報である。
【0052】
ステップS511では、コントローラ100のCPU201が、メインウインドウ600の分割ボタン603が押下されたか否かを判定する。分割ボタン603が押下されたと判定された場合には処理をステップS512に進め、そうでない場合には分割ボタン603の押下を受け付けたと判定されるまで待機する。
【0053】
ステップS512では、コントローラ100のCPU201が、ステップS505で指定を受け付けたスプールデータの分割をする範囲を決定する処理である分割範囲決定処理を行う。分割範囲決定処理の詳細な処理の流れは、
図9に示すフローチャートを用いて説明する。
【0054】
図9は、分割範囲決定処理の詳細な処理の流れを説明するフローチャートである。分割範囲決定処理を行うことにより、印刷管理テーブル800の開始ページ803と終了ページ804とに、印刷範囲を示す数値が入力される。これらに対応する表面状態805と裏面状態806には未だ印刷をされていないことを示す「未」が入力される。
【0055】
ステップS901では、コントローラ100のCPU201が、ステップS505で指定を受け付けたスプールデータを取得する処理を行う。本実施形態ではスプールデータは、コントローラ100の外部メモリ211に記憶されているものとして説明するが、外部サーバなど他の記憶手段に記憶されていても構わない。
【0056】
ステップS902では、コントローラ100のCPU201が、ステップS508で入力を受け付けた一括分割シート数602を取得する。本実施形態では、
図6のように「2000」がステップS508で入力された場合を例にとって説明をするがこの値に限定されない。
【0057】
ステップS903では、コントローラ100のCPU201が、個別分割シート数612が印刷管理テーブル800に設定されているか否かを判定する。個別分割シート数612が設定されていると判定される場合には処理をステップS907に進め、そうでない場合には処理をステップS904に進める。この判定を具体的に説明すると、外部メモリ211に記憶される印刷管理テーブル800のシート数802に数値が入っているレコードがある場合には、個別分割シート数612が設定されていると判定する。シート数802に数値が入っているレコードが存在しない場合には、個別分割シート数612が設定されていないと判定する。個別分割シート数612が設定されているか否かを判定する手法はこれに限定されず、他の方法によって判断しても構わない。
【0058】
ステップS904では、コントローラ100のCPU201が、ステップS902で取得された一括分割シート数602に基づいて開始ページ803と終了ページ804とを特定する処理を行う。ステップS902で取得された一括分割シート数602が「2000」である場合を例として具体的に処理を説明する。ステップS906からの再帰処理ではない場合(最初のステップS904の処理を行う場合)には、開始ページ803を「1」とし、開始ページ803に「2000」の2倍された「4000」を加算し「1」を減算した値である「4000」を、終了ページ804と特定する。ステップS906からの再帰処理の場合には、ステップS905で追記したレコードの終了ページ804に「1」を足した値を開始ページ803とし、この開始ページ803に「4000」を加算し「1」を減算した値を終了ページ804として特定する。なお、開始ページ803と終了ページ804の特定方法は一例であってこれに限定されない。
【0059】
ステップS905では、コントローラ100のCPU201が、ステップS904で特定された開始ページ803と終了ページ804とを印刷管理テーブル800のレコードに追加する。ここで追加されるレコードの表面状態805と裏面状態806には未だ印刷が完了していないことを示す「未」が入力される。
【0060】
ステップS906では、コントローラ100のCPU201が、ステップS901で取得したスプールデータのすべてのページの処理が終了したか否かを判定する。すべてのページの処理が終了したと判定された場合には処理を終了させ、すべてのページの処理が終了していないと判定された場合には処理をステップS904に再帰処理させる。
【0061】
ステップS907乃至ステップS910は、印刷管理テーブル800のシート数802に格納されたすべての個別分割シート数612の処理が終了するまで繰り返し処理を行う。
【0062】
ステップS907では、コントローラ100のCPU201が、印刷管理テーブル800のシート数802から、個別分割シート数612を取得する。
【0063】
ステップS908では、コントローラ100のCPU201が、ステップS907で取得した個別分割シート数612に基づいて、開始ページ803と終了ページ804とを特定する。
図8を例に具体的に説明する。
図8では、シート数802には「500」と「1000」という値が格納されている。最初に行われるステップS908の処理では、分割番号801が「1」に対応する「500」を処理する。分割番号801が「1」の場合、開始ページ803を「1」と特定する。分割番号801が「1」の終了ページ804は開始ページ803に「500」を2倍した「1000」を加算し、「1」を減算した値である「1000」と特定する。ステップS910からの再帰処理の場合のステップS908の処理では分割番号801が「2」に対応する「1000」を処理する。分割番号801が「1」の終了ページ804に「1」を加算することで、開始ページ803を「1001」と特定する。開始ページ803が「1001」に「1000」を2倍した「2000」を加算し、「1」を減算した値を終了ページ804の値として特定する。なお、値の特定方法は一例であってこれに限定されない。
【0064】
ステップS909では、コントローラ100のCPU201が、ステップS908で特定された開始ページ803と終了ページ804とを印刷管理テーブル800のレコードに追加する。ここで追加されるレコードの表面状態805と裏面状態806には未だ印刷が完了していないことを示す「未」を入力する。
【0065】
ステップS910では、コントローラ100のCPU201が、ステップS901で取得されたスプールデータのすべてのページの処理が完了したか否かを判定する。スプールデータのすべてのデータの処理が終了したと判定した場合は処理を終了させ、そうでない場合はステップS907〜ステップS910の処理を、印刷管理テーブル800のシート数802に格納されたすべての個別分割シート数612の処理が終了するまで繰り返し処理を行う。
【0066】
ステップS911では、コントローラ100のCPU201が、ステップS902で取得された一括分割シート数602に基づいて開始ページ803と終了ページ804とを繰り返し特定する処理を行う。ステップS907〜ステップS910の処理に引き続く処理であるので、
図8の場合であれば、分割番号801が「2」に対応する終了ページ804の値を取得し、この値に対して「1」を加算した値を分割番号801が「3」に対応する開始ページ803とする。この開始ページ803に対して、一括分割シート数602を加算し、「1」を減算した値を、分割番号801が「3」に対応する終了ページ804とする。
【0067】
ステップS912では、コントローラ100のCPU201が、ステップS911で特定された開始ページ803と終了ページ804とを印刷管理テーブル800の対応するレコードに追加する。
【0068】
ステップS913では、ステップS901で取得したスプールデータのすべてのページの処理が終了したか否かを判定する。ステップS901で取得したスプールデータのすべてのページの処理が終了したと判定された場合には処理を終了させ、そうでない場合にはステップS911に処理を戻す。
【0069】
以上で
図9に示す分割範囲決定処理のフローチャートの説明を終了する。
図9のフローチャートに示す処理を終了したあとの印刷管理テーブル800の例が
図10に示す(a)印刷管理テーブル800aである。(a)印刷管理テーブル800aに示す通り、開始ページ803と終了ページ804とが入力済みとなっている。
【0070】
次に
図11を用いて印刷が実行される処理の処理フローを説明する。以下、
図11のフローチャートの説明を開始する。
【0071】
ステップS1101では、コントローラ100のCPU201が、
図10の(a)印刷管理テーブル800aの情報に基づいて、印刷範囲一覧をメインウインドウ600に表示させる。印刷範囲一覧が表示された例が(a)メインウインドウ600aである。
図12のメインウインドウ600aに示す通り、印刷管理テーブル800aの分割番号801、シート数802、開始ページ803、終了ページ804、表面状態805、裏面状態806が一覧となったリストとして視認可能に表示される。このように一覧が表示されることで、ユーザの指示に基づいて区分けされた印刷データ(スプールデータ)の印刷範囲の表面と裏面との印刷状況(印刷指示が済んでいるのか印刷指示を未だしていないのか)が一目でわかるため、次にどの印刷範囲の印刷面の印刷指示を行えばよいかをユーザに認識させることができるという格別の効果をもたらす。
【0072】
ステップS1102では、コントローラ100のCPU201が、ステップS1101で表示されたメインウインドウ600aのリストの選択を受け付けることで印刷範囲の選択を受け付けたか否かを判定する。リストの選択(印刷範囲の選択)を受け付けたと判定された場合には処理をステップS1103に進め、そうでない場合は、リストの選択を受け付けるまで待機する。なお、リストの選択を受け付けるとメインウインドウ600aに示すようにチェック表示1201が対象のリストに表示され、選択されたことがユーザにわかるようになる。
【0073】
ステップS1103では、コントローラ100のCPU201が、ユーザからの印刷面の指定を受け付ける。印刷面の指定を受け付け方法は、例えば印刷面選択ボタン606が押下されるとポップアップウインドウが立ちあがり、このポップアップウインドウでユーザからの選択を受け付けるようにしてもよい。
【0074】
ステップS1104では、コントローラ100のCPU201が、検査有無の指定を受け付ける。検査有無の指定の受付方法は、例えば検査有無選択ボタン607が押下されるとポップアップウインドウが立ちあがり、このポップアップウインドウでユーザからの選択を受け付けるようにしてもよい。
【0075】
ステップS1105では、コントローラ100のCPU201が、ヘッダ/フッタへのバーコード(識別情報)の指定を受け付ける。ヘッダ/フッタへのバーコード(識別情報)の指定を受け付け方法は、例えばヘッダ/フッタボタン608が押下されるとポップアップウインドウが立ちあがり、このポップアップウインドウでユーザからの選択(ヘッダのみ・フッタのみ・両方)を受け付けるようにしてもよい。
【0076】
ステップS1106では、コントローラ100のCPU201が、メインウインドウ600aの印刷実行ボタン611の押下を受け付けたか否かを判定する。印刷実行ボタン611の押下を受け付けたと判定された場合(指示受付手段に相当する)は処理をステップS1107に進め、そうでない場合には処理をステップS1103に戻す。
【0077】
ステップS1107では、コントローラ100のCPU201が、ステップS1102で選択された印刷範囲のステップS1103で指定された印刷面が印刷済みであるか否かを判定する処理である印刷済み判定処理を行う。印刷済み判定処理の詳細な処理の流れは、
図14に示すフローチャートで詳細に説明する。
【0078】
図14は印刷済み判定処理の詳細な処理について説明するためのフローチャートである。
【0079】
ステップS1401では、コントローラ100のCPU201が、外部メモリ211に記憶されている印刷管理テーブル800を取得する。
図10の印刷管理テーブル800aの例で説明する。
【0080】
ステップS1402では、コントローラ100のCPU201が、ステップS1106で印刷指示を受け付けた印刷面の状態情報(表面状態805または裏面状態806)を特定する。具体的に説明する。ステップS1102で選択を受け付けたリストに対応する分割番号801に対応する表面状態805または裏面状態806のうち、ステップS1103で指定された印刷面に対応する表面状態805または裏面状態806を特定する。例えばステップS1102で分割番号801が「1」が選択され、ステップS1103で「表」が選択されていた場合には、印刷管理テーブル800の分割番号801に対応する表面状態805が特定される。
【0081】
ステップS1403では、コントローラ100のCPU201が、ステップS1402で特定された状態情報(表面状態805または裏面状態806)に基づいて、ステップS1106で印刷指示が行われた印刷範囲は印刷済みであるか否かを判定する(判定手段に相当する)。印刷済みであると判定された場合には処理をステップS1404に進め、そうでない場合には印刷済み判定処理を終了させ、ステップS1108に進める。具体的には、表面状態805または裏面状態806に「済」の情報が入っていた場合に印刷済みであると判定し、「未」の情報が入っていた場合には印刷済みでないと判定することができる。
【0082】
ステップS1404では、コントローラ100のCPU201が、外部メモリ211に記憶される確認画面1700を取得する。
【0083】
ステップS1405では、コントローラ100のCPU201が、ステップS1404で取得された確認画面1700をディスプレイ210に表示させる。例えば
図17の確認画面1700である。
【0084】
ステップS1406では、コントローラ100のCPU201が、ステップS1405で表示された確認画面1700のうち、はいボタン1701といいえボタン1702のいずれのボタンの押下を受け付けたかを判定する。はいボタン1701の押下を受け付けたと判定された場合には印刷済み判定処理を終了させ、ステップS1108に進める。そうでない場合には処理をステップS1101に戻す。このように、確認画面1700を表示させ、これから印刷しようとする範囲の印刷面が印刷済みであることをユーザに通知することで、間違って既に印刷された印刷範囲の同じ印刷面を印刷してしまうことを防ぐという効果がある。
【0085】
以上で、
図14に示す印刷済み判定処理の詳細な処理の説明を終了する。
図11の説明に戻る。
【0086】
ステップS1108では、コントローラ100のCPU201が、ステップS1105でヘッダ・フッタへのバーコード付与の指定があったか否かを判定する。ヘッダまたはフッタの少なくともいずれか一方の指定があった場合には処理をステップS1109に進め、そうでない場合には処理をステップS1111に進める。
【0087】
ステップS1109では、コントローラ100のCPU201が、ステップS1105で指定を受け付けたヘッダ・フッタに付与するバーコードの印刷データを生成する処理を行う。ヘッダ・フッタに付与されるバーコードには、例えば
図13に示す情報が含まれている。なお、
図13に示すバーコードの情報は一例であって、これに限定されない。バーコードの項目としては、日付1301、分割番号1302、PIF名1303、ヘッダフッタフラグ1304、表裏フラグ1305がある。日付1301は、スプールデータが印刷される日付である。分割番号1302は、ステップS1102で選択を受け付けたリストに対応する分割番号801の情報である。PIF名1303は、ステップS505で指定を受け付けたスプールデータのファイル名の情報である。ヘッダフッタフラグ1304は、バーコードがヘッダなのかフッタなのかを示す情報である。表裏フラグ1305は、ステップS1103で指定を受け付けた印刷面を示す情報である。本実施形態では、説明のためヘッダ・フッタの両者が付与される指示があった例として説明を行う。場合によってはヘッダだけであってもよい。
【0088】
ステップS1110では、コントローラ100のCPU201が、ステップS1109で生成されたバーコードの印刷データを外部メモリ211に記憶する。
【0089】
ステップS1111では、コントローラ100のCPU201が、ステップS1106で印刷指示がなされたと判定された印刷を実行する処理である印刷実行処理を行う(印刷制御手段に相当する)。印刷実行処理の詳細な処理の流れは、
図15を用いて詳細に説明する。
【0090】
図15のフローチャートを用いて印刷実行処理の詳細な処理の流れを説明する、
【0091】
ステップS1510では、プリンタ300の印刷処理部421が、ホッパ301に連帳紙がセットされたか否かを判定する。センサなどを用いて判定してもよいし、ユーザから連帳紙のセットが完了した旨の指示を受け付けたか否かを判定してもよい。ホッパ301に連帳紙がセットされたと判定された場合には処理をステップS1511に進め、そうでない場合には処理を連帳紙がセットされるまで待機する。
【0092】
ステップS1511では、プリンタ300の印刷処理部421が、不図示の連帳紙を搬送する機構(例えばローラー)によりホッパ301にセットされた連帳紙をフィードする。フィードする距離は、連帳紙のバーコードが読み取り機構310でスキャンが可能な位置まで連帳紙をフィードする。フィードが完了したあと、ステップS1512に処理を進める。
【0093】
ステップS1501では、コントローラ100のCPU201が、ステップS1106で印刷指示がなされた印刷範囲のうちのステップS1103で指定された印刷面の印刷データを生成する処理を行う。例えば、ステップS1106で印刷指示がなされた印刷範囲が、スプールデータの1ページ〜500ページで、印刷面が表面であれば、当該ページの奇数ページのみを抽出して、印刷データを生成する。裏面であれば、当該ページの偶数ページのみを抽出して印刷データを生成する。印刷データを生成するタイミングはこれに限定されない。
【0094】
ステップS1516では、コントローラ100のCPU201が、ステップS1103で指定された印刷面が表面であるか否かを判定する。表面であると判定された場合には処理をステップS1502に進め、そうでない場合には処理をステップS1508に進める。
【0095】
ステップS1502では、コントローラ100のCPU201が、ステップS1104で指定を受け付けた検査の有無を用いて、検査を行うか否かを判定する。検査する必要があると判定された場合には処理をステップS1503に進め、そうでない場合には処理をステップS1508に進める。なお、検査を行うか否かの判定は、必須の処理ではなく、裏面の印刷の場合には必ず検査装置200に検査指示を行うようにしても構わない。一般的に表面の印刷データが裏面の印刷データより先に印刷されることが多い為、表面の印刷データの印刷の際には検査を行わず、裏面の印刷データの印刷の際には検査を行うようにした。つまり、一方の面に既に印刷が行われている連帳紙の他方の面に印刷指示があった場合にのみ検査を行うようにすればよい。このようにすることにより、ユーザがいちいち検査をするか否かの指定を行わなくても(又は検査をする必要がないのに検査の指示をしていたとしても)適切な検査を自動的に行うことの可能な仕組みを提供し、ユーザの使い勝手が向上するという効果がある。
【0096】
ステップS1503では、コントローラ100のCPU201が、検査装置200に対して検査指示を送信する。検査指示には、検査対象となる印刷範囲(ステップS1102で選択されたリストの分割番号801)の情報や、ステップS1103で指定を受け付けた印刷面の情報(表面か裏面か)などの検査を行うために必要な情報を送信する。
【0097】
ステップS1504では、検査装置200のCPU201が、コントローラ100から検査指示を受信したか否かを判定する。検査指示を受信したと判定された場合には処理をステップS1505に進め、そうでない場合には検査指示を受信するまで待機する。
【0098】
ステップS1505では、検査装置200のCPU201が、プリンタ300の筐体内にセットされた読み取り機構310を制御することでバーコードを読み取る処理である検査処理を行う。検査処理の詳細な処理の流れは、
図16を用いて説明する。
【0099】
図16は検査処理の詳細な処理の流れを説明するフローチャートである。
【0100】
ステップS1601では、検査装置200のCPU201が、ステップS1503で送信された検査指示に含まれる情報に基づいて、検査対象の印刷データのスプールデータにおける分割番号801と、検査対象の印刷データが表面の印刷データか裏面の印刷データかを特定する。
【0101】
ステップS1602では、検査装置200のCPU201が、ステップS1511でフィードされた連帳紙に印刷されているバーコードを読み取り機構310で読み取る。
【0102】
ステップS1603では、検査装置200のCPU201が、ステップS1602で読み取った読み取り機構310の情報に基づいて、バーコードに含まれている事項(
図13に示すバーコード項目)を特定する。
【0103】
ステップS1604では、検査装置200のCPU201が、ステップS1603で特定された事項と、ステップS1601で特定された情報(検査対象の印刷データのスプールデータにおける分割番号801と、検査対象の印刷データが表面か裏面かの情報)とを比較することにより、印刷データの内容と印刷データが印刷される印刷用紙との間の整合性が取れているか否かを判定する。整合性が取れていると判定された場合には処理をステップS1605に進め、そうでない場合には処理をステップS1606に進める。
【0104】
印刷データの内容と印刷データが印刷される印刷用紙との間の整合性が取れているか否かの具体的な判断方法について説明する。まず、ステップS1601で特定された印刷面の情報が表面であれば、バーコード項目の表裏フラグ1305が表面の対となる裏面を示している場合に、整合性が取れていると判断することができる。更に、ステップS1601で特定された印刷範囲の情報(分割番号801)が、バーコード項目の分割番号1302と一致するか否かを判定し、一致する場合には整合性が取れていると判断することができる。この二つの整合性を満たすことで整合性を満たすと判断する。本実施形態では、印刷面の情報と印刷範囲の情報の両方の整合性が満たされるか否かで整合性が取れているか否かを判断していたが、両者は必須の構成ではなくいずれか片方のみが一致していることを以て整合性が取れていると判断しても構わない。このように整合性が取れていると判断された場合にのみ印刷がされるように制御することで、ユーザが印刷しようとする印刷の範囲と対応しない連帳紙への印刷をしてしまうことを防止するという効果がある。
【0105】
ステップS1605では、検査装置200のCPU201が、印刷対象の連帳紙が正常である旨の結果データを生成する。
【0106】
ステップS1606では、検査装置200のCPU201が、印刷対象の連帳紙が、印刷しようとする印刷データとの整合性が取れていない(異常)である旨の結果データを生成する。
【0107】
以上で
図16に示すフローチャートの説明を終了する。
図15の説明に戻る。
【0108】
ステップS1506では、検査装置200のCPU201が、ステップS1605またはステップS1606で生成された結果データをコントローラ100に送信する。
【0109】
ステップS1507では、コントローラ100のCPU201が、ステップS1507で送信された結果データの結果が正常であるか否かを判定する。正常であると判定された場合には処理をステップS1508に進め、そうでない場合には処理をステップS1517に進める。
【0110】
ステップS1517では、コントローラ100のCPU201が、ディスプレイ210にエラーである旨を表示する。このように、印刷しようとする連帳紙に既に印刷されている内容(印刷範囲・表裏の状態)と、ステップS1501で生成した印刷データの内容(印刷範囲・表裏の状態)との整合性が取れていない場合には印刷をさせずエラーを表示することで、印刷ミスを低減させることの可能な仕組みを提供することができる。エラーの表示をしたのち処理を終了させる。
【0111】
ステップS1508では、コントローラ100のCPU201が、ステップS1110で記憶されたヘッダデータ、フッタデータを取得する。
【0112】
ステップS1509では、コントローラ100のCPU201が、ステップS1508で取得されたヘッダデータと、ステップS1501で生成された印刷データとフッタデータとを印刷する指示をプリンタ300に対して送信する。
【0113】
ステップS1512では、プリンタ300の印刷処理部421が、コントローラ100から印刷指示を受け付けたか否かを判定する。印刷指示を受け付けたと判定された場合には処理をステップS1513に進め、そうでない場合には印刷指示を受け付けるまで待機する。
【0114】
ステップS1513では、プリンタ300の印刷処理部421が、ステップS1509で送信されたヘッダデータを印刷するよう制御する。
【0115】
ステップS1514では、プリンタ300の印刷処理部421が、ステップS1509で送信された印刷データの印刷を行うよう制御する。
【0116】
ステップS1515では、プリンタ300の印刷処理部421が、ステップS1515で送信されたフッタデータを印刷する処理を行う。
【0117】
以上で
図15のフローチャートによる印刷実行処理の詳細な処理の流れの説明を終了し、
図11の説明に戻る。
【0118】
ステップS1112では、コントローラ100のCPU201が、ステップS1102で選択された印刷範囲(分割番号801)の、ステップS1103で指定を受け付けた面に対応する状態情報(表面状態805または裏面状態806)が印刷済みを示す「済」となるよう更新する(管理手段に相当する)。
図10に示す印刷管理テーブル800bは、分割番号801が「1」に対応する表面の印刷が実行されたあとの印刷管理テーブル800の例である。このように、スプールデータの印刷範囲において表面と裏面との印刷が済んでいるか否かを管理することができ、どの印刷範囲の表面または裏面を印刷したかを管理することができ、この情報を用いれば簡単にユーザがどの印刷範囲の表面または裏面が印刷されているのかを把握することができる。
【0119】
ステップS1113では、コントローラ100のCPU201が、メインウインドウ600を更新する(表示制御手段に相当する)。メインウインドウ600aが更新された後の例が
図12に示す(b)メインウインドウ600bである。このように、(a)メインウインドウ600aでは「未」だった部分が、1202に示すように「済」に更新されることで、どの印刷範囲のどの印刷面を印刷済みであるのかがユーザが一目でわかるようになるという効果がある。
【0120】
ステップS1114では、コントローラ100のCPU201が、ユーザから本情報処理システムの終了指示(印刷の終了指示)を受け付けたか否かを判定する。本情報処理システムの終了指示を受け付けたと判定した場合には処理を終了させ、そうでない場合には処理をステップS1101に戻す。
【0121】
本実施形態では、バーコードに含まれる情報が、印刷をしようとする印刷データの情報と対になるかどうかで整合性を判断にしているが、バーコードにあらかじめ対になる印刷データの情報を含ませておき、このバーコードの情報と印刷をしようとする印刷データの情報とが一致する場合に整合性があると判断するように設けてもよい。
【0122】
また、本実施形態では、ヘッダのバーコードと印刷される印刷データの情報との整合性を確認することで、印刷される範囲と連帳紙との整合性を確認するようにしたが、フッタのバーコードと印刷される印刷データの情報との整合性を確認するようにしても構わない。また、バーコードがヘッダなのかフッタなのかを自動的に判断して整合性を確認するような構成としてもよい。読み取り機構310で読み取ったバーコードがフッタのバーコードである場合には印刷データの印刷順を逆順とするようにする。
【0123】
以上、本発明によれば、第1の面と第2の面の印刷状況を適切に管理することができるため、1つしか画像形成部がないプリンタにおいて連帳紙に両面印刷する場合であっても、極力印刷の失敗が生じないようにすることができる。
【0124】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置の情報処理装置が前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【0125】
したがって、本発明の機能処理を情報処理装置で実現するために、前記情報処理装置にインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0126】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0127】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
【0128】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0129】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理を情報処理装置で実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0130】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行して情報処理装置にインストールさせて実現することも可能である。
【0131】
また、情報処理装置が、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、情報処理装置上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0132】
さらに、記録媒体から読み出されたプログラムが、情報処理装置に挿入された機能拡張ボードや情報処理装置に接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0133】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。