説明

印刷システムおよびプログラム

【課題】複数部の文書を印刷する場合に、他の機能や互換性に影響を与えず、かつ、他のクライアントからの印刷物が紛れ込むことなく、部単位に両面印刷やステープル処理などの印刷後処理を行うとともに、その印刷性能を改善する。
【解決手段】印刷システムは、N部の文書を印刷するときに、N個の印刷ジョブを送信する第1蓄積制御部7と、N個の印刷ジョブを印刷するまで他の送信元からの印刷ジョブを保留または禁止する受信制御部11と、印刷ジョブに含まれる印刷データを解析する解析部13と、印刷データからビットマップを描画する描画部14と、1部目の印刷ジョブでは、描画したビットマップを頁単位で可能な限り蓄積し、2部目以降の印刷ジョブでは、蓄積できた頁のビットマップを印刷部15で印刷させるとともに、蓄積できなかった頁については、印刷ジョブから解析、描画したビットマップを印刷させる第2蓄積制御部16と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷システムおよびプログラムに関する。
【背景技術】
【0002】
印刷装置における複数部数の丁合印刷では、全ページ分の印刷データの描画データを印刷装置に内蔵したハードディスクまたはRAM(Random Access Memory)に格納し、必要な部数分の印刷処理が繰り返される。この方式の場合、ハードディスクや大容量のRAMが必要となるため、コストアップしてしまう。
【0003】
低コストの印刷装置で複数部の文書の丁合印刷を実施する場合、情報処理装置が1つの印刷ジョブの中で、出力すべき部数分、印刷データを繰り返し印刷装置に送信する方法がある。この方法により両面印刷を行う場合、印刷する文書のページ数が奇数であると、1部目の最終ページの裏面に次の部の先頭ページが印刷され、出力物を部単位に分けることができない。また、ステープルを打つ場合には、全ての部数を1つに綴じ込んでしまうなど、他の印刷後処理(ステープル・Folder・パンチ・Nin1印刷など)が適切に処理されない。
【0004】
この解決手段として、N部の文書を印刷する際に、1部の印刷を行う印刷ジョブをN個生成して印刷装置に送信する方法がある。ところが、この方法では、印刷装置がネットワーク上で共有されていたり、複数のインターフェースを介して複数のクライアントと接続されていたりした場合、各印刷ジョブの間に他のクライアントから送信されてきた印刷ジョブが挿入されてしまうことがある。そのため、複数部の出力物の中から、他のクライアントの出力物が有るか否かを調べなければならない。
【0005】
この解決手段として、特許文献1および2が開示されている。特許文献1に記載の発明では、両面印刷を行う場合、単一ジョブとして複数部数印刷を行い、各部の最終ページが印刷媒体の表面にあたる場合には、その裏面に空白ページを挿入している。
【0006】
特許文献2に記載の発明では、各種の印刷後処理を行う場合、単一ジョブとして複数部数印刷を行い、各種の区切りデータを印刷データに挿入して、そのデータにしたがって印刷後処理を行っている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平11−70717号公報
【特許文献2】特開2001−353921号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
このような背景を鑑み、本発明は、複数部の文書を印刷する場合に、他の機能や互換性に影響を与えず、かつ、他のクライアントからの印刷物が紛れ込むことなく、部単位に両面印刷やステープル処理などの印刷後処理を行うとともに、その印刷性能を改善する技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
請求項1に記載の発明は、N部(Nは2以上の整数)の文書を印刷するときに、少なくとも1個分の印刷指示を蓄積し、部数情報または後続の印刷指示の有無情報を付加したN個の印刷指示を生成して送信する第1の蓄積制御手段と、前記印刷指示の送信元の識別情報を記憶する記憶手段と、前記識別情報に基づいて、前記N個の印刷指示を印刷するまで他の送信元から受信する印刷指示を保留または禁止する受信制御手段と、前記部数情報または後続の印刷指示の有無情報に基づき、前記N個の印刷指示を連続して印刷する印刷手段と、前記印刷指示に含まれる印刷情報を解析する解析手段と、前記解析手段で解析した印刷情報から画像を描画する描画手段と、前記N個の印刷指示のうち1部目に相当する印刷指示では、前記描画手段で描画した画像を前記印刷手段で印刷させるとともに頁単位で可能な限り蓄積し、2部目以降に相当する印刷指示では、蓄積できた頁の画像を前記印刷手段で印刷させるとともに、蓄積できなかった頁に関しては、前記印刷指示から解析、描画した画像を前記印刷手段で印刷させる第2の蓄積制御手段と、を備えることを特徴とする印刷システムである。
【0010】
請求項2に記載の発明は、請求項1に記載の発明において、前記解析手段は、蓄積できた頁の印刷情報を読み捨てることを特徴とする。
【0011】
請求項3に記載の発明は、請求項1に記載の発明において、前記受信制御部は、蓄積済みの頁情報を送信元に通知し、前記第1の蓄積制御部が、蓄積済みの頁の印刷情報を省いた印刷指示を送信することを特徴とする。
【0012】
請求項4に記載の発明は、請求項3に記載の発明において、前記第1の蓄積制御部は、蓄積済みの頁が省かれていることを表す情報を印刷指示に付加する。
【0013】
請求項5に記載の発明は、請求項1に記載の発明において、前記記憶手段は、保留する印刷指示を記憶することを特徴とする。
【0014】
請求項6に記載の発明は、請求項1に記載の発明において、前記記憶手段は、保留する印刷指示の送信元の識別情報を記憶することを特徴とする。
【0015】
請求項7に記載の発明は、請求項1に記載の発明において、前記受信制御手段が所定の時間以内にN個の印刷指示を受信できないとき、前記印刷手段は、保留した印刷指示の印刷を開始することを特徴とする。
【0016】
請求項8に記載の発明は、請求項1に記載の発明において、前記部数情報は、少なくとも最初に送信する印刷指示に付加されていることを特徴とする。
【0017】
請求項9に記載の発明は、請求項1に記載の発明において、前記部数情報は、既存のページ記述言語または既存のジョブ制御言語で付加されていることを特徴とする。
【0018】
請求項10に記載の発明は、請求項1に記載の発明において、前記部数情報は、残りの印刷部数として付加されていることを特徴とする。
【0019】
請求項11に記載の発明は、N部(Nは2以上の整数)の文書を印刷するときに、少なくとも1個分の印刷指示を蓄積し、部数情報または後続の印刷指示の有無情報を付加したN個の印刷指示を生成して送信する蓄積制御手順と、前記印刷指示の送信元の識別情報を記憶する記憶手順と、前記識別情報に基づいて、前記N個の印刷指示を印刷するまで他の送信元から受信する印刷指示を保留または禁止する受信制御手順と、前記部数情報または後続の印刷指示の有無情報に基づき、前記N個の印刷指示を連続して印刷する印刷手順と、前記印刷指示に含まれる印刷情報を解析する解析手順と、前記解析手順で解析した印刷情報から画像を描画する描画手順と、前記N個の印刷指示のうち1部目に相当する印刷指示では、前記描画手順で描画した画像を前記印刷手順で印刷させるとともに頁単位で可能な限り蓄積し、2部目以降に相当する印刷指示では、蓄積できた頁の画像を前記印刷手順で印刷させるとともに、蓄積できなかった頁に関しては、前記印刷指示から解析、描画した画像を前記印刷手順で印刷させる第2の蓄積制御手順と、を実行させるためのプログラムである。
【発明の効果】
【0020】
請求項1に記載の発明によれば、複数部の文書を印刷する場合に、他の機能や互換性に影響を与えず、かつ、他のクライアントからの印刷物が紛れ込むことなく、部単位に両面印刷やステープル処理などの印刷後処理を行うとともに、その印刷性能を改善することができる。
【0021】
請求項2に記載の発明によれば、部数分の印刷情報を全て解析、描画する場合と比べて、印刷性能が向上する。
【0022】
請求項3に記載の発明によれば、部数分の印刷情報を全て解析、描画する場合と比べて、印刷性能が向上する。
【0023】
請求項4に記載の発明によれば、蓄積済みの頁が省かれているか否かを容易に認識することができる。
【0024】
請求項5に記載の発明によれば、N個の印刷指示の印刷が終了した後に、保留した印刷指示の印刷をすぐに開始することができるので、複数のクライアントからの印刷指示の処理性能が向上する。
【0025】
請求項6に記載の発明によれば、保留する印刷指示が、複数部の文書を印刷するN個の印刷指示で構成されている場合であっても、N個の印刷指示を印刷するまでに他のクライアントからの印刷指示をさらに保留または禁止できるため、複数部の印刷物の間に他のクライアントからの印刷物が紛れ込むことがない。
【0026】
請求項7に記載の発明によれば、N個の印刷指示の送信元による障害で通信が途絶えても印刷を継続することができる。
【0027】
請求項8に記載の発明によれば、部数情報を付加する処理を最小限に抑えることができる。
【0028】
請求項9に記載の発明によれば、部数情報は、既存のページ記述言語または既存のジョブ制御言語の一般的な情報であるため、印刷指示の互換性を維持することができる。
【0029】
請求項10に記載の発明によれば、N個の印刷指示のうち受信した印刷指示の数をカウントする必要がない。
【0030】
請求項11に記載の発明によれば、複数部の文書を印刷する場合に、他の機能や互換性に影響を与えず、かつ、他のクライアントからの印刷物が紛れ込むことなく、部単位に両面印刷やステープル処理などの印刷後処理を行うとともに、その印刷性能を改善することができる。
【図面の簡単な説明】
【0031】
【図1】印刷システムの構成を示すブロック図である。
【図2】情報処理装置の動作を示すフローチャートである。
【図3】印刷装置の動作を示すフローチャートである。
【発明を実施するための最良の形態】
【0032】
以下、印刷システムおよびプログラムの一例について、図面を参照して説明する。
【0033】
1.第1の実施形態
(印刷システムの構成)
以下、印刷システムの構成について説明する。図1は、印刷システムの構成を示すブロック図である。印刷システムは、情報処理装置1、印刷装置2を備えている。情報処理装置1と印刷装置2は、LAN(Local Area Network)3に有線または無線で接続されている。また、LAN3には、情報処理装置1と同じ構成の情報処理装置が複数台接続されている。
【0034】
情報処理装置1は、例えば、パーソナルコンピュータや携帯型情報端末であり、図示しないが、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および各種入出力制御部(I/O)からなるハードウェアと、これらの制御を司る基本ソフトウェア(OS:Operating System)を備えている。
【0035】
また、図1に示すように、情報処理装置1は、アプリケーション4、GDI(Graphic Device Interface)5、プリンタドライバー6、第1蓄積制御部7、第1蓄積部8、およびポート9を備えている。アプリケーション4は、OS上で動作する応用ソフトウェアであり、GDI(Graphic Device Interface)5、プリンタドライバー6、および第1蓄積制御部7は、OS上で動作する機能モジュールである。第1蓄積部8およびポート9は、これらに関連するハードウェアである。
【0036】
アプリケーション4は、電子文書を作成する手段の一例であり、GDI5は、電子文書の描画命令である。プリンタドライバー6は、電子文書の印刷ジョブ(印刷指示)を生成する手段の一例である。プリンタドライバー6は、GDI5の描画命令を印刷装置2が処理可能な印刷データに変換して、印刷ジョブを生成する。印刷データの生成には、例えば、PCL(Printer Control Language)やPostScript等のページ記述言語(PDL:Page Description Language)を用いる。
【0037】
第1蓄積部8は、プリンタドライバー6が生成した印刷ジョブを一時的に蓄積する手段であり、例えばHDDである。第1蓄積制御部7は、プリンタドライバー6が生成した印刷ジョブを第1蓄積部8に一時的に蓄えて送信制御を行う手段であり、例えばプリントスプーラである。ポート9は、第1蓄積制御部7で送信される印刷ジョブを印刷装置2へ送信する手段の一例であり、例えばEthernet(登録商標)ポートである。
【0038】
アプリケーション4でN部(Nは2以上の整数)の文書の印刷が開始された場合、プリンタドライバー6は、1部の文書の印刷を行う印刷ジョブを1つ生成する。プリンタドライバー6が生成した印刷ジョブは、第1蓄積制御部7によって第1蓄積部8に一時的に蓄えられる。第1蓄積制御部7は、第1蓄積部8から印刷ジョブを読み出し、N個の印刷ジョブを印刷装置2に順次送信する。第1蓄積制御部7は、印刷ジョブを第1蓄積部8に蓄えるとき、または、第1蓄積部8から読み出すときに、印刷ジョブに後続の印刷ジョブの有無情報を付加する。
【0039】
後続の印刷ジョブの有無情報は、N個の印刷ジョブの全てに付加されており、1〜N−1部目の印刷ジョブに後続の印刷ジョブが有るという情報が付加され、N部目の印刷ジョブに後続の印刷ジョブが無いという情報が付加される。なお、プリンタドライバー6が1部の文書の印刷を行う印刷ジョブをN個生成してもよいし、アプリケーション4がプリンタドライバー6を介さずに直接印刷ジョブを生成してもよい。
【0040】
または、アプリケーション4でN部の文書の印刷が開始された場合、プリンタドライバー6は、1部の文書の印刷を行う印刷ジョブを1つ生成し、部数情報を付加する。部数情報は、既存のページ記述言語(PDL)または既存のジョブ制御言語(PJL)で、N部という情報で付加される。プリンタドライバー6が生成した印刷ジョブは、第1蓄積制御部7によって第1蓄積部8に一時的に蓄積される。第1蓄積制御部7は、第1蓄積部8から印刷ジョブを読み出し、部数情報を付加したN個の印刷ジョブを生成して、印刷装置2に順次送信する。
【0041】
なお、部数情報は、少なくとも最初に送信する印刷ジョブに付加されていればよい。また、1部目の印刷ジョブにN−1部、2部目の印刷ジョブにN−2部、……、N部目の印刷ジョブに0部というように、部数情報を残りの印刷部数として付加してもよい。また、プリンタドライバー6がN個の印刷ジョブを生成してもよいし、第1蓄積制御部7が部数情報を印刷ジョブに付加して送信してもよい。
【0042】
印刷装置2は、例えば、プリンター、または複写機能やファクシミリ機能などを有する画像形成装置であり、送受信部10、受信制御部11、記憶部12、解析部13、描画部14、第2蓄積制御部16、第2蓄積部17、および印刷部15を備えている。送受信部10は、複数台の情報処理装置から印刷ジョブを受信する手段であり、例えばEthernet(登録商標)ポートである。
【0043】
受信制御部11は、送受信部10で受信した印刷ジョブの受信制御を行う手段であり、例えばプリントサーバである。記憶部12は、受信制御部11で受信した印刷ジョブや、印刷ジョブの送信元の識別情報を記憶する手段であり、例えば、RAMである。送信元の識別情報としては、例えば、IP(Internet Protocol)アドレス、MAC(Media Access Control)アドレス、ユーザー名、コンピュータ名、およびこれらの組み合わせを用いる。
【0044】
解析部13は、印刷ジョブに含まれる印刷データを解析する手段である。例えば、解析部13は、部数情報または後続の印刷ジョブの有無情報が印刷ジョブに付加されているか、印刷データがどのページ記述言語で記述されているか、後述する蓄積済みのページが省略されているか、などを解析する。描画部14は、解析部13で解析したページ記述言語に従って、印刷データをビットマップ(画像の一例)に描画する手段であり、印刷部15は、描画されたビットマップを記録媒体に印刷する手段である。
【0045】
第2蓄積部17は、描画部14で描画されたビットマップをページ単位に蓄積する手段であり、例えばRAMである。ビットマップは、第2蓄積部17の予め決めたサイズの蓄積領域に蓄積される。なお、上述した記憶部12と第2蓄積部17は、1つのRAMで共有してもよい。第2蓄積制御部16は、描画部14で描画されたビットマップをページ単位で第2蓄積部17に蓄積し、蓄積できたページに関しては、蓄積したビットマップを印刷部15に印刷させ、蓄積できなかったページに関しては、受信制御部11で受信した印刷ジョブからビットマップを生成し、印刷部15に印刷させる。
【0046】
受信制御部11が送受信部10を介して印刷ジョブを受信すると、受信制御部11は、印刷ジョブの送信元の識別情報を、使用Host(印刷装置2を使用中の情報処理装置)の識別情報として記憶部12に記憶する。受信制御部11は、使用Hostの識別情報が記憶部12に有る場合には、N個の印刷ジョブを印刷するまで他の送信元から受信する印刷ジョブを保留または禁止する。
【0047】
印刷ジョブを保留する場合には、受信制御部11は、保留する印刷ジョブの送信元の識別情報を、保留Host(保留中の情報処理装置)の識別情報として記憶部12に記憶しておく。この際、保留する印刷ジョブを可能な限り記憶部12に記憶する。一方、印刷ジョブを禁止する場合には、送信元の識別情報も印刷ジョブも記憶しない。
【0048】
なお、受信制御部11が所定の時間以内にN個の印刷ジョブを受信できないとき、タイムアウト処理を行ってもよい。なお、タイムアウト時間は、印刷部数に応じて変更可能とする。タイムアウト処理を行った場合、受信制御部11は、保留Hostの識別情報が記憶部12に有るか否かに基づいて、保留した印刷ジョブが有るか否かを判断する。保留した印刷ジョブが有る場合には、保留Hostの識別情報を使用Hostの識別情報として記憶し、保留した印刷ジョブの印刷を開始する。
【0049】
受信制御部11が受信した印刷ジョブは、解析部13で解析されて、描画部14でビットマップに描画され、印刷部15で印刷される。そして、部数情報が2部以上である、または、後続の印刷ジョブが有ると解析されたときには、受信制御部11は、記憶部12に記憶した使用Hostの識別情報をそのままにして、次の印刷ジョブを使用Hostから受信する。一方、部数情報が1部である、もしくは部数情報が付加されてない、または、後続の印刷ジョブが無い、もしくは後続の印刷ジョブの有無情報が付加されていないと解析されたときには、その印刷ジョブの印刷が終了する。
【0050】
N個の印刷ジョブの印刷が終了したとき、受信制御部11は、保留Hostの識別情報が記憶部12に有るか否かに基づいて、保留した印刷ジョブが有るか否かを判断する。保留した印刷ジョブが有る場合には、保留Hostの識別情報を使用Hostの識別情報として記憶し、保留した印刷ジョブの印刷を開始する。
【0051】
保留した印刷ジョブは、解析部13で解析されて、描画部14でビットマップに描画され、印刷部15で印刷される。そして、部数情報が2部以上である、または、後続の印刷ジョブが有ると解析されたときには、受信制御部11は、記憶部12に記憶した使用Hostの識別情報をそのままにして、次の印刷ジョブを使用Hostから受信する。一方、部数情報が1部である、もしくは部数情報が付加されてない、または、後続の印刷ジョブが無い、もしくは後続の印刷ジョブの有無情報が付加されていないと解析されたときには、保留した印刷ジョブの印刷が終了する。
【0052】
保留した印刷ジョブの印刷が終了したとき、受信制御部11は、保留Hostの識別情報が記憶部12に有るか否かに基づいて、さらに保留した印刷ジョブが有るか否かを判断する。保留した印刷ジョブが無い場合には、使用Hostの識別情報を削除して終了する。以後、上記の動作が繰り返される。
【0053】
なお、N個の印刷ジョブのうち1部目に相当する印刷ジョブでは、第2蓄積制御部16が、描画部14で描画したビットマップを印刷部15に印刷させるとともに、ページ単位でページ順に第2蓄積部17に可能な限り蓄積しておく。そして、蓄積済みのページ情報は、第2蓄積制御部16から解析部13に通知される。なお、蓄積済みのページ情報としては、蓄積済みのページ数(3P)や、蓄積したページそのもの(P1〜P3)などでもよい。
【0054】
2部目以降に相当する印刷ジョブでは、第2蓄積制御部16が、蓄積できたページのビットマップを第2蓄積部17から読み出して、印刷部15に印刷させるとともに、蓄積できなかったビットマップに関しては、受信制御部11で受信した印刷ジョブから解析、描画したビットマップを印刷部15に印刷させる。このとき、解析部13は、通知された蓄積済みのページ情報に基づき、蓄積できたページの印刷データを読み飛ばし、蓄積できなかったページの印刷データのみを解析する。そして、描画部14は蓄積できなかったページの印刷データのみをビットマップに描画する。
【0055】
また、蓄積済みのページ情報を送信元の情報処理装置1に通知してもよい。すなわち、第2蓄積制御部16が、蓄積済みのページ情報を受信制御部11に通知し、受信制御部11が送受信部10を介して蓄積済みのページ数を情報処理装置1に送信する。情報処理装置1では、第1蓄積制御部7が、蓄積済みのページの印刷データを省略した印刷ジョブを送信する。このとき、第1蓄積制御部17は、蓄積済みのページが省かれていることを表す情報を印刷ジョブに付加する。
【0056】
解析部13は、蓄積済みのページが省かれていることを表す情報が印刷ジョブに付加されているか否かを解析する。蓄積済みのページが省かれていることを表す情報が付加されていれば、印刷ジョブに含まれる印刷データが蓄積できなかったページのみであるため、解析部13は、印刷データを全て解析する。解析した印刷データは、描画部14でビットマップに描画され、描画されたビットマップは、蓄積済みのページの印刷に続けて印刷部15で印刷される。
【0057】
一方、蓄積済みのページが省かれていることを表す情報が付加されていなければ、解析部13は、蓄積済みのページを読み飛ばし、蓄積できなかったページの印刷データのみを解析する。解析した印刷データは、描画部14でビットマップに描画され、描画されたビットマップは、蓄積済みのページの印刷に続けて印刷部15で印刷される。
【0058】
(印刷システムの動作)
以下、印刷システムの動作について説明する。印刷システムは、情報処理装置1および印刷装置2で構成されているものとし、情報処理装置1が4ページの文書を3部印刷する指示を行い、印刷装置2が4ページのうち3ページのビットマップを蓄積できるものとする。また、印刷装置2は、蓄積済みのページ情報(3P)を情報処理装置1に送信するものとする。
【0059】
まず、情報処理装置1の動作について図2を参照して説明する。図2は、情報処理装置の動作を示すフローチャートである。このフローチャートを実行するプログラムは、CDROM等の記憶媒体に格納して提供することが可能である。また、このフローチャートは、プリンタドライバー6が部数情報を付加した印刷ジョブを生成し、蓄積制御部7が印刷ジョブを送信する例を示している。
【0060】
情報処理装置1で複数部数(3部)の印刷が指示されると、1部の文書を印刷する印刷ジョブが生成され(ステップS10)、3部という部数情報が付加される(ステップS11)。印刷ジョブは、第1蓄積部8に蓄積されるとともに(ステップS12)、1部目に相当する印刷ジョブが印刷装置2に送信される(ステップS13)。すると、印刷装置2では、4ページのうち3ページのビットマップが第2蓄積部17に蓄積され、蓄積済みのページ情報(3P)が情報処理装置1に送信される。
【0061】
情報処理装置1では、部数分(3個)の印刷ジョブを送信したか否かを判断する(ステップS14)。まだ1部目に相当する印刷ジョブしか送信していないので、ステップS14でNoに進み、印刷装置2から蓄積済みのページ情報(蓄積情報)の送信が有るか否かを判断する(ステップS15)。蓄積済みのページ情報(3P)が、印刷装置2から送信されているので、第1蓄積部8から印刷ジョブを読み出して(ステップS16)、印刷データから蓄積済みのページを削除する(ステップS17)。そして、2部目に相当する印刷ジョブが印刷装置2に送信される(ステップS13)。
【0062】
部数分(3個)の印刷ジョブを送信したか否かを再度判断する(ステップS14)。まだ2部目に相当する印刷ジョブしか送信していないので、ステップS14でNoに進み、印刷装置2から蓄積済みのページ情報(蓄積情報)の送信が有るか否かを判断する(ステップS15)。蓄積済みのページ情報(3P)が、既に印刷装置2から送信されているので、ステップS15のNoに進み、蓄積済みのページを削除した3部目に相当する印刷ジョブが印刷装置2に送信される(ステップS13)。部数分(3個)の印刷ジョブを送信したか否かをさらに判断し(ステップS14)、3部目に相当する印刷ジョブを送信したので(ステップS14のYes)、情報処理装置1での処理を完了する。
【0063】
次に、印刷装置2の動作について図3を参照して説明する。図3は、印刷装置の動作を示すフローチャートである。このフローチャートを実行するプログラムは、CDROM等の記憶媒体に格納して提供することが可能である。
【0064】
印刷装置2で1部目の印刷ジョブを開始すると、1部目の印刷ジョブの印刷データを解析し(ステップS20)、印刷データに部数情報が有るか否かを判断する(ステップS21)。1部目の印刷ジョブには3部という部数情報が付加されているので、ステップS21のYesに進み、他の情報処理装置からの印刷ジョブの受信を保留または禁止する(ステップS22)。なお、ステップS21で、1部目の印刷ジョブの印刷データに部数情報が無い、もしくは部数が1部である場合には、ステップS21のNoに進み、1部の文書を印刷する。すなわち、各ページの印刷データを解析して(ステップS39)、ページ単位にビットマップを描画し(ステップS40)、描画したビットマップを印刷部15で記録媒体に出力する(ステップS41)。
【0065】
ステップS22の後、各ページの印刷データを解析し(ステップS23)、ページ単位にビットマップを描画する(ステップS24)。そして、描画したビットマップが第2蓄積部17に蓄積可能か否かを判断する(ステップS25)。3ページのビットマップが第2蓄積部17に蓄積可能であるため(ステップS25のYes)、描画したビットマップをページ単位に蓄積し(ステップS26)、蓄積済みのページ数(3ページ)をカウントする(ステップS27)。描画したビットマップは、印刷部15で記録媒体に出力される(ステップS28)。また、蓄積済みのページ情報(3P)は、情報処理装置1に送信される(ステップS29)。なお、ステップS25で、ビットマップが蓄積できなかった場合には(ステップS25のNo)、ステップS29で、0ページという蓄積済みのページ情報(0P)が情報処理装置1に送信される。
【0066】
次に、部数分(3個)の印刷ジョブが完了したか否かを判断する(ステップS30)。1部目の印刷ジョブしか完了していないので、ステップS30のNoに進み、2部目の印刷ジョブを開始する。まず、蓄積されたページを印刷部15で記録媒体に出力する(ステップS31)。次に、2部目の印刷ジョブの印刷データを解析し(ステップS32)、蓄積済みページが省略されているか否かを判断する(ステップS33)。2部目の印刷ジョブの印刷データは、蓄積済みのページが省略されているので、ステップS33のYesに進み、各ページの印刷データを全て解析し(ステップS35)、ページ単位にビットマップを描画する(ステップS36)。描画したビットマップは、印刷部15で記録媒体に出力される(ステップS37)。なお、ステップS33で、蓄積済みのページが省略されていない場合には、印刷データを解析して、蓄積済みのページを読み捨てる(ステップS34)。
【0067】
さらに、部数分(3個)の印刷ジョブが完了したか否かを判断する(ステップS30)。2部目の印刷ジョブまでしか完了していないので、ステップS30のNoに進み、3部目の印刷ジョブを開始する。まず、蓄積されたページを印刷部15で記録媒体に出力する(ステップS31)。次に、3部目の印刷ジョブの印刷データを解析し(ステップS32)、蓄積済みのページが省略されているか否かを判断する(ステップS33)。3部目の印刷ジョブの印刷データは、蓄積済みのページが省略されているので、ステップS33のYesに進み、各ページの印刷データを全て解析し(ステップS35)、ページ単位にビットマップを描画する(ステップS36)。描画したビットマップは、印刷部15で記録媒体に出力される(ステップS37)。
【0068】
さらに、部数分(3個)の印刷ジョブが完了したか否かを判断する(ステップS30)。3部目の印刷ジョブまで完了したので、ステップS30のYesに進み、他の情報処理装置からの印刷ジョブの受信を再開し(ステップS38)、印刷装置2での処理を完了する。
【0069】
(第1の実施形態の優位性)
第1の実施形態によれば、複数部の文書を印刷する場合に、2部目以降の印刷ジョブでは、第2蓄積部17に蓄積できたページの印刷データを解析、描画しないため、部数分の印刷データを全て解析、描画する場合と比べ、印刷性能を改善することができる。
【0070】
また、N部の文書を印刷する場合に、N個の印刷ジョブを生成するので、部単位に両面印刷やステープル処理などの印刷後処理を行うことができる。これにより、奇数ページで終わる文書の最終ページに空白ページを挿入しないため、メモリを効率的に使用することができる。また、ページ数で課金する機能がある印刷装置であっても、空白ページに課金の有無を付ける必要がなく、用紙節約のために白紙を印刷しない機能がある印刷装置であっても、正常に動作させることができる。また、単一印刷ジョブとして扱わないため、他Hostから印刷ジョブを受信することができる。
【0071】
また、蓄積制御部7が部数情報または後続の印刷ジョブの有無情報を印刷ジョブに付加するので、ページ記述言語を独自拡張して、区切りデータを挿入するプリンタドライバー6を開発する必要がない。また、ページ記述言語で独自の区切りデータを挿入しないため、印刷データの互換性を維持することができる。さらに、アプリケーション4がプリンタドライバー6を介さずに直接印刷ジョブを生成する場合であっても、正常に動作させることができる。また、プリンタドライバー6が部数情報を既存のページ記述言語または既存のジョブ制御言語で付加する場合には、部数情報は、既存のページ記述言語または既存のジョブ制御言語の一般的な情報であるため、印刷データの互換性を維持することができる。
【0072】
また、少なくとも最初に送信する印刷ジョブに部数情報を付加することで、部数情報を付加する処理を最小限に抑えることができる。一方、部数情報を残りの印刷部数として付加することで、N個の印刷ジョブのうち受信した印刷ジョブの数をカウントする必要がない。
【0073】
さらに、使用Hostの識別情報に基づき、N個の印刷ジョブの印刷が終了するまで他Hostの印刷ジョブが保留または禁止されるので、N個の印刷ジョブの間に他Hostの印刷ジョブが紛れ込むことがない。
【0074】
また、他Hostの印刷ジョブを保留する場合には、保留する印刷ジョブを可能な限り記憶しておくので、N個の印刷ジョブの印刷が終了した後に、保留した印刷ジョブの印刷をすぐに開始することができる。このため、複数Hostからの印刷ジョブの処理性能が向上する。
【0075】
また、保留Hostの識別情報を記憶しておくので、保留する印刷ジョブが複数部の文書を印刷するN個の印刷ジョブで構成されている場合であっても、N個の印刷ジョブを印刷するまでに他Hostからの印刷ジョブをさらに保留または禁止できるため、複数部の印刷物の間に他Hostからの印刷物が紛れ込むことがない。
【0076】
また、所定の時間以内にN個の印刷ジョブを受信できないとき、保留した印刷ジョブの印刷を開始するため、使用Hostによる障害で通信が途絶えても印刷を継続することができる。
【産業上の利用可能性】
【0077】
本発明は、情報処理装置および印刷装置で構成される印刷システムに利用することができる。
【符号の説明】
【0078】
1…情報処理装置、2…印刷装置、3…LAN、4…アプリケーション、5…GDI、6…プリンタドライバー、7…第1蓄積制御部、8…第1蓄積部、9…ポート、10…送受信部、11…受信制御部、12…記憶部、13…解析部、14…描画部、15…印刷部、16…第2蓄積制御部、17…第2蓄積部。

【特許請求の範囲】
【請求項1】
N部(Nは2以上の整数)の文書を印刷するときに、少なくとも1個分の印刷指示を蓄積し、部数情報または後続の印刷指示の有無情報を付加したN個の印刷指示を生成して送信する第1の蓄積制御手段と、
前記印刷指示の送信元の識別情報を記憶する記憶手段と、
前記識別情報に基づいて、前記N個の印刷指示を印刷するまで他の送信元から受信する印刷指示を保留または禁止する受信制御手段と、
前記部数情報または後続の印刷指示の有無情報に基づき、前記N個の印刷指示を連続して印刷する印刷手段と、
前記印刷指示に含まれる印刷情報を解析する解析手段と、
前記解析手段で解析した印刷情報から画像を描画する描画手段と、
前記N個の印刷指示のうち1部目に相当する印刷指示では、前記描画手段で描画した画像を前記印刷手段で印刷させるとともに頁単位で可能な限り蓄積し、2部目以降に相当する印刷指示では、蓄積できた頁の画像を前記印刷手段で印刷させるとともに、蓄積できなかった頁に関しては、前記印刷指示から解析、描画した画像を前記印刷手段で印刷させる第2の蓄積制御手段と、を備えることを特徴とする印刷システム。
【請求項2】
前記解析手段は、蓄積できた頁の印刷情報を読み捨てることを特徴とする請求項1に記載の印刷システム。
【請求項3】
前記受信制御部は、蓄積済みの頁情報を送信元に通知し、
前記第1の蓄積制御部が、蓄積済みの頁の印刷情報を省いた印刷指示を送信することを特徴とする請求項1に記載の印刷システム。
【請求項4】
前記第1の蓄積制御部は、蓄積済みの頁が省かれていることを表す情報を印刷指示に付加することを特徴とする請求項3に記載の印刷システム。
【請求項5】
前記記憶手段は、保留する印刷指示を記憶することを特徴とする請求項1に記載の印刷システム。
【請求項6】
前記記憶手段は、保留する印刷指示の送信元の識別情報を記憶することを特徴とする請求項1に記載の印刷システム。
【請求項7】
前記受信制御手段が所定の時間以内にN個の印刷指示を受信できないとき、前記印刷手段は、保留した印刷指示の印刷を開始することを特徴とする請求項1に記載の印刷システム。
【請求項8】
前記部数情報は、少なくとも最初に送信する印刷指示に付加されていることを特徴とする請求項1に記載の印刷システム。
【請求項9】
前記部数情報は、既存のページ記述言語または既存のジョブ制御言語で付加されていることを特徴とする請求項1に記載の印刷システム。
【請求項10】
前記部数情報は、残りの印刷部数として付加されていることを特徴とする請求項1に記載の印刷システム。
【請求項11】
N部(Nは2以上の整数)の文書を印刷するときに、少なくとも1個分の印刷指示を蓄積し、部数情報または後続の印刷指示の有無情報を付加したN個の印刷指示を生成して送信する蓄積制御手順と、
前記印刷指示の送信元の識別情報を記憶する記憶手順と、
前記識別情報に基づいて、前記N個の印刷指示を印刷するまで他の送信元から受信する印刷指示を保留または禁止する受信制御手順と、
前記部数情報または後続の印刷指示の有無情報に基づき、前記N個の印刷指示を連続して印刷する印刷手順と、
前記印刷指示に含まれる印刷情報を解析する解析手順と、
前記解析手順で解析した印刷情報から画像を描画する描画手順と、
前記N個の印刷指示のうち1部目に相当する印刷指示では、前記描画手順で描画した画像を前記印刷手順で印刷させるとともに頁単位で可能な限り蓄積し、2部目以降に相当する印刷指示では、蓄積できた頁の画像を前記印刷手順で印刷させるとともに、蓄積できなかった頁に関しては、前記印刷指示から解析、描画した画像を前記印刷手順で印刷させる第2の蓄積制御手順と、を実行させるためのプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2011−28363(P2011−28363A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−170975(P2009−170975)
【出願日】平成21年7月22日(2009.7.22)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】