JP2005119122A - 印刷装置、印刷処理方法およびそのプログラム - Google Patents

印刷装置、印刷処理方法およびそのプログラム Download PDF

Info

Publication number
JP2005119122A
JP2005119122A JP2003356389A JP2003356389A JP2005119122A JP 2005119122 A JP2005119122 A JP 2005119122A JP 2003356389 A JP2003356389 A JP 2003356389A JP 2003356389 A JP2003356389 A JP 2003356389A JP 2005119122 A JP2005119122 A JP 2005119122A
Authority
JP
Japan
Prior art keywords
module
printing
data
modules
print
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003356389A
Other languages
English (en)
Other versions
JP2005119122A5 (ja
JP4407231B2 (ja
Inventor
Yasuhiro Oshima
康裕 大島
Goro Ishida
悟郎 石田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003356389A priority Critical patent/JP4407231B2/ja
Priority to US10/964,823 priority patent/US7354124B2/en
Publication of JP2005119122A publication Critical patent/JP2005119122A/ja
Publication of JP2005119122A5 publication Critical patent/JP2005119122A5/ja
Application granted granted Critical
Publication of JP4407231B2 publication Critical patent/JP4407231B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J29/00Details of, or accessories for, typewriters or selective printing mechanisms not otherwise provided for
    • B41J29/38Drives, motors, controls or automatic cut-off devices for the entire printing mechanism
    • B41J29/393Devices for controlling or analysing the entire machine ; Controlling or analysing mechanical parameters involving printing of test patterns

Landscapes

  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】 プリンタに新たな機能を組み込もうとすると、従来から組み込まれていた機能との整合性をとって実現することが困難であった。
【解決手段】 プリンタに必要な機能を、複数のモジュールの組合わせにより実現するよう、イニシエータモジュール、メンバーモジュール、ターミネータモジュールを用意し、これらのモジュールをデータ処理経路コントローラDPCによりつなぎ合わせて、所定の印刷処理を実現する。その際、各モジュールが組み合わされる相手の構成や処理について知る必要がないように、データを読み取られる側、データを書き込ませる側が、読み取り用、書き込み用の関数を用意し、データ処理経路コントローラDPCからの呼び出し時にこれらの関数のポインタを渡して、相手側から、データの読み取り、書き込みを実現させる。
【選択図】 図10

Description

本発明は、印刷を行なう技術に関し、複数の印刷処理を実現する印刷装置の内部構成に関する。
コンピュータなどの出力端末として広く普及しているプリンタなどの印刷装置は、コンピュータ側からデータを受け取り、印刷用のヘッドを駆動して、用紙などの媒体上にドットを形成することで印刷を行なっている。プリンタの歴史を振り返ると、当初は、プリンタ内部にフォントを展開するキャラクタジェネレータを有し、コンピュータ側からテキストデータを受け取って印刷を行なっており、コンピュータにおけるグラフィック処理機能の向上・普及に伴って、画像データを受け取ってこれを印刷する処理が加わった。
画像データの印刷は、様々な考え方が採り得るが、コンピュータ上のアプリケーションプログラムが扱うデータの多様性を前提にすると、コンピュータにインストールされたプリンタドライバにより、プリンタのヘッドや紙送りの特性に合わせたデータを生成し、これをプリンタに転送して印刷を行なわせる構成が標準的に採用されてきた。この種のプリンタドライバは、プリンタにおける解像度、インクの色数を含む色の表現能力、印刷用ヘッドのノズル構成(ノズル数やノズルピッチ)、紙送りの精度などのデータを予め記憶しており、このデータに従って、ヘッドが形成すべきドットデータを生成する。例えば、印刷装置であるプリンタが、シアン(C)、マゼンタ(M)、イエロ(Y)、ブラック(K)のインクの他に、濃度の低いライトシアン(LC)、ライトマゼンタ(LM)などのインクを備え、かつその印字ヘッドが、大中小の三種類のインク滴を吐出可能なインクジェットタイプのプリンタであれば、プリンタドライバは、アプリケーションプログラムから受け取った画像データを、ラスタライズし、色補正を行ない、6色大中小のインク滴により画像を表現するハーフトーニングの処理を行なう。こうした印刷処理装置を示す技術文献としては、例えば以下に示す特許文献1などが知られている。
特開2003−51003号公報
他方、近年、デジタルスチルカメラ(いわゆるデジタルカメラ)や電子手帳あるいは携帯電話などの周辺機器の普及に伴い、これらの機器のデータをコンピュータを介することなく印刷したいという要請が高まっている。こうした周辺機器は、内部のCPUの処理能力やメモリ容量などが制限されているので、上述したラスタライズ、色補正、ハーフトーニングなどの処理を自分自身で行なうことは、困難である。そこで、こうしたラスタライズ、色補正、ハーフトーニングなどの処理を行なうモジュールをプリンタに組み込み、周辺機器からは、JPEG形式などの画像データを受け取り、これをプリンタ内部で処理して印刷を行なう印刷装置が提案されている。こうした印刷装置では、従来通り、コンピュータに接続しての印刷することも当然考えられる。このため、これらの印刷装置では、コンピュータ側で画像処理を済ませた印刷用のデータを受け取って印刷する場合もあれば、画像データそのものを受け取って、内部で画像処理を行なって印刷する場合もあった。後者の印刷を、ダイレクトプリントと呼ぶことがある。
しかしながら、従来の印刷装置を改良する形で、新たな機能であるダイレクトプリントなどの機能を加えてきたために、印刷装置の内部構成が次第に複雑化し、複数の印刷処理を誤りなく実現することが、場合によっては困難であるという状況が生じた。特に、プリンタ内部で実現されている機能のうち、本来は競合しない二つ以上の機能を同時に使用しようとしても、それらの機能を誤りなく並行して実行することを保障できず、結局処理に時間を要するという問題があった。また、既に設計した印刷装置に新たな機能を追加しようとすると、各種の機能を実現しているモジュールとの整合性をその都度取らねばならず、印刷装置の開発に多大の手間を要するという問題もあった。
本発明の目的は、こうした問題の少なくとも一つを解決し、複数の印刷処理を容易に実現しうる印刷装置の内部構成を提供することにある。
かかる目的を達成する本発明の印刷装置は、
印刷用のヘッドを駆動して、媒体に印刷を行なう印刷装置であって、
印刷しようとするデータを準備するモジュール、該データを印刷用に処理するモジュール、該処理済みのデータを印字するために前記ヘッドを含むハードウェアを制御するモジュールを含む複数の処理モジュールと、
当該印刷装置における複数の印刷処理を実現する前記各モジュールの組合わせを記憶する組合わせ記憶手段と、
前記複数の印刷処理の一つが指定されたとき、前記記憶されたモジュールの組合わせに従って前記複数のモジュールを組み合わせ、該印刷処理を実行する印刷処理実行手段と
を備えたことを要旨とする。
この印刷装置では、予め、印刷しようとするデータを準備するモジュール、該データを印刷用に処理するモジュール、該処理済みのデータを印字するために前記ヘッドを含むハードウェアを制御するモジュールを含む複数の処理モジュールを用意しており、更に、複数の印刷処理を実現するこれら各モジュールの組合わせを記憶している。そこで、複数の印刷処理の一つが指定されると、記憶されたモジュールの組合わせを従って複数のモジュールを組み合わせ、該印刷処理を実行する。このため、複数の印刷処理を容易に実現することができる。また、開発に要する手間も削減することができる。
この発明は、印刷装置としてのみならず、印刷方法として、あるいは印刷を実現するプログラムとしても把握することができる。また、これらの印刷装置、印刷方法、印刷用プログラムにおいて、以下の構成を取ることが可能である。
本発明において、モジュールの少なくとも一つは、上流に位置するモジュールが用意したデータを受け取りに行く手続、または上流に位置するモジュールによりデータの書き込みを受ける関数を提供する手続を備えたモジュールとすることができる。あるいは、モジュールの少なくとも一つは、上流に位置するモジュールが用意したデータを受け取りに行く手続、または上流に位置するモジュールによりデータの書き込みを受ける関数を提供する手続を備えたモジュールとすることができる。各モジュールをこのように構成することにより、各モジュールは上流または下流に配置されるモジュールによらず設計することができる。
こうしたモジュール構成を採用した場合、上流側のモジュールと下流側のモジュールとの組合わせによっては、いずれのモジュールもデータを受け渡しするための関数を提供しようとする組合わせ(組合わせA)や、両モジュールが共に関数を提供しない組合わせ(組合わせB)が生じ得る。もともとこうした組合わせが生じないように、各モジュールの組合わせを記憶しても良いが、次の対応を取ることも可能である。即ち、
下流に位置するモジュールに対してデータを書き込みに行く手続と、上流に位置するモジュールが用意したデータを受け取りに行く手続とを規定した手続型中間モジュールを用意すれば、前者の組合わせAに対処して、モジュール間でデータを受け渡すことが可能になる。あるいは、後者の組合わせBの場合には、下流に位置するモジュールからデータの読み取りを受ける関数を提供する手続と、上流に位置するモジュールによりデータの書き込みを受ける関数を提供する手続とを規定した提供型中間モジュールを用意すればよい。
こうした場合には、印刷処理実行手段は、予め記憶した各モジュールの組合わせに従って各モジュールを組み合わせる際、組み合わされるモジュールの組合わせが前者、即ち組合わせAには、上流に位置するモジュールと下流に位置するモジュールとの間に手続型中間モジュールを配置すればよい。同様に、後者、即ち組合わせBの場合には、印刷処理実行手段は、上流に位置するモジュールと下流に位置するモジュールとの間に提供型中間モジュールを配置すればよい。
なお、モジュールのうち、組合わせの最も上流にのみ位置するモジュールについては、その上流に位置するモジュールに対する手続を持たないイニシエータモジュールとしたり、組合わせの最も下流にのみ位置するモジュールについては、その下流に位置するモジュールに対する手続を持たないターミネータモジュールとしたりすることも可能である。
こうしたイニシエータモジュールとしては、前記印刷処理に対応したデータを記憶したデータ記憶手段を備えたものを考えることができる。また、ターミネータモジュールは、前記印刷装置のハードウェアを制御するインタフェースモジュールを考えることができる。
各モジュールは、様々な形態で呼び出して用いられるが、例えば、各モジュールの組合わせを記憶する際、当該モジュールが、一つの印刷処理において使用中に、他の印刷処理から呼び出し可能であるか否かの排他制御情報を記憶しておき、かつ一の印刷処理のために、当該モジュールが使用中であるか否かを示す使用中情報も記憶しておき、所定の印刷処理の実行を外部から指示され時、この使用中情報と当該モジュールの排他制御情報とを参照し、当該外部から指示された印刷処理に用いるモジュールの少なくとも一つが、一つの印刷処理において他の印刷処理から呼び出し可能でないモジュールであり、かつ使用中の場合には、当該外部から指示された印刷処理を実行しないものとすることができる。こうすれば、一つのモジュールを他の印刷処理に使用したり、使用を禁止したりといった対応を容易に実現することができる。他のモジュールから呼び出し可能であるか否かは、一義的に決定してもよいが、同時に呼び出し得る最大回数を規定しておき、その回数に達するまでは、他のモジュールから呼び出し可能として扱うものとしても良い。
印刷処理の実行をしないという対応としては、外部から指示された印刷処理をキャンセルする処理、使用中のモジュールの使用が終了するまでその印刷処理を延期する処理などを考えることができる。
上記の印刷装置としては、種々の実現形態を考えることができる。例えば、外部のコンピュータと接続可能なコネクタと、このコネクタを介して、コンピュータと間で、印字用に展開されたデータのやりとりを行なう通信手段とを備え、組合わせ記憶手段は、複数の印刷処理の一つとして、このコネクタを介して受け取った印字用データを用いて、印刷用のヘッドを駆動し、媒体上に印刷を行なう印刷処理を実現する前記各モジュールの組合わせを記憶している構成を考えることができる。かかる印刷装置は、コンピュータに接続して行なわれる従来通りの印刷を実現する。
あるいは、電子スチルカメラ、電子手帳、携帯電話などの周辺機器が接続されるコネクタと、このコネクタを介して、これら周辺機器から、画像データを受け取る通信手段とを備え、組合わせ記憶手段は、複数の印刷処理の一つとして、コネクタを介して受け取った画像データを展開して印字用データを生成し、印字用データに基づいて印刷用のヘッドを駆動し、媒体上に印刷を行なう印刷処理を実現する各モジュールの組合わせを記憶している構成を考えることもできる。かかる印刷装置は、周辺機器から画像データそれ自体を受け取って、直接印刷することができる。
あるいは、画像データを記憶したメモリカードを装着するカードスロットと、このカードスロットに装着されたメモリカードに記憶された画像データを読み取る入力手段とを備え、組合わせ記憶手段は、複数の印刷処理の一つとして、読み取った画像データを展開して印字用データを生成し、この印字用データを用いて、印刷用のヘッドを駆動し、媒体上に印刷を行なう印刷処理を実現する各モジュールの組合わせを記憶している構成を考えることもできる。かかる印刷装置は、カードスロットに装着されたメモリカード内の画像を容易に印刷することができる。
更には、電子スチルカメラ、電子手帳、携帯電話などの周辺機器からの画像データの入力を、無線通信により行なうものとすることもできる。こうした無線通信としては、赤外線を用いた通信や短距離無線通信(例えばブルートゥース(商標))などを用いた通信などを考えることができる。
かかる印刷装置における複数の印刷処理の一つとしては、双方向印字の位置調整用のドットパターンの印刷処理を考えることができる。あるいは、ノズルチェック用のドットパターンの印刷処理なども考えられる。これらの印刷処理を実現するには、その印刷処理を実現するための前記各モジュールの組合わせを予め記憶しておけばよい。
なお、印刷装置としては、単に印刷機能だけに限る必要はなく、例えば画像を光学的に読み取って画像データに変換する画像読み取り手段を備えた印刷装置や、外部の通信回線との通信機能を備えた印刷装置、テレビやビデオなどの動画の再生機能を備えた印刷装置など、種々の付加的な可能を備えた印刷装置考えることができる。画像読み取り手段を備えた印刷装置では、複数の印刷処理の一つとして、読み取った画像データを展開して印字用データを生成し、該印字用データに基づいて印刷用のヘッドを駆動し、媒体上に印刷を行なう印刷処理を実現することが可能である。同様に、通信機能を備えた印刷装置では、ファックスの送受信機能、あるいはメールなどを受け取ったときなどに自動的に印刷する自動印刷機能などを実現することができる。テレビやビデオなどの動画再生機能を備えた場合には、同様に動画の印刷や動画タイトルの印刷などを実現することができる。
次に、本発明を実施するための形態を、実施例を挙げて説明する。説明は以下の順に行なう。
(1)ハードウェア構成:
(2)印刷処理の概要:
(3)各モジュールの組み立て:
(4)データ処理経路コントローラDPCの働き:
(5)各ソフトウェアモジュールの構造と相互のやりとり:
(6)アダプタの構成:
(7)プリンタの動作:
(1)ハードウェア構成:
実施例のプリンタ20のハードウェア構成について説明する。図1は、このプリンタ20の動作に関与する部分を中心に、その構成を模式的に示す説明図である。また、図2は、プリンタ20の構成を制御装置22を中心に示すブロック図である。図1に示したように、このプリンタ20は、給紙ユニット26から給紙されプラテン25によって搬送される用紙Pに、印字ヘッド61ないし66から、インク滴を吐出して、用紙P上に画像を形成する。プラテン25は、紙送り用モータ40からギヤトレイン41を介して伝達される駆動力により回転・駆動される。このプラテンの回転角度は、エンコーダ42により検出される。印字ヘッド61ないし66は、用紙Pの幅方向に往復動するキャリッジ50に設けられている。このキャリッジ50は、ステッピングモータ23により駆動される搬送用ベルト21に結合されている。搬送用ベルト21は、無端ベルトであり、ステッピングモータ23と、その反対側に設けられたプーリ29との間に架設されている。従って、ステッピングモータ23が回転すると、キャリッジ50は、搬送用ベルト21の移動に伴い、搬送用のガイド24に沿って往復動する。
次に、キャリッジ50に搭載された6色のインクカートリッジ111ないし116について説明する。6色のインクカートリッジ111ないし116は、基本的な構造は同一であり、その内部の収容室に収容されるインクの組成、即ち色が異なっている。インクカートリッジ111ないし116には、それぞれ黒色のインク(K)、シアンインク(C)、マゼンタインク(M)、イエロインク(Y)、ライトシアンインク(LC)、ライトマゼンタインク(LM)、が収容されている。ライトシアンインク(LC)、ライトマゼンタインク(LM)は、それぞれ、シアンインク(C)、マゼンタインク(M)より、その染料濃度において、1/4程度に調整された淡い色のインクである。これらのカートリッジ111ないし116には、記憶処理モジュール121ないし126が取り付けられている。この記憶処理モジュール121ないし126は、無線通信により、プリンタ20側の制御装置22とデータの交換などを行なうことができる。
これらの記憶処理モジュール121ないし126と無線によるデータ交換を行なうために、プリンタ20には、通信用の送受信部30が設けられている。送受信部30は、他の電子部品、例えば、紙送り用モータ40、ステッピングモータ23、エンコーダ42等と共に、制御装置22に接続されている。制御装置22には、この他、プリンタ20の前面に用意された操作パネル70やカードスロット80、あるいは各種機器との接続を行なうコネクタ群90などにも接続されている。操作パネル70には、印刷のための設定を行なう各種操作スイッチ77や、LED78が設けられている。カードスロット80には、スマートメディアやコンパクトフラッシュ(登録商標)など複数種類のメモリカードや装着されるマルチスロットである。また、コネクタ群90には、コンピュータとの接続を行なうUSBコネクタ91,デジタルスチルカメラや携帯電話などと接続を行なうもう一つのUSBコネクタ92,赤外線通信を行なうための赤外線通信ポート95などが設けられている。USBコネクタが2つ、区別して設けられているのは、一つはプリンタ20側をスレーブとして機能させるためのポートであり、もう一つがプリンタ20側をマスタとして機能させるためのポートだからである。
この制御装置22は、図2に示すように、その内部に、プリンタ20全体の制御を司るCPU251、その制御プログラムを記憶したPROM252、データの一時保存に用いられるRAM253、ハードウェアにより画像のリサイズを行なうリサイズユニット261、画像の2値化処理(ハーフトーニング)を行なう2値化ユニット263、印字ヘッド61ないし66のノズル配置に合わせてデータを整序する配列ユニット265、外部の機器とのインタフェースを司るPIO254、時間を管理するためのタイマ255、印字ヘッド111ないし116を駆動するためのデータを蓄える駆動バッファ256などを備え、これらを、バス257で相互に接続している。制御装置22には、これらの回路素子の他、発振器258や分配出力器259なども設けられている。分配出力器259は、発振器258から出力されるパルス信号を、6つの印字ヘッド61ないし66のコモン端子に分配するものである。印字ヘッド61ないし66は、そのオン・オフ(インクを吐出する・しない)のデータを、駆動バッファ256の側から受取り、分配出力器259から駆動パルスを受け取った時点で、駆動バッファ256の側から出力されたデータに従って、インクを対応するノズルから吐出する。
制御装置22のPIO254には、既に説明したステッピングモータ23、紙送り用モータ40、エンコーダ42、送受信部30、操作パネル70、カードスロット80,コネクタ群90などが接続される。また、PIO254には、送受信部30も接続されており、送受信部30を介して、カートリッジ111ないし116の記憶処理モジュール121ないし126とデータ通信を行なうことができる。制御装置22は、この通信により、カートリッジ111ないし116内のインク残量などを知ることができる。また、プリンタ20の電源断時など所定のタイミングで、制御装置22内部で演算したインク消費量(インク残量)をカートリッジ111ないし116の記憶処理モジュール121ないし126に書き込むことができる。
(2)印刷処理の概要:上記のハードウェア構成を有するプリンタ20では、印刷時の動作は、概ね次の通りである。
(A)コンピュータからの印刷:コンピュータPC上で動作しているアプリケーションプログラムから印刷を行なう場合には、アプリケーションプログラムは、印刷すべき画像データを用意すると、オペレーティングシステムに組み込まれたプリンタドライバを呼び出し、画像データをプリンタドライバに引き渡す。画像データを受け取ったプリンタドライバは、内蔵するラスタライザ、色補正処理、ハーフトーニング処理、配列処理などを実行し、画像データを対応するプリンタにおいて印刷するための印刷データに変換する。変換済みのデータは、プリンタ20のインク構成(インク色数、種類)やインク滴の構成(大中小)、更には印字ヘッド61ない66のノズル数やノズルピッチに対応している。従って、この場合、プリンタ20は、USBコネクタ91から読みとったデータを単純に保存し、これを所定のタイミングで駆動バッファ256を介して印字ヘッド61ないし66に転送すれば、多色の印刷が完了する。もとより印字ヘッド61ないし66からインク滴が吐出されるのに同期し、ステッピングモータ23の駆動によるキャリッジ50の搬送(主走査)や紙送り用モータ40の駆動による用紙Pの搬送(副走査)などの処理も行なわれる。なお、このプリンタ20は、赤外線通信ポート95を用いて、赤外線通信の機能を有する携帯電話や電子手帳などの機器と通信することができる。携帯電話などから画像データを受け取って印刷する工程は、デジタルスチルカメラDSCから画像データを受け取って印刷する工程と、画像データの受け渡しの処理を除いて同様なので、処理の説明は省略する。
(B)デジタルスチルカメラ等からの印刷:デジタルスチルカメラDSCからの印刷は、通常ダイレクトプリントとして実現される。即ち、USBコネクタ92に接続されたデジタルスチルカメラDSCとの間では、プリンタ20側がマスタとなってデータの交換が行なわれる。使用者は、デジタルスチルカメラDSCとプリンタ20との間のデータのやりとりが確立すると、プリンタ20の操作パネル70に設けられた操作スイッチ77を操作して、印刷の様式(用紙に何枚印刷するかといった設定)を指定し、デジタルスチルカメラDSC側から、JPEG形式などの画像データを送信する。プリンタ20は、USBコネクタ92を介して画像データを受け取ると、これを内部のリサイズユニット261、2値化ユニット263、配列ユニット265などより処理し、印刷データを得て、印字ヘッド61ないし66やステッピングモータ23、紙送り用モータ40などを駆動する。これにより、画像データの印刷が完了する。
(C)メモリカード等からの印刷:カードスロット80にメモリカードMCが装着され、このメモリカードMC内に画像データが存在すると、プリンタ20は、これを読み出して印刷を行なう。このカード印刷は、上述したデジタルスチルカメラDSC内の画像データの印刷と、画像データの取出の処理を除いて、ほぼ同一の処理により行なわれる。即ち、カードプリントを行なう場合には、プリンタ20は、カードスロット80にメモリカードMCが装着されたことを検出すると、このメモリカードMC内の画像データを読み取り、使用者による操作スイッチ77を用いた指定により指定された画像データを、指定された様式で印刷する。画像のリサイズや2値化の処理などは、デジタルスチルカメラDSC空の印刷と同様である。
(D)メンテナンス印刷:メンテナンス印刷とは、プリンタ20自身の必要に応じて行なうプリントである。こうしたメンテナンス印刷には、デモ画像を印刷するデモ印刷、ノズルの状態をチェックするために行なうノズルチェック印刷、双方向印字の調整を行なうためのバイデイチェック印刷、等がある。これらの印刷では、印刷する画像データは、プリンタ20の内部に予め用意されている。この場合、印刷するデータは、基本的に最初から印字ヘッド61ないし66の構成に合わせた印刷データとして用意される。プリンタ20は、メンテナンス印刷は、操作パネル70の操作スイッチ77を操作することにより指定される。例えば、デモ印刷の場合には、操作スイッチの一つを押したまま電源を投入することにより実行される。またノズルチェック印刷は、操作スイッチ77のうちの特定の二つを同時に押すことにより実行される。こうしたメンテナンス印刷の一つが指定されると、プリンタ20は、印刷すべきドットパターンをPROM252から読み出し、これを印字ヘッド61ないし66に出力し、合わせてステッピングモータ23や紙送り用モータ40を駆動することにより、デモ印刷やメンテナンスに必要な画像の印刷を行なう。
以上の説明では、用紙P上に画像を形成する処理については、簡略な記載にとどめたが、まとめて説明すると、次の通りである。プリンタ20において印刷すべき画像が特定され、そのラスタライズ、色変換、ハーフトニングなどの処理が行なわれた印刷用のデータが、プリンタ20において準備されると、制御装置22は、キャリッジ50の移動位置をステッピングモータ23の駆動量により検出しつつ、紙送りの位置をエンコーダ42からのデータで確認し、これらに合わせて、印字ヘッド61ないし66のノズルから吐出すべきインクのオン・オフのデータを駆動バッファ256に出力し、かつ分配出力器259を駆動して、印字ヘッド61ないし66から所望のインク滴を吐出させる。この処理を、用紙Pの先端から順次繰り返すことにより、用紙P上に画像が形成される。
(3)各モジュールの組み立て:
以上、プリンタ20のハードウェア構成および印刷処理概要について説明したが、このプリンタ20の総てのハードウェアは制御装置22により制御される。この制御装置22の動作は、PROM255に記憶されたプログラムをCPU251が実行することにより実現される。従って、上述した各種印刷処理は、結局PROM252に記憶されたプログラムをCPU251が実行することにより実施されることになる。そこで、次に、制御装置22において実行されるプログラム、即ちソフトウェアの構成について説明する。この実施例におけるプリンタ20では、印刷処理を実行するソフトウェアを複数のモジュールに分割し、各モジュール間のデータのやりとりの仕組みを規定することで、上述した複数の印刷処理を容易に実現しうる構造を実現した。
図3は、このプリンタ20において印刷を実現するソフトウェアの概略構成を示す説明図である。実際に印刷処理が行なわれる場合には、後述するように必要なモジュールが再構成される。従って、図3は、実際に特定の印刷処理に対応したソフトウェア構成を示すのではなくは、プリンタ20における処理の大まかなソフトウェア構成を示している。図示するように、プリンタ20を制御するソフトウェア群の基底では、オペレーティングシステムあるITRONが動作している。総てのソフトウェアは、ITRONの上で開発され、必要なライブラリなどもその環境の下で用意されている。
オペレーティングシステムの上には、いくつかのハードウェア制御モジュールHALが用意されている。これらのハードウェア制御モジュールHALは、上述したリサイズユニット261,2値化ユニット263,配列ユニット265はもとより、PIO254を介してアクセスされる各種ハードウェアを制御するモジュールである。これらのハードウェア制御モジュールの上部に、各種の処理をソフトウェアにより行なう処理モジュール群DPMが用意されている。更に、これらの処理モジュール群DPMの中から必要なモジュールを選択し、また必要なハードウェア制御モジュールHALを選択し、処理の流れを構築するために、専用のモジュールであるデータ処理経路コントローラDPCが用意されている。
これらのモジュール群の上位には、順にファンクションFC、サービスSV、ユーザインタフェースUIなどか形成されている。ファンクションは、例えばカードスロット80に装着されたメモリカードMC内の画像を印刷する場合などに呼び出される機能であり、外部との通信など、プリンタに元から用意されていた機能とは異なる一群の機能を実現するために用意されている。その上のサービスSVは、ユーザインタフェースUIと協働して、操作パネル70の操作スイッチ77やコネクタ群90に接続された外部の機器からの要求を受け取り、各種の印刷処理を起動する。ユーザインタフェースUIを介して、外部からの要求を受け取ったサービスは、ハーネスHNと呼ばれる機能を用いて、ファンクションFCやデータ処理経路コントローラDPC、あるいはその他のモジュールを呼び出す。ハーネスHNと呼ばれる機能別の単位を用意しているのは、プリンタ20の内部には、単純にソフトウェアにより処理される種々の機能以外に、それらの機能に関わるハードウェアインタフェースIFDや各種ハードウェアのステータスを管理するステータス管理モジュールDSMなども存在するからである。ハーネスと呼ばれる機能別の単位を用意することで、ソフトウェアモジュール群の呼び出しをデータ処理経路コントローラDPCを用いて行なうと共に、その他のインタフェースなどの整合性をとり、プリンタを機能別に使用可能とすることが容易となっている。
(4)データ処理経路コントローラDPCの働き:
次に、データ処理経路コントローラDPCの働きについて説明する。データ処理経路コントローラDPCは、ユーザインタフェースUIを介して、使用者がプリンタ20を操作したとき、使用者の操作内容に基づいて、サービスSVが下層のハーネスHNの一つを呼び出すことをきっかけとして、動作する。上位の層からみれば、データ処理経路コントローラDPCに対して、モジュールの確保などを行なわせるLockProcessなどの関数がAPIが定義されている。上位の層は、これらのAPIを用いて、データ処理経路コントローラDPCを制御する。データ処理経路コントローラDPCは、機能別の単位であるハーネスHNから呼び出されて動作を開始し、ハーネスHNが要求する処理を実現するのに必要なモジュールの組合わせを実現するのである。
データ処理経路コントローラDPCがコントロールするモジュール群の一例を図4に示した。データ処理経路コントローラDPCは、図4に示したように、このプリンタ20では、大きくは3つに分けられる。一つは、イニシエータモジュールと呼ばれるモジュール群であり、データ処理においては常に先頭に位置するものとして規定されているモジュールである。図4では、イニシエータモジュールは、I−AからI−Cまで、3種類存在するものとして示した。もう一つは、ターミネータモジュールと呼ばれるモジュール群であり、これはイニシエータモジュールとは逆に、データ処理においては常に終端に位置するものとして規定されているモジュールである。図4では、ターミネータモジュールは、T−AからT−Cまで、3種類存在するものとして示した。これらのイニシエータモジュール、ターミネータモジュールの数は、実現しようとする印刷処理に合わせて定めればよい。最後の一つは、メンバーモジュールと呼ばれるモジュール群である。このメンバーモジュールは、図4ではM−AからM−Iまで、9種類を示したが、印刷処理の先頭と終端以外の場所に位置するモジュールである。
イニシエータモジュール,メンバーモジュール,ターミネータモジュールの配列については、実現すべき印刷処理の内容毎に予め決められている。その一例を図5に示した。図5では、上述した印刷種類(A)ないし(D)を用いて、各モジュールの組合わせとその順序(これをデータストリームと呼ぶ)の定義を示した。例えば通常印刷(A)であれば、イニシエータモジュールI−Aが先頭になり、メンバーモジュールM−E→M−Hの順にデータ処理がなされ、ターミネータモジュールT−Aに最終的にデータが渡されることになる。図5に示したデータストリームの定義に従い、各モジュールが配列された様子の一部を図6に示した。
(5)各ソフトウェアモジュールの構造と相互のやりとり:
次に、データ処理経路コントローラDPCにより組み合わされて、実際のデータの処理を行なうモジュール群の構造と、モジュール相互のデータのやりとりの仕組みについて説明する。データ処理経路コントローラDPCにより組み合わせされる各モジュールは、図6にも示したが、同じモジュールが異なる印刷処理において用いられることも少なくない。即ち、各モジュールは、所定の印刷処理において自分がどのように配列されるか、どのモジュールからデータをもらい、どのモジュールにデータを渡すか、といったことは、考慮することなく設計されている。そこで、各モジュールの構造について説明し、これらのモジュールが相互にデータをやりとりする仕組みについて説明する。
各モジュールは、予めいくつかの属性値が定義されている。図7は、各モジュールの属性の一例を示す説明図である。属性の一つは、図7に示した最大呼び出し回数MAXCであり、もう一つは呼び出し済み回数ACであり、他の一つはステータスSSある。最大呼び出し回数MAXCは、そのモジュールが最大いくつの印刷処理から同時に呼び出され得るかを示すものである。プリンタ20における処理中には、同時に実行可能なものが存在するが、どのモジュールと他のモジュールの組合わせが同時に実行可能かといった情報は、印刷処理の内容が複雑になるほど管理することは困難となる。そこで、この実施例では、データ処理経路コントローラDPCにより呼び出されて組み合わされる各モジュール自身に、同時に最大いくつまで呼び出されうるかという情報を持たせている。データ処理経路コントローラDPCは、後述するG−READY関数により、各モジュールの使用を予約し、その後各モジュールに処理の開始をSTART−J関数により指示するが、G−READY関数による呼び出しを受けた各モジュールは、その最大呼び出し回数MAXCを参照し、呼び出し済み回数ACから見て余裕があれば、そのステータスSSをREADYとして、処理を受け付ける。具体的には、後述する引数を、データ処理経路コントローラDPC側に返し、その後、呼び出し済み回数ACを値1だけインクリメントする。呼び出されて呼び出し済み回数ACがインクリメントされた結果、最大呼び出し回数MAXCと呼び出し済み回数ACが等しくなっているモジュールは、もはやデータ処理経路コントローラDPCからの呼び出しの要求に応えることができない。この場合は、G−READY関数で呼び出しを行なったとき、呼び出されたモジュールは、戻り値として「失敗」を返す。
呼び出されるモジュールのステータスSSは、図8に示すように、「STAND−BY」「READY」「PROCESSING」の3つの値を取る。「STAND−BY」は、そのモジュールがデータ処理経路コントローラDPCから呼び出し可能であることを示している。また、「READY」は、そのモジュールが、データ処理経路コントローラDPCからG−READY関数による呼び出しを受けて、いつでもジョブの実行が可能な状態となったことを示している。更に、「PROCESSING」は、データ処理経路コントローラDPCからSTART−J関数を受けて、ジョブの実行中であることを示している。これらのステータスSSは、それぞれ、ジョブの終了やキャンセルの処理を受けて、元の状態に遷移する。
次に、各モジュール間のデータのやりとりについて説明する。各モジュールは、データ処理経路コントローラDPCにより指定された組合わせ・順序でデータ処理の流れを形成する。その際、各モジュールは、上流側のモジュールの用意したデータを読み取るストリームリード関数、あるいはデータを下流側のモジュールに書き込むストリームライト関数のいずれかを用いてデータをやりとりする。このとき、下流側のモジュールがデータを読み取りに行く場合には、データがおかれている場所(ポインタの位置)はデータを用意した上流側のモジュールが知っており、あるいは上流側のモジュールがデータを書き込みに行く場合は、データを書き込む場所(ポインタの位置)はデータを受け取る側が知っていると考えて、本実施例では、ストリームリード関数およびストリームライト関数については、その関数を提供する側と、その関数を用いてデータの読み書きを実際に行なう側とを区別し、モジュールの組合わせによらず、データのやりとりが行なえる仕組みを用意している。
このために、各モジュールは、上流側のモジュールの有する機能(即ち、下流側のモジュールに対する機能)と下流側のモジュールの有する機能(即ち、上流側のモジュールに対する機能)とに分けて、次のように分類されている。下流側のモジュールに対する機能は、
タイプA:ストリームリード関数を提供する機能、
タイプB:ストリームライト関数を呼び出す機能、
がある。一方、上流側のモジュールに対する機能としては、
タイプa:ストリームリード関数を呼び足す機能、
タイプb:ストリームライト関数を提供する機能、
がある。これらの機能の組合わせを図9(A)に示した。メンバーモジュールは、上流側のモジュール(下流側のジュールとやりとりするもの)としてのタイプAまたはタイプBのいずれかの機能、下流側のモジュール(上流側のモジュールとやりとりもの)としてタイプaまたはタイプbのいずれかの機能を有するから、結局、全部で4通りのモジュールがあり得る。各モジュールの機能の組合わせ例を図9(B)ないし(E)に示した。各モジュールがいずれの機能を有するかは、各モジュールの処理内容により決定されるが、原則としては、そのモジュール内部での処理によりバッファにデータを蓄えるタイプのモジュールは、タイプBの機能を有するモジュールとして設計することが好ましい。
モジュールのうち、イニシエータモジュールは、データ処理の先頭に位置するため、上流側のモジュールに対する機能を有する必要はない。即ち、イニシエータモジュールは、上流側のモジュールに対してデータを引き渡したり受け取ったりする機能を有しない。イニシエータモジュールは、結局タイプAかタイプBの機能のみを有することになるが、この例を図9(F),(G)に示した。同様に、ターミネータモジュールは、データ処理の終端に位置するため、下流側のモジュールに対する機能を有する必要はない。即ち、ターミネータモジュールは、下流側のモジュールに対してデータを引き渡したり受け取ったりする機能を有しない。ターミネータモジュールは、結局タイプaかタイプbの機能のみを有することになるが、この例を図9(H),(I)に示した。
データ処理経路コントローラDPCは、ハーネスHNから所定の印刷処理の実施を指示されると、図5に示したテーブルを参照し、このテーブルに記憶されたデータストリームの定義に従って、組み合わせるべきモジュール特定する。次に、データ処理経路コントローラDPCは、各モジュールに対して、G−READY関数を呼び出して、各モジュールの使用を予約する。各モジュールは、上述した最大呼び出し回数などを参照し、データ処理経路コントローラDPCからの呼び出しに応答できる場合は、G−READY関数の引数に、次の値を入れて返す。データ処理経路コントローラDPCからG−READY関数を呼び出す際、引数としては[X1,IX1,Y1,IY1]の四つが与えられる。この引数の内容は次の通りである。
X1:タイプAのイニシエータモジュールまたはメンバーモジュールが、自ら提供するストリームリード関数のポインタを入れて返す引数である。ターミネータモジュールおよびタイプBのイニシエータモジュールおよびメンバーモジュールは、この引数にヌル(NULL)を入れて返す。NULLは、何も指定されてないことを示す変数である。
IX1:タイプAのイニシエータモジュールまたはメンバーモジュールが、自ら提供するストリームリード関数の呼び出しの際に指定すべきコンテクストIDを入れて返す引数である。ターミネータモジュールおよびタイプBのイニシエータモジュールおよびメンバーモジュールは、この引数に値0を入れて返す。各モジュールが、コンテクストIDを返すのは、同じモジュールが同時に二つの処理に用いられる場合があるからである。この場合、データ処理経路コントローラDPCは、各モジュールに対して処理開始や終了を指示する際、このコンテクストIDを用いて、いずれの処理であるかを特定する。
Y1:タイプbのターミネータモジュールまたはメンバーモジュールが、自ら提供するストリームライト関数のポインタを入れて返す引数である。イニシエータモジュールおよびタイプaのターミネータモジュールおよびメンバーモジュールは、この引数にヌル(NULL)を入れて返す。
IY1:タイプbのターミネータモジュールまたはメンバーモジュールが、自ら提供するストリームライト関数の呼び出しの際に指定すべきコンテクストIDを入れて返す引数である。イニシエータモジュールおよびタイプaのターミネータモジュールおよびメンバーモジュールは、この引数に値0を入れて返す。
図5に示した印刷処理のうち(A)通常印刷を例にとって、各モジュールのタイプと、G−READY関数により引き渡される引数を、図10に例示した。図10では、ストリームリード関数またはストリームライト関数のいずれかを提供するモジュールをハッチングして示した。図示するように、イニシエータモジュールI−Aは、タイプAのモジュールであり、メンバーモジュールM−Eは、タイプB+タイプaのモジュールであり、メンバーモジュールM−Hは、タイプA+タイプbのモジュールであり、ターミネータモジュールT−Aは、タイプaのモジュールである。データ処理経路コントローラDPCからG−READY関数が呼び出されると、イニシエータモジュールI−Aは、上記のG−READY関数の定義に従い、ストリームリード関数を提供するとして、その関数のポインタSR1とそのコンテクストID(RID1)を有効な引数として、データ処理経路コントローラDPCに返す。また、メンバーモジュールM−Eは、タイプB+タイプaのモジュールなので、自らは提供する関数がないとして、有効な引数は返さない。メンバーモジュールM−Hは、ストリームリード関数とストリームライト関数とを提供するとして、前者のポインタSR2とそのコンテクストID(RID2)および後者のポインタSW1とそのコンテクストID(WID1)を、引数として返す。ターミネータモジュールT−Aは、タイプaのモジュールなので、自らは提供する関数がないとして、有効な引数は返さない。
データ処理経路コントローラDPCは、これらの引数を受け取った後、データ処理に必要なタイミングで、各モジュールに対して、START−J関数を呼び出すことで、データ処理の開始を指示する。このとき、START−J関数には、次の引数[U1,IU1,V1,IV1]が与えられる。この引数の内容は次の通りである。
U1:モジュールが、使用するストリームリード関数のポインタを与える。このストリームリード関数のポインタは、上流側に位置するタイプAのイニシエータモジュールまたはメンバーモジュールが、提供したものである。イニシエータモジュールおよびタイプbのターミネータモジュールおよびメンバーモジュールは呼び出す際には、この引数をヌル(NULL)としなければならない。
IU1:ストリームリード関数を利用するモジュールが指定すべきコンテクストIDである。このコンテクストIDは、上流に位置するタイプAのイニシエータモジュールまたはメンバーモジュールが、提供したものである。イニシエータモジュールおよびタイプbのターミネータモジュールおよびメンバーモジュールは呼び出す際には、この引数を値0としなければならない。
V1:モジュールが、使用するストリームライト関数のポインタを与える。このストリームライト関数のポインタは、下流側に位置するタイプbのターミネータモジュールまたはメンバーモジュールが、提供したものである。ターミネータモジュールおよびタイプAのイニシエータモジュールおよびメンバーモジュールは呼び出す際には、この引数をヌル(NULL)としなければならない。
IV1:ストリームライト関数を利用するモジュールが指定すべきコンテクストIDである。このコンテクストIDは、下流に位置するタイプbのターミネータモジュールまたはメンバーモジュールが、提供したものである。ターミネータモジュールおよびタイプAのイニシエータモジュールおよびメンバーモジュールは呼び出す際には、この引数を値0としなければならない。
上記の規則に従って、(A)通常印刷を行なう場合に、各モジュールに対してSTART−J関数の呼び出しの際に引き渡される引数の例を、図10に併せて示した。図示するように、ストリームリード関数については、上流側のモジュールが用意したポインタが下流側のモジュールに引き渡され、ストリームライト関数については、下流側のモジュールが用意したポインタが上流側のモジュールに引き渡される。この結果、図10右端に示したように、各モジュールは、ストリームリード関数を用いる場合には、下流側のモジュールが上流側のモジュールが用意したポインタを利用してデータを読み出し、ストリームライト関数を利用する場合には、上流側のモジュールが下流側のモジュールが用意したポインタを利用してデータを書き込む。こうして、各モジュールは、自らのデータを書き込んだり、相手のデータを読み出したりする条件について、データ処理経路コントローラDPCにより呼び出されるまで全く知らなくても、スムーズにデータのやりとりを行なうことができる。
(6)アダプタの構成:
次にアダプタについて説明する。各モジュールは、上述した仕組みを有するが、各モジュールの配列については、特に制約を設けていない。このため、データ処理経路コントローラDPCが選択したモジュールの組合わせによっては、上流側と下流側の両モジュールが、共にストリームリード関数およびストリームライト関数を提供する組合わせや、これとは逆に上流下流の両モジュールが、共にストリームリード関数およびストリームライト関数を提供しない組合わせがあり得る。前者の例を図11(A)に、後者の例を図12(A)に、それぞれ示した。前者の場合は、図11(B)に示したように、両モジュールの間には、上流側からストリームリード関数のポインタを受け取るタイプaの機能と、下流側からストリームライト関数のポインタを受け取るタイプBの機能とを有するアダプタモジュールADP1を用意すればよい。これが請求の範囲に言う「手続型中間モジュール」に相当する。また、後者の場合には、図12(B)に示したように、両モジュールの間には、上流側に対してストリームライト関数のポインタを提供するタイプbの機能と、下流側に対してストリームリード関数のポインタを提供するタイプAの機能とを有するアダプタモジュールADP2を用意すればよい。これが請求の範囲に言う「提供型中間モジュール」に相当する。
かかるアダプタADP1,ADP2を用意し、データ処理経路コントローラDPCは、各モジュールの配列を上記の組合わせが生じる場合には、間に必要なアダプタを挿入すればよい。この結果、各モジュールは、組み合わされるモジュールの性質について何ら知る必要はない。また、アダプタは僅か二種類で済ませることができる。なお、本実施例では、イニシエータモジュールとターミネータモジュールについては、メンバーモジュールとは異なり、上流側または下流側の機能を有しないものとしたが、イニシエータモジュールおよびターミネータモジュールについても、メンバーモジュールと同様に、すべて上流側と下流側の機能を持たせ、データ処理経路コントローラDPCが、モジュールの配列を構成する際、先頭にイニシエータとなるアダプタを、終端にターミネータとなるアダプタを、セットするものとしても良い。こうすれば、実質的なデータ処理を行なうモジュールの種類をメンバーモジュール一種類とすることかでき好適である。
(7)プリンタの動作:
次に、実際のプリンタ20の動作について説明する。図13は、プリンタ20の制御装置22に内蔵されたCPU251が実行する処理を示すフローチャートである。制御装置22は、プリンタ20の電源が投入され、初期化の処理が完了すると、ハーネスからの印刷要求があるまで待機する。ハーネスからの印刷要求が伝えられると、制御装置22は、図13に示した処理を起動し、まず、処理を要求したハーネスを特定し、要求された処理を特定する処理を行なう(ステップS300)。ここからの処理は、上述したデータ処理経路コントローラDPCとしての処理に相当する。ハーネスが要求してくる印刷処理については、図5に例示した。次に、特定された印刷処理に従い、このテーブルを参照し、データストリームを取得する処理を行なう(ステップS310)。データストリームを取得することにより、印刷処理に用いるモジュールを特定することができるので、次に、各モジュールに対して、上述したG−READY関数を発行し、その使用を確保する処理を行なう(ステップS320)。図7に示したように、各モジュールは、最大呼び出し回数MAXCと呼び出し済み回数ACとを見て、新たな印刷処理のために利用可能か否かの応答を返すので、データストリームを構成する全モジュールが使用可能か否かの判断を行なう(ステップS330)。一つでも使用可能でないモジュールがあれば、エラーメッセージの出力などの処理を行ない(ステップS340)、そのまま本ルーチンを終了する。なお、エラーメッセージを出力する変わりに、使用できないモジュールの処理が終わり、利用可能となるまで待機するものとしてもよい。
全モジュールが使用可能であれば、各モジュールに対して呼び出したG−READY関数の引数を調べ(ステップS350)、モジュールの組合わせから、アダプタが必要か否かの判断を行なう(ステップS360)。アダプタが必要な組合わせであると判断された場合には、必要なアダプタを呼び出して、組み込む処理を行なう(ステップS370)。組み込まれるアダプタの内容については、図11、図12に示した。総てのモジュールについて、関数の組合わせのチェックが完了するまで、上記の処理を行ない(ステップS380)、処理が完了すれば、引き続き、印刷処理(ステップS400)に移行する。
この印刷処理を図10に示した印刷処理の場合のモジュールの組合わせを用いて説明する。図10に示した印刷処理において、データ処理経路コントローラDPCは、図14に示したように、まずイニシエータモジュールに対して、STRAT−J関数を呼び出す(ステップS410)が、その内容は[NULL,0,NULL,0]であり、イニシエータモジュールI−A自体は、他のモジュールに対するデータの読み書きの処理は行なわない。イニシエータモジュールI−Aは、下流側もモジュールに対して、ストリームリード関数のポインタを提供するだけだからである。
イニシエータモジュールI−Aがデータを準備し終わると、データ処理経路コントローラDPCは、続いてメンバーモジュールM−EおよびM−Hに対してSTART−J関数を呼び出す手続を行なう(ステップS420)。メンバーモジュールM−Eに対するSTART−J関数の引数は、[SR1,RID1,SW1,WID1]であり、メンバーモジュールM−Eは、ストリームリード関数およびストリームライト関数のポインタの提供を受けることになる。また、メンバーモジュールM−Hに対するSTART−J関数の引数は、[NULL,0,NULL,0]である。メンバーモジュールM−Hは、他のモジュールに対するデータの読み書きの処理を行なわないからである。
ストリームリード関数のポインタを受け取ったメンバーモジュールM−Eは、この関数を、呼び出す処理を行なう。ストリームリード関数の引数は、[RID,*BUFF,LEN,ST]であり、それぞれ次の内容を示している。
RID:コンテクストIDであり、処理の内容を相互に特定するのに用いられる。
*BUFF:ストリームリード関数において読み出したデータが保存されているバッファの先頭アドレスを示すポインタである。
LEN:読み出されたデータの長さを示す変数である。
ST:関数のステータスを示す変数であり、関数が更に継続されるか終了かを示す。
メンバーモジュールM−Eは、この関数を実行するが、ストリームリード関数の実行は、上流側のモジュール(ここではイニシエータモジュールI−A)が提供した関数を実行することであり、関数の内容は提供した側のモジュール、即ち、データを用意した側のモジュールが規定している。従って、この関数を、下流側のモジュール(ここでは、メンバーモジュールM−E)が呼び出すと、関数は、上流側モジュールが管理しているバッファBUFFから、長さLENのデータを読み取ったことおよび処理結果を示すステータスを、その引数により、呼び出した側のモジュールに、通知するのである。ステータスが「継続」であれば、下流側のモジュールは、ストリームリード関数の処理を繰り返す。ステータスが「終了」となれば、上流側もモジュールが準備したデータは尽きたとして、下流側のモジュールからのストリームリード関数の呼び出しは完了する。
他方、メンバーモジュールM−Eは、上流のモジュールからストリームリード関数により読み出したデータを、処理しつつ、処理済みのデータに対してストリームライト関数を実行する。ストリームライト関数の引数も、ストリームリード関数とほぼ同様である。メンバーモジュールM−Eは、この関数を実行するが、ストリームライト関数の実行は、下流側のモジュール(ここではメンバーモジュールM−H)が提供した関数を実行することであり、関数の内容は提供した側のモジュール、即ち、データの書き込みを受ける側のモジュールが規定している。従って、この関数を、上流側のモジュール(ここでは、メンバーモジュールM−E)が呼び出すと、関数は、下流側モジュールが管理しているバッファBUFFに、長さLENのデータを書き込むのである。モジュールは、処理状態を示すステータスSTを参照して、全データの書き込みが完了するまで、ステータスを「継続」としたまま、ストリームライト関数の処理を繰り返す。全データの書き込みが完了する際には、ステータスSTを「終了」とし、下流側のモジュールへのストリームライト関数の呼び出しを完了する。
同様に、メンバーモジュールM−HとターミネータモジュールT−Aとの間でも、ストリームリード関数によるデータの受け渡しが行なわれる(ステップS430)。以上の処理により印刷処理は完了する。なお、指定された印刷処理が、(A)通常印刷であれば、印字用のデータの流れは、USBコネクタ91に接続されたコンピュータPCにおけるプリンタドライバが、プリンタ20用のドットデータを生成しこれをコネクタ91を介して受け取ることから開始される。コネクタ91を介してドットデータを受け取る処理をイニシエータモジュールI−Aが行ない、以後、プリンタ20独自の補正をメンバーモジュールM−Eが、印字ヘッド61ないし66の構成に合わせたドットデータの並べ替えをメンバーモジュールM−Hがそれぞれ行ない、ターミネータモジュールT−Aが最終的なデータを、ハードウェア制御モジュールに渡すことで、駆動バッファ256や分配出力器259を用いた印字ヘッド61ないし66の駆動、あるいはステッピングモータ23や紙送り用モータ40を用いたキャリッジ50や用紙Pの搬送が行なわれる。
また、デジタルスチルカメラDSCからの(B)ダイレクト印刷や、メモリカードMC内の画像データを印刷する処理である(C)カード印刷を行なう場合には、イニシエータモジュールI−Bは、JPEG形式などの画像データを直接受け取るモジュールとして働き、その下流側のメンバーモジュールは、ハードゥエアユニットとして用意されたリサイズユニット261,2値化ユニット263,配列ユニット265などを用いてデータの処理を行なう。この場合、メンバーモジュールは、直接はデータの受け渡しを行なわず、データの受け渡しのタイミングだけをやりとりしている。各ハードゥエアユニットにより処理されたデータは、ハードウェアとして用意されたデータバスを介して受け渡される。
同様に、プリンタ20のメンテナンスのために、(D−1)ノズルチェック印刷や(D−2)バイディチェック印刷などを行なう場合には、用紙Pに所定のドットパターンを印刷するが、このドットパターンのデータは、イニシエータモジュールI−Cが、その内部に用意している。ひとつのイニシエータモジュールI−Cが二つのドットパターンを記憶しており、ハーネスからの呼び出しの指定により、いずれかのドットパターンを下流側のモジュールに引き渡している。下流側のメンバーモジュールでは、このドットパターンを処理し、最終的には印字ヘッド61ないし66や、ステッピングモータ23と紙送り用モータ40を駆動し、キャリッジ50の搬送(主走査)に伴い、用紙P上にチェック用のパターンを印刷する。
以上説明したように、本実施例のプリンタ20では、プリンタ20が行なう複数の印刷処理を組合わせにより実現する複数のモジュールを用意し、印刷処理が指定されると、テーブルを参照して各モジュールを組み合わせ、必要なデータのやりとりを実現して、指定された印刷処理を実現している。しかも、こうしたモジュールの組合わせにおいて、各モジュールがデータを受け取る相手側、あるいはデータを引き渡す相手側の処理について、知る必要がない。各モジュールは、データ処理経路コントローラDPCからの問い合わせであるGーREADY関数の引数として、モジュールが提供しうるストリームリード関数またはストリームライト関数のポインタを引き渡すか、モジュールにおいていずれの関数を実行するかのタイプを回答するだけでよい。このため、各モジュールの設計を自律的に行なうことができ、好適である。特に、近年大規模化するプリンタのソフトウェア開発において、こうしたモジュール設計を独立に行なうことができる仕組みは有用である。
また、こうしたモジュール化を行なった結果、例えば図15に示すように、プリンタ20に新たなハードウェア(この例では、スキャナ280)を追加し、新たな印刷処理を追加する場合でも、他のモジュールの動作などについての整合性について特別な考慮を払う必要がない、という利点が得られる。図15に示したスキャナ280を追加して、スキャナ280で読み取った画像をそのままプリンタ20の印字ヘッド61ないし66などを利用して用紙Pに印刷するいわゆる(F)コピー印刷の機能を追加する場合、設計者は、スキャナ280の機能を利用した新たなサービスを提供するとして、サービスSVにその機能を追加すると共に、スキャナ280の機能を利用する新たなファンクションFCを追加し、その上で、コピー印刷を呼び出すハーネスと、コピー印刷を実現する各モジュールの新たな配列(場合によっては新たなモジュール)を追加するだけで済む。この場合、コピー印刷を実現するモジュールの構成のみ考えれば良く、他の印刷処理との競合などについて考慮する必要がない。このため、プリンタ20に新しい機能を付け加える場合などに、極めて有効である。プリンタ20に付加し得るこうした新たな機能としては、スキャナの追加によるコピー印刷の他、例えば、ビデオ信号を受け付けるキャプチャボードを付加し動画から得られる特定の静止画を印刷するキャプチャ印刷、所定の期間にわたる複数のフレームを連続的に印刷するフレーム印刷、DVDなどの機器を付加し、DVDなどに記録された画像を印刷する機能、あるいはCDやDVDのレーベルを印刷するレーベル印刷、など種々の機能を考えることができる。こうした印刷を実現する場合には、各印刷に必要なメンバーモジュールを、それぞれ個別に設計すればよいことから、装置全体の開発に要する期間を大幅に短縮し、かつ信頼性を向上させることができる。
以上本発明の実施例について説明したが、本発明はこうした実施例に限るものではなく、本発明の要旨を逸脱しない範囲内において、種々なる態様で実施し得ることは勿論である。例えば、レーザープリンタや大判プリンタ、ネットワークを介してデータのやりとりを行なうネットワークプリンタ、両面印刷を行なうプリンタ、更には、用紙カセットやインクカートリッジを複数種類持ち、この中から特定された用紙・インクカートリッジを使用して印刷を行なうタイプのプリンタなどにも適用できることは勿論である。
プリンタ20の動作に関与する部分を中心に、その構成を模式的に示す説明図である。 プリンタ20の構成を制御装置22を中心に示すブロック図である。 このプリンタ20において印刷を実現するソフトウェアの概略構成を示す説明図である。 データ処理経路コントローラDPCがコントロールするモジュール群の一例を示す説明図である。 印刷処理の内容毎に予め決められたイニシエータモジュール,メンバーモジュール,ターミネータモジュールの配列の一例を示す説明図である。 図5に示したデータストリームの定義に従い、各モジュールが配列された様子の一部示す説明図ある。 各モジュール属性の一例を示す説明図である。 呼び出されるモジュールのステータスSSの遷移状態を示す説明図である。 各モジュールにおけるタイプの組合わせを示す説明図である。 各モジュールのタイプと、G−READY関数、START−J関数により引き渡される引数を例示する説明図である。 上流側と下流側の両モジュールが、共にストリームリード関数およびストリームライト関数を提供する組合わせと、その場合に用いられるアダプタADP1の構成を例示する説明図である。 上流下流の両モジュールが、共にストリームリード関数およびストリームライト関数を提供しない組合わせと、その場合に用いられるアダプタADP2の構成を例示する説明図である。 プリンタ20の制御装置22に内蔵されたCPU251が実行する処理を示すフローチャートである。 印刷処理の概要を示すフローチャートである。 新たなハードウェアであるスキャナ280を追加したプリンタの概略構成図である。
符号の説明
20…プリンタ
21…搬送用ベルト
22…制御装置
23…ステッピングモータ
24…ガイド
25…プラテン
26…給紙ユニット
29…プーリ
30…送受信部
40…紙送り用モータ
41…ギヤトレイン
42…エンコーダ
50…キャリッジ
61〜66…印字ヘッド
70…操作パネル
77…操作スイッチ
78…LED
80…カードスロット
90…コネクタ群
91…USBコネクタ
92…USBコネクタ
95…赤外線通信ポート
111〜116…インクカートリッジ
121〜126…記憶処理モジュール
251…CPU
252…PROM
253…RAM
254…PIO
255…PROM
255…タイマ
256…駆動バッファ
257…バス
258…発振器
259…分配出力器
261…リサイズユニット
263…2値化ユニット
265…配列ユニット
280…スキャナ
BUFF…バッファ
DPC…データ処理経路コントローラ
DPM…処理モジュール群
DSC…デジタルスチルカメラ
DSM…ステータス管理モジュール
FC…ファンクション
HAL…ハードウェア制御モジュール
HN…ハーネス
I…イニシエータモジュール
IFD…ハードウェアインタフェース
M…メンバーモジュール
MC…メモリカード
P…用紙
PC…コンピュータ
SV…サービス
T…ターミネータモジュール
UI…ユーザインタフェース

Claims (21)

  1. 印刷用のヘッドを駆動して、媒体に印刷を行なう印刷装置であって、
    印刷しようとするデータを準備するモジュール、該データを印刷用に処理するモジュール、該処理済みのデータを印字するために前記ヘッドを含むハードウェアを制御するモジュールを含む複数の処理モジュールと、
    当該印刷装置における複数の印刷処理を実現する前記各モジュールの組合わせを記憶する組合わせ記憶手段と、
    前記複数の印刷処理の一つが指定されたとき、前記記憶されたモジュールの組合わせに従って前記複数のモジュールを組み合わせ、該印刷処理を実行する印刷処理実行手段と
    を備えた印刷装置。
  2. 請求項1記載の印刷装置であって、
    前記モジュールの少なくとも一つは、下流に位置するモジュールからデータの読み取りを受ける関数を提供する手続、または下流に位置するモジュールに対してデータを書き込みに行く手続、を備えたモジュールである印刷装置。
  3. 請求項1または請求項2記載の印刷装置であって、
    前記モジュールの少なくとも一つは、上流に位置するモジュールが用意したデータを受け取りに行く手続、または上流に位置するモジュールによりデータの書き込みを受ける関数を提供する手続を備えたモジュールである印刷装置。
  4. 請求項1ないし請求項3のいずれか記載の印刷装置であって、
    下流に位置するモジュールに対してデータを書き込みに行く手続と、上流に位置するモジュールが用意したデータを受け取りに行く手続とを規定した手続型中間モジュールを備え、
    前記印刷処理実行手段は、前記組合わせ記憶手段に記憶された各モジュールの組合わせに従って前記各モジュールを組み合わせる際、前記組み合わされるモジュールが、データの受け渡し用の関数を両者が提供する組合わせの場合には、上流に位置するモジュールと下流に位置するモジュールとの間に前記手続型中間モジュールを配置して、前記モジュールを組合わせる組合わせ修正手段を備えた
    印刷装置。
  5. 請求項1ないし請求項4のいずれか記載の印刷装置であって、
    下流に位置するモジュールからデータの読み取りを受ける関数を提供する手続と、上流に位置するモジュールによりデータの書き込みを受ける関数を提供する手続とを規定した提供型中間モジュールを備え、
    前記印刷処理実行手段は、前記組合わせ記憶手段に記憶された各モジュールの組合わせに従って前記各モジュールを組み合わせる際、前記組み合わされるモジュールが、データの受け渡しを行なおうための関数を提供するモジュールが存在しない組合わせの場合には、上流に位置するモジュールと下流に位置するモジュールとの間に前記取得型中間モジュールを配置して、前記モジュールを組合わせる組合わせ修正手段を備えた
    印刷装置。
  6. 前記モジュールのうち、前記組合わせの最も上流にのみ位置するモジュールについては、その上流に位置するモジュールに対する手続を持たないイニシエータモジュールである
    請求項1記載の印刷装置。
  7. 前記モジュールのうち、前記組合わせの最も下流にのみ位置するモジュールについては、その下流に位置するモジュールに対する手続を持たないターミネータモジュールである
    請求項1記載の印刷装置。
  8. 前記イニシエータモジュールは、前記印刷処理に対応したデータを記憶したデータ記憶手段を備えた請求項6記載の印刷装置。
  9. 前記ターミネータモジュールは、前記印刷装置のハードウェアを制御するインタフェースモジュールである請求項7記載の印刷装置。
  10. 請求項1記載の印刷装置であって、
    前記組合わせ記憶手段は、
    前記各モジュールの組合わせを記憶する際、当該モジュールが、一つの印刷処理において使用中に、他の印刷処理から呼び出し可能であるか否かの排他制御情報を記憶しており、かつ
    一の印刷処理のために、当該モジュールが使用中であるか否かを示す使用中情報を記憶しており、
    前記印刷処理実行手段は、
    所定の印刷処理の実行を外部から指示され時、前記組合わせ記憶手段が記憶している前記使用中情報と当該モジュールの前記排他制御情報とを参照し、当該外部化に指示された印刷処理に用いるモジュールの少なくとも一つが、一つの印刷処理において他の印刷処理から呼び出し可能でないモジュールであり、かつ使用中の場合には、当該外部から指示された印刷処理を実行しない印刷処理禁止手段を備えた
    印刷装置。
  11. 請求項10記載の印刷装置であって、
    前記印刷処理禁止手段は、前記外部から指示された印刷処理を、キャンセルする処理、前記使用中のモジュールの使用が終了するまで延期する処理のいずれかを実行する手段である印刷装置。
  12. 請求項1記載の印刷装置であって、
    外部のコンピュータと接続可能なコネクタと、
    該コネクタを介して、前記コンピュータと間で、印字用に展開されたデータのやりとりを行なう通信手段とを備え、
    前記組合わせ記憶手段は、前記複数の印刷処理の一つとして、前記コネクタを介して受け取った印字用データを用いて、前記印刷用のヘッドを駆動し、前記媒体上に印刷を行なう印刷処理を実現する前記各モジュールの組合わせを記憶している
    印刷装置。
  13. 請求項1記載の印刷装置であって、
    電子スチルカメラ、電子手帳、携帯電話などの周辺機器が接続されるコネクタと、
    該コネクタを介して、前記周辺機器から、画像データを受け取る通信手段とを備え、
    前記組合わせ記憶手段は、前記複数の印刷処理の一つとして、前記コネクタを介して受け取った画像データを展開して印字用データを生成し、該印字用データに基づいて前記印刷用のヘッドを駆動し、前記媒体上に印刷を行なう印刷処理を実現する前記各モジュールの組合わせを記憶している
    印刷装置。
  14. 請求項1記載の印刷装置であって、
    画像データを記憶したメモリカードを装着するカードスロットと、
    該カードスロットに装着されたメモリカードに記憶された画像データを読み取る入力手段とを備え、
    前記組合わせ記憶手段は、前記複数の印刷処理の一つとして、前記読み取った画像データを展開して印字用データを生成し、該印字用データを用いて、前記印刷用のヘッドを駆動し、前記媒体上に印刷を行なう印刷処理を実現する前記各モジュールの組合わせを記憶している
    印刷装置。
  15. 請求項1記載の印刷装置であって、
    電子スチルカメラ、電子手帳、携帯電話などの周辺機器から、無線通信により、画像データを受け取る無線通信手段とを備え、
    前記組合わせ記憶手段は、前記複数の印刷処理の一つとして、前記無線通信により受け取った画像データを展開して印字用データを生成し、該印字用データに基づいて前記印刷用のヘッドを駆動し、前記媒体上に印刷を行なう印刷処理を実現する前記各モジュールの組合わせを記憶している
    印刷装置。
  16. 請求項1記載の印刷装置であって、
    前記組合わせ記憶手段は、前記複数の印刷処理の一つとして、双方向印字の位置調整用のドットパターンの印刷処理を実現するための前記各モジュールの組合わせを記憶している印刷装置。
  17. 請求項1記載の印刷装置であって、
    前記組合わせ記憶手段は、前記複数の印刷処理の一つとして、ノズルチェック用のドットパターンの印刷処理を実現するための前記各モジュールの組合わせを記憶している印刷装置。
  18. 請求項1記載の印刷装置であって、
    画像を光学的に読み取って画像データに変換する画像読み取り手段を備え、
    前記組合わせ記憶手段は、前記複数の印刷処理の一つとして、前記読み取った画像データを展開して印字用データを生成し、該印字用データに基づいて前記印刷用のヘッドを駆動し、前記媒体上に印刷を行なう印刷処理を実現する前記各モジュールの組合わせを記憶している
    印刷装置。
  19. 印刷用のヘッドを駆動して、媒体に印刷を行なう印刷方法であって、
    印刷しようとするデータを準備するモジュール、該データを印刷用に処理するモジュール、該処理済みのデータを印字するために前記ヘッドを含むハードウェアを制御するモジュールを含む複数の処理モジュールを用意し、
    複数の印刷処理を実現する前記各モジュールの組合わせを記憶し、
    前記複数の印刷処理の一つが指定されたとき、前記記憶されたモジュールの組合わせを従って前記複数のモジュールを組み合わせ、該印刷処理を実行する
    印刷処理方法。
  20. 印刷装置に内蔵されたコンピュータで実行可能であり、該印刷装置が備える印刷用のヘッドを駆動して、媒体に印刷を行なうプログラムであって、
    印刷しようとするデータを準備するモジュール、該データを印刷用に処理するモジュール、該処理済みのデータを印字するために前記ヘッドを含むハードウェアを制御するモジュールを含む複数の処理モジュールを実現する第1のプログラムコードと、
    複数の印刷処理の一つが指定されたとき、当該複数の印刷処理を実現する前記各モジュールの組合わせを記憶したデータテーブルを参照し、該データテーブルに記憶されたモジュールの組合わせを従って前記複数のモジュールを組み合わせる第2のプログラムコードと、
    該組み合わされた複数のモジュールに、印刷しようとする画像データを渡して、前記指定された印刷処理を実行する第3のプログラムコードと
    を備えプログラム。
  21. 請求項20記載のプログラムを記録した記録媒体。
JP2003356389A 2003-10-16 2003-10-16 印刷装置、印刷処理方法およびそのプログラム Expired - Fee Related JP4407231B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003356389A JP4407231B2 (ja) 2003-10-16 2003-10-16 印刷装置、印刷処理方法およびそのプログラム
US10/964,823 US7354124B2 (en) 2003-10-16 2004-10-15 Printing device, printing method, and program product therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003356389A JP4407231B2 (ja) 2003-10-16 2003-10-16 印刷装置、印刷処理方法およびそのプログラム

Publications (3)

Publication Number Publication Date
JP2005119122A true JP2005119122A (ja) 2005-05-12
JP2005119122A5 JP2005119122A5 (ja) 2006-05-11
JP4407231B2 JP4407231B2 (ja) 2010-02-03

Family

ID=34613649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003356389A Expired - Fee Related JP4407231B2 (ja) 2003-10-16 2003-10-16 印刷装置、印刷処理方法およびそのプログラム

Country Status (2)

Country Link
US (1) US7354124B2 (ja)
JP (1) JP4407231B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226391A (ja) * 2006-02-22 2007-09-06 Ricoh Co Ltd 画像形成装置、画像形成方法及び画像形成プログラム
JP2008011500A (ja) * 2006-05-29 2008-01-17 Ricoh Co Ltd 画像処理装置、情報処理システム、アプリケーション登録方法及びアプリケーション登録プログラム
JP2009005209A (ja) * 2007-06-25 2009-01-08 Fuji Xerox Co Ltd 画像処理装置
JP2009111903A (ja) * 2007-10-31 2009-05-21 Ricoh Co Ltd 画像処理装置、画像処理方法、画像処理プログラム
US8315429B2 (en) 2006-05-29 2012-11-20 Ricoh Company, Ltd. Image processing apparatus and information processing system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8215556B2 (en) * 2004-06-28 2012-07-10 Konica Minolta Laboratory U.S.A., Inc. Color barcode producing, reading and/or reproducing method and apparatus
US7669769B2 (en) * 2005-03-28 2010-03-02 Konica Minolta Systems Laboratory, Inc. Systems and methods for preserving and maintaining document integrity
US20060274357A1 (en) * 2005-06-03 2006-12-07 Zhongming Shen Systems and methods for digital image printing
EP2867026B1 (en) * 2012-09-25 2019-03-27 Hewlett-Packard Development Company, L.P. Print head die
US9028270B1 (en) * 2013-10-23 2015-05-12 Facebook, Inc. Pull tab actuator for connectors
WO2023287420A1 (en) * 2021-07-15 2023-01-19 Hewlett-Packard Development Company, L.P. Nozzle failure prediction and object quality determination

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515481A (en) * 1992-07-08 1996-05-07 Canon Kabushiki Kaisha Method and apparatus for printing according to a graphic language
US5701479A (en) * 1993-06-15 1997-12-23 Xerox Corporation Pipelined image processing system for a single application environment
US5557795A (en) * 1993-06-15 1996-09-17 Xerox Corporation Pipelined image processing system for a single application environment
US5396616A (en) * 1993-06-15 1995-03-07 Xerox Corporation System for emulating multi-tasking pipelines in a single tasking environment
US6195593B1 (en) * 1997-09-03 2001-02-27 Seiko Epson Corporation Reusable modules for complex integrated circuit devices
US6433885B1 (en) * 1997-11-24 2002-08-13 Hewlett-Packard Company Method and apparatus for manipulating bitmap raster data using a modular processing pipeline
US6594028B1 (en) * 1999-04-14 2003-07-15 Canon Kabushiki Kaisha Status-based control over printer
US6347857B1 (en) * 1999-09-23 2002-02-19 Encad, Inc. Ink droplet analysis apparatus
US6450607B1 (en) * 2000-09-15 2002-09-17 Lexmark International, Inc. Alignment method for color ink jet printer
JP2003051003A (ja) 2001-08-08 2003-02-21 Canon Inc 画像処理装置、画像記録装置およびそれらの制御方法
JP4045823B2 (ja) * 2002-03-19 2008-02-13 富士ゼロックス株式会社 画像処理装置および画像処理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226391A (ja) * 2006-02-22 2007-09-06 Ricoh Co Ltd 画像形成装置、画像形成方法及び画像形成プログラム
JP2008011500A (ja) * 2006-05-29 2008-01-17 Ricoh Co Ltd 画像処理装置、情報処理システム、アプリケーション登録方法及びアプリケーション登録プログラム
US8315429B2 (en) 2006-05-29 2012-11-20 Ricoh Company, Ltd. Image processing apparatus and information processing system
JP2009005209A (ja) * 2007-06-25 2009-01-08 Fuji Xerox Co Ltd 画像処理装置
JP2009111903A (ja) * 2007-10-31 2009-05-21 Ricoh Co Ltd 画像処理装置、画像処理方法、画像処理プログラム
US8180181B2 (en) 2007-10-31 2012-05-15 Ricoh Company, Ltd. Image processing apparatus, image processing method, and image processing program

Also Published As

Publication number Publication date
US20050225589A1 (en) 2005-10-13
US7354124B2 (en) 2008-04-08
JP4407231B2 (ja) 2010-02-03

Similar Documents

Publication Publication Date Title
CA2462521C (en) Printing apparatus, control method therefor, and storage medium
JP4407231B2 (ja) 印刷装置、印刷処理方法およびそのプログラム
US20080007782A1 (en) Recording apparatus and method for controlling recording apparatus
US7385730B2 (en) Image processing apparatus, image processing method, and printing apparatus and printing system using the image processing apparatus
US8705101B2 (en) Printing system and printing device having two information transmission paths
JP2001166898A (ja) 画像印刷装置、画像印刷システム、画像データ処理方法および記憶媒体
JP7059071B2 (ja) 記録装置、記録装置の制御方法、及びプログラム
JP2005032258A (ja) ラスタ毎の非一様な解像度を用いたプリント方法および装置
JP4366148B2 (ja) 情報処理装置、および情報処理装置の制御プログラム更新方法
US6801332B1 (en) Composite apparatus and printer sharing method
US7522303B2 (en) Printer having multiple interface units that output status information
JP5078540B2 (ja) 記録装置及びデータ転送方法
US8256868B2 (en) Image forming device and image forming system
JP2007323363A (ja) 印刷システム、印刷装置、印刷制御方法、プログラム及び記憶媒体
JP2008049563A (ja) 画像処理装置、画像記録装置および記録データ生成方法
JP3107685B2 (ja) 印刷データ送信方法
JP4047147B2 (ja) 記録装置およびその制御方法
JP2850717B2 (ja) 印刷制御装置
KR0164837B1 (ko) 복합프린터의 프린팅 제어방법
JP3226841B2 (ja) プリンタ装置
JP2004152311A (ja) 画像データ変換方法、画像データ変換システム、および画像データ変換装置
CN104044370B (zh) 打印机装置及打印机系统
JP2005178265A (ja) 記録装置、記録方法、および記録システム
JP2012109726A (ja) 画像処理装置および画像処理方法
JP2000355143A (ja) インクジェット記録装置及び画像形成装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060315

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091020

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091102

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees