(57)【要約】【課題】印刷解像度（正確には、印字ドットサイズ）と紙送りピッチが相違する場合であっても、各行の文字をズレなく正しく印刷できる（印刷品質が低下することなく高解像度で印刷できる）プリンター等を提供する。【解決手段】紙送りピッチが１／ｎ１（但し、ｎ１は１以上の整数）の用紙搬送機構３８と、印字ドットサイズが１／ｎ２（但し、ｎ２はｎ１×ｎ３、ｎ３は２以上の整数）の印刷機構３４ａと、第１印字内容、第２印字内容を副走査方向にこの順に印字する場合、前記第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、前記第１印字内容と前記第２印字内容との間に空白を追加して前記第１印字内容と前記第２印字内容を印字するように、前記用紙搬送機構３８と前記印刷機構３４ａとを制御する印刷制御部と、を備えたことを特徴とする。【選択図】  図１
2017185750.tif 000002
【特許請求の範囲】
【請求項１】
紙送りピッチが１／ｎ１（但し、ｎ１は１以上の整数）の用紙搬送機構と、
印字ドットサイズが１／ｎ２（但し、ｎ２はｎ１×ｎ３、ｎ３は２以上の整数）の印刷機構と、
第１印字内容、第２印字内容を副走査方向にこの順に印字する場合、前記第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、前記第１印字内容と前記第２印字内容との間に空白を追加して前記第１印字内容と前記第２印字内容を印字するように、前記用紙搬送機構と前記印刷機構とを制御する印刷制御部と、を備えたプリンター。
【請求項２】
前記空白は、ｎ４−ｎ３×ｎ５ドット分の空白である（但し、ｎ５はｎ４をｎ３で除算し、小数点以下を切り捨てた値）、請求項１に記載のプリンター。
【請求項３】
紙送りピッチが１／ｎ１（但し、ｎ１は１以上の整数）の用紙搬送機構と、印字ドットサイズが１／ｎ２（但し、ｎ２はｎ１×ｎ３、ｎ３は２以上の整数）の印刷機構と、を備えたプリンターにおける印刷制御方法であって、
第１印字内容、第２印字内容を副走査方向にこの順に印字する場合、前記第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、前記第１印字内容と前記第２印字内容との間に空白を追加して前記第１印字内容と前記第２印字内容を印字するように、前記用紙搬送機構と前記印刷機構とを制御する印刷制御ステップを含む印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンター、及び印刷制御方法に関し、特に、印刷解像度（正確には、印字ドットサイズ）と紙送りピッチが相違する場合であっても、各行の印字内容（例えば、文字や画像）をズレなく正しく印刷できる（印刷品質が低下することなく高解像度で印刷できる）プリンター、及び印刷制御方法に関する。
【背景技術】
【０００２】
従来、主走査方向に往復移動する印刷ヘッドによって画像の一部を印刷し、画像の一部を印刷するごとに紙送りし、これを繰り返すことで画像全体を印刷するプリンターが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１４２７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記プリンターでは、印刷解像度（正確には、印字ドットサイズ。例えば、１／６００ｄｐｉ）と紙送りピッチ（例えば、１／６００ｄｐｉ）が同じであれば、正しく印刷できるものの、両者が相違する場合、正しく印刷できず、印刷品質を確保できないという課題がある。
【０００５】
例えば、印刷解像度が６００ｄｐｉ（つまり、印字ドットサイズが１／６００ｄｐｉ）で、紙送りピッチが１／３００ｄｐｉの場合を想定する。この場合、１ピッチ分紙送りすると、印字ドットが２ドット分送られる。
【０００６】
この印刷解像度、及び紙送りピッチで、例えば、図８に示すように、１行目に文字「Ａ」（副走査方向の印字ドット数が１０ドット）を印刷し、かつ、２行目（文字「Ａ」の直下）に文字「Ｏ」（副走査方向の印字ドット数が１０ドット）を印刷する場合、すなわち、印刷解像度と紙送りピッチが同じ場合、１０ドット／２ドット（１ピッチ分の紙送り量ｐ）＝５となるため、５ピッチ分（ｐ×５＝１０ドット分）紙送りすれば正しく紙送りでき、文字「Ａ」と文字「Ｏ」をズレなく正しく印刷することができる。図８は、各行の文字がズレなく正しく印刷された様子を表している。
【０００７】
これに対して、上記印刷解像度、及び紙送りピッチで、例えば、１行目に文字「Ａ」（副走査方向の印字ドット数が９ドット）を印刷し、２行目（文字「Ａ」の直下）に文字「Ｏ」（副走査方向の印字ドット数が１０ドット）を印刷する場合、すなわち、印刷解像度と紙送りピッチが相違する場合、９ドット／２ドット（１ピッチ分の紙送り量ｐ）＝４．５となるため、５ピッチ分（ｐ×５＝１０ドット分）紙送りすると余分に紙送りすることとなり、図９に示すように、文字「Ａ」と文字「Ｏ」との間に１ドットの空白ができてしまう。つまり、正しく印刷できる図８の場合と比べ、文字「Ｏ」が文字「Ａ」から離れる方向（副走査方向）に１ドット分ズレてしまう。図９は、各行の文字が１ドット分ズレた状態で印刷された様子を表している。
【０００８】
一方、４ピッチ分（ｐ×４＝８ドット分）紙送りすると紙送りが不足することとなり、図１０に示すように、文字「Ａ」と文字「Ｏ」とが一部（１ドット分）重なってしまう。つまり、正しく印刷できる図８の場合と比べ、文字「Ｏ」が文字「Ａ」に近づく方向（副走査方向）に１ドット分ズレてしまう。図１０は、各行の文字が１ドット分ズレた状態で印刷された様子を表している。
【０００９】
以上のように、印刷解像度（正確には、印字ドットサイズ。例えば、１／６００ｄｐｉ）と紙送りピッチ（例えば、１／３００ｄｐｉ）が相違する場合、各行の印字内容（例えば、文字や画像）をズレなく正しく印刷できず、印刷品質を確保できないというという課題がある。
【００１０】
本発明は、上記事情に鑑みてなされたものであり、本発明は、印刷解像度（正確には、印字ドットサイズ）と紙送りピッチが相違する場合であっても、各行の印字内容（例えば、文字や画像）をズレなく正しく印刷できる（印刷品質が低下することなく高解像度で印刷できる）プリンター等を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の一つの側面は、紙送りピッチが１／ｎ１（但し、ｎ１は１以上の整数）の用紙搬送機構と、印字ドットサイズが１／ｎ２（但し、ｎ２はｎ１×ｎ３、ｎ３は２以上の整数）の印刷機構と、第１印字内容、第２印字内容を副走査方向にこの順に印字する場合、前記第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、前記第１印字内容と前記第２印字内容との間に空白を追加して前記第１印字内容と前記第２印字内容を印字するように、前記用紙搬送機構と前記印刷機構とを制御する印刷制御部と、を備えたことを特徴とする。
【００１２】
この側面によれば、印刷解像度（正確には、印字ドットサイズ）と紙送りピッチが相違する場合であっても、各行の印字内容（例えば、文字や画像）をズレなく正しく印刷できる（印刷品質が低下することなく高解像度で印刷できる）プリンターを提供できる。
【００１３】
これは、第１印字内容、第２印字内容を副走査方向にこの順に印字する場合、第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、第１印字内容と第２印字内容との間に空白を追加して第１印字内容と第２印字内容を印字すること（つまり、仮想的な紙送りを行うこと）によるものである。
【００１４】
また、上記発明において、好ましい態様は、前記空白は、ｎ４−ｎ３×ｎ５ドット分の空白である（但し、ｎ５はｎ４をｎ３で除算し、小数点以下を切り捨てた値）ことを特徴とする。
【００１５】
この態様によれば、印刷解像度（正確には、印字ドットサイズ）と紙送りピッチが相違する場合であっても、各行の印字内容（例えば、文字や画像）をズレなく正しく印刷できる（印刷品質が低下することなく高解像度で印刷できる）プリンターを提供できる。
【００１６】
これは、第１印字内容、第２印字内容を副走査方向にこの順に印字する場合、第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、第１印字内容と第２印字内容との間に空白（ｎ４−ｎ３×ｎ５ドット分の空白）を追加して第１印字内容と第２印字内容を印字すること（つまり、仮想的な紙送りを行うこと）によるものである。
【００１７】
また、上記目的を達成するため、本発明の別の側面は、紙送りピッチが１／ｎ１（但し、ｎ１は１以上の整数）の用紙搬送機構と、印字ドットサイズが１／ｎ２（但し、ｎ２はｎ１×ｎ３、ｎ３は２以上の整数）の印刷機構と、を備えたプリンターにおける印刷制御方法であって、第１印字内容、第２印字内容を副走査方向にこの順に印字する場合、前記第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、前記第１印字内容と前記第２印字内容との間に空白を追加して前記第１印字内容と前記第２印字内容を印字するように、前記用紙搬送機構と前記印刷機構とを制御する印刷制御ステップを含むことを特徴とする。
【００１８】
この側面によれば、印刷解像度（正確には、印字ドットサイズ）と紙送りピッチが相違する場合であっても、各行の印字内容（例えば、文字や画像）をズレなく正しく印刷できる（印刷品質が低下することなく高解像度で印刷できる）印刷制御方法を提供できる。
【００１９】
これは、第１印字内容、第２印字内容を副走査方向にこの順に印字する場合、第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、第１印字内容と第２印字内容との間に空白を追加して第１印字内容と第２印字内容を印字すること（つまり、仮想的な紙送りを行うこと）によるものである。
【図面の簡単な説明】
【００２０】
【図１】本発明のプリンター、及び印刷制御方法が適用されるＰＯＳシステム１０（プリンターシステム）のシステム構成の一例を示す図である。
【図２】プリンター３０の機能構成の一例を示す図である。
【図３】プリンター３０の動作（印刷制御方法）の一例を説明するためのフローチャートである。
【図４】プリンター３０の動作（印刷制御方法）の一例を説明するためのフローチャートである。
【図５】フォントデータに基づくイメージデータＩ１の一例である。
【図６】フォントデータに基づくイメージデータＩ２の一例である。
【図７】各行の文字がズレなく正しく印刷された様子を表す図である。
【図８】各行の文字がズレなく正しく印刷された様子を表す図である。
【図９】各行の文字が１ドット分ズレた状態で印刷された様子を表す図である。
【図１０】各行の文字が１ドット分ズレた状態で印刷された様子を表す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について添付図面を参照しながら説明する。各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
【００２２】
まず、本発明のプリンター、及び印刷制御方法が適用されるＰＯＳシステム（プリンターシステム）の概要について説明する。
【００２３】
図１は、本発明のプリンター、及び印刷制御方法が適用されるＰＯＳシステム１０（プリンターシステム）のシステム構成の一例を示す図である。図２は、プリンター３０の機能構成の一例を示す図である。
【００２４】
本実施形態のＰＯＳシステム１０は、紙送りピッチが１／ｎ１（但し、ｎ１は１以上の整数）の用紙搬送機構３８と、印字ドットサイズが１／ｎ２（但し、ｎ２はｎ１×ｎ３、ｎ３は２以上の整数）の印刷機構（印刷ヘッド３４ａ）と、第１印字内容（例えば、図７中の文字「Ａ」参照）、第２印字内容（例えば、図７中の文字「Ｏ」参照）を副走査方向にこの順に印字する場合、第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、第１印字内容と第２印字内容との間に空白（例えば、図６中の空白Ｓ参照）を追加して第１印字内容と第２印字内容を印字するように、用紙搬送機構３８と印刷機構（印刷ヘッド３４ａ）とを制御する印刷制御部４２ｉと、を備える。
【００２５】
本実施形態のＰＯＳシステム１０によれば、印刷解像度（正確には、印字ドットサイズ）と紙送りピッチが相違する場合であっても、各行の印字内容（例えば、文字や画像）をズレなく正しく印刷できる（印刷品質が低下することなく高解像度で印刷できる）プリンター及び印刷制御方法を提供できる。
【００２６】
これは、第１印字内容、第２印字内容を副走査方向にこの順に印字する場合、第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、第１印字内容と第２印字内容との間に空白を追加して第１印字内容と第２印字内容を印字することによるものである。
【００２７】
以下、本発明のプリンター、及び印刷制御方法が適用されるＰＯＳシステム１０（プリンターシステム）について、図面を参照しながら詳細に説明する。
【００２８】
図１に示すように、ＰＯＳシステム１０は、ホストコンピューター２０、及び、プリンター３０を備える。
【００２９】
まず、ホストコンピューター２０について説明する。
【００３０】
ホストコンピューター２０は、図示しないが、ハード構成として、ＣＰＵ、これにバスを介して接続された、ＲＡＭ、ＲＯＭ、ＨＤＤ、Ｉ／Ｆ（インターフェイス。以下同様）等を備える。ホストコンピューター２０には、Ｉ／Ｆを介してプリンター３０が接続される。
【００３１】
また、ホストコンピューター２０には、図示しないが、Ｉ／Ｆを介して、バーコードを読み取るバーコードリーダー、顧客からの預り金等を入力するキーボード、商品名や価格等が表示されるディスプレイ等が接続される。また、ＨＤＤには、図示しないが、オペレーティングシステム、ＰＯＳアプリケーション、プリンタードライバー等が記憶される。
【００３２】
ホストコンピューター２０は、機能構成として、バーコードリーダーやキーボードからの入力に基づき、決済処理を行う機能、印刷データを生成する機能、プリンター３０と通信する機能、印刷データをプリンター３０へ送信する機能等を備える。
【００３３】
これらの機能は、主に、ホストコンピューター２０（ＣＰＵ）が、ＨＤＤからＲＡＭに読み込まれた所定プログラム（オペレーティングシステム、ＰＯＳアプリケーション、プリンタードライバー等）を実行することによって実現される。
【００３４】
なお、印刷データは、印刷を指示するコマンドと、文字コードと、フォントを指定するコマンドと、を含む。文字コードは、例えば、アスキーコードで表される。
【００３５】
次に、プリンター３０について説明する。
【００３６】
プリンター３０は、インクジェット方式のレシートプリンターで、図１に示すように、ハード構成として、制御部３２、キャリッジ３４、キャリッジ駆動機構３６、用紙搬送機構３８、Ｉ／Ｆ４０等を備える。
【００３７】
制御部３２は、ＣＰＵ３２ａ、ＲＡＭ３２ｂ、ＲＯＭ３２ｃ等を含む。ＲＡＭ３２ｂは、受信バッファー３２ｂ１、プリントバッファー３２ｂ２を含む。ＲＯＭ３２ｃは、例えば、フラッシュＲＯＭ等の書き換え可能な不揮発性メモリーで、制御プログラム等が記憶される。ＲＯＭ３２ｃは、フォントデータ記憶部３２ｃ１を含む。フォントデータ記憶部３２ｃ１には、第１フォントテーブル、及び、第２フォントテーブルが記憶される。第１フォントテーブルは、副走査方向（用紙搬送方向）の印字ドット数が第１ドット数（例えば、９ドット）のフォントデータ群を含む。第２フォントテーブルは、副走査方向の印字ドット数が第２ドット数（例えば、１０ドット）のフォントデータ群を含む。
【００３８】
用紙搬送機構３８は、紙送りピッチが１／ｎ１（但し、ｎ１は１以上の整数）の用紙搬送機構である。本実施形態では、ｎ１＝３００、すなわち、紙送りピッチが１／３００ｄｐｉである。用紙搬送機構３８は、用紙（レシート用のロール紙）を副走査方向に搬送させるための周知の用紙搬送機構で、例えば、紙送りローラー３８ａ、紙押えローラー（図示せず）、紙送りモーター３８ｂ、紙送りローラー３８ａと紙送りモーター３８ｂとを連結する減速歯車列（図示せず）等を含む。なお、紙送りローラー３８ａと紙押えローラーとの組み合わせは、複数設けられる場合もある。
【００３９】
紙送りモーター３８ｂの回転は、減速歯車列を介して紙送りローラー３８ａに伝達され、紙送りローラー３８ａを回転させる。紙送りローラー３８ａには、バネ力によって紙押えローラーが押し付けられているため、紙送りローラー３８ａと紙押えローラーとの間に導かれる用紙は、紙送りローラー３８ａと紙押えローラーとの間に発生する摩擦力によって副走査方向に紙送り（搬送）される。
【００４０】
紙送りモーター３８ｂは制御部３２（ＣＰＵ３２ａ）又は制御部３２（ＣＰＵ３２ａ）によって制御されるモーターコントローラー（図示せず）によって制御されるステップモータで、１ステップ分回転すると、用紙は副走査方向にｎ３ドット分紙送りされる。本実施形態では、ｎ３＝２である。
【００４１】
キャリッジ３４は、副走査方向に直交する方向（以下、主走査方向と称する）に延びるキャリッジガイド軸（図示せず）に沿って移動可能に支持される。キャリッジ３４には、印刷ヘッド３４ａ（インクジェットヘッド）が搭載される。印刷ヘッド３４ａは、印字ドットサイズが１／ｎ２（但し、ｎ２はｎ１×ｎ３、ｎ３は２以上の整数）の印刷ヘッド（印刷機構）である。本実施形態では、ｎ２＝６００ｄｐｉ、すなわち、印字ドットサイズが１／６００ｄｐｉである。
【００４２】
キャリッジ駆動機構３６は、キャリッジ３４を主走査方向に移動させるための周知の機構で、例えば、主走査方向に架け渡されたタイミングベルト（図示せず）、これを回転させるためのキャリッジ駆動モーター３６ａ等によって構成される。紙送りモーター３８ｂは制御部３２（ＣＰＵ３２ａ）又は制御部３２（ＣＰＵ３２ａ）によって制御されるモーターコントローラー（図示せず）によって制御されるステップモータである。
【００４３】
キャリッジ３４は、タイミングベルトに取り付けられており、キャリッジ駆動モーター３６ａによってタイミングベルトが回転されることで、キャリッジガイド軸に沿って主走査方向に移動する。この移動に同期して印刷ヘッド３４ａの各ノズルがインクカートリッジ（図示せず）から供給されるインクを吐出することで、用紙に印字内容（文字等）を印刷する。
【００４４】
図２に示すように、プリンター３０は、機能構成として、受信部４２ａ、解析部４２ｂ、フォントデータ取得部４２ｃ、印刷データ作成部４２ｄ、紙送り量計算部４２ｅ、仮想紙送り要否判定部４２ｆ、仮想紙送り設定部４２ｇ、紙送りステップ数計算部４２ｈ、印刷制御部４２ｉ等を備える。これらの機能は、主に、ＣＰＵ３２ａが、ＲＯＭ３２ｃからＲＡＭ３２ｂに読み込まれた所定プログラム（制御プログラム等）を実行することによって実現される。
【００４５】
受信部４２ａは、ホストコンピューター２０からＩ／Ｆ４０を介して印刷データを受信し、当該受信した印刷データを受信バッファー３２ｂ１に記憶する。
【００４６】
解析部４２ｂは、受信バッファー３２ｂ１に記憶された印刷データを解析し、コマンド（例えば、フォントテーブルを指定するコマンド）と文字コードとに分類する。
【００４７】
フォントデータ取得部４２ｃは、フォントデータ記憶部３２ｃ１（フォントテーブルを指定するコマンドによって指定されるフォントテーブル）から、解析部４２ｂによって分類された文字コードに対応するフォントデータを取得する（読み出す）。
【００４８】
印刷データ作成部４２ｄは、１パス分の印刷データを作成する。具体的には、印刷データ作成部４２ｄは、フォントデータ取得部４２ｃによって取得されたフォントデータに基づくイメージデータを生成してプリントバッファー３２ｂ２に展開（格納）し、１パス分の印刷データを作成する。なお、１パス分の印刷データは、例えば、プリントバッファー３２ｂ２がフルになった時点、又は、予め定められた時間が経過した時点で確定する。
【００４９】
また、印刷データ作成部４２ｄは、後述の仮想紙送り設定部４２ｇによって次パスでの仮想紙送りが「必要」に設定されている場合、次の１パス分の印刷データの先頭に空白（空白データ）を挿入し、次の１パス分の印刷データを作成する。具体的には、印刷データ作成部４２ｄは、フォントデータ取得部４２ｃによって取得されたフォントデータに基づくイメージデータを生成してその先頭に、空白（空白データ）を挿入した状態でプリントバッファー３２ｂ２に展開（格納）し、次の１パス分の印刷データを作成する。
【００５０】
紙送り量計算部４２ｅは、紙送り量（ドット数）を計算する。具体的には、紙送り量計算部４２ｅは、フォントデータ取得部４２ｃによって取得されたフォントデータに基づくイメージデータの副走査方向の印字ドット数ｎ４を計算する。
【００５１】
例えば、フォントデータ取得部４２ｃによってフォントデータ記憶部３２ｃ１（第１フォントテーブル）からフォントデータが取得された場合、紙送り量計算部４２ｅは、当該フォントデータに基づくイメージデータの副走査方向の紙送り量（ドット数）、すなわち、副走査方向の印字ドット数ｎ４が９ドットと計算する。一方、フォントデータ取得部４２ｃによってフォントデータ記憶部３２ｃ１（第２フォントテーブル）からフォントデータが取得された場合、紙送り量計算部４２ｅは、当該フォントデータに基づくイメージデータの副走査方向の紙送り量（ドット数）、すなわち、副走査方向の印字ドット数ｎ４が１０ドットと計算する。この印字ドット数ｎ４は、イメージデータに基づき容易に計算できる。なお、この印字ドット数ｎ４はフォントテーブルごとに決まっているため、予めフォントテーブルごとの印字ドット数を、ＲＯＭ３２ｃ等の記憶部に記憶しておき、これを読み出すようにしてもよい。
【００５２】
仮想紙送り要否判定部４２ｆは、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が偶数か奇数か（すなわち、印字ドット数ｎ４がｎ３の整数倍か否か）を判定する。具体的には、仮想紙送り要否判定部４２ｆは、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が奇数（すなわち、印字ドット数ｎ４がｎ３の整数倍でない）の場合、次パスでの仮想紙送りが必要と判定する。一方、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が偶数（すなわち、印字ドット数ｎ４がｎ３の整数倍である）の場合、次パスでの仮想紙送りが不要と判定する。
【００５３】
仮想紙送り設定部４２ｇは、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が奇数（すなわち、印字ドット数ｎ４がｎ３の整数倍でない）と判定された場合、次パスでの仮想紙送りが「必要」を設定する。例えば、仮想紙送り設定部４２ｇは、次パスでの仮想紙送りが必要であることを表すフラグ（例えば、ＣＰＵ３２ａ内の特定のフラグ）を立てる。一方、仮想紙送り設定部４２ｇは、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が偶数（すなわち、印字ドット数ｎ４がｎ３の整数倍である）と判定された場合、次パスでの仮想紙送りが「不要」を設定する。例えば、仮想紙送り設定部４２ｇは、次パスでの仮想紙送りが必要であることを表すフラグ（例えば、ＣＰＵ３２ａ内の特定のフラグ）を落とす。
【００５４】
紙送りステップ数計算部４２ｈは、次の式１によって紙送りステップ数ｎ５を計算する。但し、小数点以下は切り捨てる。
【００５５】
紙送りステップ数ｎ５＝ｎ４／ｎ３・・・（式１）
例えば、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が１０ドット、すなわち、ｎ４＝１０の場合、紙送りステップ数ｎ５は、１０／２により、５ステップと計算される。
【００５６】
一方、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が９ドット、すなわち、ｎ４＝９の場合、紙送りステップ数ｎ５は、９／２、かつ、小数点以下を切り捨てることで、４ステップと計算される。
【００５７】
印刷制御部４２ｉは、印刷データ作成部４２ｄによって作成された１パス分の印刷データに基づき、印刷ヘッド３４ａ（印刷機構）とキャリッジ駆動モーター３６ａ（用紙搬送機構）とを制御して、１パス分の印刷を実行する。また、印刷制御部４２ｉは、１パス分の印刷が終了すると、紙送りモーター３８ｂを制御して、紙送りステップ数計算部４２ｈによって計算されたステップ数ｎ５分紙送りを実行する。
【００５８】
次に、本実施形態のプリンター３０の動作（プリンター制御方法）の一例について図を参照しながら説明する。
【００５９】
図３、図４は、プリンター３０の動作（印刷制御方法）の一例を説明するためのフローチャートである。図５はフォントデータに基づくイメージデータＩ１の一例、図６はフォントデータに基づくイメージデータＩ２の一例である。図７は、各行の文字がズレなく正しく印刷された様子を表す図である。
【００６０】
以下の処理は、主に、ＣＰＵ３２ａが、ＲＯＭ３２ｃからＲＡＭ３２ｂに読み込まれた所定プログラム（制御プログラム等）を実行することによって実現される。
【００６１】
以下、ホストコンピューター２０がプリンター３０に、図７に示すように、１行目に第１フォントテーブル中のフォントデータに基づく文字「Ａ」（副走査方向のドット数が９ドット）を印刷し、かつ、２行目（文字「Ａ」の直下）に第２フォントテーブル中のフォントデータに基づく文字「Ｏ」（副走査方向のドット数が１０ドット）を印刷するための印刷データを送信した状況を例にして説明する。
【００６２】
プリンター３０（受信部４２ａ）は、ホストコンピューター２０からＩ／Ｆ４０を介して印刷データを受信し、当該受信した印刷データを受信バッファー３２ｂ１に記憶する（ステップＳ１０）。
【００６３】
次に、プリンター３０（解析部４２ｂ）は、受信バッファー３２ｂ１に記憶された印刷データを解析し（ステップＳ１２）、コマンド（ここでは、第１フォントテーブルを指定するコマンド）と文字コード（ここでは、「Ａ」の文字コード）とに分類する。
【００６４】
次に、プリンター３０（フォントデータ取得部４２ｃ）は、フォントデータ記憶部３２ｃ１（ここでは、コマンドによって指定される第１フォントテーブル）から、解析部４２ｂによって分類された文字コードに対応するフォントデータ（ここでは、「Ａ」のフォントデータ）を取得する（ステップＳ１４）。
【００６５】
次に、プリンター３０（印刷データ作成部４２ｄ）は、１パス分の印刷データを作成する（ステップＳ１６）。具体的には、印刷データ作成部４２ｄは、図５に示すように、フォントデータ取得部４２ｃによって取得されたフォントデータに基づく「Ａ」のイメージデータＩ１を生成してプリントバッファー３２ｂ２に展開（格納）し、１パス分の印刷データを作成する。なお、図５中の符号ｎ３は、１ピッチ分の紙送りで送られる印字ドット数（ここでは、ｎ３＝２ドット）で、ＲＯＭ３２ｃ等の記憶部に予め記憶される。
【００６６】
次に、プリンター３０（紙送り量計算部４２ｅ）は、紙送り量（ドット数）を計算する（ステップＳ１８）。具体的には、紙送り量計算部４２ｅは、フォントデータ取得部４２ｃによって取得されたフォントデータに基づくイメージデータ（第１印字内容。ここでは、「Ａ」のイメージデータ。図５参照）の副走査方向の印字ドット数ｎ４（ここでは、ｎ４＝９ドット）を計算する。この印字ドット数ｎ４は、「Ａ」のイメージデータに基づき容易に計算できる。
【００６７】
次に、プリンター３０（仮想紙送り要否判定部４２ｆ）は、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が偶数か奇数か（すなわち、印字ドット数ｎ４がｎ３の整数倍か否か）を判定する（ステップＳ２０）。
【００６８】
ここでは、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が９ドットであるため、仮想紙送り要否判定部４２ｆは、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が奇数（すなわち、印字ドット数ｎ４がｎ３の整数倍でない）と判定する（ステップＳ２０：奇数）。
【００６９】
次に、プリンター３０（仮想紙送り設定部４２ｇ）は、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が奇数（すなわち、印字ドット数ｎ４がｎ３の整数倍でない）と判定された場合（ステップＳ２０：奇数）、次パスでの仮想紙送りが「必要」を設定する（ステップＳ２２）。例えば、仮想紙送り設定部４２ｇは、次パスでの仮想紙送りが必要であることを表すフラグ（例えば、ＣＰＵ３２ａ内の特定のフラグ）を立てる。
【００７０】
次に、プリンター３０（紙送りステップ数計算部４２ｈ）は、上記式１によって紙送りステップ数ｎ５を計算する（ステップＳ２４）。ここでは、紙送りステップ数計算部４２ｈは、紙送りステップ数ｎ５として、ｎ４（ここでは、ｎ４＝９ドット）をｎ３（ここでは、ｎ３＝２ドット）で除算し、小数点以下を切り捨てた値（ここでは、ｎ５＝４）を計算する。
【００７１】
次に、プリンター３０（印刷制御部４２ｉ）は、印刷データ作成部４２ｄによって作成された１パス分の印刷データに基づき、印刷ヘッド３４ａ（印刷機構）とキャリッジ駆動モーター３６ａ（用紙搬送機構）とを制御して、１パス分の印刷を実行し（ステップＳ２６）、図７に示すように、１行目に文字「Ａ」を印刷する。
【００７２】
次に、１パス分の印刷が終了すると、プリンター３０（印刷制御部４２ｉ）は、紙送りモーター３８ｂを制御して、紙送りステップ数計算部４２ｈによって計算されたステップ数ｎ５（ここでは、ｎ５＝４）分の紙送りを実行する（ステップＳ２８）。
【００７３】
次に、次の印刷データがある場合（ステップＳ３０：Ｙｅｓ）、プリンター３０（解析部４２ｂ）は、受信バッファー３２ｂ１に記憶された次の印刷データを解析し（ステップＳ３２）、コマンド（ここでは、第２フォントテーブルを指定するコマンド）と文字コード（ここでは、「Ｏ」の文字コード）とに分類する。
【００７４】
次に、プリンター３０（フォントデータ取得部４２ｃ）は、フォントデータ記憶部３２ｃ１（ここでは、コマンドによって指定される第２フォントテーブル）から、解析部４２ｂによって分類された文字コードに対応するフォントデータ（ここでは、「Ｏ」のフォントデータ）を取得する（ステップＳ３４）。
【００７５】
次に、プリンター３０（印刷データ作成部４２ｄ）は、仮想紙送り設定部４２ｇによって次パスでの仮想紙送りが「必要」に設定されている場合（ステップＳ３６：必要）、次の１パス分の印刷データの先頭に空白（空白データ）を挿入し（ステップＳ３８）、次の１パス分の印刷データを作成する（ステップＳ４０）。
【００７６】
空白Ｓは、次の式２によって求めることができる。
【００７７】
空白Ｓ＝ｎ４−ｎ３×ｎ５ドット  ・・・  （式２）
ここでは、印刷データ作成部４２ｄは、図６に示すように、ステップＳ３４においてフォントデータ取得部４２ｃによって取得されたフォントデータに基づく「Ｏ」のイメージデータＩ２を生成してその先頭に、上記式２によって求められる空白Ｓ（１ドット）を挿入した状態でプリントバッファー３２ｂ２に展開（格納）し、次の１パス分の印刷データを作成する。
【００７８】
次に、プリンター３０（紙送り量計算部４２ｅ）は、紙送り量（ドット数）を計算する（ステップＳ１８）。具体的には、紙送り量計算部４２ｅは、フォントデータ取得部４２ｃによって取得されたフォントデータに基づくイメージデータ（第２印字内容。ここでは、「Ｏ」のイメージデータ。図６参照）の副走査方向の印字ドット数ｎ４（ここでは、１０ドット）を計算する。
【００７９】
次に、プリンター３０（仮想紙送り要否判定部４２ｆ）は、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が偶数か奇数か（すなわち、印字ドット数ｎ４がｎ３の整数倍か否か）を判定する（ステップＳ２０）。
【００８０】
ここでは、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が１０ドットであるため、仮想紙送り要否判定部４２ｆは、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が偶数（すなわち、印字ドット数ｎ４がｎ３の整数倍である）と判定する（ステップＳ２０：偶数）。
【００８１】
次に、プリンター３０（仮想紙送り設定部４２ｇ）は、紙送り量計算部４２ｅによって計算された紙送り量（ドット数）が偶数（すなわち、印字ドット数ｎ４がｎ３の整数倍である）と判定された場合（ステップＳ２０：偶数）、次パスでの仮想紙送りが「不要」を設定する（ステップＳ４２）。例えば、仮想紙送り設定部４２ｇは、次パスでの仮想紙送りが必要であることを表すフラグ（例えば、ＣＰＵ３２ａ内の特定のフラグ）を落とす。
【００８２】
次に、プリンター３０（紙送りステップ数計算部４２ｈ）は、上記式１によって紙送りステップ数ｎ５を計算する（ステップＳ２４）。ここでは、紙送りステップ数計算部４２ｈは、紙送りステップ数ｎ５として、ｎ４（ここでは、ｎ４＝１０ドット）をｎ３（ここでは、ｎ３＝２ドット）で除算した値（ここでは、ｎ５＝５）を計算する。
【００８３】
次に、プリンター３０（印刷制御部４２ｉ）は、ステップＳ４０において印刷データ作成部４２ｄによって作成された次の１パス分の印刷データに基づき、印刷ヘッド３４ａ（印刷機構）とキャリッジ駆動モーター３６ａ（用紙搬送機構）とを制御して、次の１パス分の印刷を実行し（ステップＳ２６）、図７に示すように、２行目（文字「Ａ」の直下）に文字「Ｏ」を印刷する。その際、文字「Ａ」（第１印字内容）と文字「Ｏ」（第２印字内容）との間に空白Ｓ（ｎ４−ｎ３×ｎ５ドット分の空白）が追加されるため、各行の文字をズレなく正しく印刷できる（印刷品質が低下することなく高解像度で印刷できる）。
【００８４】
次に、次の１パス分の印刷が終了すると、プリンター３０（印刷制御部４２ｉ）は、紙送りモーター３８ｂを制御して、紙送りステップ数計算部４２ｈによって計算されたステップ数ｎ５（ここでは、ｎ５＝５ステップ）分の紙送りを実行する（ステップＳ２８）。
【００８５】
そして、ここでは、次の印刷データは存在しないため（ステップＳ３０：Ｎｏ）、プリンター３０は、処理を終了する。
【００８６】
以上説明したように、本実施形態によれば、印刷解像度（正確には、印字ドットサイズ）と紙送りピッチが相違する場合であっても、各行の印字内容（例えば、文字や画像）をズレなく正しく印刷できる（印刷品質が低下することなく高解像度で印刷できる）プリンター及び印刷制御方法を提供できる。
【００８７】
これは、第１印字内容（例えば、図７中の文字「Ａ」参照）、第２印字内容（例えば、図７中の文字「Ｏ」参照）を副走査方向にこの順に印字する場合、第１印字内容の副走査方向の印字ドット数ｎ４がｎ３の整数倍でないとき、第１印字内容と第２印字内容との間に空白（例えば、図６中の空白Ｓ参照）を追加して第１印字内容と第２印字内容を印字すること（つまり、仮想的な紙送りを行うこと）によるものである。
【００８８】
なお、上記実施形態では、ｎ１＝３００（つまり、紙送りピッチが１／３００ｄｐｉ）、ｎ２＝６００ｄｐｉ（つまり、印字ドットサイズが１／６００ｄｐｉ）、ｎ３＝ｎ２／ｎ１＝２の例について説明したが、これに限らず、ｎ１＝３００（つまり、紙送りピッチが１／３００ｄｐｉ）、ｎ２＝９００ｄｐｉ（つまり、印字ドットサイズが１／９００ｄｐｉ）、ｎ３＝ｎ２／ｎ１＝３であってもよいし、それ以外の数値であってもよい。
【００８９】
また、上記実施形態では、第１印字内容が図７中の文字「Ａ」で、第２印字内容が図７中の文字「Ｏ」の例について説明したが、これに限らず、他の文字であってもよい。また、第１印字内容は、文字に限らず、画像であってもよい。例えば、印刷ヘッド３４ａによって画像の一部を印刷し、画像の一部を印刷するごとに紙送りし、これを繰り返すことで画像全体を印刷する場合の最後に印刷される画像であってもよい。
【００９０】
なお、上記実施形態では、プリンター３０としてインクジェット方式のレシートプリンターを例示したが、これに限らず、他の方式のレシートプリンターやレシートプリンター以外のプリンターにも、本発明を適用可能である。
【００９１】
上記実施形態で示した各数値は全て例示であり、これと異なる適宜の数値を用いることができるのは無論である。
【００９２】
上記実施形態はあらゆる点で単なる例示にすぎない。上記実施形態の記載によって本発明は限定的に解釈されるものではない。本発明はその精神または主要な特徴から逸脱することなく他の様々な形で実施することができる。
【符号の説明】
【００９３】
１０…ＰＯＳシステム、２０…ホストコンピューター、３０…プリンター、３２…制御部、３２ａ…ＣＰＵ、３２ｂ…ＲＡＭ、３２ｂ１…受信バッファー、３２ｂ２…プリントバッファー、３２ｃ…ＲＯＭ、３２ｃ１…フォントデータ記憶部、３４…キャリッジ、３４ａ…印刷ヘッド、３６…キャリッジ駆動機構、３６ａ…キャリッジ駆動モーター、３８…用紙搬送機構、３８ａ…紙送りローラー、３８ｂ…紙送りモーター、４０…Ｉ／Ｆ、４２ａ…受信部、４２ｂ…解析部、４２ｃ…フォントデータ取得部、４２ｄ…印刷データ作成部、４２ｅ…紙送り量計算部、４２ｆ…仮想紙送り要否判定部、４２ｇ…仮想紙送り設定部、４２ｈ…紙送りステップ数計算部、４２ｉ…印刷制御部、Ｉ１、Ｉ２…イメージデータ、Ｓ…空白、ｎ１…１以上の整数、ｎ２…ｎ１×ｎ３、ｎ３…２以上の整数、ｎ４…印字ドット数、ｎ５…紙送りステップ数、ｐ…１ピッチ分の紙送り量。
【図１】
2017185750.tif 000003
【図２】
2017185750.tif 000004
【図３】
2017185750.tif 000005
【図４】
2017185750.tif 000006
【図５】
2017185750.tif 000007
【図６】
2017185750.tif 000008
【図７】
2017185750.tif 000009
【図８】
2017185750.tif 000010
【図９】
2017185750.tif 000011
【図１０】
2017185750.tif 000012