(57)【要約】【課題】イメージデータを作成せずに傾斜文字を作成することができる文字データ処理装置及びプログラムを提供する。【解決手段】プリンタ１は、基準書込アドレスから所定のドット数離れた位置に書込アドレスを更新し（S1）、順次各ドットデータを読み出し、１ドット書き込む度に読出アドレスを更新し（S2,S6）、各ドットデータを書込アドレスに書き込み、１ドット書き込む度に書込アドレスを設定された回転角度だけ傾けた位置のドットの書込アドレスに更新し（S3,S6）、１行分の書き込みが完了した場合に、基準書込アドレスを所定量移行し、読出アドレスを次行に移行し（S8,S10）、文字データの展開後の印字ドットによって囲まれた非印字ドットを印字ドットに変換する（S4,S5）。【選択図】図１３
2019064205.tif 000002
【特許請求の範囲】
【請求項１】
文字データの設定された回転角度に基づいて、前記文字データを展開する領域の四隅のドットのいずれか１つに対応する書き込みアドレスを基準書き込みアドレスとし、前記基準書き込みアドレスから所定のドット数だけ離れた位置に書き込みアドレスを更新する第１手段と、
前記設定された回転角度に基づいて、前記文字データを構成する各ドットに対応するデータを読み出し、当該各ドットに対応するデータを書き込む度に読み出しアドレスを更新する第２手段と、
前記第２手段で読み出された各ドットに対応するデータを前記書き込みアドレスに書き込み、前記各ドットに対応するデータを書き込む度に、前記書き込みアドレスを水平方向に対して前記設定された回転角度だけ傾けた位置に配置されるドットの書き込みアドレスに更新する第３手段と、
前記文字データを構成する１行分の全ドットの書き込みが完了した場合に、前記設定された回転角度に基づいて前記基準書き込みアドレスを所定量移行し、前記文字データの読み出しアドレスを次行に移行する第４手段と、
前記文字データの展開後の印字ドットによって囲まれた非印字ドットを印字ドットに変換する第５手段と、
を備えていることを特徴とする文字データ処理装置。
【請求項２】
前記設定された回転角度だけ傾けた文字データを背景としてテキストデータとドット毎に合成する合成手段を備えていることを特徴とする請求項１に記載の文字データ処理装置。
【請求項３】
間引きパターンに従って前記設定された回転角度だけ傾けた文字データの印字ドットを間引く間引き手段を備えていることを特徴とする請求項１又は２に記載の文字データ処理装置。
【請求項４】
前記設定された回転角度が水平方向を基準とした正の角度である場合には、前記第１手段は前記文字データを展開する領域の左上のドットに対応する書き込みアドレスを基準書き込みアドレスとし、前記第２手段は前記文字データを構成する左端のドットから右方向に順次各ドットに対応するデータを読み出し、前記第４手段は前記基準書き込みアドレスを１ドット下及び１ドット右に移行し、
前記設定された回転角度が水平方向を基準とした負の角度である場合には、前記第１手段は前記文字データを展開する領域の右上のドットに対応する書き込みアドレスを基準書き込みアドレスとし、前記第２手段は前記文字データを構成する右端のドットから左方向に順次各ドットに対応するデータを読み出し、前記第４手段は前記基準書き込みアドレスを１ドット下及び１ドット左に移行することを特徴とする請求項１乃至３のいずれか１項に記載の文字データ処理装置。
【請求項５】
コンピュータを、
文字データの設定された回転角度に基づいて、前記文字データを展開する領域の四隅のドットのいずれか１つに対応する書き込みアドレスを基準書き込みアドレスとし、前記基準書き込みアドレスから所定のドット数だけ離れた位置に書き込みアドレスを更新する第１手段、
前記設定された回転角度に基づいて、前記文字データを構成する各ドットに対応するデータを読み出し、当該各ドットに対応するデータを書き込む度に読み出しアドレスを更新する第２手段、
前記第２手段で読み出された各ドットに対応するデータを前記書き込みアドレスに書き込み、前記各ドットに対応するデータを書き込む度に、前記書き込みアドレスを水平方向に対して前記設定された回転角度だけ傾けた位置に配置されるドットの書き込みアドレスに更新する第３手段、
前記文字データを構成する１行分の全ドットの書き込みが完了した場合に、前記設定された回転角度に基づいて前記基準書き込みアドレスを所定量移行し、前記文字データの読み出しアドレスを次行に移行する第４手段、及び
前記文字データの展開後の印字ドットによって囲まれた非印字ドットを印字ドットに変換する第５手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字データ処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来より、ロゴ印刷を行うプリンタが知られている（例えば、特許文献１参照）。例えば、ロゴ印刷では、文字（テキストデータ）の背景に傾斜した文字のイメージデータ（ロゴ）を合成して印刷が実行される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３５７２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロゴ印刷では、ロゴのイメージデータを作成し、作成したイメージデータをメモリに展開して印刷が行われる。このため、イメージデータを作成する手間がかかる。さらに、イメージデータはテキストデータよりも大容量になるため、テキストデータと比べて、データの転送時間が長くなる。
【０００５】
本発明の目的は、イメージデータを作成せずに傾斜文字を作成することができる文字データ処理装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、明細書に開示された文字データ処理装置は、文字データの設定された回転角度に基づいて、前記文字データを展開する領域の四隅のドットのいずれか１つに対応する書き込みアドレスを基準書き込みアドレスとし、前記基準書き込みアドレスから所定のドット数だけ離れた位置に書き込みアドレスを更新する第１手段と、前記設定された回転角度に基づいて、前記文字データを構成する各ドットに対応するデータを読み出し、当該各ドットに対応するデータを書き込む度に読み出しアドレスを更新する第２手段と、前記第２手段で読み出された各ドットに対応するデータを前記書き込みアドレスに書き込み、前記各ドットに対応するデータを書き込む度に、前記書き込みアドレスを水平方向に対して前記設定された回転角度だけ傾けた位置に配置されるドットの書き込みアドレスに更新する第３手段と、前記文字データを構成する１行分の全ドットの書き込みが完了した場合に、前記設定された回転角度に基づいて前記基準書き込みアドレスを所定量移行し、前記文字データの読み出しアドレスを次行に移行する第４手段と、前記文字データの展開後の印字ドットによって囲まれた非印字ドットを印字ドットに変換する第５手段と、を備えていることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、イメージデータを作成せずに傾斜文字を作成することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態に係る文字データ処理装置の構成を示すブロック図である。
【図２】文字の拡大傾斜処理を示すフローチャートである。
【図３】拡大傾斜処理が実行された文字の変換状態を示す図である。
【図４】（Ａ），（Ｂ）は、間引き処理が実行された場合の文字の変換状態を示す図である。
【図５】テキストデータの背景に拡大傾斜文字が合成された状態を示す図である。
【図６】各種の設定情報の設定画面の一例を示す図である。
【図７】（Ａ），（Ｂ）は、拡大傾斜文字の展開順番、展開方向及び展開位置の例を示す図である。
【図８】（Ａ）は文字の一例を示す図である。（Ｂ）は、図８（Ａ）の文字を＋４５度回転させた例を示す図である。（Ｃ）は、図８（Ａ）の文字を−４５度回転させた例を示す図である。
【図９】（Ａ）は、図８（Ａ）の文字の１行目及び２行目のドットを示す図である。（Ｂ）は、図８（Ａ）の文字の１行目のドットが＋４５度方向に展開された状態を示す図である。（Ｃ）は、図８（Ａ）の文字の２行目のドットが＋４５度方向に展開された状態を示す図である。（Ｄ）は、＋４５度方向に展開された１行目及び２行目のドット間に発生する新たなドットの例を示す図である。
【図１０】（Ａ）は、図８（Ａ）の文字の１行目のドットが＋３０度方向に展開される例を示す図である。（Ｂ）は、図８（Ａ）の文字の２行目のドットが＋３０度方向に展開される例を示す図である。（Ｃ）は、＋３０度方向に展開された１行目及び２行目のドット間に発生する新たなドットの例を示す図である。
【図１１】（Ａ）は、図８（Ａ）の文字の１行目のドットが＋６０度方向に展開される例を示す図である。（Ｂ）は、図８（Ａ）の文字の２行目のドットが＋６０度方向に展開される例を示す図である。（Ｃ）は、＋６０度方向に展開された１行目及び２行目のドット間に発生する新たなドットの例を示す図である。
【図１２】（Ａ）は、図８（Ａ）の文字の１行目及び２行目のドットを示す図である。（Ｂ）は、図８（Ａ）の文字の１行目のドットが−４５度方向に展開される例を示す図である。（Ｃ）は、図８（Ａ）の文字の２行目のドットが−４５度方向に展開される例を示す図である。（Ｄ）は、−４５度方向に展開された１行目及び２行目のドット間に発生する新たなドットの例を示す図である。
【図１３】文字を＋３０度、＋４５度又は＋６０度回転させる場合の拡大傾斜処理を示すフローチャートである。
【図１４】文字を−４５度回転させる場合の拡大傾斜処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００１０】
図１は、本実施の形態に係る文字データ処理装置の構成を示すブロック図である。本実施の形態では、文字データ処理装置としてのプリンタ１は例えばサーマルプリンタであるが、サーマルプリンタに限定されるものではなく、インクジェットプリンタやドットインパクトプリンタなどでもよい。
【００１１】
プリンタ１は、プリンタ１の動作全体を制御するコントローラ１１と、各種データやプログラムを格納するメモリ１２と、文字やイメージを用紙に印字する印字部１３と、各種の設定情報（文字データの展開開始位置、展開終了位置及び拡大傾斜文字の回転角度など）や印字データを入力する操作部１４と、各種設定に必要な情報や印字データを表示する表示部１５と、外部端末２と接続するためのインターフェース（ＩＦ）１６とを備えている。尚、外部端末２は、パソコン又は携帯端末などである。表示部１５や操作部１４は、外部端末２に設けられていてもよく、またプリンタ１が表示部１５や操作部１４を備えていなくてもよい。なお、拡大傾斜文字とは、斜め方向に展開され、且つ拡大された文字である。以下、傾斜処理のみが施された文字も含め「拡大傾斜文字」と総称することもある。
【００１２】
コントローラ１１は、バス１７を介してメモリ１２、印字部１３、操作部１４、表示部１５及びＩＦ１６に接続されている。印字部１３はサーマルヘッドやプラテンローラなどを備えている。操作部１４は、ボタン、入力キー又はタッチパネルなどで備えている。表示部１５は、例えば液晶ディスプレイである。ＩＦ１６は、例えばシリアルインターフェース、ＵＳＢ（Universal Serial Bus）インターフェース又はネットワークインタフェースである。本実施の形態では、操作部１４を使って各種の設定情報や印字データを入力できるが、各種の設定情報や印字データは外部端末２から入力されてもよい。
【００１３】
尚、本実施の形態では、文字や文字データは、プリンタ１のフォントメモリ１２ａに登録されている書体データ（文字、数字、記号及び図形などを含む）である。
【００１４】
図２は、文字の拡大傾斜処理を示すフローチャートである。図３は、拡大傾斜処理が実行された場合の文字の変換状態を示す図である。図４（Ａ），（Ｂ）は、間引き処理が実行された場合の文字の変換状態を示す図である。図５は、テキストデータの背景に拡大傾斜文字が合成された状態を示す図である。なお、文字の拡大傾斜処理は外部端末２で実行し、処理後の文字パターンをプリンタ１に送信して印字させる対応でもよい。
【００１５】
まず、コントローラ１１は、印字データの各文字を拡大傾斜文字に展開するための拡大傾斜文字設定が操作部１４又は外部端末２から入力されているか否かを判定する（Ｓ５１）。拡大傾斜文字設定が入力されていない場合には（Ｓ５１でＮＯ）、コントローラ１１は拡大傾斜処理を行うことなく印字部１３に印字データを印字させる（Ｓ５６）。拡大傾斜文字設定が入力されている場合には（Ｓ５１でＹＥＳ）、コントローラ１１は処理対象の各文字を拡大傾斜文字に展開する拡大傾斜処理を実行する（Ｓ５２）。拡大傾斜処理が実行されると、例えば、図３に示すように、文字「Ａ」が斜め方向に傾けられて拡大された文字「Ａ」に変換される。尚、拡大傾斜処理の詳細については後述する。
【００１６】
次に、コントローラ１１は、拡大傾斜文字を通常の印字よりも薄く印字される薄文字に展開するための薄文字設定が操作部１４又は外部端末２から入力されているか否かを判定する（Ｓ５３）。薄文字設定が入力されている場合には（Ｓ５３でＹＥＳ）、コントローラ１１は拡大傾斜文字を薄文字に展開するために文字パターンを構成するドットの間引き処理を実行する（Ｓ５４）。
【００１７】
間引き処理では、例えば、図４（Ａ）に示すように拡大傾斜文字「Ａ」を構成するドット列が間引かれ、間引き対象の列にある黒ドットが白ドットに変換される。ここでは、１列毎にドット列を間引く間引きパターンが使用され、黒ドットが１列毎に白に変換されている。あるいは、図４（Ｂ）に示すように拡大傾斜文字「Ａ」を構成するドット行が間引かれる。ここでは、１行毎にドット行を間引く間引きパターンが使用され、黒ドットが１行毎に白に変換される。尚、市松模様の間引きパターン又は所定の形状の間引きパターンを利用して間引き処理を実行してもよい。間引き処理により拡大傾斜文字を構成する黒ドット数が減少するので、全体として拡大傾斜文字の色が薄くなる。尚、等倍でフォントを間引くと、フォント構成が崩れ、文字判読ができなくなる可能性があるため、斜めフォント展開時はデータを拡大して斜めに展開し、その後間引き処理を実行している（図２のＳ５２，Ｓ５４参照）。
【００１８】
次に、コントローラ１１は、テキストデータの背景に拡大傾斜文字を合成する（Ｓ５５）。コントローラ１１は、テキストデータ及び拡大傾斜文字をドット毎にＯＲ合成し、メモリ１２内の印字データ展開用のバッファ領域に拡大傾斜文字とテキストデータとを展開する。Ｓ５５の合成処理が実行されると、例えば図５に示すように、テキストデータ２０１（「2017/1/1 セール情報」）の背景に拡大傾斜文字２００（「ＨＡＨＡ」）が合成される。その後、コントローラ１１は、合成された印字データを印字部１３に印字させ（Ｓ５６）、本処理を終了する。
【００１９】
図６は、各種の設定情報の設定画面の一例を示す図である。図７（Ａ），（Ｂ）は、拡大傾斜文字の展開順番、展開方向及び展開位置の例を示す図である。
【００２０】
図６の設定画面２０は、表示部１５又は外部端末２に表示される。設定画面２０では、例えば拡大サイズ２１、傾斜角度２２、濃度２３、展開方向２４、展開角度２５、展開開始位置２６及び展開終了位置２７が設定される。拡大サイズ２１は拡大傾斜文字の拡大後のドットサイズを示し、例えば２４×２４ドットなどの値が入力される。傾斜角度２２は水平方向を基準とした拡大傾斜文字の回転角度を示し、例えば、＋４５度、−４５度などの値が入力される。角度の＋／−は、水平方向に対して反時計回り／時計回りを示す。傾斜角度２２は例えば５度単位で設定可能である。濃度２３は間引き処理による拡大傾斜文字の濃度を示し、例えば１〜１０のいずれかの値が入力される。濃度２３の数値が小さくなると拡大傾斜文字の濃度が低下し、濃度２３の数値が大きくなると拡大傾斜文字の濃度が増加する。
【００２１】
展開方向２４は拡大傾斜文字の展開方向を示し、例えば、「左下→右上」、「左上→右下」、「右下→左上」、「右上→左下」などの方向が設定される。図７（Ａ）及び（Ｂ）では、文字「１」〜「１１」を印字領域に展開する際の形態を示している。展開方向２４として「左下→右上」の方向が設定された場合には、図７（Ａ）に示すように各拡大傾斜文字が用紙の左下から右上に印字されるようにバッファに展開される。図７（Ａ）において、「１」〜「１１」はそれぞれ拡大傾斜文字の１文字を示している。この場合、拡大傾斜文字は「１」から順番に「左下→右上」の方向に展開される。拡大傾斜文字が「１」から順番に「５」まで展開されると、拡大傾斜文字「６」は印字領域（用紙幅）を超えるため自動改行されて「１」の下に配置される。つまり、拡大傾斜文字が印字領域を超える場合には自動改行が実行され、印字展開位置が更新される。
【００２２】
また、展開方向２４として「左上→右下」の方向が設定された場合には、図７（Ｂ）に示すように拡大傾斜文字が左上から右下に印字されるようにバッファに展開される。図７（Ｂ）では拡大傾斜文字は「１」から順番に「左上→右下」の方向に展開される。拡大傾斜文字が「１」から順番に「５」まで展開されると、拡大傾斜文字「６」は用紙幅を超えるため自動改行されて「１」の下に配置される。
【００２３】
展開角度２５は、用紙幅方向に対する拡大傾斜文字の展開方向の角度を示す。展開角度２５を＋４５度に設定すると、図７（Ａ）に示すように拡大傾斜文字が右上がりに４５度傾斜してバッファに展開される。展開角度２５を−３０度に設定すると、図７（Ｂ）に示すように拡大傾斜文字が右下がりに３５度傾斜してバッファに展開される。
【００２４】
展開開始位置２６は図７（Ａ），（Ｂ）の拡大傾斜文字「１」の展開位置を示し、展開終了位置２７は図７（Ａ），（Ｂ）の拡大傾斜文字「１１」の展開位置を示す。
【００２５】
以下、拡大傾斜処理について説明する。
【００２６】
図８（Ａ）は、１６（行）×８（列）ドットで構成された文字の一例を示す図である。図８（Ｂ）は、図８（Ａ）の文字を＋４５度回転させた例を示す図である。図８（Ｃ）は、図８（Ａ）の文字を−４５度回転させた例を示す図である。図８（Ｂ）及び図８（Ｃ）は、図８（Ａ）の文字を回転させる際に用いられるメモリ１２の領域を示している。文字を４５度回転させることにより図８（Ｂ）及び図８（Ｃ）の文字パターンの印字サイズは拡大しており、拡大率は約１．４１倍（√２倍）である。ｍ（行）×ｎ（列）ドットで構成された文字を４５度回転して展開するのに必要な領域は（ｍ＋ｎ−１）×（ｍ＋ｎ−１）である。従って、図８（Ｂ）及び図８（Ｃ）の文字パターンを展開している領域は２３×２３である。
【００２７】
図９（Ａ）は、図８（Ａ）の文字の１行目及び２行目のドットを示す図である。図９（Ｂ）は、図８（Ａ）の文字の１行目のドットが＋４５度方向に展開された状態を示す図である。図９（Ｃ）は、図８（Ａ）の文字の２行目のドットが＋４５度方向に展開された状態を示す図である。図９（Ｄ）は、＋４５度方向に展開された１行目及び２行目のドット間に発生する新たなドットの例を示す図である。なお、図９（Ｂ）乃至図９（Ｄ）はそれぞれ図８（Ｂ）の一部分を示している。
【００２８】
図９（Ａ）において、「０ｘ８０」〜「０ｘ０１」は各ドットのアドレス、即ち文字パターンを格納しているフォントメモリ１２ａのアドレスを示す。文字を右上がり方向に展開する場合、コントローラ１１は文字を構成するデータ（以下、文字データという）を１行目の「０ｘ８０」のドットから順番に右方向にフォントメモリ１２ａから読み出す。１行目の文字データの読み出しが終わると、２行目の「０ｘ８０」のドットから順番に右方向に文字データをフォントメモリ１２ａから読み出す。
【００２９】
文字パターンを展開するバッファの書き込みアドレスの基準値（以下、基準書き込みアドレスという）は、文字パターンを展開するバッファの四隅のドットのうちいずれか１つのドットに対応するアドレスであり、図９（Ｂ）の例では左上のドット（Ｐ１）のアドレスである。ここで、文字パターンを展開するバッファは例えばメモリ１２内の一部の領域である。読みだした文字パターンの列方向のドット数は８なので、文字パターンを＋４５度回転させる場合、コントローラ１１は図９（Ｂ）に示すように、バッファの書き込みアドレスをＰ１から７ドット下げた８ドット目のＰ２に、図９（Ａ）の１行目の「０ｘ８０」の文字データを書き込む。これにより、図９（Ｂ）の図示左下の領域に文字データが書き込まれる。次に、コントローラ１１は、次ドットがＰ２に書き込まれたドットに対して＋４５度の位置に来るように、バッファの書き込みアドレスを１ドット上且つ１ドット右に移行するように更新する。つまり、次のドットの書き込みアドレスをＰ２からＰ３に更新する。そして、図９（Ａ）の１行目の「０ｘ４０」の文字データをフォントメモリ１２ａから読み出し、Ｐ３に書き込む。
【００３０】
このように、コントローラ１１は基準書き込みアドレスから７ドット下げたバッファのアドレスに文字データを書き込み、文字データを１ドット書き込む度に、書き込みアドレスを１ドット上及び１ドット右に移行し、且つフォントメモリ１２ａからの文字データの読み出しアドレスを１ドット右に移行する。これにより、図９（Ｂ）のＡ方向に沿って＋４５度傾斜した１行目の８ドットがバッファに書き込まれる。
【００３１】
次に、コントローラ１１は、基準書き込みアドレスをＰ１から１ドット下及び１ドット右に移行し、文字データの読み出しアドレスを２行目に移行する。そして、１行目と同様に、コントローラ１１は、文字データを１ドット書き込む度に、書き込みアドレスを１ドット上及び１ドット右に移行し且つフォントメモリ１２ａからの文字データの読み出しアドレスを１ドット右に移行する。これにより、図９（Ｃ）に示すように２行目を構成する８ドットがバッファに書き込まれる。
【００３２】
ここで、文字を回転又は傾斜させたことで、図９（Ｃ）の領域Ｒ１に示すように、回転後の文字データの１行目と２行目との間に新たなドットが生じる。新たなドットに対応する書き込みデータは図８（Ａ）の文字パターンには存在しないため、拡大傾斜文字内に白ドットが発生し、拡大傾斜文字の見栄えが悪化する。
【００３３】
このため、コントローラ１１は、拡大傾斜処理後の黒ドットによって上下左右が囲まれた白ドットを黒ドットに変換する。例えば、図９（Ｃ）のＰ８の白ドットはＰ２、Ｐ３、Ｐ５及びＰ６の黒ドットによって上下左右が囲まれているので、コントローラ１１はＰ８の白ドットを図９（Ｄ）に示すように黒ドットに変換する。一方、図９（Ｃ）のＰ９の白ドットは、Ｐ３、Ｐ４、Ｐ６及びＰ７のドットによって上下左右が囲まれているが、Ｐ４及びＰ７のドットが白ドットなので、黒ドットに変換されない。
【００３４】
コントローラ１１は、３行目の文字データから最終行の文字データのバッファへの書き込みが終わるまで、上記処理を繰り返す。
【００３５】
以上の処理により、図８（Ｂ）に示すような、図８（Ａ）の文字「Ｈ」を＋４５度回転させた拡大傾斜文字が作成される。
【００３６】
次に、文字を＋３０度回転させる例を説明する。
【００３７】
図１０（Ａ）は、図８（Ａ）の文字の１行目のドットが＋３０度方向に展開される例を示す図である。図１０（Ｂ）は、図８（Ａ）の文字の２行目のドットが＋３０度方向に展開される例を示す図である。図１０（Ｃ）は、＋３０度方向に展開された１行目及び２行目のドット間に発生する新たなドットの例を示す図である。
【００３８】
コントローラ１１が文字データを読み出す位置や順番については、図９（Ａ）で説明した通りである。基準書き込みアドレスは、図１０（Ａ）の左上のドットＰ１のアドレスである。
【００３９】
まず、コントローラ１１は、図１０（Ａ）に示すように書き込みアドレスをＰ１から４ドット下げる。文字を０度以上４５度以下で回転させる場合に基準書き込みアドレスから下げるドット数は、以下の式で算出される。
Ｎ＝Ｗ−（４５−Ｖ）／５−１
ここで、Ｎは基準書き込みアドレスから下げるドット数を示す。Ｗは、文字を構成するドットの横サイズを示す。図８（Ａ）の場合、Ｗは８である。Ｖは、回転角度を示す。この場合、Ｖは３０である。
【００４０】
図８（Ａ）の文字を＋３０度回転させる場合は、Ｎは４になる（Ｎ＝８−（４５−３０）／５−１＝４）。また、図８（Ａ）の文字を＋４５度回転させる場合は、Ｎは７になる（Ｎ＝８−０−１＝７）。尚、Ｎが０以下になる場合には、設定された回転ができない。
【００４１】
コントローラ１１は、書き込みアドレスをＰ１から４ドット下げた、図１０（Ａ）左下の領域であるＰ１１に図９（Ａ）の１行目の「０ｘ８０」の文字データを書き込む。次に、コントローラ１１は、１ドット右に移行するように、次ドットの書き込みアドレスをＰ１１からＰ１２に更新する。そして、図９（Ａ）の１行目の「０ｘ４０」の文字データをフォントメモリ１２ａから読み出し、Ｐ１２に書き込む。
【００４２】
次に、コントローラ１１は、１ドット上及び１ドット右に移行するように、書き込みアドレスをＰ１２からＰ１３に更新する。そして、図９（Ａ）の１行目の「０ｘ２０」の文字データをフォントメモリ１２ａから読み出し、Ｐ１３に書き込む。次に、コントローラ１１はバッファへの書き込み位置が１ドット右に移行するように、書き込みアドレスをＰ１３からＰ１４に更新する。そして、図９（Ａ）の１行目の「０ｘ１０」の文字データを読み出し、Ｐ１４に書き込む。次に、コントローラ１１は、書き込みアドレスをＰ１４から１ドット上及び１ドット右に移行したＰ１５に更新する。そして、図９（Ａ）の１行目の「０ｘ０８」の文字データをフォントメモリ１２ａから読み出し、Ｐ１５に書き込む。
【００４３】
このように、コントローラ１１は、基準書き込みアドレスから４ドット下げて文字データの書き込みを開始し、文字データを１ドットバッファに書き込む度に、書き込みアドレスを１ドット右に移行し、且つフォントメモリ１２ａからの文字データの読み出しアドレスを１ドット右に移行する。さらに文字データを２ドットバッファに書き込む度に、書き込みアドレスを１ドット上に移行する。これにより、図１０（Ａ）のＢ方向に沿って＋３０度傾斜した文字データの１行目を構成するドットがバッファに書き込まれる。
【００４４】
次に、コントローラ１１は、基準書き込みアドレスをＰ１から１ドット下及び１ドット右に移行し、文字データの読み出しアドレスを２行目に移行する。そして、１行目と同様に、コントローラ１１は、移行した基準書き込みアドレスから４ドット下げて２行目の「０ｘ０８」の文字データをバッファに書き込み、文字データを１ドットバッファに書き込む度に、書き込みアドレスを１ドット右に移行し、且つフォントメモリ１２ａからの文字データの読み出しアドレスを１ドット右に移行する。さらに文字データを２ドット書き込む度に、書き込みアドレスを１ドット上に移行する。これにより、図１０（Ｂ）に示すように文字データの２行目が書き込まれる。
【００４５】
ここで、文字を回転又は傾斜させたことで、図１０（Ｂ）に示すように文字データの１行目と２行目との間に新たなドットが生じる。Ｐ５１〜Ｐ５３はこのように生じる新たなドットである。新たなドットに対応する書き込みデータは存在しないため、拡大傾斜文字内に白ドットが発生し、拡大傾斜文字の見栄えが悪化する。
【００４６】
このため、コントローラ１１は、拡大傾斜処理後の黒ドットによって上下左右が囲まれた白ドットを黒ドットに変換する。図１０（Ｂ）のＰ５３の白ドットはＰ１６、Ｐ１７、Ｐ２６及びＰ２７の黒ドットによって上下左右が囲まれているので、コントローラ１１はＰ５３の白ドットを図１０（Ｃ）に示すように黒ドットに変換する。一方、図１０（Ｂ）のＰ５１の白ドットは、Ｐ１３及びＰ２３のドットが白ドットなので、黒ドットに変換されない。
【００４７】
コントローラ１１は、文字の３行目のデータから最終行のデータの書き込みが終わるまで、上記処理を繰り返す。
【００４８】
以上の処理により、図８（Ａ）の文字「Ｈ」を＋３０度回転させた拡大傾斜文字が作成される。
【００４９】
次に、文字を＋６０度回転させて拡大する例を説明する。
【００５０】
図１１（Ａ）は、図８（Ａ）の文字の１行目のドットが＋６０度方向に展開される例を示す図である。図１１（Ｂ）は、図８（Ａ）の文字の２行目のドットが＋６０度方向に展開される例を示す図である。図１１（Ｃ）は、＋６０度方向に展開された１行目及び２行目のドット間に発生する新たなドットの例を示す図である。
【００５１】
コントローラ１１が文字データを読み出す位置や順番については、図９（Ａ）で説明した通りである。基準書き込みアドレスは、図１１（Ａ）の左上のドットＰ１のアドレスである。
【００５２】
まず、コントローラ１１は、図１１（Ａ）に示すように書き込みアドレスをＰ１から１４ドット下げる。文字を４５度より大きく９０度以下で回転させる場合、基準書き込みアドレスから下げるドット数は以下の式で算出される。
Ｎ＝Ｗ＋（Ｖ−４５）／５×２
ここで、Ｎは基準書き込みアドレスから下げるドット数を示す。Ｗは文字を構成するドットの横サイズを示す。図８（Ａ）の文字の場合、Ｗは８である。Ｖは、回転角度を示す。この場合、Ｖは６０である。図８（Ａ）の文字を＋６０度回転させる場合は、Ｎは１４になる（Ｎ＝８＋（６０−４５）／５×２＝１４）。
【００５３】
コントローラ１１は、書き込みアドレスをＰ１から１４ドット下げ、図１１（Ａ）の左下のＰ３１に図９（Ａ）の１行目の「０ｘ８０」の文字データを書き込む。次に、コントローラ１１は、次ドットをＰ３１から＋６０度の位置に書き込むために、書き込みアドレスを２ドット上及び１ドット右に移行するように、Ｐ３１からＰ３２に更新する。そして、図９（Ａ）の１行目の「０ｘ４０」の文字データをフォントメモリ１２ａから読み出し、Ｐ３２に書き込む。
【００５４】
このように、コントローラ１１は、基準書き込みアドレスから１４ドット下げて、文字データを１ドット書き込む度に書き込みアドレスを２ドット上及び１ドット右に移行し、且つフォントメモリ１２ａからの文字データの読み出しアドレスを１ドット右に移行する。これにより、図１１（Ａ）のＣ方向に沿って＋６０度傾斜した文字データの１行目が書き込まれる。
【００５５】
次に、コントローラ１１は、基準書き込みアドレスをＰ１から１ドット下及び１ドット右に移行し、フォントメモリ１２ａからの文字データの読み出しアドレスを２行目に移行する。そして、１行目と同様に、コントローラ１１は、移行後の基準書き込みアドレスから１４ドット下げたＰ４１に２行目の「０ｘ８０」の文字データを書き込み、文字データを１ドット書き込む度に、書き込みアドレスを２ドット上及び１ドット右に移行し且つフォントメモリ１２ａからの文字データの読み出しアドレスを１ドット右に移行する。これにより、図１１（Ｂ）に示すように文字データの２行目が書き込まれる。
【００５６】
ここで、文字を回転又は傾斜させたことで、図１１（Ｂ）に示すように、文字データの１行目と２行目との間に新たなドットＰ６１〜Ｐ６４が生じる。
【００５７】
コントローラ１１は、拡大傾斜処理後の黒ドットによって上下左右が囲まれた白ドットを黒ドットに変換する。図１１（Ｂ）のＰ６１及びＰ６２の２つの白ドットはＰ３１、Ｐ３２、Ｐ４１及びＰ４２の黒ドットによって上下左右が囲まれているので、コントローラ１１はＰ６１及びＰ６２の２つの白ドットを図１１（Ｃ）に示すように黒ドットに変換する。一方、図１０（Ｂ）のＰ６３及びＰ６４の白ドットは、Ｐ３３及びＰ４３のドットが白ドットなので黒ドットに変換されない。
【００５８】
コントローラ１１は、３行目の文字データから最終行の文字データの書き込みが終わるまで、上記処理を繰り返す。
【００５９】
以上の処理により、図８（Ａ）の文字「Ｈ」を＋６０度回転させた拡大傾斜文字が作成される。
【００６０】
次に、文字を−４５度回転させる例を説明する。
【００６１】
図１２（Ａ）は、図８（Ａ）の文字の１行目及び２行目のドットを示す図である。図１２（Ｂ）は、図８（Ａ）の文字の１行目のドットが−４５度方向に展開される例を示す図である。図１２（Ｃ）は、図８（Ａ）の文字の２行目のドットが−４５度方向に展開される例を示す図である。図１２（Ｄ）は、−４５度方向に展開された１行目及び２行目のドット間に発生する新たなドットの例を示す図である。
【００６２】
図１２（Ａ）において、「０ｘ８０」〜「０ｘ０１」は、フォントメモリ１２ａに格納されている各ドットのアドレスを示す。文字を左上がり方向に展開する場合、上記の例とは逆に、コントローラ１１はフォントメモリ１２ａから文字データを１行目の右側に位置する「０ｘ０１」のドットから順番に左方向に読み出し、バッファに書き込む。１行目の「０ｘ８０」の文字データの読み出しが終わると、２行目の「０ｘ０１」のドットから順番に左方向に読み出す。
【００６３】
通常時のバッファへのドット書き込みを開始する書き込みアドレスは、図８（Ｃ）の左上のドットのアドレスである。文字データを−４５回転させる場合、バッファへは文字の右側のデータから書き込みを行うため、最初に、コントローラ１１はバッファへの書き込み開始のアドレスを図８（Ｃ）の領域の右上に、つまり左上のドットから２２ドット右に移行する。ｍ（行）×ｎ（列）ドットで構成された文字を−４５度回転して展開するのに必要な領域は（ｍ＋ｎ−１）×（ｍ＋ｎ−１）であるため、右に移行するドット数は、（ｍ＋ｎ−１）−１である。図８（Ｃ）の場合、右に移行するドット数は、２２（＝（１６＋８−１）−１）となる。従って、図８（Ｃ）の右上のドットのアドレスに書き込み開始のアドレスが移行する。尚、書き込みアドレスを右に移行させるドット数は文字サイズに応じて変更される。
【００６４】
そして、コントローラ１１は、図８（Ｃ）の右上のドットのアドレス、つまり、図１２（Ｂ）の右上のドットＰ７０のアドレスを基準書き込みアドレスとする。コントローラ１１は続いて、図１２（Ｂ）に示すように書き込みアドレスをＰ７０から７ドット下げて、Ｐ７１に図１２（Ａ）の１行目の右端にある「０ｘ０１」の文字データを書き込む。これにより、図１２（Ｂ）の右下に文字データが書き込まれる。次に、コントローラ１１は、次ドットの書き込みアドレスを１ドット上且つ１ドット左に移行するように、Ｐ７１からＰ７２に更新する。そして、図１２（Ａ）の１行目の「０ｘ０１」の左隣の「０ｘ０２」の文字データをフォントメモリ１２ａから読み出し、Ｐ７２に書き込む。
【００６５】
このように、コントローラ１１は、基準書き込みアドレスから７ドット下げて、文字データを１ドット書き込む度に、書き込みアドレスを１ドット上及び１ドット左に移行し且つフォントメモリ１２ａからの文字データの読み出しアドレスを１ドット左に移行する。これにより、図１２（Ｂ）のＤ方向に沿って文字データの１行目が書き込まれる。
【００６６】
次に、コントローラ１１は、基準書き込みアドレスをＰ７０から１ドット下及び１ドット左に移行し、フォントメモリ１２ａからの文字データの読み出しアドレスを２行目に移行する。そして、１行目と同様に、コントローラ１１は、移行後の基準書き込みアドレスから７ドット下げて２行目のドット書き込みを開始し、文字データを１ドット書き込む度に、書き込みアドレスを１ドット上及び１ドット左に移行し且つフォントメモリ１２ａからの文字データの読み出しアドレスを１ドット左に移行する。これにより、図１２（Ｃ）に示すように文字データの２行目が書き込まれる。
【００６７】
ここで、文字を回転又は傾斜させたことで、図１２（Ｃ）の領域Ｒ２に示すように、文字データの１行目と２行目との間に新たなドットが生じる。
【００６８】
このため、コントローラ１１は、拡大傾斜処理後の黒ドットによって上下左右が囲まれた白ドットを黒ドットに変換する。
【００６９】
図１２（Ｃ）のＰ７８の白ドットはＰ７２、Ｐ７３、Ｐ７５及びＰ７６の黒ドットによって上下左右が囲まれているので、コントローラ１１はＰ７８の白ドットを図１２（Ｄ）に示すように黒ドットに変換する。一方、図１２（Ｃ）のＰ７９の白ドットはＰ７４及びＰ７７のドットが白ドットなので、黒ドットに変換されない。
【００７０】
コントローラ１１は、３行目のデータから最終行のデータの書き込みが終わるまで、上記処理を繰り返す。
【００７１】
以上の処理により、図８（Ｃ）に示すような、図８（Ａ）の文字「Ｈ」を−４５度回転させた拡大傾斜文字が作成される。
【００７２】
図１３は、文字を＋３０度、＋４５度又は＋６０度回転させる場合の拡大傾斜処理を示すフローチャートである。ここでは、文字が１６（行）×８（列）ドットで構成されたことを前提としている。また、以下、拡大傾斜処理が行われた文字データを書き込む先のデータ領域は、拡大傾斜処理の開始前に初期化されているものとする。
【００７３】
まず、コントローラ１１は基準書き込みアドレスからＮドット下げた位置にバッファの書き込みアドレスを更新する（Ｓ１）。＋３０度の場合、Ｎドットは４ドットであり、＋４５度の場合、Ｎドットは７ドットであり、＋６０度の場合、Ｎドットは１４ドットである。次に、コントローラ１１は１ドット分の文字データをフォントメモリ１２ａから読み出し（Ｓ２）、読み出されたデータをＳ１で更新された書き込みアドレスに書き込む（Ｓ３）。尚、文字のサイズを拡大することによって文字を構成する線幅が増加する場合もあるので、文字の拡大サイズに応じて、フォントメモリ１２ａから読み出された１ドットを、Ｓ１で更新されたバッファの書き込みアドレスとこれに隣接する少なくとも１ドット分の書き込みアドレスとに同時に展開してもよい。
【００７４】
次に、コントローラ１１はＳ３でデータが書き込まれたアドレスの左に隣接するアドレスに書き込まれているドットを囲む上下左右のドットが黒ドット（印字ドット）であるか否かを判定する（Ｓ４）。上下左右のドットが黒ドットである場合には（Ｓ４でＹＥＳ）、コントローラ１１はＳ３でデータが書き込まれたアドレスの左に隣接するアドレスに黒ドットデータを書き込み（Ｓ５）、回転角度に応じて書き込みアドレスを更新し、文字データの読み出しアドレスを１ドット右に移行する（Ｓ６）。＋３０度の回転の場合、Ｓ６の書き込みアドレスは、文字データを１ドット書き込む度に１ドット右に移行し、さらに文字データを２ドット書き込む度に１ドット上に移行する。＋４５度の回転の場合、Ｓ６の書き込みアドレスは、１ドット上及び１ドット右に移行する。＋６０度の回転の場合、Ｓ６の書き込みアドレスは、文字データを１ドット書き込む度に、２ドット上及び１ドット右に移行する。上下左右のドットの少なくともいずれか一つが黒ドットでない場合には（Ｓ４でＮＯ）、そのままＳ６の処理に進む。
【００７５】
コントローラ１１は１行目の文字データのフォントメモリ１２ａからの読み出しが完了したか否かを判定する（Ｓ７）。１行目の文字データの読み出しが完了していない場合には（Ｓ７でＮＯ）、Ｓ２の処理に戻り、その行の文字データをＳ６で更新された書き込みアドレスに書き込む。
【００７６】
一方、１行目の文字データのフォントメモリ１２ａからの読み出しが完了してバッファに展開された場合には（Ｓ７でＹＥＳ）、コントローラ１１は基準書き込みアドレスを１ドット下及び１ドット右に移行する（Ｓ８）。次いで、コントローラ１１は全ての行の文字データの読み出しが完了したか否かを判定する（Ｓ９）。全ての行の文字データの読み出しが完了していない場合には（Ｓ９でＮＯ）、コントローラ１１はデータの読み出しアドレスを次行の先頭の読み出しアドレスに移行し（Ｓ１０）、Ｓ１の処理に戻る。全ての行の文字データの読み出しが完了した場合には（Ｓ９でＹＥＳ）、本処理を終了する。
【００７７】
図１４は、文字を−４５度回転させる場合の拡大傾斜処理を示すフローチャートである。前提条件は図１３と同じである。
【００７８】
まず、コントローラ１１は、初期状態の書き込みアドレスを２２ドット右に移行し、移行後の書き込みアドレスを基準書き込みアドレスとして設定する（Ｓ３０）。尚、書き込みアドレスを右に移行させるドット数は２２ドットに限定されるものではなく、文字の高さや幅及び文字の回転角度に応じて変更される。
【００７９】
コントローラ１１は、基準書き込みアドレスから７ドット下げた位置にバッファの書き込みアドレスを更新する（Ｓ３１）。次に、コントローラ１１は１ドット分の文字データを読み出し（Ｓ３２）、読み出された文字データを書き込みアドレスに書き込む（Ｓ３３）。尚、文字のサイズを拡大することによって文字を構成する線幅が増加する場合もあるので、文字の拡大サイズに応じて、フォントメモリ１２ａから読み出された１ドットを、Ｓ３１で更新されたバッファの書き込みアドレスとこれに隣接する少なくとも１ドット分の書き込みアドレスとに同時に展開してもよい。
【００８０】
次に、コントローラ１１はＳ３３で文字データが書き込まれたドットの右に隣接するドットを囲む上下左右のドットが黒ドットであるか否かを判定する（Ｓ３４）。上下左右のドットが黒ドットである場合には（Ｓ３４でＹＥＳ）、Ｓ３３で文字データが書き込まれたドットの右に隣接するドットの書き込みアドレスに黒ドットのデータを書き込み（Ｓ３５）、コントローラ１１は書き込みアドレスを１ドット上及び１ドット左に移行し且つ文字データの読み出しアドレスを１ドット左に移行する（Ｓ３６）。上下左右のドットが黒ドットでない場合には（Ｓ３４でＮＯ）、そのままＳ３６の処理に進む。
【００８１】
コントローラ１１は１行目の文字データのフォントメモリ１２ａからの読み出しが完了したか否かを判定する（Ｓ３７）。１行目の文字データの読み出しが完了していない場合には（Ｓ３７でＮＯ）、Ｓ３２の処理に戻り、その行の文字データをＳ３６で更新された書き込みアドレスに書き込む。
【００８２】
１行目の文字データのフォントメモリ１２ａからの読み出しが完了してバッファに展開された場合には（Ｓ３７でＹＥＳ）、コントローラ１１は基準書き込みアドレスを１ドット下及び１ドット左に移行する（Ｓ３８）。次いで、コントローラ１１は全ての行の文字データの読み出しが完了したか否かを判定する（Ｓ３９）。全ての行の文字データの読み出しが完了していない場合には（Ｓ３９でＮＯ）、コントローラ１１は文字データの読み出しアドレスを次行の先頭の読み出しアドレスに移行し（Ｓ４０）、Ｓ３１の処理に戻る。全ての行の文字データの読み出しが完了した場合には（Ｓ３９でＹＥＳ）、本処理を終了する。
【００８３】
このように、コントローラ１１は、設定された回転角度に基づいて、文字データを構成するドットに対応するデータを１ドット毎に展開して、文字データを傾斜させるので、イメージデータを作成せずに拡大傾斜文字を作成することができる。
【００８４】
尚、図６の拡大サイズ２１において拡大サイズが指定された場合には、コントローラ１１は、フォントメモリ１２ａから読み出された１ドットを、バッファの書き込みアドレスとこれに隣接する少なくとも１ドット分の書き込みアドレスとに同時に展開し、文字の拡大処理を行う。その後、コントローラ１１は図１３又は図１４の拡大傾斜処理を行う。
【００８５】
尚、図９〜図１２では、書き込み開始のアドレスを基準書き込みアドレスから所定のドット数下がった位置に設定しているが、書き込み開始のアドレスは「基準書き込みアドレス」に対して上、左又は右に設定することも可能である。例えば、図８（Ｃ）において、基準書き込みアドレスを右上端のドットに設定し、基準書き込みアドレスから７ドット左の位置にバッファの書き込みアドレスを更新し、書き込みアドレスを右下方向にシフトして文字の左上端のドットから展開しても、図８（Ｃ）のような展開が可能である。さらに、図８（Ｃ）において、基準書き込みアドレスを左下端のドットに設定し、基準書き込みアドレスから７ドット上の位置にバッファの書き込みアドレスを更新し、書き込みアドレスを右下方向にシフトして文字の左下端のドットから展開しても、図８（Ｃ）のような展開が可能である。
【００８６】
尚、本発明は、上述した実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内で種々変形して実施することが可能である。
【符号の説明】
【００８７】
１  プリンタ
１１  コントローラ
１２  メモリ
１３  印字部
１４  操作部
１５  表示部
１６  インターフェース（ＩＦ）
【図１】
2019064205.tif 000003
【図２】
2019064205.tif 000004
【図３】
2019064205.tif 000005
【図４】
2019064205.tif 000006
【図５】
2019064205.tif 000007
【図６】
2019064205.tif 000008
【図７】
2019064205.tif 000009
【図８】
2019064205.tif 000010
【図９】
2019064205.tif 000011
【図１０】
2019064205.tif 000012
【図１１】
2019064205.tif 000013
【図１２】
2019064205.tif 000014
【図１３】
2019064205.tif 000015
【図１４】
2019064205.tif 000016