(57)【要約】【課題】バッファに記憶されるデータのデータ量を抑制しつつ、文字を多階調に印刷できるようにすること。【解決手段】サーマルプリンタは、印刷データを取得する取得部と、印刷データに含まれる文字データに関するバッファ情報をバッファに設定する設定部と、バッファに設定されたバッファ情報に基づいて、文字を印刷するための印刷制御データを生成する変換部と、印刷制御データをサーマルヘッドに転送して文字を印刷させる転送部と、を備え、設定部は、文字の階調を示す階調情報をバッファに設定し、変換部は、バッファに設定された階調情報に基づいて、階調情報が示す階調で文字を印刷するための印刷制御データを生成する。【選択図】図３
2019171708.tif 000002
【特許請求の範囲】
【請求項１】
サーマルヘッドの発熱体によって印刷を行うサーマルプリンタであって、
印刷データを取得する取得部と、
前記印刷データに含まれる文字データに関するバッファ情報をバッファに設定する設定部と、
前記バッファに設定されたバッファ情報に基づいて、文字を印刷するための印刷制御データを生成する変換部と、
前記印刷制御データを前記サーマルヘッドに転送して前記文字を印刷させる転送部と、
を備え、
前記設定部は、
文字の階調を示す階調情報を前記バッファに設定し、
前記変換部は、
前記バッファに設定された前記階調情報に基づいて、前記階調情報が示す階調で前記文字を印刷するための前記印刷制御データを生成する
ことを特徴とするサーマルプリンタ。
【請求項２】
前記設定部は、
前記印刷データに含まれている文字毎に、当該文字の階調を示す前記階調情報を前記バッファに設定し、
前記変換部は、
前記バッファに設定された前記文字の前記階調情報に基づいて、前記文字を設定された階調で印刷するための、前記印刷制御データを生成する
ことを特徴とする請求項１に記載のサーマルプリンタ。
【請求項３】
前記変換部は、
前記印刷データに含まれている文字毎に、当該文字に対して設定された前記階調情報に基づいて、当該階調情報が示す階調で当該文字を印刷するための複数の前記印刷制御データを生成し、
前記転送部は、
前記変換部が生成した複数の印刷制御データを前記サーマルヘッドに転送して前記発熱体を複数回に分けて駆動することにより、前記印刷データに含まれている各文字を設定された階調で印刷させる
ことを特徴とする請求項２に記載のサーマルプリンタ。
【請求項４】
前記設定部は、
前記印刷データに含まれている文字毎に多階調印刷を行うか否かを示す情報を前記バッファに設定可能である
ことを特徴とする請求項２または３に記載のサーマルプリンタ。
【請求項５】
サーマルヘッドの発熱体によって印刷を行うサーマルプリンタによる印刷制御方法であって、
印刷データを取得し、
前記印刷データに含まれる文字の階調を示す階調情報を含む、前記文字に関するバッファ情報をバッファに設定し、
前記バッファに設定されたバッファ情報に基づいて、前記文字を印刷するための印刷制御データを生成する
ことを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーマルプリンタおよび印刷制御方法に関する。
【背景技術】
【０００２】
サーマルヘッドの発熱体を発熱させて画像を印刷するサーマルプリンタが知られている。また、発熱体へのエネルギーの通電時間を制御することによって、多階調画像を印刷する技術が知られている。
【０００３】
特許文献１には、印刷時の階調を指定する入力データに応じてサーマルヘッドの通電を時分割し、サーマルヘッドの総通電時間と時分割の回数を制御することにより、発熱体に印加するエネルギーの総和を制御して印刷濃度を制御する技術が開示されている。
【０００４】
特許文献２には、１画素を記録用紙送り方向に複数分割して記録し、指定された多階調でドットパターンを記録する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６４−９０７７０号公報
【特許文献２】特開昭６３−９３２７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１，２の技術は画像の多階調印刷を行うものであり、文字の多階調印刷を行うものではない。
【０００７】
また、画像の多階調印刷のために、入力した画像データを多階調印刷用の印刷制御データにデータ展開する必要があり、生成した印刷制御データを格納するバッファが必要となっていた。バッファに格納するデータ量が増加すると、データ展開やバッファに対するデータの書き込み、読み出しが長時間化するため、印刷処理時間が長時間化する虞がある。
【０００８】
本発明は、バッファに記憶されるデータのデータ量を抑制しつつ、文字を多階調に印刷できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決するために、本発明のサーマルプリンタは、サーマルヘッドの発熱体によって印刷を行うサーマルプリンタであって、印刷データを取得する取得部と、印刷データに含まれる文字データに関するバッファ情報をバッファに設定する設定部と、バッファに設定されたバッファ情報に基づいて、文字を印刷するための印刷制御データを生成する変換部と、印刷制御データをサーマルヘッドに転送して文字を印刷させる転送部と、を備え、設定部は、文字の階調を示す階調情報をバッファに設定し、変換部は、バッファに設定された階調情報に基づいて、階調情報が示す階調で文字を印刷するための印刷制御データを生成する。
【発明の効果】
【００１０】
本発明によれば、バッファに記憶されるデータのデータ量を抑制しつつ、文字を多階調に印刷することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係るサーマルプリンタの構成を示す図である。
【図２】実施形態に係るサーマルヘッドの構成を示す図である。
【図３】実施形態に係るサーマルプリンタの機能構成を示す図である。
【図４】実施形態に係る処理の手順を示すフローチャートである。
【図５】コードバッファに設定されるデータを示す図である。
【図６】印刷制御データの生成に用いられるグラフィックデータを示す図である。
【図７】記憶部に記憶される設定テーブルを示す図である。
【図８】変換部が生成する印刷制御データを示す図である。
【図９】実施形態に係るサーマルプリンタの各種信号のタイミングを示す図である。
【図１０】実施形態に係るサーマルプリンタによって印刷された文字を示す図である。
【発明を実施するための形態】
【００１２】
〔実施形態〕
以下、図面を参照して、実施形態について説明する。
【００１３】
（サーマルプリンタ）
図１は、実施形態に係るサーマルプリンタ１０の構成を示す図である。図１に示すサーマルプリンタ１０は、入力した印刷データに応じてサーマルヘッド１２１の発熱体を発熱させて感熱紙等の印刷媒体に文字を印刷する装置である。図１に示すように、サーマルプリンタ１０は、制御回路ユニット１００、プリンタメカ部１２０、およびバッテリ１４０を備える。
【００１４】
制御回路ユニット１００は、ＭＣＵ１０１、メモリ１０２、駆動回路１０３、駆動回路１０４、およびＩ／Ｆ（Inter Face）回路１０５を備える。
【００１５】
ＭＣＵ１０１は、印刷データから印刷制御データを生成する処理、印刷制御データをサーマルヘッド１２１へ送信する処理、モータ制御データを駆動回路１０４へ送信する処理といった制御処理を行う。ＭＣＵ１０１はＣＰＵ（Central Processing Unit）、メモリ（例えばＲＯＭ（Read Only Memory）、フラッシュメモリ）を備えて構成される。
【００１６】
メモリ１０２は、ＭＣＵ１０１が制御処理を行う際に必要な各種データを記憶する。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）が用いられる。
【００１７】
駆動回路１０３は、ＭＣＵ１０１から出力された印刷制御データをサーマルヘッド１２１へ供給して、サーマルヘッド１２１の駆動を制御する。
【００１８】
駆動回路１０４は、ＭＣＵ１０１から出力されたモータ制御データに基づいて、印刷媒体の用紙送りを行うためのパルスモータ１２２の駆動を制御する。
【００１９】
Ｉ／Ｆ（Inter Face）回路１０５は、ＭＣＵ１０１とパーソナルコンピュータ等の外部機器との間の各種データ送受信を制御する。
【００２０】
プリンタメカ部１２０は、サーマルヘッド１２１、パルスモータ１２２、サーミスタ１２３を備える。サーマルヘッド１２１は複数の発熱体（図２参照）を有し、駆動回路１０３から入力する印刷制御データに応じて発熱体を駆動して印刷媒体への印刷を行う。パルスモータ１２２は、サーマルプリンタ１０の用紙送りローラ（図示省略）を駆動回路１０４から入力するモータ制御データにより駆動して用紙送りを行う。サーミスタ１２３は、サーマルヘッド１２１の温度を検出し、検出された温度を表す検出値ＴをＭＣＵ１０１に送信する。
【００２１】
バッテリ１４０は、サーマルプリンタ１０の各部を動作させるための電力を供給する。バッテリ１４０としては、例えばリチウムイオンバッテリが用いられる。
【００２２】
（サーマルヘッド１２１の構成）
図２は、実施形態に係るサーマルヘッド１２１の構成を示す図である。図２に示すように、サーマルヘッド１２１は、発熱体Ｒ１〜Ｒ６４０、集積回路ＩＣ１〜ＩＣ６４０、シフトレジスタ２０１、およびラッチレジスタ２０２を備える。
【００２３】
発熱体Ｒ１〜Ｒ６４０は、サーマルヘッド１２１の主走査方向に一列に並べて設けられている。発熱体Ｒ１〜Ｒ６４０は、エネルギーの印加すなわち通電によって発熱し、感熱紙を加熱して文字を印刷する。サーマルプリンタ１０は、発熱体Ｒ１〜Ｒ６４０により１印刷ラインにつき６４０個のドットを印刷媒体に印刷できる。
【００２４】
発熱体Ｒ１〜Ｒ６４０は、印刷領域に応じて分割された印刷ブロックごとに制御される。本実施形態では、発熱体Ｒ１〜Ｒ６４０は１６０個の発熱体ごとに、第１の印刷ブロック（Ｒ１〜Ｒ１６０）と、第２の印刷ブロック（Ｒ１６１〜Ｒ３２０）と、第３の印刷ブロック（Ｒ３２１〜Ｒ４８０）と、第４の印刷ブロック（Ｒ４８１〜Ｒ６４０）とに分割されている。なお、サーマルプリンタ１０に設けられる発熱体の数、印刷ブロックの数等は、本実施形態に例示される構成に限られるものではない。
【００２５】
集積回路ＩＣ１〜ＩＣ６４０は各発熱体Ｒ１〜Ｒ６４０に対応して設けられ、それぞれ発熱体Ｒ１〜Ｒ６４０に接続されている。ＩＣ１〜ＩＣ６４０は、ＭＣＵ１０１から入力するストローブ信号のオンオフによってそのオンオフが制御される。ＩＣ１〜ＩＣ６４０は、ラッチレジスタ２０２から入力する信号が「１」でＭＣＵ１０１から入力するストローブ信号が「オン」の場合にオンになり、対応する発熱体Ｒ１〜Ｒ６４０に通電する。発熱体Ｒ１〜Ｒ６４０の通電時間はストローブ信号がオンとなっている時間により制御され、通電時間が長いほど発熱体Ｒ１〜Ｒ６４０に印加されるエネルギーが大きくなる。
【００２６】
シフトレジスタ２０１は、発熱体Ｒ１〜Ｒ６４０に対応する６４０ビットの１印刷ライン分の印刷制御データを記憶する。シフトレジスタ２０１が記憶する印刷制御データは発熱体Ｒ１〜Ｒ６４０の発熱を制御するデータであり、ビットが「１」である場合にはそのビットに対応する発熱体がオンとなり、ビットが「０」である場合には対応する発熱体がオフとなる。
【００２７】
ラッチレジスタ２０２は、シフトレジスタ２０１と同様に、発熱体Ｒ１〜Ｒ６４０に対応する１印刷ライン分の印刷制御データを記憶するデータ記憶領域を有する。ラッチレジスタ２０２は、ＭＣＵ１０１から／ＬＡＴ信号（データラッチ信号）を受信したタイミングで、シフトレジスタ２０１が記憶する印刷制御データをラッチする。ラッチレジスタ２０２によってラッチされた１印刷ライン分の印刷制御データは、ＩＣ１〜ＩＣ６４０に入力する。
【００２８】
ＭＣＵ１０１は、外部機器から入力する印刷データに基づいて文字を印刷するための印刷制御データ（ＤＩ信号）を生成する。ＭＣＵ１０１は、メモリ１０２に記憶された設定テーブル（図７参照）に基づいて、印刷データ中の各文字が印刷データによって指定された階調で印刷されるように、印刷制御データを生成する。文字の階調とは文字の印刷濃度を意味する。本実施形態では、文字の印刷濃度を文字毎に異ならせることができる。
【００２９】
ＭＣＵ１０１は、生成したＤＩ信号を１印刷ライン単位でクロック同期式シリアル通信によってシフトレジスタ２０１へ送信する。また、ＭＣＵ１０１は、シフトレジスタ２０１への１印刷ライン分のＤＩ信号の送信が完了すると、／ＬＡＴ信号をラッチレジスタ２０２へ送信する。これにより、ＭＣＵ１０１は、シフトレジスタ２０１が記憶する１印刷ライン分の印刷制御データをラッチレジスタ２０２にラッチさせる。
【００３０】
また、ＭＣＵ１０１は、発熱体に対するエネルギーの通電時間を制御するストローブ信号を印刷ブロック毎に送信する。ＭＣＵ１０１は、第１の印刷ブロックを制御するＩＣ１〜ＩＣ１６０にストローブ信号ＳＴＢ１を送信する。また、ＭＣＵ１０１は第２の印刷ブロックを制御するＩＣ１６１〜ＩＣ３２０にストローブ信号ＳＴＢ２を送信する。また、ＭＣＵ１０１は第３の印刷ブロックを制御するＩＣ３２１〜ＩＣ４８０にストローブ信号ＳＴＢ３を送信する。また、ＭＣＵ１０１は第４の印刷ブロックを制御するＩＣ４８１〜ＩＣ６４０にストローブ信号ＳＴＢ４を送信する。
【００３１】
電源１７は、発熱体Ｒ１〜Ｒ６４０に接続され、発熱体Ｒ１〜Ｒ６４０に電圧Ｖを印加する。ＭＣＵ１０１は、分圧回路１４１によって分圧された電圧Ｖｉｎに基づいて、電源１７から発熱体Ｒ１〜Ｒ６４０に印加されている電圧Ｖを求める。サーミスタ１２３はサーマルヘッド１２１の温度を測定し、測定値ＴをＭＣＵ１０１に送信する。
【００３２】
ＭＣＵ１０１は、発熱体Ｒ１〜Ｒ６４０に印加されている電圧Ｖに基づいて発熱体Ｒ１〜Ｒ６４０に印加するエネルギーを補正し、電圧変化に起因するエネルギーの不足分を補う。
【００３３】
また、ＭＣＵ１０１は、サーマルヘッド１２１の温度測定値Ｔに基づいて発熱体Ｒ１〜Ｒ６４０に印加するエネルギーを補正し、温度変化に起因するエネルギーの不足分を補う。
【００３４】
（サーマルプリンタ１０の機能構成）
図３は、サーマルプリンタ１０の機能構成を示す図である。図３に示すように、サーマルプリンタ１０は、取得部３０１、設定部３０２、コードバッファ３０３、変換部３０４、転送部３０５、および記憶部３０７を備える。
【００３５】
取得部３０１は、外部機器から送信された印刷データをＩ／Ｆ回路１０５を介して取得する。印刷データには、文字データと文字データが示す文字の印刷設定を示す印刷設定情報とが含まれている。印刷設定情報にはたとえば、文字毎の階調を示す階調情報が含まれている。取得部３０１の機能は、例えばメモリに記憶されたプログラムをＣＰＵが実行することによって実現される。
【００３６】
設定部３０２は、取得部３０１が取得した文字データおよび印刷設定情報に基づいて、文字データに関するバッファ情報（コードバッファ文字情報）を文字毎にコードバッファ３０３に設定する。コードバッファ文字情報には例えば、印刷される文字のグラフィックデータや印刷設定が含まれている。
【００３７】
また、設定部３０２は、取得部３０１が取得した印刷設定情報に含まれている階調情報に基づいて、取得部３０１が取得した文字データに含まれている文字毎に階調情報をコードバッファ３０３に設定する。具体的には、設定部３０２は、各文字の階調情報を対応するコードバッファ文字情報に設定する。
【００３８】
また、設定部３０２は、取得部３０１が取得した文字データおよび印刷設定情報に基づいて、印刷データの印刷行に関するコードバッファ行情報をコードバッファ３０３に設定する。設定部３０２の機能は、メモリに記憶されたプログラムをＣＰＵが実行することによって実現される。
【００３９】
コードバッファ３０３は、設定部３０２が設定した文字毎のコードバッファ文字情報と、文字毎の階調情報と、コードバッファ行情報とを記憶する。コードバッファ３０３は、例えばＭＣＵ１０１が備えるメモリである。
【００４０】
変換部３０４は、コードバッファ３０３に設定された文字毎のコードバッファ文字情報と文字毎の階調情報と、記憶部３０７に記憶されている設定テーブルとに基づいて、文字データに含まれる各文字を対応する階調情報で示す階調で印刷するための複数（本実施形態では、１印刷ラインあたり４つ）の印刷制御データを生成する。変換部３０４の機能は、メモリに記憶されたプログラムをＣＰＵが実行することによって実現される。
【００４１】
転送部３０５は、１印刷ライン毎に、変換部３０４が生成した当該印刷ラインの複数の印刷制御データを、駆動回路１０３を介してサーマルヘッド１２１へ順次転送する。転送部３０５の機能は、メモリに記憶されたプログラムをＣＰＵが実行することによって実現される。
【００４２】
記憶部３０７は、文字データに含まれる各文字に対して設定される階調毎に、印刷制御データに設定すべき設定値が対応付けられた設定テーブルを記憶する。なお、記憶部３０７が記憶する設定テーブルの詳細は図７を用いて後述する。記憶部３０７は、例えばメモリ１０２によって実現される。
【００４３】
サーマルヘッド１２１は、１印刷ライン毎に転送部３０５から順次転送される複数の印刷制御データに基づいて発熱体Ｒ１〜Ｒ６４０を複数回駆動することにより、文字データに含まれる各文字を設定された階調情報が示す階調で印刷する。
【００４４】
（サーマルプリンタ１０による処理）
図４は、サーマルプリンタ１０による処理の手順を示すフローチャートである。
【００４５】
まず、取得部３０１は、外部機器から送信された文字データおよび印刷設定情報を含む印刷データをＩ／Ｆ回路１０５を介して取得する（Ｓ４０１）。
【００４６】
次に、設定部３０２は、Ｓ４０１で取得した印刷データに含まれている印刷設定情報に基づいて、印刷データの印刷行に関するコードバッファ行情報をコードバッファ３０３に設定する。（Ｓ４０２）。
【００４７】
また、設定部３０２は、Ｓ４０１で取得した印刷データに含まれている文字データおよび印刷設定情報に基づいて、文字毎にコードバッファ文字情報をコードバッファ３０３に設定する（Ｓ４０３）。
【００４８】
さらに、設定部３０２は、Ｓ４０１で取得した印刷設定情報に含まれている階調情報に基づいて、Ｓ４０１で取得した文字データに含まれている文字毎の階調情報をコードバッファ３０３に設定する（Ｓ４０４）。
【００４９】
続いて、変換部３０４は、コードバッファ３０３に設定されたコードバッファ文字情報および階調情報に基づいて、Ｓ４０１で取得した文字データに含まれている各文字を対応する階調で印刷するための印刷制御データを生成する（Ｓ４０５）。ここで変換部３０４は１印刷ラインにつき４つの印刷制御データを生成する。
【００５０】
そして、転送部３０５は、１印刷ライン毎に、Ｓ４０４で生成した４つの印刷制御データを駆動回路１０３を介してサーマルヘッド１２１へ順次転送する（Ｓ４０６）。サーマルヘッド１２１は、１印刷ライン毎に転送部３０５から順次転送される４つの印刷制御データに基づいて発熱体Ｒ１〜Ｒ６４０を４回駆動して、文字データに含まれる各文字を対応する階調で印刷媒体に印刷する（Ｓ４０７）。そして、サーマルプリンタ１０は、図４に示す一連の処理を終了する。
【００５１】
なお、Ｓ４０５〜Ｓ４０７の処理は、サーマルプリンタ１０が１印刷ライン毎に行う処理を示している。サーマルプリンタ１０は、Ｓ４０５〜Ｓ４０７の処理を印刷ライン数および印刷行数に応じて繰り返し実行することにより、印刷媒体に複数の印刷ラインおよび複数の印刷行の印刷を行う。
【００５２】
（コードバッファ３０３に設定されるデータ）
図５は、コードバッファ３０３に設定されるデータの一例を示す図である。図５に示すように、コードバッファ３０３には、設定部３０２によってコードバッファ行情報５０１、およびコードバッファ文字情報５０２が設定される。コードバッファ行情報５０１は、印刷データの印刷行に関するバッファ情報である。コードバッファ文字情報５０２は、文字データに含まれている文字毎に設定される当該文字に関するバッファ情報である。
【００５３】
図５に示す例では、コードバッファ行情報５０１は、データ項目として、コード数（１行あたりの文字数）、印字ライン数（１行あたりの印刷ライン数）、用紙送りライン数（１行の印刷ライン数＋空白行の印刷ライン数）、左マージン、行内最大アンダーライン量（アンダーラインの幅のドット数）、および倒立文字［解除／指定］を含んでいる。
【００５４】
図５に示す例では、コードバッファ文字情報５０２はグラフィックデータの保存アドレスおよびグラフィック情報を含んでいる。保存アドレスには、印刷対象の文字のグラフィックデータ（図６参照）が保存されているメモリ１０２のアドレスが設定される。グラフィック情報は、データ項目として縦／横倍率、左右スペース量、アンダーライン高さ、右回転、白黒反転、強調、キャラクタサイズ、識別子、および階調を含んでいる。
【００５５】
ユーザは、各文字に対し４段階の階調（１００％，８０％，６０％，６０％）のいずれかを設定可能である。また、ユーザは、各文字に対し多階調印刷を行わない旨を示す「なし」を設定することも可能である。
【００５６】
変換部３０４は、文字データに含まれる各文字に対し、コードバッファ文字情報５０２に設定されている「階調」の設定値に基づいて印刷制御データを生成する。
【００５７】
ある文字の「階調」に「１００％」が設定された場合、変換部３０４は、図７に示す設定テーブルに基づいてその文字を印刷濃度「１００％」で印刷する印刷制御データを生成する。
【００５８】
ある文字の「階調」に「なし」が設定された場合、変換部３０４はその文字を所定の印刷濃度（例えば、１００％）で印刷するための印刷制御データを生成する。
【００５９】
なお、本実施形態では、図７に示すように各文字を１６段階の階調で印刷することが可能である。但し、本実施形態では、そのうちの４段階の階調（１００％，８０％，６０％，６０％）をユーザが使用する例を説明している。これにより、本実施形態では、文字データを印刷したときの文字間での印刷濃度の違いをユーザが容易に視認できるようにしている。
【００６０】
（印刷制御データ）
図６は、変換部３０４による印刷制御データの生成に用いられるグラフィックデータの一例を示す図である。図６（ａ）は文字「Ａ」のグラフィックデータを１６進数で表したものである。図６（ｂ）は文字「Ａ」のグラフィックデータを印刷イメージで表したものである。
【００６１】
図６に示すように１文字が１６×１６ドットで構成される場合、１文字分のグラフィックデータは８ドット毎に１ｂｙｔｅのデータで表すことができる。図６（ｂ）において、４行目の１〜８番目のドットからなる部分（図中点線で囲んだ部分）については、２進数表記で「００００１１１１１」と表すことができ、１６進数表記で「０ｘ０Ｆ」と表すことができる。図６（ａ）に示すように、１文字分のグラフィックデータとして３２ｂｙｔｅのデータが必要となる。
【００６２】
サーマルプリンタ１０は、文字の多階調印刷を行うために文字の印刷を１印刷ライン毎に４段階で行う。このため、変換部３０４は、各文字に対しグラフィックデータから４つの印刷制御データを生成する。すなわち、変換部３０４は、１文字につき３２×４＝１２８ｂｙｔｅの印刷制御データを生成する。
【００６３】
但し、本実施形態では、コードバッファ３０３に比較的データ量が多い印刷制御データを格納するのではなく、比較的データ量が少ないコードバッファ文字情報および階調情報を設定する。図５では、１文字につき５ｂｙｔｅの階調情報を含むコードバッファ文字情報を設定する。
【００６４】
サーマルプリンタ１０は、コードバッファ３０３に設定されたコードバッファ文字情報および階調情報に基づいて、印刷時に１文字につき１２８ｂｙｔｅの印刷制御データを生成する。これにより、本実施形態では、コードバッファ３０３が記憶するデータのデータ量を抑制しつつ、文字を多階調で印刷できるようになっている。
【００６５】
（設定テーブル）
図７は、記憶部３０７が記憶する設定テーブルの一例を示す図である。図７に示すように、設定テーブル７００では、文字データに含まれる各文字に対して設定され得る階調毎に、その階調で印刷を行うため印刷制御データに設定すべき設定値と、その階調で印刷を行うためにサーマルヘッド１２１の発熱体に印加されるエネルギーとが対応付けられている。サーマルヘッド１２１に印加されるエネルギーは、印刷媒体に印刷される文字の印刷濃度と実質的に等しい。
【００６６】
本実施形態では、文字の多階調印字を行うために１印刷ラインの印刷を４段階で行う。このため、文字データに含まれる文字毎に１〜４回目の印刷の各々の印刷制御データを生成する。これに応じて、設定テーブル７００には各文字に対して設定され得る階調毎に、１〜４回目の印刷制御データのそれぞれに設定すべき設定値（「ＯＮ」または「ＯＦＦ」）が示されている。
【００６７】
１回目の印刷制御データは「５３．３％」のエネルギーをサーマルヘッド１２１の発熱体に印加する制御データである。設定テーブル７００で１回目の印刷制御データに対して「ＯＮ」が設定されている場合、対応する印刷制御データの値が「１」のドットの発熱体に対し、１回目の印刷では「５３．３％」のエネルギーが印加される。
【００６８】
２回目の印刷制御データは、「２６．７％」のエネルギーを発熱体に印加する制御データである。設定テーブル７００で２回目の印刷制御データに対して「ＯＮ」が設定されている場合、対応する印刷制御データの値が「１」のドットに対応する発熱体に対し、２回目の印刷で「２６．７％」のエネルギーが印加される。
【００６９】
３回目の印刷制御データは、「１３．３％」のエネルギーを発熱体に印加する制御データである。設定テーブル７００で３回目の印刷制御データに対して「ＯＮ」が設定されている場合、対応する印刷制御データの値が「１」のドットに対応する発熱体に対し、３回目の印刷では「１３．３％」のエネルギーが印加される。
【００７０】
４回目の印刷制御データは「６．７％」のエネルギーを発熱体に印加する制御データである。設定テーブル７００で４回目の印刷制御データに対して「ＯＮ」が設定されている場合、対応する印刷制御データの値が「１」のドットに対応する発熱体に対し、４回目の印刷では「６．７％」のエネルギーが印加される。
【００７１】
（印刷制御データ）
図８は、変換部３０４が生成する印刷制御データの一例を示す図である。ここでは、ある文字のグラフィックデータの一部（２進数表記で「００００１１１１」で表される部分）に着目し、この部分を設定された階調で印刷するための印刷制御データを設定テーブルに基づいて生成する例を説明する。
【００７２】
図８（ａ）は、文字に階調「１５」（「１００％」）が設定された例を表している。この場合、変換部３０４は設定テーブル７００に基づき、その文字の１〜４回目の印刷制御データとしてそれぞれ「ＯＮ」，「ＯＮ」，「ＯＮ」，「ＯＮ」を設定する。これにより、変換部３０４は、図８（ａ）に示すように、その文字の１〜４回目の印刷制御データとして２進数表記で「００００１１１１」で表されるデータを生成する。これに応じて、１〜４回目の印刷のそれぞれにおいて「１」が設定されたドット（図８では５〜８番目のドット）に対応するサーマルヘッド１２１の発熱体が通電される。その結果、「１」が設定されたドットに対応する発熱体に階調「１５」に応じたエネルギー「１００％（５３．３％＋２６．７％＋１３．３％＋６．７％）」が４回に分けて印加され、そのドットが階調「１５」に応じた印刷濃度（１００％）で印刷される。
【００７３】
図８（ｂ）は、文字に階調「１２」（または「８０％」）が設定された例を表している。この場合、変換部３０４は設定テーブル７００に基づき、その文字の１〜４回目の印刷制御データとしてそれぞれ「ＯＮ」，「ＯＮ」，「ＯＦＦ」，「ＯＦＦ」を設定する。これにより、変換部３０４は、図８（ｂ）に示すようにその文字１〜２回目の印刷制御データとして２進数表記で「００００１１１１」で表されるデータを生成する、３〜４回目の印刷制御データとして２進数表記で「００００００００」で表されるデータを生成する。これに応じて、１〜２回目の印刷では「１」が設定されたドットに対応する発熱体が通電され、３〜４回目の印刷ではいずれの発熱体も通電されない。その結果、「１」が設定されたドットに対応する発熱体に対し、階調「１２」に応じたエネルギー「８０％（５３．３％＋２６．７％）」が印加され、「１」が設定されたドットが階調「１２」に応じた印刷濃度（８０％）で印刷される。
【００７４】
図８（ｃ）は、文字に階調「１０」（または「６０％」）が設定された例を表している。この場合、変換部３０４は設定テーブル７００に基づき、その文字の１〜４回目の印刷制御データとして「ＯＮ」，「ＯＦＦ」，「ＯＦＦ」，「ＯＮ」を設定する。これにより、変換部３０４は、図８（ｃ）に示すようにその文字の１，４回目の印刷制御データとして２進数表記で「００００１１１１」で表されるデータを生成する一方、２〜３回目の印刷制御データとして２進数表記で「００００００００」で表されるデータを生成する。これに応じて、１，４回目の印刷では「１」が設定されたドットに対応する発熱体が通電され、２〜３回目の印刷ではいずれの発熱体も通電されない。その結果、「１」が設定されたドットに対応する発熱体に対し、階調「１０」に応じたエネルギー「６０％（５３．３％＋６．７％）」が印加され、そのドットが階調「１０」に応じた印刷濃度（６０％）で印刷される。
【００７５】
図８（ｄ）は、文字に階調「８」（または「４０％」）が設定された例を表している。この場合、変換部３０４は設定テーブル７００に基づきその文字の１〜４回目の印刷制御データとして「ＯＦＦ」，「ＯＮ」，「ＯＮ」，「ＯＦＦ」を設定する。これにより、変換部３０４は、図８（ｄ）に示すようにその文字の２〜３回目の印刷制御データとして２進数表記で「００００１１１１」で表されるデータを生成する一方、１，４回目の印刷制御データとして２進数表記で「００００００００」で表されるデータを生成する。これに応じて、２，３回目の印刷では「１」が設定されたドットに対応する発熱体が通電され、１、４回目の印刷ではいずれの発熱体も通電されない。その結果、「１」が設定されたドットに対応する発熱体に対し、階調「８」に応じたエネルギー「４０％（２６．７％＋１３．３％）」が印加され、そのドットが階調「８」に応じた印刷濃度（４０％）で印刷される。
【００７６】
（各種信号のタイミング）
図９は、サーマルプリンタ１０における各種信号のタイミングの一例を示す図である。ここでは、１印刷ラインを４段階で印刷する際の各種信号のタイミングを説明する。
【００７７】
まず、ＭＣＵ１０１が、第１の印刷ステップの開始タイミング（ｔ１）が到来するまでの間に、１印刷ライン分の１回目の印刷制御データｄ１をシフトレジスタ２０１へ送信する。その後、ＭＣＵ１０１は１回目のデータラッチ信号をラッチレジスタ２０２へ送信する。これにより、ラッチレジスタ２０２が、シフトレジスタ２０１に記憶されている印刷制御データｄ１をラッチする。そして、ｔ１が到来すると、ラッチレジスタ２０２によってラッチされた印刷制御データｄ１がＩＣ１〜ＩＣ６４０に入力する。その状態で、ＭＣＵ１０１が１回目のストローブ信号ｓ１（エネルギー：５３．３％）をＩＣ１〜ＩＣ６４０に入力する。これにより、ＩＣ１〜ＩＣ６４０のうち、印刷制御データｄ１に「１」が設定されているビットに対応するＩＣがオンとなり、オンとなったＩＣに対応する発熱体に５３．３％のエネルギーが印加される。
【００７８】
次に、ＭＣＵ１０１は、第２の印刷ステップの開始タイミング（ｔ２）が到来するまでの間に２回目の印刷制御データｄ２をシフトレジスタ２０１へ送信する。その後、ＭＣＵ１０１は２回目のデータラッチ信号をラッチレジスタ２０２へ送信する。これにより、ラッチレジスタ２０２がシフトレジスタ２０１内に記憶されている印刷制御データｄ２をラッチする。そして、ｔ２が到来すると、ラッチレジスタ２０２によってラッチされた印刷制御データｄ２がＩＣ１〜ＩＣ６４０に入力する。その状態で、ＭＣＵ１０１が２回目のストローブ信号ｓ２（エネルギー：２６．７％）をＩＣ１〜ＩＣ６４０に入力する。これにより、ＩＣ１〜ＩＣ６４０のうち、印刷制御データｄ２に「１」が設定されているビットに対応するＩＣがオンとなり、オンとなったＩＣに対応する発熱体に２６．７％のエネルギーが印加される。
【００７９】
次に、ＭＣＵ１０１は、第３の印刷ステップの開始タイミング（ｔ３）が到来するまでの間に３回目の印刷制御データｄ３をシフトレジスタ２０１へ送信する。その後、ＭＣＵ１０１は３回目のデータラッチ信号をラッチレジスタ２０２へ送信する。これにより、ラッチレジスタ２０２がシフトレジスタ２０１内に記憶されている印刷制御データｄ３をラッチする。そして、ｔ３が到来すると、ラッチレジスタ２０２によってラッチされた印刷制御データｄ３がＩＣ１〜ＩＣ６４０に入力する。その状態で、ＭＣＵ１０１が３回目のストローブ信号ｓ３（エネルギー：１３．３％）をＩＣ１〜ＩＣ６４０に入力する。これにより、ＩＣ１〜ＩＣ６４０のうち印刷制御データｄ３に「１」が設定されているビットに対応するＩＣがオンとなり、オンとなったＩＣに対応する発熱体に１３．３％のエネルギーが印加される。
【００８０】
次に、ＭＣＵ１０１は、第４の印刷ステップの開始タイミング（ｔ４）が到来するまでの間に４回目の印刷制御データｄ４をシフトレジスタ２０１へ送信する。その後、ＭＣＵ１０１は４回目のデータラッチ信号をラッチレジスタ２０２へ送信する。これにより、ラッチレジスタ２０２が、シフトレジスタ２０１内に記憶されている印刷制御データｄ４をラッチする。そして、ｔ４が到来すると、ラッチレジスタ２０２によってラッチされた印刷制御データｄ４がＩＣ１〜ＩＣ６４０に入力する。その状態で、ＭＣＵ１０１が４回目のストローブ信号ｓ４（エネルギー：６．７％）をＩＣ１〜ＩＣ６４０に入力する。これにより、ＩＣ１〜ＩＣ６４０のうち印刷制御データｄ４に「１」が設定されているビットに対応するＩＣがオンとなり、オンとなったＩＣに対応する発熱体に対し、６．７％のエネルギーが印加される。
【００８１】
なお、図９において、１印刷ライン分の印刷制御データの転送時間は、ＭＣＵ１０１に予め設定されている転送速度設定と１印刷ラインのドット数とに依存する。転送速度設定が「４ＭＨｚ」であり且つ１印刷ラインのドット数が「６４０ドット」である場合、１印刷ライン分の印刷制御データの転送時間は０．２５μｓ（マイクロ秒）×６４０である。なお、本実施形態では１印刷ラインのドット数が「６４０ドット」であるが、１印刷ラインのドット数は、サーマルヘッド１２１のサイズに応じたもの（２インチ：４８ドット，３インチ：７２ドット，４インチ：１０４ドット）となる。
【００８２】
図９において、データラッチ信号の送信時間は例えば、数十ｎｓ（ナノ秒）〜１μｓ程度である。
【００８３】
図９において、各ストローブ信号ｓ１〜ｓ４の長さは印字濃度に応じたものとなる。ストローブ信号ｓ１はエネルギー「５３．３％」を発熱体に印加するために必要な長さとなる。ストローブ信号ｓ２はエネルギー「２６．７％」を発熱体に印加するために必要な長さとなる。ストローブ信号ｓ３はエネルギー「１３．３％」を発熱体に印加するために必要な長さとなる。ストローブ信号ｓ４はエネルギー「６．７％」を発熱体に印加するために必要な長さとなる。ストローブ信号の長さが所定の１印刷ステップの割り当て時間よりも長くなる場合はストローブ信号の長さが優先され、１印刷ステップの割り当て時間が延長される。
【００８４】
図９において、１印刷ステップ毎のモータ信号の長さは印字速度に応じて変化する。１印刷ラインが１／８ｍｍで印字速度を「１００ｍｍ／秒」と指定した場合、１印刷ラインのモータ信号の長さは１．２５ｍｓとなる。１印刷ラインにつき４ステップでモータを駆動する場合、１印刷ステップ毎のモータ信号の長さは１．２５ｍｓ／４＝０．３１２５ｍｓとなる。また、１印刷ラインが１／８ｍｍで印字速度を「５０ｍｍ／秒」と指定した場合、１印刷ラインのモータ信号の長さは２．５ｍｓとなり、１印刷ラインにつき４ステップでモータを駆動する場合、１印刷ステップ毎のモータ信号の長さは２．５ｍｓ／４＝０．６２５ｍｓとなる。
【００８５】
（印刷された文字）
図１０は、サーマルプリンタ１０によって印刷された文字の例を示す。ここでは、サーマルプリンタ１０によって文字「ＡＢＣＤＥＦＧＨ」が印刷された例を説明する。
【００８６】
文字「Ａ」，「Ｂ」の階調として、コードバッファ３０３に「１５（エネルギー：１００％）」が設定されている場合、図１０に示すように文字「Ａ」，「Ｂ」は設定された階調「１５（印刷濃度：１００％）」で印刷される。
【００８７】
文字「Ｃ」，「Ｄ」の階調としてコードバッファ３０３に「１２（エネルギー：８０％）」が設定されている場合、図１０に示すように文字「Ｃ」，「Ｄ」は設定された階調「１２（印刷濃度：８０％）」で印刷される。
【００８８】
文字「Ｅ」，「Ｆ」の階調として、コードバッファ３０３に「９（エネルギー：６０％）」が設定されている場合、図１０に示すように文字「Ｅ」，「Ｆ」は設定された階調「９（印刷濃度：６０％）」で印刷される。
【００８９】
文字「Ｇ」，「Ｈ」の階調としてコードバッファ３０３に「６（エネルギー：４０％）」が設定されている場合、文字「Ｇ」，「Ｈ」は設定された階調「６（印刷濃度：４０％）」で印刷される。
【００９０】
このように、本実施形態では、文字毎にコードバッファ３０３に設定された階調で印刷することができる。特に、本実施形態では、コードバッファ３０３に設定可能な階調を、階調値が互いに所定値以上離れている４段階の階調（１００％，８０％，６０％，４０％）としている。これにより、本実施形態では、図１０に示すように印刷された文字間の印刷濃度の違いをユーザが容易に視認できる。
【００９１】
以上説明したように、本実施形態では、コードバッファに設定した文字の階調情報に基づいて、設定された階調で文字を印刷するための印刷制御データを印刷時に生成する。これにより、本実施形態では、コードバッファが記憶するデータ量を抑制しつつ、文字を多階調で印刷できる。
【００９２】
本実施形態では、文字毎に設定した階調情報に基づいて各文字を設定された階調で印刷するための印刷制御データを印刷時に生成するため、文字毎に任意の階調で印刷できる。
【００９３】
なお、本実施形態では、文字毎に、コードバッファ３０３に階調とともに文字サイズや回転角度を設定することが可能である。これにより、本実施形態では各文字を任意の階調、文字サイズ、回転角度で印刷することができる。
【００９４】
以上、本発明の第１，第２実施形態について詳述したが、本発明はこれらの実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【００９５】
例えば、上記実施形態では印刷濃度として１００％，８０％，６０％，４０％の４段階の階調値を設定しているが、コードバッファ３０３に他の４段階の階調値を設定してもよく、３段階以下の階調値あるいは５段階以上の階調値を設定可能としてもよい。
【００９６】
実施形態のサーマルプリンタ１０は、文字のみならず画像を印刷可能なものであってもよい。文字データが印刷データとして入力した場合、文字データ用のバッファに文字データに関するバッファデータを格納し、印刷時にバッファデータから文字データを印刷するための印刷制御データを生成する。一方、画像データが入力した場合、画像データ用のバッファに画像データに関するバッファデータを格納し、印刷時にバッファデータから画像データを印刷するための印刷制御データを生成してもよい。
【符号の説明】
【００９７】
１０  サーマルプリンタ
１０１  ＭＣＵ
１０２  メモリ
１０３  駆動回路
１２１  サーマルヘッド
２０１  シフトレジスタ
２０２  ラッチレジスタ
３０１  取得部
３０２  設定部
３０３  コードバッファ
３０４  変換部
３０５  転送部
３０７  記憶部
ＩＣ１〜ＩＣ６４０  集積回路
Ｒ１〜Ｒ６４０  発熱体
【図１】
2019171708.tif 000003
【図２】
2019171708.tif 000004
【図３】
2019171708.tif 000005
【図４】
2019171708.tif 000006
【図５】
2019171708.tif 000007
【図６】
2019171708.tif 000008
【図７】
2019171708.tif 000009
【図８】
2019171708.tif 000010
【図９】
2019171708.tif 000011
【図１０】
2019171708.tif 000012