(57)【要約】【目的】ユーザがメモリ不足に陥った場合の試行錯誤を極力減らして印刷を続行できるとともに、早い時間で印刷物を入手できる印刷システムの提供。【構成】ホストコンピュータと記録装置とは、双方向通信が可能なインタフェースにて接続されており、ホストコンピュータには印刷可能なアプリケーションソフトウェアとプリンタドライバが組み込まれ、アプリケーションソフトウェアにおいて印刷が開始し、プリンタドライバ処理が開始された時、記憶手段における前記プリンタドライバが利用可能な領域の大きさを確認し、この利用可能な領域の大きさとプリンタドライバが印刷データ生成に必要なワークメモリの大きさとを比較し、必要ワークメモリ量が利用可能領域の大きさより大きい場合、利用可能メモリ内で確保可能な最大のラスター数を算出し、そのラスター数で印刷データを生成、データ転送し、記録装置に印刷を行わせる。【選択図】      図１
2004240758.tif 000002
【特許請求の範囲】
【請求項１】
有限の容量から成りデータを読み書き可能な記憶手段を備えるホストコンピュータと、印刷可能な記録装置とから構成され、前記ホストコンピュータと前記記録装置とは、双方向通信が可能なインタフェースにて接続されており、前記ホストコンピュータには印刷可能なアプリケーションソフトウェアと、そのデータを前記記録装置が理解できる印刷データに変換作成し前記記録装置へ前記インターフェースを介して送信することができるプリンタドライバが組み込まれ、前記アプリケーションソフトウェアにおいて印刷が開始し、前記プリンタドライバ処理が開始された時、前記記憶手段における前記プリンタドライバが利用可能な領域の大きさを確認し、この利用可能な領域の大きさと前記プリンタドライバが前記印刷データ生成に必要なワークメモリの大きさとを比較し、前記必要ワークメモリ量が前記利用可能領域の大きさより大きい場合、前記利用可能メモリ内で確保可能な最大のラスター数を算出し、そのラスター数で印刷データを生成、データ転送し、前記記録装置に印刷を行わせることを特徴とする印刷システム。
【請求項２】
前記プリンタドライバは、前記必要ワークメモリ量が前記利用可能領域の大きさより大きい場合、前記利用可能メモリ内で確保可能な最大のラスター数を算出し、１ラスター分以上確保できない場合、その旨と空きメモリ作成要求をユーザに知らせるメッセージを表示し、印刷処理を中止することを特徴とする請求項１記載の印刷システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータと記録装置とを利用した印刷システムに関するものである。
【０００２】
【従来の技術】
従来、パーソナルコンピュータ（以下、パソコンと略す）をホストとし、印刷可能な記録装置（以下、プリンタ）等の周辺機器を前記パソコンと接続することにより、様々なアプリケーションソフトウェアからプリンタにおいて印刷させることができる印刷システムが存在している。このようなシステムにおいて前記アプリケーションソフトウェアから印刷処理を行うと、アプリケーションが印刷処理に必要なメモリワーク領域とプリンタドライバの印刷処理必要メモリワーク領域で数ＭＢから数十ＭＢ以上のワークメモリ領域がパソコン上の記憶装置に利用可能な領域が必要である。
【０００３】
近年、前記パソコンの簡易型のものとして、ハードディスクドライブ等の大容量記憶装置を備えず、その代わりとして通常数十ＭＢのデータを記憶できるメモリ（ＲＡＭ）のみを記憶手段として備える簡易パーソナルコンピュータ（以下、ハンドヘルドＰＣ）や、そのような簡易型パソコンを搭載したインターネット端末やＴＶ及びインフォメーションアプライアンス機器が増えつつある。アプリケーションの高機能化やデジカメ画像の記録データ等から、パソコン内の記憶装置のプリンタドライバが利用可能領域は、益々少なくなっていく傾向がある。
【０００４】
又、近年プリンタは、印刷スピードアップのため、プリンタドライバは、１ラスターずつの印刷データ転送から、複数ラスター分をまとめての印刷データ転送（以下、マルチラスタデータ転送）を求められている。一般に印刷データは、主に、コマンド部とイメージデータ部が１つのデータ構成となっており、コマンド部の解釈・処理はファームウエア（ソフト）で、それに続くイメージデータは直接ＡＳＩＣ等のハードウエアで処理される。プリンタの性能によるが、全印刷データ中の１つのコマンド部の解釈・処理に１ｍｓｅｃ．  から数ｍｓｅｃ．  掛かり、近年のプリンタの高速化、高解像度化、（多ノズル＋高周波数等）に伴い、プリンタ内ファーム（ソフト）処理を軽減するために、又、プリンタの印刷スピードを最大限に引き出すために、１ラスター単位のデータ転送方法から複数ラスターを１ブロック単位として印刷データ受信できるマルチラスターデータ転送方式が採用され、現在主流となっている。
【０００５】
マルチラスター転送では、従来１ラスターデータに付いていた１つのコマンド部を、複数ラスターデータをひとまとめとして１つのコマンド部で賄うことができ、そして、プリンタには推奨ラスター単位数があり、その推奨ラスター数で最大の印字スピードが達成できるような設計となっている。
【０００６】
しかしながら、ＷｉｎｄｏｗｓＣＥ  ＯＳ等を搭載した情報機器では搭載メモリが少なく、印字データをプリンタが推奨する複数ラスター分バッファリングするには多量のメモリが必要となり、プリンタドライバが印刷処理できないケースが今後増大することが予想される。
【０００７】
このようなシステムにおいて前記アプリケーションソフトウェアから印刷処理を行うとき、もし、プリンタドライバが処理に必要なメモリワーク領域を前記記憶装置に確保できない場合、プリンタドライバは処理を中止している。そして、ユーザは印刷物を手に入れることはできない。その後、ユーザは記憶装置内のデータを消す又はドライバの設定を変更する等を行い、試行錯誤をしながら印刷を再度試みる必要がある。
【０００８】
【発明が解決しようとする課題】
前述した通り、前記ハンドヘルドＰＣを利用した印刷システムの場合、プリンタドライバが利用可能なメモリ領域が確保できない場合、印刷処理を中止してしまい、ユーザは印刷物を手に入れることはできない。その後、ユーザは記憶装置内のデータを消す又はドライバの設定を変更する等を行い、試行錯誤をしながら印刷を再度試みる必要がある。
【０００９】
しかしながら、ユーザは、どの位の空きメモリ量を作らなければならないか分からず、記憶装置のデータを消すにしても全ＲＡＭメモリ容量も少ないため、消せるデータの選択は難しい場合が多く、他のデバイスにバックアップを取るにしても容易ではない。
【００１０】
又、ハンドヘルドＰＣを利用した印刷要求は、メールの印刷やインターネットＷｅｂサイトのホームページ印刷等の品位やスピードよりも情報が印刷できることが重要である場合が多い。
【００１１】
そこで、本発明は、ユーザがメモリ不足に陥った場合の試行錯誤を極力減らして印刷を続行できるとともに、早い時間で印刷物を入手できる印刷システムを提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明は、有限の容量から成りデータを読み書き可能な記憶手段を備えるホストコンピュータと、印刷可能な記録装置とから構成され、前記ホストコンピュータと前記記録装置とは、双方向通信が可能なインタフェースにて接続されており、前記ホストコンピュータには印刷可能なアプリケーションソフトウェアと、そのデータを前記記録装置が理解できる印刷データに変換作成し前記記録装置へ前記インターフェースを介して送信することができるプリンタドライバが組み込まれ、前記アプリケーションソフトウェアにおいて印刷が開始し、前記プリンタドライバ処理が開始された時、前記記憶手段における前記プリンタドライバが利用可能な領域の大きさを確認し、この利用可能な領域の大きさと前記プリンタドライバが前記印刷データ生成に必要なワークメモリの大きさとを比較し、前記必要ワークメモリ量が前記利用可能領域の大きさより大きい場合、前記利用可能メモリ内で確保可能な最大のラスター数を算出し、そのラスター数で印刷データを生成、データ転送し、前記記録装置に印刷を行わせることを特徴とする。
【００１３】
【発明の実施の形態】
以下に本発明の実施の形態を添付図面に基づいて説明する。
【００１４】
図１は本発明を実施した印刷システムの構成を示す図である。同図において、１はハンドヘルドＰＣであり、搭載されているＯＳはＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＣＥである。２は液晶ディスプレイ、３はキーボード、４はＵＳＢポート（ホスト）である。液晶ディスプレイ２はタッチパネルとなっており、スタイラスペン６を用いて、ドラッグ、ドロップ、タップ等の操作をすることにより、パソコン用マウスと同様な機能を実現している。５はインクジェット方式のカラープリンタであり、４はＵＳＢポート（クライアント）である。ハンドヘルドＰＣ１とプリンタ５とはＵＳＢケーブル７で接続されており、これらの装置間でデータの双方向通信が可能である。
【００１５】
図２はハンドヘルドＰＣ１の内部ハードウェア構成を表すブロック図である。ハンドヘルドＰＣ１は簡易パソコンとして活用される携帯端末であり、その主な特徴としてハードディスクドライブのような大容量記憶装置（通常、数ＧＢのデータを記憶できる装置）を備えておらず、記憶手段としてはＲＡＭのみを備える。同図において、８はマイクロプロセッサ等から構成されるＣＰＵであり、ハンドヘルドＰＣ１の中央処理装置として、ＲＯＭ９に記憶されているプログラムに従ってＲＡＭ１０、通信部１１、表示部１２、操作部１３を制御する。
【００１６】
ＲＯＭ９には前記ＯＳ、ディスプレイやポートを制御する各デバイスドライバ、ハンドヘルドＰＣ１上で起動できる各アプリケーション等が記憶されている。
ＲＡＭ１０は通常３２ＭＢ程度の容量で構成され、その内の半分がプログラム実行用に、残りの半分がデータ記憶用に割り当てられる。通信部１１にはＵＳＢポート４が含まれており、ＵＳＢの通信を制御する。表示部１２には液晶ディスプレイ２が含まれており、アプリケーション等のユーザーインタフェース（以降、ＵＩと省略することがある）の表示等の制御を行う。操作部１３にはキーボード３が含まれており、キー入力を制御する。
【００１７】
図３はプリンタ５の内部ハードウェア構成を表すブロック図である。
【００１８】
図３において、１４はマイクロプロセッサ等から構成されるＣＰＵであり、プリンタ５の中央処理装置として、ＲＯＭ１６に記憶されているプログラムに従って、ＲＡＭ１７、通信部１８、記録部１９を制御する。ＡＳＩＣ１５は、通信部１８で受信した印刷データをプリントヘッド等の記録部へデータ転送等の処理を行なうハードウエアである。
【００１９】
ＲＯＭ１６にはプリンタドライバ２０（図４にて後述する）の制御に従ってプリンタ５が記録（印刷）処理を行うプログラムが記憶されている。ＲＡＭ１７は主にハンドヘルドＰＣ１から送られて、それを元に記録部１９によって印刷される印字データが一時的に記憶される。通信部１８にはＵＳＢポート４が含まれており、ＵＳＢの通信を制御する。記録部１９は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等から構成される記録ユニットと、前記印字データを元に前記記録ヘッドにて印字用パルスを発生させるための電気回路とから構成される。
【００２０】
印刷可能なアプリケーション（図７にて後述する）上での印刷操作によって、アプリケーションで開かれているファイルの表示内容（画像データ）が、プリンタドライバ２０を介してプリンタ５制御用コマンドを含む印字データに変換された後、ハンドヘルドＰＣ１のＲＡＭ１０のデータ記憶用エリアに一時的に格納され、ＵＳＢポート４からＵＳＢインタフェースを介してプリンタ５に送られる。
プリンタ５にて受信された印字データは、記録部１９によって印字用パルスに変換されて、記録紙上に印刷される。
【００２１】
図４はプリンタ５を制御するプリンタドライバの構成を表すブロック図である。
【００２２】
図４において、矢印はデータのフローを表す。２０はプリンタドライバであり、ハンドヘルドＰＣ１のＲＯＭ９に記憶されている。２１はＵＩ制御部であり、プリンタドライバ２０のＵＩを制御する。２２はプリンタ制御部であり、ＵＩ制御部からの指示に従ってプリンタ５に制御コマンドを送ることによりプリンタ５を制御したり、プリンタ５からの応答コマンドに基づいてＵＩ制御部にプリンタ５の状態を伝えたりする。２３はポート制御部であり、プリンタ制御部２２から渡された印字データを通信部１２に対してライトしたり、プリンタ５からの応答コマンドを通信部１２からリードしたり、主にプリンタドライバレベルから見たポートの制御を行う。
【００２３】
図５はプリンタドライバ２０のＵＩの図であり、プリンタドライバ２０が起動した時、ハンドヘルドＰＣ１の液晶ディスプレイ２に表示される。
【００２４】
図５において、３５はメインウィンドウである。２５はプリンタ選択部であり、コンボボックスにて構成され、接続されているプリンタを選択することにより、そのプリンタにて印刷を行うことができる。同図ではプリンタ５で印刷できる“ＢＪプリンタ”が選択されている。
【００２５】
２６はポート選択部であり、コンボボックスにて構成され、ハンドヘルドＰＣ１に装備されている印刷可能なポートを選択することができる。同図ではＵＳＢポートが選択されている。２７は用紙サイズ選択部であり、コンボボックスにて構成され、用紙サイズとして、Ａ６、Ａ５、Ａ４の３タイプのうちから何れか１つを選択可能である。
【００２６】
２８は下書き印刷選択部であり、チェックボックスで構成され、チェックされている場合、印字品位を落として下書き印刷の品位で印刷処理を行い。チェックが外されている場合、標準品位で印刷処理を行う。同図ではチェックが外されている状態を表す。２９はカラー印刷選択部であり、チェックボックスで構成され、チェックされている場合、カラー印刷が行われ、チェックが外されている場合、モノクロ印刷が行われる。同図ではチェックされている状態を表す。
【００２７】
３０は印刷範囲選択部であり、ラジオボタンで構成され、“すべて”が選択されている場合、アプリケーションの表示上で選択されている領域に拘らず全ての範囲が印刷され、“選択”が選択されている場合、アプリケーションの表示上で選択された領域内が印刷される。同図では“すべて”が選択されている状態を表す。３１は印刷の向き選択部であり、ラジオボタンで構成され、“縦”が選択されている場合、アプリケーションの表示を用紙の縦方向に展開して印刷し、“横”が選択されている場合、アプリケーションの表示を用紙の横方向に展開して印刷する。同図では“縦”が選択されている。
【００２８】
３２は余白設定部であり、数値を入力可能なテキストボックスで構成され、用紙の上下左右の余白をミリメートル単位でそれぞれ設定することができる。同図では上下左右の余白が全て２５ｍｍで設定されている状態を表す。３３はＯＫボタンであり、このボタンがタップされると印刷処理が開始される。３４はキャンセルボタンであり、このボタンがタップされると、印刷を行うことなく、メインウィンドウ３５を閉じる。以降では、プリンタ選択部２５、ポート選択部２６、用紙サイズ選択部２７、下書き印刷選択部２８、カラー印刷選択部２９、印刷範囲選択部３０、印刷の向き選択部３１、余白設定部３２における設定の組み合わせを印刷設定と呼ぶ。
【００２９】
図６はメモリ容量不足による印刷不可能メッセージを表す図であり、現在のメモリ容量では十分な印刷サイズでの印刷はできない旨と、空きメモリ容量を増やしてください等のその場合の対処方法をユーザに知らせるメッセージ５１を表示する。ＯＫボタン５２がタップされると印刷処理を中止する。
【００３０】
図７は印刷可能なアプリケーションのＵＩの図であり、本アプリケーションは例としてホームページ閲覧ソフト（Ｗｅｂブラウザ）のアプリケーションである。
【００３１】
図７において、６０はメインウィンドウであり、ホームページが表示された状態を表す。６２は印刷を開始するための印刷ボタンであり、このボタンをタップすることにより、プリンタドライバ２０が起動してメインウィンドウ３５が表示される。そして、メインウィンドウ３５内のＯＫボタン３３をタップすることにより、表示されているホームページコンテンツ６１の印刷が開始される。６３は本アプリケーションを閉じるためのクローズボタンであり、このボタンをタップすることにより、メインウィンドウ６０を閉じ、本アプリケーションを終了する。
【００３２】
図８は印刷コマンド構成例を表す図であり、図８−１はシングルラスターイメージコマンド例、図８−２はマルチラスターイメージコマンド例である。
【００３３】
図９は本実施の形態の動作（処理）を表すフローチャートであり、この図面に従って動作の説明をする。
【００３４】
プリンタドライバ２０のメインウィンドウ３５内のＯＫボタン３３がタップされて印刷処理が開始された後の処理を表すフローチャートである。プリンタドライバ２０のメインウィンドウ３５内のＯＫボタン３３がタップされて印刷処理が開始されると（Ｓ９０１）、印刷設定に従って印刷処理に必要なバッファサイズを計算する（Ｓ９０２）。
【００３５】
次に、利用可能なメモリ量をチェックし（Ｓ９０３）、ドライバが印刷処理に必要な空きメモリ不足、即ち利用可能な領域の大きさとプリンタドライバが印刷データ生成に必要なワークメモリの大きさとを比較し（Ｓ９０９）、必要ワークメモリ量が利用可能領域の大きさより大きい場合、ステップＳ９０７へ進む。ドライバが印刷処理に必要な空きメモリが十分にある場合は、通常ドライバ処理の次のステップＳ９０４へ進む。
【００３６】
ステップＳ９０７において、利用可能なメモリ容量内で確保可能な最大印刷データラスタブロック数を算出し、ステップＳ９１０へ進む。Ｓ９１０で、ステップＳ９０７にて算出したラスター数が１ラスター分以上確保可能かどうか判断し、１ラスター以上確保可能な場合Ｓ９０４へ進み、ステップＳ９０７にて算出したラスターブロック数にてメモリを確保する。
【００３７】
又、ステップＳ９１０において、ステップＳ９０７において１ラスター分メモリ確保できない場合、ステップＳ９０８へ進み、現在のメモリ容量では印刷ができない旨と空きメモリを作成要求の旨（５１）をユーザに知らせるメッセージを表示し（５０）、ＯＫボタン（５２）がタップされたら印刷処理を終了する。ステップＳ９０４において確保済み印刷処理用メモリを利用し、図８−２の印刷データを作成する（Ｓ９０５）。例えば、推奨ラスターブロック数が１６ラスターのプリンタで、Ｓ９０９にて１６ラスター分確保できないとき、Ｓ９０７にて利用可能なメモリ容量内で確保可能な最大印刷データラスタブロック数が８と算出されたとき、図８−２においてブロック数指定は８とし、１つのコマンドで８ラスター分のラスターイメージデータを作成する。
【００３８】
そして、図２の通信部（１１）へその印刷データを書き込み（Ｓ９０６）、プリンタドライバにおける印刷処理を終了する（Ｓ９１３）。
【００３９】
以上、本発明の動作（処理）について説明したが、本実施の形態においてはインクジェット方式のカラープリンタの例を挙げた。この例に限らずレーザービームプリンタやモノクロプリンタに対しても有効である。
【００４０】
又、本実施の形態においては、印刷可能なアプリケーションの例としてインターネットＷｅｂブラウザを使用したが、この例に限られることなく、印刷可能な任意のアプリケーションにおいて実現可能である。
【００４１】
又、本実施の形態においては、例としてＯＳにＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＣＥを使用したが、このＯＳに限られることなく同様な構成を採ることにより、任意のＯＳにおいて実現可能である。
【００４２】
又、本実施の形態においてハンドヘルドＰＣを例にしたが、小容量の記憶装置しか搭載していないインターネットアプライアンス機器及びインフォメーションアプライアンス機器からの印刷や、印刷設定ができない機器（デバイス）からの印刷においても本発明は有効である。
【００４３】
更に、本実施の形態においては、例として、ハンドヘルドＰＣ１とプリンタ５との間のインタフェースとしてＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースを用いたが、このインタフェースに限られることなく、同様な構成を採ることにより、任意のインタフェースにおいて実現可能である。
【００４４】
【発明の効果】
以上の説明で明らかなように、本発明によれば、省メモリでプリンタドライバによる印刷処理を実現する際に、印刷中止になることなく、可能な限りプリンタに適する速度で印刷処理を続行することができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明に係る印刷システムの構成図である。
【図２】ハンドヘルドＰＣの内部ハードウェア構成を示すブロック図である。
【図３】プリンタの内部ハードウェア構成を示すブロック図である。
【図４】プリンタを制御するプリンタドライバの構成を示すブロック図である。
【図５】プリンタドライバのユーザインターフェース（ＵＩ）の図である。
【図６】メモリ容量不足による印刷不可能メッセージの図である。
【図７】印刷可能なソフトウエア（アプリケーション：例）を示す図である。
【図８】印刷コマンド構成例を示す図である。
【図９】利用可能メモリ容量により印刷データラスター数を変える処理のフローチャートである。
【符号の説明】
１      ハンドヘルドＰＣ
２      液晶ディスプレイ
４      ＵＳＢポート
５      プリンタ
１１    ハンドヘルドＰＣのメモリ（ＲＡＭ）
１５    プリンタのＡＳＩＣ（ゲートアレイ）
１９    記録部
２０    プリンタドライバ
３３，４２，５２    ＯＫボタン
３４，４３    キャンセルボタン
４０    利用可能メモリ内で印刷を試みるかメッセージ
５０    メモリ不足による印刷不可能メッセージ
６２    印刷ボタン
【図１】
2004240758.tif 000003
【図２】
2004240758.tif 000004
【図３】
2004240758.tif 000005
【図４】
2004240758.tif 000006
【図５】
2004240758.tif 000007
【図６】
2004240758.tif 000008
【図７】
2004240758.tif 000009
【図８】
2004240758.tif 000010
【図９】
2004240758.tif 000011