(57)【特許請求の範囲】
【請求項１】
ホストコンピュータから送信される圧縮済印刷情報を少なくとも２ページ分以上記憶可能な記憶手段と、
前記記憶手段から読み出す圧縮済印刷情報の読み出しアドレスを指示する指示手段と、
前記記憶手段から読み出した圧縮済印刷情報を伸長し、伸長済印刷情報を出力する伸長手段と、
前記伸長手段が出力した伸長済印刷情報を出力するための出力手段と、
前記出力手段と接続し、前記出力手段を介して受信した伸長済印刷情報に基づいて画像形成を行なう画像形成手段と、
前記画像形成手段が画像形成を行なっているページの画像のサイズと、当該画像形成のために給送された用紙サイズとの不一致を検知する検知手段と、
前記検知手段が前記不一致を検知した時点で前記指示手段が指示する読み出しアドレス以降の領域に記憶されている、当該画像形成中のページのための圧縮済印刷情報を、当該圧縮済印刷情報のページの終了を示す終了コード情報を検出するまで前記伸長手段が伸長した後に廃棄するよう制御する制御手段と、
を有することを特徴とする印刷装置。
【請求項２】
ホストコンピュータから送信される圧縮済印刷情報を少なくとも２ページ分以上記憶可能な記憶手段と、
前記記憶手段から読み出す圧縮済印刷情報の読み出しアドレスを指示する指示手段と、
前記記憶手段から読み出した圧縮済印刷情報を伸長し、伸長済印刷情報を出力する伸長手段と、
前記伸長手段が出力した伸長済印刷情報を出力するための出力手段と、
前記出力手段と接続し、前記出力手段を介して受信した伸長済印刷情報に基づいて画像形成を行なう画像形成手段と、
前記画像形成手段が画像形成を行なっているページの画像のサイズと、当該画像形成のために給送された用紙サイズとの不一致を検知する検知手段と、
前記記憶手段が記憶する前記圧縮済印刷情報中の、各ページの先頭に該当するデータのアドレスを管理するページ先頭アドレス管理手段を有し、
前記検知手段が前記不一致を検知した時点で前記指示手段が指示する読み出しアドレスと、前記ページ先頭アドレス管理手段が管理する前記不一致が発生したページの次のページの圧縮済印刷情報の先頭アドレスとに基づき廃棄すべきデータ量を決定し、前記検知手段が前記不一致を検出した時点で前記指示手段が指示する読み出しアドレスから前記決定されたデータ量に相当する分だけ前記伸長手段が伸長した後に廃棄するよう制御する制御手段と、
を有することを特徴とする印刷装置。
【請求項３】
前記制御手段は前記伸長済印刷情報を前記出力手段へ出力しないことによって前記伸長済印刷情報を廃棄することを特徴とする、請求項１または請求項２に記載の印刷装置。
【請求項４】
前記検知手段は、前記画像形成手段が画像形成を行なっているページの画像のサイズよりも当該画像形成のために給送された用紙サイズの方が小さいことを検知することを特徴とする、請求項１乃至請求項３のいずれか１項に記載の印刷装置。
【請求項５】
前記検知手段は、前記画像形成手段が画像形成を行なっているページの画像のサイズよりも当該画像形成のために給送された用紙サイズの方が用紙搬送方向の長さが短いことを検知することを特徴とする、請求項１乃至請求項３のいずれか１項に記載の印刷装置。
【請求項６】
ホストコンピュータから送信される圧縮済印刷情報を少なくとも２ページ分以上記憶可能な記憶手段に記憶する記憶工程と、
前記記憶手段から読み出す圧縮済印刷情報の読み出しアドレスを指示する指示工程と、
前記記憶手段から読み出した圧縮済印刷情報を伸長し、伸長済印刷情報を出力する伸長工程と、
前記伸長工程が出力した伸長済印刷情報を出力するための出力工程と、
前記出力工程が出力する伸長済印刷情報に基づいて画像形成を行なう画像形成工程と、
前記画像形成工程が画像形成を行なっているページの画像のサイズと、当該画像形成のために給送された用紙サイズとの不一致を検知する検知工程と、
前記検知工程が前記不一致を検知した時点で前記指示工程が指示する読み出しアドレス以降の領域に記憶されている、当該画像形成中のページのための圧縮済印刷情報を、当該圧縮済印刷情報のページの終了を示す終了コード情報を検出するまで前記伸長工程が伸長した後に廃棄するよう制御する制御工程と、
を有することを特徴とする印刷装置の制御方法。
【請求項７】
ホストコンピュータから送信される圧縮済印刷情報を少なくとも２ページ分以上記憶可能な記憶手段に記憶する記憶工程と、
前記記憶手段から読み出す圧縮済印刷情報の読み出しアドレスを指示する指示工程と、
前記記憶手段から読み出した圧縮済印刷情報を伸長し、伸長済印刷情報を出力する伸長工程と、
前記伸長工程が出力した伸長済印刷情報を出力するための出力工程と、
前記出力工程が出力する伸長済印刷情報に基づいて画像形成を行なう画像形成工程と、
前記画像形成工程が画像形成を行なっているページの画像のサイズと、当該画像形成のために給送された用紙サイズとの不一致を検知する検知工程と、
前記記憶手段が記憶する前記圧縮済印刷情報中の、各ページの先頭に該当するデータのアドレスを管理するページ先頭アドレス管理工程を有し、
前記検知工程が前記不一致を検知した時点で前記指示工程が指示する読み出しアドレスと、前記ページ先頭アドレス管理工程が管理する前記不一致が発生したページの次のページの圧縮済印刷情報の先頭アドレスとに基づき廃棄すべきデータ量を決定し、前記検知工程が前記不一致を検出した時点で前記指示工程が指示する読み出しアドレスから前記決定されたデータ量に相当する分だけ前記伸長工程が伸長した後に廃棄するよう制御する制御工程と、
を有することを特徴とする印刷装置の制御方法。
【請求項８】
請求項６記載の印刷装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【請求項９】
請求項７記載の印刷装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータから送信される圧縮済み印刷情報を処理する印刷装置、印刷装置の制御方法、プログラムに関する。
【背景技術】
【０００２】
従来、ホストベースプリンタにおいて、一頁の印刷毎に印刷に係わる全てのシステムをリセットしていたため、ホストコンピュータから印刷要求された用紙サイズに対し給紙された用紙サイズが小さく、プリントエンジンからの水平同期信号の発生数が期待した数より少なかった場合でも印刷データに不整合がおきることはなく、不正な印字データが出力されることはなかった。
【０００３】
しかしながら、近年、ホストコンピュータ性能の向上、またホストインタフェース技術の向上によりホストベースプリンタ技術は、より高速なプリンタエンジンに適用可能となってきている。
【０００４】
また、印刷のパフォーマンスを向上させるため圧縮された印刷画像データを複数頁分切れ目無く転送を行うような転送制御も行われている。
【０００５】
ところが、このような印刷制御システムでホストコンピュータから印刷要求された用紙サイズに対し給紙された用紙サイズが小さい場合、期待する水平同期信号の発生数が少なく印刷データが残ってしまい次頁の印刷に不正な印字データが出力されてしまうという問題があった。
【０００６】
この問題を解決するため、下記特許文献１では、画像データ出力制御回路に入力される水平同期信号をコントローラに搭載されているＣＰＵからも制御できるよう工夫し、プリンタエンジンからの水平同期信号が止まってしまってもＣＰＵで擬似的に水平同期信号を発生させ残った印刷データを出力させる方法が提案されている。
【特許文献１】特開２０００−２９６６５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１による回避方法では、印刷を開始する前に次の給紙を実行し、内部に用紙を滞留させるタイプの高速なプリントエンジンには対応できず、不正な印刷結果となって紙資源を浪費してしまうという問題があった。
【０００８】
本発明は、上記の問題点を解消するためになされたもので、本発明の目的は、ホストコンピュータから転送される圧縮されている印刷情報を複数頁分保持可能な場合に、印刷処理中の頁の用紙サイズと給紙される用紙サイズとの不一致な状態が発生しても、当該不一致の頁で未処理となる印刷情報の処理を廃棄して、次の頁の先頭位置から展開済み印刷情報を処理可能となり、正常な印刷結果を得る頁処理を継続して複数の頁の展開済み印刷情報を高速に処理できるホストベースなプリント環境を簡単な構成で得られる仕組みを提供することである。
【課題を解決するための手段】
【０００９】
本発明に係る印刷装置は、以下の特徴的構成を備える。
ホストコンピュータから送信される圧縮済印刷情報を少なくとも２ページ分以上記憶可能な記憶手段と、前記記憶手段から読み出す圧縮済印刷情報の読み出しアドレスを指示する指示手段と、前記記憶手段から読み出した圧縮済印刷情報を伸長し、伸長済印刷情報を出力する伸長手段と、前記伸長手段が出力した伸長済印刷情報を出力するための出力手段と、前記出力手段と接続し、前記出力手段を介して受信した伸長済印刷情報に基づいて画像形成を行なう画像形成手段と、前記画像形成手段が画像形成を行なっているページの画像のサイズと、当該画像形成のために給送された用紙サイズとの不一致を検知する検知手段と、前記検知手段が前記不一致を検知した時点で前記指示手段が指示する読み出しアドレス以降の領域に記憶されている、当該画像形成中のページのための圧縮済印刷情報を、当該圧縮済印刷情報のページの終了を示す終了コード情報を検出するまで前記伸長手段が伸長した後に廃棄するよう制御する制御手段と、を有することを特徴とする。
【００１０】
本発明に係る印刷装置の制御方法は、以下の特徴的構成を備える。
ホストコンピュータから送信される圧縮済印刷情報を少なくとも２ページ分以上記憶可能な記憶手段に記憶する記憶工程と、前記記憶手段から読み出す圧縮済印刷情報の読み出しアドレスを指示する指示工程と、前記記憶手段から読み出した圧縮済印刷情報を伸長し、伸長済印刷情報を出力する伸長工程と、前記伸長工程が出力した伸長済印刷情報を出力するための出力工程と、前記出力工程が出力する伸長済印刷情報に基づいて画像形成を行なう画像形成工程と、前記画像形成工程が画像形成を行なっているページの画像のサイズと、当該画像形成のために給送された用紙サイズとの不一致を検知する検知工程と、前記検知工程が前記不一致を検知した時点で前記指示工程が指示する読み出しアドレス以降の領域に記憶されている、当該画像形成中のページのための圧縮済印刷情報を、当該圧縮済印刷情報のページの終了を示す終了コード情報を検出するまで前記伸長工程が伸長した後に廃棄するよう制御する制御工程とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ホストコンピュータから転送される圧縮されている印刷情報を複数頁分保持可能な場合に、印刷処理中の頁の用紙サイズと給紙される用紙サイズとの不一致な状態が発生しても、当該不一致の頁で未処理となる印刷情報の処理を廃棄して、次の頁の先頭位置から展開済み印刷情報を処理可能となり、正常な印刷結果を得る頁処理を継続して複数の頁の展開済み印刷情報を高速に処理できるホストベースなプリント環境を簡単な構成で得られる。
【発明を実施するための最良の形態】
【００１４】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１５】
〔第１実施形態〕
図１は、本発明の第１実施形態を示す印刷装置を適用する印刷システムの一例を示すブロック図であり、本発明を適用するのに好適な印刷装置、特にレーザビームプリンタ（以下、単に「プリンタ」と記す）の構成例に対応する。
【００１６】
図１に示すように、プリンタ１０００は、パーソナルコンピュータ等、情報処理装置としてのホストコンピュータ２０００と通信線３０００を介して接続され、印刷システムを構成する。
【００１７】
プリンタ１０００において、１００１はプリンタコントローラで、本プリンタ全体の動作の制御を行う制御ユニットである。プリンタコントローラ１００１において、１１０１はＣＰＵで、ＲＯＭ１１０３に格納された制御プログラムを実行し、この制御ユニット全体を制御する。
【００１８】
１１０２はＲＡＭで、ＣＰＵ１１０１のワークエリアとして用いられる一方、ホストコンピュータ２０００からの印刷データの受信エリアとしても機能する。１１００はＡＳＩＣで、ホストインタフェース制御部１１００ａ、ＣＰＵインタフェース制御部１１００ｂ、メモリ制御部１１００ｃ、ＤＭＡ制御部１１００ｄ、データ伸長部１１００ｅ、印刷部インタフェース制御部１１００ｆ等を備える。
【００１９】
ホストインタフェース制御部１１００ａは、通信線３０００を通じホストコンピュータ２０００との印刷制御コマンドや印刷画像データなどのデータ送受信を制御する。また、印刷画像データの受信に関してはＤＭＡ制御部１１００ｄ、メモリ制御部１１００ｃと連動して受信データをＲＡＭ１１０２へ格納する。
【００２０】
ＣＰＵインタフェース制御部１１００ｂは、文字通りＣＰＵとのインタフェースを司るもので、ＡＳＩＣ内部の不図示の制御レジスタ、データレジスタへのアクセス制御を行う。
【００２１】
１１００ｃはメモリ制御部で、ＲＯＭ１１０３、ＲＡＭ１１０２へのアクセス制御を行う。データ伸長部１１００ｅは、ホストコンピュータ２０００から受信した圧縮された印刷画像データの伸長を行う。印刷部インタフェース制御部１１００ｆは、印刷部１２００との制御信号のやり取りや印刷画像データのシッピングを制御する。なお、１０１２は操作パネルである。
【００２２】
図２は、図１に示したプリンタ１０００の概略構成を説明する断面図であり、ホストベースプリンタを適用するのに好適な印刷装置、特にレーザビームプリンタの構成例に対応する。なお、同一部分には同一の符号を付してある。
【００２３】
図２において、プリンタ１０００は、外部に接続されるホストコンピュータ等の情報処理装置から送出される圧縮処理された印刷画像データを受け、該データを伸長し、印刷部に送出することで記録媒体である記録紙等に像を形成する。１０１２は操作パネルで、操作のためのスイッチ、及びＬＣＤ表示器等が配されている。
【００２４】
プリンタコントローラ１００１は、プリンタ１０００全体の制御を行い、主に画像情報を対応する画像パターンのビデオ信号に変換し、レーザドライバ１００２に出力する。レーザドライバ１００２は半導体レーザ１００３から発射されるレーザ光１００４をＯＮ／ＯＦＦ切り換えする。レーザ光１００４は回転多面鏡１００５で左右方向に振らされて静電ドラム１００６上を走査露光する。
【００２５】
これにより、静電ドラム１００６上に画像パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１００６の周囲に配された現像ユニット１００７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はプリンタ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９、及び搬送ローラ１０１０と搬送ローラ１０１１とにより、装置内に取り込まれて、静電ドラム１００６に供給される。そしてこれら一連の動作により印刷がなされる。
【００２６】
このように構成された本発明の印刷システムにおいて、以下に、本発明の特徴である印刷データの強制廃棄を適用した印刷制御を説明する。
【００２７】
図３は、図１に示したＲＡＭのメモリマップを説明する模式図であり、例えばリングメモリ構成されて印刷データの各ページを書き込む場合で、かつ、ホストコンピュータから印刷要求の用紙サイズに対し、給紙された用紙サイズが小さかった場合のＲＡＭ上に格納された印刷データの状態である。
【００２８】
図３において、ライトポインタ１、リードポインタ２は、メモリ制御部１１００ｃで生成される。Ｎ頁の印刷に用紙サイズの不一致がおき水平同期信号が停止すると、本来出力されるべき印刷データは斜線部分１０であるが、斜線部分１１を残して、リードポインタ２はメモリ制御部１１００ｃにより停止される。この時に、既に（Ｎ＋１）頁目のデータはすでに格納され始めているため、そのまま印刷を継続してしまうと、（Ｎ＋１）頁目の印刷データを読み込み開始位置（リードポインタ２が指示する位置）がずれているため、本来ならば（Ｎ＋１）頁目の印刷データの線と位置をリードポインタ２が指示しているはずであるが、上記水平同期信号の停止に伴い不正な位置を指示している状態なので、印刷不正となってしまう（印刷された画像がくずれる現象が起こってしまう）。１２は次頁エリアを示し、１３は空きエリアを示す。
【００２９】
そこで、本実施形態では、後述する図４〜図６に示すフローチャートに従って、ＢＤカウント値を監視して、不正な状態にある場合に、印刷データを破棄するモードを設定して、データ伸長部１１００ｅの伸長処理を頁エンドまで強制実行せることにより、データ伸長部１１００ｅ等が強制的にリセットされて、結果として、ＲＡＭ１１０２上に確保されるリングメモリ上のリードポインタ２が、次の頁の先頭に位置することとなるので、従来の不正印刷を回避させることを可能としている。
【００３０】
図４，図５、図６は、本発明に係る印刷装置における第１のデータ処理手順の一例を示すフローチャートである。なお、Ｓ３００〜Ｓ３２４は各ステップを示し、ＣＰＵ１１０１がＲＯＭ１１０３に格納された制御プログラムをＲＡＭ１１０２にロードして実行することにより実現される。
【００３１】
図４において、プリンタの電源が投入されると、ＣＰＵ１１０１はＲＯＭ１１０３に格納された本プログラムを実行する。
【００３２】
まず、ステップＳ３００で、ＲＡＭ１１０２上に確保される不図示の内部レジスタの初期化、また通信線３０００を介してのホストコンピュータ２０００とのコネクションの確立等、プリンタの初期化処理を行い、ホストコンピュータ２０００からのデータ受信待機状態となる。
【００３３】
そして、ステップＳ３０１ではホストコンピュータ２０００からデータを受信したかどうかをＣＰＵ１１０１が判断して、受信データがあると判断した場合には、ステップＳ３０２に進み、また受信データが無いと判断した場合は、ステップＳ３０１に留まり、受信データの監視を継続する。
【００３４】
このとき、待機時間をＣＰＵ１１０１が管理する内部カウンタによりカウントしておき一定時間を過ぎた場合には、スリープモード等の低電力消費モードに移行するようにしても良い。
【００３５】
一方、ホストコンピュータ２０００ではユーザの指示によって印刷の実行が指示されると、プリンタドライバソフトウエアが起動し、アプリケーションソフトのグラフィックデータの解析を行い、印刷イメージの生成を行う。その後、前記印刷イメージはバンドに区分けされ、データ圧縮が施される。そして通信線３０００を介してプリンタに対しデータ送信される。
【００３６】
プリンタ側では、ステップＳ３０１でホストコンピュータ２０００からデータを受信すると、ステップＳ３０２に移り、受信データの先頭２バイトの読み込みを行う。通信線３０００を介して受信されるデータは、図７に示されるような構成をとるよう取り決められている。
【００３７】
図７は、図１に示したホストコンピュータ２０００から受信するデータ構造を説明する図である。
【００３８】
本実施形態では、図７に示されるように受信データは先頭２バイトがコマンドを表し、次に続く２バイトがコマンド長を表し、さらにデータがそれに続く構成となっている。コマンド長は２バイト、１６ビットで表されるため、全コマンド長は６４ＫＢ未満となっている。このコマンド体系は１例であってシステム構成によって変更しても差し支えない。
【００３９】
そして、ステップＳ３０３では、ステップＳ３０２で読み込んだコマンドの種別を判別する。コマンドはプリンタ制御コマンド、印字データコマンドに大きく分けられ、コマンドの種別（プリンタ制御コマンド、印刷データコマンド（画像データコマンド、転送終了コマンド、他の印刷データコマンド））に応じた動作を行う。
【００４０】
そこで、ステップＳ３０４では、コマンド長を判別するためコマンドに続くカウント値２バイトが読み込まれる。次なる動作ステップはコマンドの上記種別によって異なる。
【００４１】
ステップＳ３０３で、コマンドが「プリンタ制御コマンド」であると判断された場合、ステップＳ３０５に移り、前記コマンド長を表すカウント値からコマンド２バイト、カウント２バイトを差し引いた残りの（カウント−４）バイトのデータを全て受信する。
【００４２】
そして、ステップＳ３０６では、前記コマンドに対応した制御を実行する。次に、ステップＳ３０７では実行ステータス（「ＯＫ」、「ＮＧ」等）を取得する。続いて、ステップＳ３０８では前記ステータスをホストコンピュータに送信し、送信完了を待ってステップＳ３０１に戻り、次なるデータ受信を監視する。
【００４３】
一方、ステップＳ３０３の判断で、コマンドが「画像データコマンド（印刷データコマンドに含まれる）」であると判断した場合、ステップＳ３０４で、コマンド長を判別するためコマンドに続くカウント値２バイトが読み込まれた後、ステップＳ３０９で、（カウント−４）バイトの画像データ数をＤＭＡ転送の制御を行うＤＭＡ制御部１１００ｄに設定を行う。この設定を行うことでＤＭＡが動作を開始し、画像データはメモリ（ＲＡＭ１１０２）の所定領域に格納され（Ｓ３１０）、ステップＳ３０１へ戻る。なお、ステップＳ３１０は、ハードウエア実行のステップである。
【００４４】
一方、ステップＳ３０３の判断で、コマンドが「転送終了コマンド（印字データコマンドに含まれる）」であると判断した場合、ステップＳ３０４で、コマンド長を判別するためコマンドに続くカウント値２バイトが読み込まれた後、ステップＳ３１１で、ステップＳ３０５と同様に（カウント−４）バイトの残りのデータを読み込む。
【００４５】
続いて、ステップＳ３１２で、プリンタエンジン（印刷部１２００）に対し印刷開始コマンドを送信し、印刷開始を指示する。そして、プリンタエンジンでは前記印刷開始コマンドを受信すると、前述の印刷シーケンスを開始する。
【００４６】
次に、ステップＳ３１３では、印刷に係わるデータ伸長部１１００ｅ、印刷部インタフェース制御部１１００ｆに動作開始を指示する。この指示により動作を開始すると、ステップＳ３１４で、ハードウエア制御によってメモリ（ＲＡＭ１１０２）から画像データの読み込みが開始される。
【００４７】
データ伸長部１１００ｅではＤＭＡ制御部１１００によるＤＭＡにて読み出されたデータを受け、印刷画像データへの伸長動作を行う。そして、伸長された印刷画像データは、印刷部インタフェース制御部１１００ｆ内に設けられた不図示のＦＩＦＯメモリへ書き込まれる。
【００４８】
続いて、印刷部インタフェース制御部１１００ｆ内の画像シッピング回路は、プリンタエンジン（印刷部１２００）からの垂直同期信号を受け取り、所定の上マージン、また水平同期信号（以下、「ＢＤ信号」と記す）を受け所定の左マージン（プリンタエンジンによっては右マージン）をカウントした後、印刷画像データをプリンタエンジンに送出して、ステップＳ３１６以降へ進む。
【００４９】
一方、ステップＳ３０３の判断で、コマンドが「その他の印字データコマンド」であると判断した場合は、ステップＳ３１１に続く、ステップＳ３１５でコマンドに対応した制御を実行して、ステップＳ３０１へ戻る。
【００５０】
続いて、図５に示すステップＳ３１６で、水平同期信号カウンタ（ＢＤＣ）のリードを行う。前記水平同期カウンタ（ＢＤＣ）は、図６で示されるように割り込み処理ルーチンで処理され、図６に示すステップＳ３２４で、Ｄ信号が入る毎に毎回カウントを「＋１」する。なお、初期化は一頁の印刷が終了した後に行われる。
【００５１】
そして、ステップＳ３１７では、前回読んだカウンタ値（ＢＤＣｐｒｅｖｉｏｕｓ）と今回読んだ値（ＢＤＣｃｕｒｒｅｎｔ）との比較を行い両値が一致したか否かを判断して、一致しないと判断した場合（「ＮＯ」の場合）、まだ画像出力中であると判断され、また、一致すると判断した場合（「ＹＥＳ」の場合）はＢＤ信号が止まったことを意味し、画像出力終了と判断する。
【００５２】
ここで、ＣＰＵ１１０１の処理動作がＢＤ割り込み間隔に対して十分に遅いことを想定している。また、ＣＰＵ１１０１の処理動作が速い場合には、カウンタ値の読み込みは、印刷開始とともにタイマを動作させ、タイマの割り込みを利用し一定時間毎に行っても良い。
【００５３】
次に、ステップＳ３１８では、水平同期信号カウンタが印刷要求を受けた用紙サイズの所定数に達しているかをＣＰＵ１１０１が判断して、所定数に達していると判断された場合（「ＹＥＳ」）、ステップＳ３１９に移り、また所定数に達していないと判断した場合（「ＮＯ」）、印刷要求の用紙サイズに対し、給紙された用紙が小さかったと判断され、ステップＳ３２１に進む。
【００５４】
そして、ステップＳ３１９では、印刷要求の全ての頁が出力完了したかをＣＰＵ１１０１が判断して、全頁の印刷を完了した場合（「ＹＥＳ」）には、ステップＳ３２０で、印刷処理を終了し、次なる印刷ジョブを待つために、ステップＳ３０１へ戻る。
【００５５】
一方、ステップＳ３１９で、全頁の印刷を完了してないと判断した場合（「ＮＯ」）には、次なる頁の印刷に移行する。
【００５６】
そして、ステップＳ３２１は、本発明の特徴である印刷データの強制廃棄モードの設定を行う。
【００５７】
この設定を行うことで、図８に示されるようにデータ伸長部１１００ｅへの伸長要求信号は強制的に「ＴＲＵＥ」となる。データ伸長部１１００ｅは、伸長要求信号が「ＴＲＵＥ」の間はデータ伸長処理を続け、画像データ中に含まれる終了コードをデコードするまで動作する。
【００５８】
図８は、図１に示した印刷部インタフェース制御部１１００ｆからデータ伸長部１１００ｅに対して通知される強制廃棄モード設定回路の一例を示す図であり、図１と同一のものには同一の符号を付してある。
【００５９】
図８において、印刷部インタフェース制御部１１００ｆ内のＦＩＦＯメモリ１１００ｆ−１には、データ伸長部１１００ｅにより伸長されたデータが順次書き込まれて、一定容量のデータが書き込まれると、メモリフル状態を示す信号ＦＵＬＬがデータ伸長部１１００ｅにＯＲゲート１００ｆ−２を介して通知され、結果として、伸長要求信号は強制的に「ＴＲＵＥ」状態となる。
【００６０】
一方、ＯＲゲート１１００ｆ−２には、強制廃棄モードの設定処理により、伸長要求信号は強制的に「ＴＲＵＥ」状態となる。
【００６１】
従って、本実施形態では、ステップＳ３２１で、強制廃棄モードが設定されると、データ伸長部１１００ｅに対して伸長要求信号は強制的に「ＴＲＵＥ」状態となり、データ伸長部１１００ｅは、当該頁のエンドを検出するまで、データ伸長処理を継続し、結果として、リングメモリのリードポインタ２を全頁の途中位置から、強制的に次頁の先頭位置に設定することができる。
【００６２】
続く、ステップＳ３２２では、データ伸長部１１００ｅが終了コードをデコードしたかを判断し、終了コードのデコードを完了していると判断した場合（「ＹＥＳ」）、ステップＳ３２３に移り、次なる頁の印刷に備えるために、データ伸長部１１００ｅ、印刷部インタフェース制御部１１００ｆをリセットして、ステップＳ３１９へ進む。
【００６３】
一方、ステップＳ３２２で終了コードのデコードを完了していないと判断した場合は、デコード完了まで完了フラグを監視する。これら強制廃棄モードを実行した後のＲＡＭ１１０２上のメモリリードポインタは、次なる頁の先頭に位置することとなるので次なる頁に印字不正が起こらない。
【００６４】
以上説明したように、本実施形態によれば、印刷要求の用紙サイズに対し給紙された用紙サイズが小さい場合でも、印刷データをステップＳ３１８でＮＯと判定されることにより、強制廃棄モードが設定されて強制的に廃棄することで、メモリ内で次頁の印刷データまで破棄されてしまうことがなくなり、正常に次の頁の印刷処理を継続できるホストベースプリンタを構成できる。また、より高速なプリントエンジンに対応することができる。
【００６５】
このように、第１実施形態では頁エンドを検出するまでデータ伸長を行い、伸長したデータを破棄すると、頁エンドを検知して伸長、破棄の動作が終了し、必然的に次に読み出すデータは次ページの先頭になる。従って、次ページの先頭にリードポインタを設定するために積極的に制御することを行なわないのでポインタ制御が簡易に行なえるという効果を奏する。
【００６６】
〔第２実施形態〕
上記実施形態では、後述する図４〜図６に示すフローチャートに従って、ＢＤカウント値を監視して、不正な状態にある場合に、直前頁の印刷データを破棄するモードを強制設定して、データ伸長部１１００ｅの伸長処理を直前頁の頁エンドまで強制実行させることにより、データ伸長部１１００ｅ等が強制的にリセットされて、結果として、ＲＡＭ１１０２上に確保されるリングメモリ上のリードポインタ２が、次の頁の先頭を指示するように制御させる場合について説明したが、廃棄すべきデータ量をＢＤカウントが停止している値と、リングメモリのサイズ、停止した直前の頁の先頭アドレス等より算定して、次の頁の先頭アドレスを指示するようにリードポインタ２等を再設定することにより、不正印刷を回避するように構成しても良い。以下、その実施形態について説明する。
【００６７】
図９、図１０は、本発明に係る印刷装置における第２のデータ処理手順の一例を示すフローチャートである。なお、Ｓ３３００〜Ｓ３３２６は各ステップを示し、ＣＰＵ１１００がＲＯＭ１１０３に格納された制御プログラムをＲＡＭにロードして実行することにより実現される。
【００６８】
図９において、プリンタの電源が投入されると、ＣＰＵ１１００はＲＯＭ１１０３に格納された本プログラムを実行する。まず、ステップＳ３３００で、ＲＡＭ１１０２内に確保される不図示の内部レジスタの初期化、また通信線３０００を介してのホストコンピュータ２０００とのコネクションの確立等、プリンタの初期化処理を行い、ホストコンピュータ２０００からのデータ受信待機状態となる。
【００６９】
そして、ステップＳ３３０１で、ホストコンピュータ２０００からデータを受信したかどうかを判断して、受信データがあると判断した場合には、ステップＳ３３０２に進め、また受信データが無いと判断した場合は、ステップＳ３３０１に留め、受信データの監視を継続する。このとき、待機時間を図示しないカウンタによりカウントしておき一定時間を過ぎた場合には、スリープモード等の低電力消費モードに移行するようにしても良い。
【００７０】
一方、ホストコンピュータ２０００ではユーザの指示によって印刷の実行が指示されると、ハードディスク等にインストールされて、ＲＡＭ上のシステムエリアに常駐するプリンタドライバソフトウエアが起動し、アプリケーションソフトのグラフィックデータの解析を行い、印刷イメージの生成を行う。その後、印刷イメージはバンドに区分けされ、データ圧縮が施される。そして、通信線３０００を介してプリンタ１０００に対しデータ送信される。
【００７１】
プリンタ１０００側では、ステップＳ３３０１で、ホストコンピュータ２０００からデータを受信すると、ステップＳ３３０２に進み、受信データの先頭２バイトの読み込みを行う。通信線３０００を介して受信されるデータは、図７に示されるような構成をとるよう取り決められている。図７に示されるように受信データは先頭２バイトがコマンドを表し、次に続く２バイトがコマンド長を表し、さらにデータがそれに続く構成となっている。コマンド長は２バイト、１６ビットで表されるため、全コマンド長は６４ＫＢ未満となっている。このコマンド体系は１例であってシステム構成によって変更しても差し支えない。
【００７２】
そして、ステップＳ３３０３では読み込んだコマンドの種別を判別する。本実施形態では、コマンドはプリンタ制御コマンド、印刷データコマンドに大きく分けられ、コマンドの種別に応じた動作を行う。
【００７３】
そして、ステップＳ３３０４では、コマンド長を判別するためコマンドに続くカウント値２バイトが読み込まれる。次なる動作ステップはコマンドによって異なる。
【００７４】
まず、ステップＳ３３０３で、コマンドが「プリンタ制御コマンド」であると判断した場合は、ステップＳ３３０４でカウント値を読み込み、ステップＳ３３０５に移り、前記コマンド長を表すカウント値からコマンド２バイト、カウント２バイトを差し引いた残りの（カウント−４）バイトのデータを全て受信する。
【００７５】
そして、ステップＳ３３０６では、前記コマンドに対応した制御を実行する。次に、ステップＳ３３０７では実行ステータス（「ＯＫ」、「ＮＧ」等）を取得する。続いて、ステップＳ３３０８で、前記ステータスをホストコンピュータに送信し、送信完了を待ってステップＳ３３０１に戻り、次なるデータ受信を監視する。
【００７６】
一方、ステップＳ３３０３で、コマンドが「画像データコマンド（印刷データコマンドに含まれる）」であると判断した場合は、ステップＳ３３０４でカウント値を読み込み、ステップＳ３３０９に移り、当該画像データが頁の先頭であるかどうか判断して、頁の先頭であると判断した場合（「ＹＥＳ」の場合）、ステップＳ３３１０で頁毎に格納アドレスの先頭アドレスを管理する先頭アドレス管理テーブルに先頭アドレスの追加登録を行う。
【００７７】
一方、ステップＳ３３０９で、頁の先頭でないと判断した場合（「ＮＯ」の場合）、続くステップＳ３３１１で、（カウント−４）バイトの画像データ数をＤＭＡ転送の制御を行うＤＭＡ制御部１１００ｄに設定を行う。この設定を行うことで、ＤＭＡ制御部１１００ｄによるＤＭＡが動作を開始し、画像データはメモリの所定領域に格納され（Ｓ３３１２）、ステップＳ３３０１へ戻る。なお、このステップＳ３３１２は、ハードウエア実行のステップである。
【００７８】
一方、ステップＳ３３０３で、コマンドが「転送終了コマンド（印刷データコマンドに含まれる）」である場合は、ステップＳ３３０４でカウント値を読み込み、ステップＳ３３１３で、ステップＳ３３０５同様に（カウント−４）バイトの残りのデータを読み込む。続いて、ステップＳ３３１４で、プリンタエンジン（印刷部１２００）に対し印刷開始コマンドを送信し、印刷開始を指示する。
【００７９】
プリンタエンジンでは前記印刷開始コマンドを受信すると、前述の印刷シーケンスを開始する。ステップＳ３３１５では、印刷処理に係わるデータ伸長部１１００ｅ、印刷部インタフェース制御部１１００ｆに動作開始を指示する。この動作を開始すると、次のステップＳ３３１６で、ハードウエア制御によってメモリ（ＲＡＭ１１０２）から画像データの読み込みが開始される。データ伸長部１１００ｅではＤＭＡにて読み出されたデータを受け、印刷画像への伸長動作を行う。伸長された印刷画像は印刷部インタフェース制御部１１００ｆ内に設けられたＦＩＦＯメモリ（図８参照）へ書き込まれる。
【００８０】
続いて、印刷部インタフェース制御部１１００ｆ内の画像シッピング回路（図示しない）は、プリンタエンジン（印刷部１２００）からの垂直同期信号を受け、所定の上マージン、また水平同期信号（以下、「ＢＤ信号」と記す）を受け所定の左マージン（プリンタエンジンによっては右マージン）をカウントした後、印刷画像データをプリンタエンジンに送出して、ステップＳ３３１８以降へ進む。
【００８１】
一方、ステップＳ３３０３で、コマンドが「その他の印刷データコマンド」であると判断した場合は、ステップＳ３３１３に続く、ステップＳ３３１７でコマンドに対応した制御を実行して、ステップＳ３３０１へ戻る。
【００８２】
このようにして印刷処理が開始されると、図１０に示すステップＳ３３１８で水平同期信号カウンタ（ＢＤＣ）のリードを行う。前記水平同期カウンタ（ＢＤＣ）は、図６で示されるように割り込み処理ルーチンで処理され、ＢＤ信号が入る毎に毎回カウントを「＋１」する。なお、初期化は一頁の印刷が終了した後に行われる。
【００８３】
そして、ステップＳ３３１９では、前回読んだカウンタ値（ＢＤＣｐｒｅｖｉｏｕｓ）と今回読んだ値（ＢＤＣｃｕｒｒｅｎｔ）とが一致するかどうかを判断して、一致しないと判断した場合（「ＮＯ」の場合）、まだ画像出力中であると判断され、また、一致すると判断した場合（「ＹＥＳ」の場合）は、ＢＤ信号が止まったことを意味し、画像出力終了と判断する。
【００８４】
ここで、ＣＰＵ１１０１の処理動作がＢＤ割り込み間隔に対して十分に遅いことを想定している。また、ＣＰＵ１１０１の処理動作が速い場合には、カウンタ値の読み込みは、印刷開始とともにタイマを動作させ、タイマの割り込みを利用し一定時間毎に行っても良い。
【００８５】
次に、ステップＳ３３２０では、水平同期信号カウンタが印刷要求を受けた用紙サイズの所定数に達しているかを判断して、所定数に達していると判断した場合（「ＹＥＳ」）は、ステップＳ３３２１に移り、また所定数に達していないと判断した場合（「ＮＯ」）は、印刷要求の用紙サイズに対し、給紙された用紙が小さかったと判断され、ステップＳ３３２３に移る。
【００８６】
そして、ステップＳ３３２１では、印刷要求の全ての頁が出力完了したかを判断して、全頁の印刷を完了した場合（「ＹＥＳ」）には、ステップＳ３３２２で、印刷処理を終了して、次なる印刷ジョブを待つため、ステップＳ３３０１へ戻る。
【００８７】
一方、ステップＳ３３２１で全頁の印刷を完了してない場合（「ＮＯ」）には、次なる頁の印刷処理に移行するため、ステップＳ３３０１へ戻る。
【００８８】
そして、ステップＳ３３２３〜Ｓ３３２６までのステップは、本発明の特徴である印刷データの強制廃棄モードの設定処理である。
【００８９】
まず、ステップＳ３３２３で、破棄すべき印刷データのデータ量を計数する。計数は、先頭アドレス管理テーブルに登録された当該印刷ページの先頭アドレスをＡ（ｎ）、次頁の先頭アドレスをＡ（ｎ＋１）とし、またＢＤ信号が停止した時のリングメモリのリードポインタの値を「ＲＰ」、リングメモリの最大アドレスを「ＡＭＡＸ」とすれば、以下の第（１）式、第（２）式で容易に算定することができる。
【００９０】
破棄データ量＝ＡＭＡＸ＋Ａ（ｎ＋１）＋２−ＲＰ  ……（１）
（ＲＰ≧Ａ（ｎ＋１）の場合）
破棄データ量＝Ａ（ｎ＋１）−ＲＰ＋１              ……（２）
（ＲＰ＜Ａ（ｎ＋１）の場合）
続いて、ステップＳ３３２４で、前記求めた破棄データ量を差し引いた値をリングメモリデータカウンタに再設定する。ステップＳ３３２５で、前記次頁の先頭アドレスＡ（ｎ＋１）をリングメモリのリードポインタ２に再設定する。
【００９１】
ステップＳ３３２６で、次なる頁の印刷に備えるために、データ伸長回路、印刷制御回路をリセットして、ステップＳ３３２１へ進む。
【００９２】
これら強制廃棄モードの一連の処理を行うことで、リングメモリのリードポインタ２は、次なる頁の正常な先頭に位置することとなり、リングメモリのデータカウンタの値もつじつまが合うこととなり、次なる頁に印刷不正がおこらない。
【００９３】
以上説明したように、本実施形態によれば、印刷要求の用紙サイズに対し給紙された用紙サイズが小さい場合でも、印刷データを強制的に廃棄することで、メモリ内に次頁の印刷データまで破棄すること無く印刷を継続できるホストベースプリンタを構成できる。また、より高速なプリンタエンジンに対応することができる。
【００９４】
以下、図１１に示すメモリマップを参照して本発明に係る印刷システムで読み取り可能なデータ処理プログラムの構成について説明する。
【００９５】
図１１は、本発明に係る印刷システムで読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【００９６】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【００９７】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【００９８】
本実施形態における図４〜図６、図９，図１０に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【００９９】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１００】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０１】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１０２】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１０３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１０５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０８】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【０１０９】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるものではない。
【０１１０】
なお、本発明は、上記した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【０１１１】
【図１】本発明の第１実施形態を示す印刷装置を適用する印刷システムの一例を示すブロック図である。
【図２】図１に示した印刷装置の概略構成を説明する断面図である。
【図３】図１に示したＲＡＭのメモリマップを説明する模式図である。
【図４】本発明に係る印刷装置における第１のデータ処理手順の一例を示すフローチャートである。
【図５】本発明に係る印刷装置における第１のデータ処理手順の一例を示すフローチャートである。
【図６】本発明に係る印刷装置における第１のデータ処理手順の一例を示すフローチャートである。
【図７】図１に示したホストコンピュータから受信するデータ構造を説明する図である。
【図８】図１に示した印刷部インタフェース制御部からデータ伸長部に対して通知される強制廃棄モード設定回路の一例を示す図である。
【図９】本発明に係る印刷装置における第２のデータ処理手順の一例を示すフローチャートである。
【図１０】本発明に係る印刷装置における第２のデータ処理手順の一例を示すフローチャートである。
【図１１】本発明に係る印刷システムで読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１１２】
１０００  印刷装置
１１００ｂ  ＣＰＵインタフェース制御部
１１００ｃ  メモリ制御部
１１００ｄ  ＤＭＡ制御部
１１００ｅ  データ伸長部
１１００ｆ  印刷部インタフェース制御部
１１０１  ＣＰＵ
１１０２  ＲＡＭ
１１０３  ＲＯＭ
【図１】
0004593946.tif 000002
【図２】
0004593946.tif 000003
【図３】
0004593946.tif 000004
【図４】
0004593946.tif 000005
【図５】
0004593946.tif 000006
【図６】
0004593946.tif 000007
【図７】
0004593946.tif 000008
【図８】
0004593946.tif 000009
【図９】
0004593946.tif 000010
【図１０】
0004593946.tif 000011
【図１１】
0004593946.tif 000012