(57)【要約】【課題】プリンタの種別に応じた形態のデータを生成する技術を提供する。【解決手段】本体モジュール４３は、ＯＳのＤＬＬに、ＣＳＶデータベースの文字コードをユニコードに変換させ、ユニコードのＣＳＶデータのファイルパスを取得する。本体モジュール４３は、取得したファイルパス、モデル名、及びデータベース名をライブラリ４５に取得させる。ライブラリ４５は、モデル名に対応するローカルコード種別及び配置位置を、変換対応テーブルにおいて特定する（Ｓ３５）。ライブラリ４５は、ファイルパスが示すＣＳＶデータベースのユニコードを、特定したローカルコード種別が示す文字コードに変換し（Ｓ３６）、変換したＣＳＶデータベースを、特定した配置位置に基づいてＰＤ３形式のデータベースに変換し（Ｓ３７）、変換したＰＤ３形式のデータベースを特定形式のデータベースに変換する（Ｓ３８）。【選択図】図４
2020204807.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータによって実行され、かつ変換対応テーブルを有するプログラムであって、
前記変換対応テーブルは、プリンタの種別を示す種別情報と、変換後のデータの構成と、変換後のデータの文字コードの種別とのうち少なくとも一方を特定する特定情報との対応を示すテーブルであり、
前記種別情報を取得する種別情報取得処理と、
第１形式のデータである第１データを取得するデータ取得処理と、
取得した前記種別情報に対応する前記特定情報を前記変換対応テーブルに基づいて特定する特定処理と、
前記第１形式の前記第１データを、特定した前記特定情報に応じたデータであって、前記プリンタに入力可能な第２形式のデータである第２データに変換するデータ変換処理と、
前記第２データを出力する出力処理と、を前記コンピュータに実行させるプログラム。
【請求項２】
前記特定情報は、変換後のデータの構成を示しており、
前記データの構成は、前記第１データに含まれる複数の部分データの配置位置を示しており、
前記データ変換処理は、
特定した前記特定情報が示す前記配置位置で複数の前記部分データを配置する処理と、
配置したデータを前記第２形式の前記第２データに変換する処理と、を含む請求項１に記載のプログラム。
【請求項３】
前記データ変換処理を実行する第１ＡＰＩを有する請求項２に記載のプログラム。
【請求項４】
前記特定情報は、変換後のデータの文字コードの種別を示しており、
前記データ変換処理は、
前記第１データの文字コードを、特定した前記特定情報が示す種別の文字コードに変換する処理と、
前記特定情報が示す種別の文字コードに変換したデータを前記第２形式の前記第２データに変換する処理と、を含む請求項１から３のいずれかに記載のプログラム。
【請求項５】
前記特定情報は、変換後のデータの構成及び変換後のデータの文字コードの種別を示しており、
前記データの構成は、前記第１データに含まれる複数の部分データの配置位置を示しており、
前記データ変換処理は、
前記第１データの文字コードを、特定した前記特定情報が示す種別の文字コードに変換する処理と、
特定した前記特定情報が示す前記配置位置で複数の前記部分データを配置して第３形式の第３データを生成する処理と、
配置したデータを前記第２形式の前記第２データに変換する処理と、を含んでおり、
前記データ変換処理を実行する第１ＡＰＩを有する請求項１に記載のプログラム。
【請求項６】
前記第３データは、前記情報処理装置と前記プリンタとの間の双方向通信を指示するコマンドを含むデータであり、
前記第２データは、前記情報処理装置から前記プリンタへの片方向通信を指示するコマンドを含むデータである請求項５に記載のプログラム。
【請求項７】
前記情報処理装置は、通信インタフェースを有する携帯端末である請求項１から６のいずれかに記載のプログラム。
【請求項８】
請求項１から７のいずれかに記載のプログラムである第１モジュールと、
前記コンピュータによって実行される第２モジュールと、を備えており、
前記第２モジュールは、
第４形式のデータである元データを取得する元データ取得処理と、
共通コードに変換する第２ＡＰＩであって、前記情報処理装置のＯＳが提供する当該第２ＡＰＩに、前記元データの文字コードを共通文字コードに変換させて前記第１データを取得するデータ取得処理と、
取得した前記第１データを前記第１モジュールに取得させる受渡処理と、を前記コンピュータに実行させるデータ生成プログラム。
【請求項９】
前記コンピュータによって実行されるモジュールであって、印刷データを生成する第３モジュールをさらに備える請求項８に記載のデータ生成プログラム。
【請求項１０】
第４モジュールをさらに備えており、
前記第２モジュールは、前記第４モジュールによって呼び出される第３ＡＰＩを有しており、
前記第４モジュールは、前記第３ＡＰＩを呼び出して、前記第２モジュールに前記元データを受け渡す処理を前記コンピュータに実行させる請求項８または９に記載のデータ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタに入力するデータを生成する技術に関する。
【背景技術】
【０００２】
プリンタに入力可能な形式のデータを生成してプリンタに入力するアプリケーションが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２６９２６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プリンタのモデルごとに、プリンタに入力可能なデータの構造やコードの種類などであるデータの形態が異なることがある。特許文献１は、モデルの種別に応じた形態のデータを生成する技術について、十分に開示していない。
【０００５】
本発明は、プリンタの種別に応じた形態のデータを生成する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本明細書では様々な開示を行う。開示例のプログラムは、情報処理装置のコンピュータによって実行され、かつ変換対応テーブルを有する。前記変換対応テーブルは、プリンタの種別を示す種別情報と、変換後のデータの構成と、変換後のデータの文字コードの種別とのうち少なくとも一方を特定する特定情報との対応を示すテーブルである。開示例のプログラムは、前記種別情報を取得する種別情報取得処理と、第１形式のデータである第１データを取得するデータ取得処理と、取得した前記種別情報に対応する前記特定情報を前記変換対応テーブルに基づいて特定する特定処理と、前記第１形式の前記第１データを、特定した前記特定情報に応じたデータであって、前記プリンタに入力可能な第２形式のデータである第２データに変換するデータ変換処理と、前記第２データを出力する出力処理と、を前記コンピュータに実行させる。
【０００７】
開示例のプログラムは、取得した種別情報に対応する特定情報を変換対応テーブルにおいて特定する。すなわち、開示例のプログラムは、プリンタの種別に応じたデータの構造や文字コードの種別を特定する。そして、開示例のプログラムは、特定情報に応じて、第１形式のデータを第２形式のデータに変換する。したがって、開示例のプログラムは、プリンタの種別に応じた形態のデータを生成することができる。
【図面の簡単な説明】
【０００８】
【図１】図１（Ａ）は、情報処理装置１０の機能ブロック図であり、図１（Ｂ）は、アプリケーション３７の構成図である。
【図２】図２（Ａ）は、プリンタ１１の機能ブロック図であり、図２（Ｂ）は、変換対応テーブル４８を示す図であり、図２（Ｃ）は、データベースを示す図であり、図２（Ｄ）は、ラベルにおけるテキストの配置例を示す図である。
【図３】図３は、タッチパネル２２と、ＵＩモジュール４１と、本体モジュール４３と、コモンモジュール４４及びライブラリ４５と、プリンタ１１と、が実行する処理を説明する図である。
【図４】図４は、特定形式のデータ生成処理を説明する図である。
【図５】図５（Ａ）は、ＰＤ３における部分データの配置位置を説明する図であり、図５（Ｂ）は、ＰＤ３形式のデータベースの構成を示す図であり、図５（Ｃ）は、配置テーブルを示す図であり、図５（Ｄ）は、特定形式のデータベースの構成を示す図である。
【図６】図６は、タッチパネル２２、ＵＩモジュール４１、本体モジュール４３、コモンモジュール４４、及びプリンタ１１が実行する処理を説明する図である。
【発明を実施するための形態】
【０００９】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は開示例にすぎず、本発明の要旨を変更しない範囲で適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。或いは、後述の各処理は、本発明の要旨を変更しない範囲で、適宜省略或いは変更することができる。
【００１０】
本実施形態では、図１に示される情報処理装置１０に実装されるアプリケーション３７を説明する。情報処理装置１０は、携帯端末やタブレットやパーソナルコンピュータなどである。以下では、情報処理装置１０が携帯端末である例を説明する。すなわち、携帯端末に実装されるアプリケーション３７を説明する。
【００１１】
アプリケーション３７は、プリンタ１１に送信される印刷データを生成するプログラムである。プリンタ１１は、例えば、ラベルに印刷を行うラベルプリンタである。ただし、プリンタ１１は、ラベルプリンタに限られない。
【００１２】
アプリケーション３７は、画像データを変換して印刷データを生成する機能に加え、表作成プログラムが作成した表を変換して、プリンタ１１に入力可能なデータを生成する機能を有する。以下、詳しく説明する。
【００１３】
プリンタ１１は、図２（Ａ）に示されるように、コントローラ５１と、印刷エンジン５２と、通信インタフェース５３と、を備える。印刷エンジン５２は、ラベルなどのシートを搬送する搬送機構と、搬送するシートに画像を印刷するヘッドと、を有する。ヘッドは、例えば、サーマルヘッドである。但し、ヘッドは、インク滴を吐出するインクジェット記録方式のヘッドなどであってもよい。通信インタフェース５３は、ＵＳＢケーブルやＬＡＮケーブルなどを用いて情報処理装置１０と接続されてもよいし、情報処理装置１０と無線接続されてもよい。プリンタ１１は、通信インタフェース５３を通じて情報処理装置１０と通信を行う。
【００１４】
コントローラ５１は、中央演算装置であるＣＰＵ６１と、メモリ６２と、バス６３と、を備える。コントローラ５１は、例えば、パターン回路基板と、パターン回路基板に実装されたマイクロコンピュータや種々のＩＣやコンデンサやダイオードなどの種々の電子部品によって実現される。
【００１５】
ＣＰＵ６１、メモリ６２、印刷エンジン５２、通信インタフェース５３は、バス６３に接続されている。すなわち、ＣＰＵ６１は、メモリ６２、印刷エンジン５２、及び通信インタフェース５３と、バス６３を介して接続されている。
【００１６】
ＣＰＵ６１は、後述のＯＳ６６と制御プログラム６７とを疑似的に並行して実行する。すなわち、ＯＳ６６及び制御プログラム６７は、いわゆるマルチタスク処理によって実行される。
【００１７】
メモリ６２は、例えば、ＲＯＭやＲＡＭやＥＥＰＲＯＭやＨＤＤやＣＰＵ６１が備えるバッファ等である。メモリ６２は、ＯＳ６６及び制御プログラム６７を記憶するプログラム記憶領域６４と、情報やデータを記憶するデータ記憶領域６５と、を有する。ＯＳ６６は、オペレーティングシステムである。
【００１８】
制御プログラム６７は、通信インタフェース５３を通じて入力した印刷データを印刷エンジン５２に入力して印刷エンジン５２に印刷を実行させる機能を有する。また、制御プログラム６７は、入力したデータベース（図２（Ｃ））を用いて、図２（Ｄ）に示されるラベルのテンプレートデータに、当該データベースの各レコードを順に印刷エンジン５２に印刷させる機能を有する。
【００１９】
詳しく説明すると、メモリ６２のデータ記憶領域６５は、「ＴＥＸＴ１」の印刷領域を示す領域データと、「ＴＥＸＴ２」の印刷領域を示す領域データと、「ＴＥＸＴ３」の印刷領域を示す領域データと、を含むラベルのテンプレートデータを記憶する。当該テンプレートデータは、データ記憶領域６５に予めデフォルトとして記憶されていてもよいし、後述のアプリケーション３７やその他のプログラムによって生成されて、プリンタ１１に入力されてもよい。プリンタ１１に入力されるデータベースは、複数のレコードと、複数の項目とを有する。複数の項目は、「番号」、「ＴＥＸＴ１」、「ＴＥＸＴ２」、「ＴＥＸＴ３」である。レコードは、各項目に対応する入力フィールドに入力された種々の文字を有する。図示例では、番号「１」を有するレコードの各項目に対応する各入力フィールドには、「１階」、「空調」、「２００Ｖ」の文字がそれぞれ入力されている。
【００２０】
制御プログラム６７は、例えば、番号「１」で特定されるレコードをデータベースから読み出す。そして、制御プログラム６７は、読み出したレコードの項目「ＴＥＸＴ１」、「ＴＥＸＴ２」、及び「ＴＥＸＴ３」にそれぞれ登録された「１階」、「空調」、及び「２００Ｖ」の文字を、図２（Ｄ）に示される「ＴＥＸＴ１」、「ＴＥＸＴ２」、及び「ＴＥＸＴ３」の印刷領域にそれぞれ配置して、印刷エンジン５２に入力するデータを生成する。そして、制御プログラム６７は、生成したデータを印刷エンジン５２に入力し、印刷エンジン５２に、ラベルへの印刷を実行させる。制御プログラム６７は、例えば、番号の順にレコードを読み出してデータを生成し、或いは、ユーザの指定を受け付け、ユーザが指定した番号のレコードをデータベースから読み出して、データを生成する。
【００２１】
プリンタ１１のユーザは、例えば、建物の電気設備の施工或いは保守を行う者である。ユーザは、例えば、建物に使用される電気ケーブルに貼着されるラベルを、プリンタ１１を用いて作製する。ユーザは、後述の情報処理装置１０のアプリケーション３７を用いて一のデータベースをプリンタ１１に入力し、一の建物に使用するラベルを作製する。そして、ユーザは、アプリケーション３７を用いて他のデータベースをプリンタ１１に入力し、他の建物に使用するラベルを作製する。
【００２２】
図１（Ａ）に示されるように、情報処理装置１０は、コントローラ２１と、タッチパネル２２と、通信インタフェース２３と、を備える。通信インタフェース２３は、例えばＷｉ−Ｆｉ（登録商標）やＢｌｕｅｔｏｏｔｈ（登録商標）の通信規格を用いて、或いは、ＮＦＣなどの近接無線通信の通信規格を用いて、プリンタ１１と通信を行う。
【００２３】
タッチパネル２２は、文字や図形などを表示する表示パネル２４と、表示パネル２４に重畳された透明な膜状のタッチセンサ２５と、を有する。タッチセンサ２５は、ユーザがタッチした表示パネル２４における位置を示す位置情報を出力する。位置情報は、例えば、表示パネル２４の左上端を原点とし、右向きをｘ軸の正の向き、下向きをｙ軸の正の向きとしたｘ−ｙ平面上の座標（ｘ，ｙ）として表現できる。後述のＵＩモジュール４１は、表示パネル２４に表示されたアイコン等を示す位置情報がタッチセンサ２５から入力されたことに応じて、当該アイコン等がユーザによって選択されたと判断する。ユーザは、アイコン等をタッチすることにより、文字や数値をＵＩモジュール４１に入力する。なお、情報処理装置１０は、タッチセンサ２５に代えて、或いはタッチセンサ２５とともに、マイクロフォンを有していてもよい。マイクロフォンは、ユーザの声を音声信号に変換してコントローラ２１に入力する。情報処理装置１０がパーソナルコンピュータである場合、タッチセンサ２５に代えて、マウスやキーボードが情報処理装置１０に接続される。
【００２４】
コントローラ２１は、中央演算処理装置であるＣＰＵ３１と、メモリ３２と、バス３３と、を備える。ＣＰＵ３１は、コンピュータの一例である。コントローラ２１の構成は、プリンタ１１のコントローラ５１の構成と概ね同じである。
【００２５】
ＣＰＵ３１は、ＯＳ３６、後述のアプリケーション３７のＵＩモジュール４１、本体モジュール４３、コモンモジュール４４、及びライブラリ４５を疑似的に並行して実行する。すなわち、ＯＳ３６、ＵＩモジュール４１、本体モジュール４３、コモンモジュール４４、及びライブラリ４５は、いわゆるマルチタスク処理によって実行される。ライブラリ４５は、プログラム及び第１モジュールの一例である。本体モジュール４３は、第２モジュールの一例である。コモンモジュール４４は、第３モジュールの一例である。ＵＩモジュール４１は、第４モジュールの一例である。
【００２６】
メモリ３２の構成は、プリンタ１１のメモリ６２の構成と概ね同じである。メモリ３２は、ＯＳ３６及びアプリケーション３７を記憶するプログラム記憶領域３４と、情報やデータを記憶するデータ記憶領域３５と、を有する。
【００２７】
ＯＳ３６は、例えば、Ａｎｄｒｏｉｄ（登録商標）ＯＳや、ｉＯＳ（登録商標）や、ＷｉｎｄｏｗｓＰｈｏｎｅ（登録商標）や、ＢｌａｃｋＢｅｒｒｙＯＳ（登録商標）などである。
【００２８】
ＯＳ３６は、アプリケーション３７によって呼び出される第２ＡＰＩ（Application Programming Interfaceの略）３８を有するＤＬＬ（dynamic link libraryの略）及び第４ＡＰＩ３９を有するＤＬＬを備える。第２ＡＰＩ３８は、ローカルな文字コードをユニコードに変換するためのＡＰＩである。第４ＡＰＩ３９は、通信インタフェース２３を通じてプリンタ１１にデータを送信するためのＡＰＩである。詳しくは後述する。
【００２９】
アプリケーション３７は、図１（Ｂ）に示されるように、ＵＩ（User Innterfaceの略）モジュール４１と、本体プログラム４２と、を備える。すなわち、アプリケーション３７は、ユーザの入力を受け付けるＵＩモジュール４１と、印刷データや、プリンタ１１に入力するデータベースのデータを生成する本体プログラム４２と、を備える。
【００３０】
ＵＩモジュール４１は、アプリケーション３７の開発者によって設計される。アプリケーション３７の開発者は、ＡｎｄｒｏｉｄＯＳや、ｉＯＳなど、ＯＳ３６の種類に応じてＵＩモジュール４１を設計する。ＵＩモジュール４１は、ＯＳ３６が記述されたプログラム言語と同一のプログラム言語によって記述される。
【００３１】
本体プログラム４２は、例えば、プリンタ１１のベンダによって、アプリケーション３７の開発者に提供される。すなわち、本体プログラム４２は、いわゆるＳＤＫ（Software Development Kitの略）である。アプリケーション３７の開発者は、プリンタ１１のベンダが提供した本体プログラム４２と、設計したＵＩモジュール４１とをまとめて、アプリケーション３７を開発する。本体プログラム４２は、データ生成プログラムの一例である。
【００３２】
本体プログラム４２は、本体モジュール４３と、コモンモジュール４４と、ライブラリ４５と、を備える。
【００３３】
本体モジュール４３は、ＯＳ３６を介してＵＩモジュール４１によって呼び出される第３ＡＰＩ４６を有する。第３ＡＰＩ４６は、ＵＩモジュール４１からデータベースのファイルパス及びデータベースの名称（以下、データベース名と記載する）の取得に用いられる。詳しくは後述する。
【００３４】
コモンモジュール４４は、画像データを印刷データに変換するモジュールである。ライブラリ４５は、データベースのデータの形態を、プリンタ１１に入力可能な形態のデータに変換するモジュールである。また、コモンモジュール４４は、ライブラリ４５にデータの変換を指示するモジュールでもある。
【００３５】
ライブラリ４５及びコモンモジュール４４は、Ｃ＋＋のプログラム言語で記述されている。したがって、Ｃ＋＋で記述されたプログラムと情報やデータを受け渡し可能なプログラムであれば、ライブラリ４５に情報やデータを受け渡してライブラリ４５を利用することができる。すなわち、Ｃ＋＋で記述されたコモンモジュール４４は、ライブラリ４５を利用することができる。なお、Ｃ＋＋で記述されたプログラムと情報やデータを受け渡し可能なプログラムとは、Ｏｂｊｅｃｔｉｖｅ−Ｃで記述されたプログラムや、ＪＮＩ（Java Native Interfaceの略）（Javaは登録商標）などのラッパを備えたプログラムである。
【００３６】
コモンモジュール４４は、本体モジュール４３によって呼び出される第５ＡＰＩ４９を有している。第５ＡＰＩ４９は、コモンモジュール４４が、データベース名、ファイルパス（以下、第１ファイルパスと記載）、及びモデル名を本体モジュール４３から取得するために用いられる。詳しくは後述する。
【００３７】
ライブラリ４５は、コモンモジュール４４によって呼び出される第１ＡＰＩ４７、及び変換対応テーブル４８を有する。第１ＡＰＩ４７は、ライブラリ４５がデータベース名、第１ファイルパス、及びモデル名をコモンモジュール４４から取得するために用いられる。変換対応テーブル４８は、図２（Ｂ）に示されるように、モデル名と、ローカルコード種別と、配置種別との対応を示すテーブルである。ライブラリ４５は、本体モジュール４３から取得したモデル名と対応するローカルコード種別及び配置種別を変換対応テーブル４８において特定し、特定したローカルコード種別及び配置種別を用いて、プリンタ１１に入力可能なデータベースのデータを生成する。詳しくは後述する。モデル名は、プリンタの種別を示す種別情報の一例である。
【００３８】
以下、図３、図４、及び図５を参照して、ライブラリ４５が、プリンタ１１に入力可能なデータの形態のデータベースを生成する処理について説明する。
【００３９】
本明細書では、基本的に、アプリケーション３７に記述された命令に従ったＣＰＵ３１の処理を説明する。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」、「設定」等の処理は、ＣＰＵ３１の処理を表している。ＣＰＵ３１による処理は、ＯＳ３６などのコントローラを介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ３１が要求することなくデータを受信するという処理も、「ＣＰＵ３１がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。
【００４０】
また、プログラムに記述された命令に従ったＣＰＵ３１の処理を、省略した文言で記載することがある。例えば、「ＣＰＵ３１が行う」「本体モジュール４３が行う」「コモンモジュール４４が行う」「ライブラリ４５が行う」のように記載することがある。
【００４１】
また、ＣＰＵ３１による、情報Ａは事柄Ｂであることを示しているか否かを判断する処理を、「情報Ａから、事柄Ｂであるか否かを判断する」のように概念的に記載することがある。ＣＰＵ３１による、情報Ａが事柄Ｂであることを示しているか、事柄Ｃであるかを示しているかを判断する処理を、「情報Ａから、事柄Ｂであるか事柄Ｃであるかを判断する」のように概念的に記載することがある。
【００４２】
また、本明細書中の「データ」と「情報」とは、コンピュータによって取り扱い可能なビット或いはビット列である点において共通する。「データ」とは、各ビットが示す意味内容をコンピュータが考慮することなく取り扱えるものを指す。これに対して、「情報」とは、各ビットが示す意味内容によってコンピュータの動作が分岐するものを指す。さらに、「指示」は、送信先の装置に対して次の動作を促すための制御信号であって、情報を含んでいることもあるし、それ自体が情報としての性質を有していることもある。
【００４３】
上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。例えば、データが一時的に情報として扱われてもよいし、情報が一時的にデータとして扱われてもよい。また、ある装置ではデータとして扱われるものが、他の装置では情報として扱われてもよい。さらには、データの中から情報が取り出されてもよいし、情報の中からデータが取り出されてもよい。
【００４４】
また、本明細書中の「に応じて」は、当該文字列の前に記載された条件が満たされた場合に、当該文字列の後に記載された処理が実行されることを示す。なお、処理が実行されるタイミングは、条件が満たされた後であればよく、当該条件が満たされた直後である必要は必ずしもない。
【００４５】
アプリケーション３７は、例えば、データベースを作成した表作成プログラムからの指示により、ＯＳ３６によって起動される。或いは、アプリケーション３７は、タッチセンサ２５から入力されたユーザの起動指示により起動される。
【００４６】
起動されたアプリケーション３７の本体モジュール４３は、例えば、ＯＳ３６が通信可能なプリンタ１１の名称及びモデル名の一覧の返信を要求するコマンドをＯＳ３６に入力し、プリンタ１１の名称及びモデル名の一覧をＯＳ３６から取得する（Ｓ１１）。そして、本体モジュール４３は、取得したプリンタ１１の名称及びモデル名の一覧をタッチパネル２２にＯＳ３６を介して出力する（Ｓ１２）。タッチパネル２２は、プリンタ１１の名称及びモデル名の一覧を有する入力画面（不図示）を表示する（Ｓ１３）。当該入力画面は、プリンタ１１の名称及びモデル名の一覧の他、データベース名の入力を受け付けるテキストボックスなどを有する。なお、プリンタ１１の名称及びモデル名を選択する入力画面と、データベース名を入力する入力画面とは、異なっていてもよい。
【００４７】
ユーザは、入力画面において、一のプリンタ１１の名称及びモデル名を選択し、また、データベース名を入力する（Ｓ１４）。アプリケーション３７のＵＩモジュール４１は、選択されたプリンタ１１の名称及びモデル名と、データベース名とを取得する（Ｓ１４）。そして、ＵＩモジュール４１は、本体モジュール４３の第３ＡＰＩ４６を呼び出し（Ｓ１５）、呼び出した第３ＡＰＩ４６の引数として、選択されたモデル名及びデータベース名を本体モジュール４３に受け渡す（Ｓ１６）。
【００４８】
本体モジュール４３は、ＯＳ３６にコマンドを入力し、データベースのファイルであるデータベースファイル、或いは当該データベースを示すファイルパスと、コード種別と、を取得する（Ｓ１７）。コード種別は、データベースに使用されている文字コードの種別を示す。コード種別が示す文字コードは、例えば、ＪＩＳ、Ｓｈｉｆｔ−ＪＩＳ、ＡＳＣＩＩ、ＥＢＣＤＩＣ、ユニコード、ＥＵＣ等の任意の文字コードである。なお、データベースのファイルパス或いはデータベースファイルと、コード種別とは、アプリケーション３７の起動時において、ＯＳ３６から本体モジュール４３に受け渡されてもよい。以下では、本体モジュール４３やコモンモジュール４４やライブラリ４５が、ファイルパスを用いてデータベースを受け渡す例を説明する。
【００４９】
上述の表作成プログラムが作成するデータベースは、例えばＣＳＶ（Comma Separated Valueの略）のデータ形式のファイルである。以下では、表作成プログラムが、ＣＳＶのデータ形式のファイルとして生成したデータベースを、ＣＳＶデータベースファイルと記載して説明する。ＣＳＶデータベースファイルは、第４形式の元データの一例である。本体モジュール４３が、ＣＳＶデータベースファイル或いは第１ファイルパスを取得するステップＳ１７の処理は、元データ取得処理の一例である。
【００５０】
本体モジュール４３は、ステップＳ１７で取得したコード種別に応じたＡＰＩであって、ＯＳ３６が提供する第２ＡＰＩ３８を呼び出し、ステップＳ１７で取得した第１ファイルパスを第２ＡＰＩ３８を通じてＯＳ３６が提供するＤＬＬに受け渡す。すなわち、本体モジュール４３は、第１ファイルパスが示すＣＳＶデータベースの文字コードをユニコードに変換することを、ＯＳ３６が提供するＤＬＬに指示する（Ｓ１８）。当該ＤＬＬは、第１ファイルパスが示すデータベースの文字コードをユニコードに変換する。当該ＤＬＬは、ユニコードに変換したＣＳＶデータベースであるユニコードＣＳＶデータベースのファイルパス（以下、第２ファイルパスと記載）を本体モジュール４３に受け渡す。ユニコードは、共通文字コードの一例である。なお、本体モジュール４３がステップＳ１７において取得した第１ファイルパスが示すＣＳＶデータベースファイルがユニコードで記述されている場合、ステップＳ１８の処理は省略される。
【００５１】
本体モジュール４３は、ＯＳ３６が提供する上記ＤＬＬから第２ファイルパスを取得する（Ｓ１９）。そして、本体モジュール４３、コモンモジュール４４、及びライブラリ４５は、ステップＳ１６で取得したモデル名及びデータベース名と、ステップＳ１９で取得した第２ファイルパスに基づいて、プリンタ１１に入力可能なデータベースのデータを生成する特定形式のデータ生成処理を実行する（Ｓ２０）。図４及び図５を参照して、特定形式のデータ生成処理について詳しく説明する。
【００５２】
図４に示されるように、本体モジュール４３は、コモンモジュール４４の第５ＡＰＩ４９を呼び出し（Ｓ３１）、取得したモデル名、データベース名、及び第２ファイルパスをコモンモジュール４４に受け渡す（Ｓ３２）。
【００５３】
コモンモジュール４４は、第５ＡＰＩ４９の引数として、モデル名、データベース名、及び第２ファイルパスを取得する（Ｓ３２）。コモンモジュール４４は、ライブラリ４５の第１ＡＰＩ４７を呼び出し（Ｓ３３）、取得したモデル名、データベース名、及び第２ファイルパスをライブラリ４５に受け渡す（Ｓ３４）。ステップＳ３４の処理は、受渡処理の一例である。
【００５４】
ライブラリ４５は、第１ＡＰＩ４７の引数として、モデル名、データベース名、及び第２ファイルパスを取得する（Ｓ３４）。ライブラリ４５は、取得したモデル名と、上述の変換対応テーブル４８（図２（Ｂ））とに基づいて、ローカルコード種別と、配置種別とを特定する（Ｓ３５）。ローカルコード種別とは、特定のモデルのプリンタが解釈可能な文字コードの種別であり、モデル毎に異なるローカルコード種別が用意されている。以下では、ローカルコード種別が示す文字コードをローカルコードと記載して説明する。
【００５５】
ライブラリ４５は、取得した第２ファイルパスが示すユニコードＣＳＶデータベースを、特定したローカルコード種別が示す文字コードで記述されたデータベースであるローカルコードデータベースに変換する（Ｓ３６）。ローカルコードは、変換後の文字コードの一例である。ライブラリ４５がモデル名を取得するステップＳ３４の処理は、種別情報取得処理の一例である。また、ライブラリ４５が、ユニコードＣＳＶデータベースを示す第２ファイルパスを取得するステップＳ３４の処理は、データ取得処理の一例である。ユニコードＣＳＶデータベースは、第１形式の第１データの一例である。上述の配置位置及びローカルコードは、特定情報の一例である。ライブラリ４５が、ローカルコード及び配置位置を特定するステップＳ３５の処理は、特定処理の一例である。
【００５６】
次に、ライブラリ４５は、ステップＳ３５で特定した配置種別と、配置テーブル（図５（Ｃ））とに基づいて、ＰＤ３のデータ形式のデータベースを生成する（Ｓ３７）。ＰＤ３のデータ形式は、ＣＳＶデータベースである基本データの他、プリンタ１１に双方向通信を指示するコマンドをヘッダに有するデータ形式である。双方向通信とは、例えば、プリンタ１１の制御プログラム６７が、データの一部の受信を完了したことに応じて、データの残りの一部の送信を情報処理装置１０に要求し、情報処理装置１０がプリンタ１１に送信するデータを、プリンタ１１に順次送信する場合などに用いられる。ＰＤ３のデータ形式は、第３形式の一例である。ＰＤ３のデータ形式のデータベースは、第３データの一例である。
【００５７】
ライブラリ４５が、ＰＤ３形式のデータベースを生成するステップＳ３７の処理について、図５を参照して詳しく説明する。ＰＤ３形式のデータは、ＣＳＶデータベースに対応するバイナリデータである基本データや、ローカルコードの名称や、ローカルコードで記述されたデータベース名や、インデックスデータなどを有する。以下では、基本データや、ローカルコードの名称や、データベース名や、インデックスデータを、部分データと記載して説明する。部分データの配置位置は、変換後のデータの構成の一例である。
【００５８】
ＰＤ３形式のデータは、図５（Ａ）に示されるように、部分データを、第１配置位置から順に配置して生成される。図における第１配置位置や、第２配置位置や、第３配置位置や、第４配置位置などの配置位置に配置される部分データの種類は、プリンタ１１のモデル名ごとに相違する。各配置位置に配置される部分データの種類は、図５（Ｃ）に示される配置テーブルによって決定される。
【００５９】
配置テーブルは、配置種別と、各配置位置と、部分データの種別との対応を示すテーブルである。図示例では、配置種別「ｋ０１１」と、第１配置位置「ローカルコードの名称」と、第２配置位置「データベース名」と、第３配置位置「基本データ」と、第４配置位置「インデックスデータ」とが対応付けられている。
【００６０】
ライブラリ４５は、ローカルコードデータベースに含まれる基本データ及びデータベース名や、特定したローカルコードの名称や、生成したインデックスデータを、配置テーブルが示す配置位置で配置し、ＰＤ３形式のデータベースを生成する。図５（Ｂ）は、特定した配置種別が「ｋ０１１」である場合に生成されるＰＤ３形式のデータベースを示す。
【００６１】
ライブラリ４５は、図４に示されるように、ステップＳ３７で生成したＰＤ３形式のデータベースに基づいて、特定形式のデータベースを生成する（Ｓ３８）。特定形式は、図５（Ｄ）に示されるように、ＰＤ３形式のデータベースを含むデータ形式である。特定形式のデータベースは、ＰＤ３形式のデータベースに加え、プリンタ１１に片方向通信でデータを入力する指示を示すコマンドをヘッダに有する。すなわち、ライブラリ４５は、双方向通信でプリンタ１１に入力する形式のＰＤ３データではなく、片方向通信でプリンタ１１にデータを入力する特定形式のデータを生成する。片方向通信は、例えば、情報処理装置１０が、プリンタ１１に送信すべきデータを、プリンタ１１に対して確認を行わずに実行する通信である。
【００６２】
ライブラリ４５がＰＤ３形式のデータベース（バイナリデータ）を生成するステップＳ３７の処理、或いは、ライブラリ４５が特定形式のデータベース（バイナリデータ）を生成するステップＳ３８の処理は、データ変換処理の一例である。ＰＤ３形式のデータベース（バイナリデータ）或いは特定形式のデータベース（バイナリデータ）は、第２形式の第２データの一例である。
【００６３】
ステップＳ３４からＳ３８までの処理について、さらに具体的に説明する。コモンモジュール４４は、ライブラリ４５が有する第１サブＡＰＩを呼び出し、取得したモデル名をライブラリ４５に受け渡す。ライブラリ４５は、受け渡されたモデル名から、第２サブＡＰＩを生成する。第１サブＡＰＩ及び第２サブＡＰＩは、第１ＡＰＩ４７に含まれる。
【００６４】
第２サブＡＰＩは、第１クラス、第２クラス、及び第３クラスを示すＡＰＩである。第１クラスは、ユニコードＣＳＶデータベース及びデータベース名を、ローカルコードのＣＳＶデータベース及びデータベース名に変換するクラスである。第２クラスは、上述の配置テーブルに基づいて配置位置を決定し、決定した配置位置で上述の部分データを配置してＰＤ３形式のデータベースを生成するクラスである。第３クラスは、ＰＤ３形式のデータベースを特定形式のデータベースに変換するクラスである。ライブラリ４５は、ローカルコード種別の数に応じた数の第１クラスと、一の第２クラスと、一の第３クラスとを予め有する。ライブラリ４５は、受け渡されたモデル名に基づいて特定した第１クラスと、第２クラス及び第３クラスを示す第２サブＡＰＩをコモンモジュール４４に受け渡す。
【００６５】
コモンモジュール４４は、受け渡された第２サブＡＰＩに、取得したデータベース名及び第２ファイルパスを入力し、インスタンスを生成する。生成されたインスタンスは、ユニコードのＣＳＶデータベース及びデータベース名を、ローカルコードのＣＳＶデータベース及びデータベース名に変換し、部分データを、モデル名で特定される配置位置に配置してＰＤ３形式のデータベースを生成し、生成したＰＤ３形式のデータベースを特定形式のデータベースに変換する処理を示す。コモンモジュール４４は、生成したインスタンスをライブラリ４５に受け渡す（Ｓ３４）。
【００６６】
ライブラリ４５は、コモンモジュール４４から受け渡されたインスタンスを処理し（Ｓ３５〜Ｓ３８）、特定形式のデータベースを生成する（Ｓ３８）。第２クラスから生成されたインスタンスに基づいて実行される処理は、特定した前記特定情報が示す前記配置位置で複数の前記部分データを配置する処理の一例である。第３クラスから生成されたインスタンスに基づいて実行される処理は、配置したデータを前記第２形式の前記第２データに変換する処理の一例である。ライブラリ４５は、自己が有する第２サブＡＰＩが示すクラスから生成したインスタンスを処理するので、コモンモジュール４４から受け渡されたインスタンスを確実に処理して特定形式のデータベースを生成することができる。
【００６７】
なお、第１サブＡＰＩ、第２サブＡＰＩ、第１クラス、第２クラス、及び第３クラスに基づいて上述のステップＳ３４からＳ３８の処理が実行される例を説明したが、他の構成によってステップＳ３４からＳ３８の処理が実行されてもよい。
【００６８】
ライブラリ４５は、図４に示されるように、生成した特定形式のデータベースを示すファイルパスである第３ファイルパスを、第１ＡＰＩ４７の戻り値としてコモンモジュール４４に受け渡し（Ｓ３９）、特定形式のデータ生成処理を終了する。コモンモジュール４４は、第３ファイルパスをライブラリ４５から取得し（Ｓ３９）、取得した第３ファイルパスを、第５ＡＰＩ４９の戻り値として本体モジュール４３に受け渡し（Ｓ４０）、特定形式のデータ生成処理を終了する。本体モジュール４３は、第３ファイルパスをコモンモジュール４４から取得し（Ｓ４０）、特定形式のデータ生成処理を終了する。ライブラリ４５が、特定形式のデータをコモンモジュール４４に受け渡すステップＳ３９の処理は、出力処理の一例である。
【００６９】
本体モジュール４３は、図３に示されるように、特定形式のデータ生成処理（Ｓ２０）の終了後、ＯＳ３６が提供するＤＬＬの第４ＡＰＩ３９（図１）を呼び出して（Ｓ２１）、第３ファイルパスを第４ＡＰＩ３９に受け渡し、第３ファイルパスが示す特定形式のデータベースをプリンタ１１に送信することを、ＯＳ３６が提供するＤＬＬに指示する。当該ＤＬＬは、受け渡された第３ファイルパスが示す特定形式のデータベースを、通信インタフェース２３を通じて片方向通信でプリンタ１１に送信する（Ｓ２２）。
【００７０】
プリンタ１１に実装された制御プログラム６７は、特定形式のデータベースを通信インタフェース５３を通じて受信する（Ｓ２２）。制御プログラム６７は、受信した特定形式のデータベースを、プリンタ１１のメモリ６２に記憶させて登録する（Ｓ２３）。制御プログラム６７は、登録されたデータベースに基づいて、印刷処理を実行する（Ｓ２４）。例えば、制御プログラム６７は、データベース（図２（Ｃ））の番号「１」の印刷の指示を受け付けたことに応じて、データベースから「１階」、「空調」、及び「２００Ｖ」を読み出し、読み出した「１階」、「空調」、及び「２００Ｖ」を、上述の印刷領域データが示す「ＴＥＸＴ１」、「ＴＥＸＴ２」、及び「ＴＥＸＴ３」にそれぞれ配置して、印刷エンジン５２に入力するデータを生成する。そして、制御プログラム６７は、生成したデータを印刷エンジン５２に入力し、印刷エンジン５２に対して、ラベルに画像を印刷させる。
【００７１】
次に、アプリケーション３７が、入力された画像データを変換して印刷データを生成し、生成した印刷データをプリンタ１１に入力してプリンタ１１に印刷を実行させる処理について、図６を参照して説明する。すなわち、アプリケーション３７は、データベースをプリンタ１１に入力することができ、かつ、入力された画像データから印刷データを生成してプリンタ１１に入力することができるプログラムである。
【００７２】
アプリケーション３７は、例えば、画像データを作成したプログラムからの指示により、ＯＳ３６によって起動される。或いは、アプリケーション３７は、ユーザの起動指示により起動される。起動されたアプリケーション３７の本体モジュール４３は、上述のステップＳ１１からＳ１５までの処理を実行し、プリンタ１１のモデル名を取得する（Ｓ４１）。また、本体モジュール４３は、ＯＳ３６から、画像データのファイルパスを取得する（Ｓ４２）。
【００７３】
本体モジュール４３は、コモンモジュール４４が有する不図示のＡＰＩを呼び出し（Ｓ４３）、取得したモデル名及び画像データのファイルパスをコモンモジュール４４に受け渡す（Ｓ４４）。
【００７４】
コモンモジュール４４は、本体モジュール４３からモデル名及びファイルパスを取得する（Ｓ４４）。コモンモジュール４４は、取得したモデル名と、取得したファイルパスが示す画像データに基づいて、印刷データを生成する（Ｓ４５）。コモンモジュール４４は、例えば周知の技術を用いて印刷データを生成する。コモンモジュール４４は、生成した印刷データのファイルパスを、上述のＡＰＩの戻り値として本体モジュール４３に受け渡す（Ｓ４６）。
【００７５】
本体モジュール４３は、ＯＳ３６が提供するＤＬＬの第４ＡＰＩ３９を呼び出し（Ｓ４７）、印刷データのファイルパスを当該ＤＬＬに受け渡す。当該ＤＬＬは、ファイルパスが示す印刷データを、通信インタフェース２３を通じてプリンタ１１に送信する（Ｓ４８）。
【００７６】
プリンタ１１に実装された制御プログラム６７は、通信インタフェース５３を通じて印刷データを受信する（Ｓ４８）。制御プログラム６７は、受信した印刷データを印刷エンジン５２に入力し、印刷データが示す画像をラベルに印刷させる（Ｓ４９）。
【００７７】
[実施形態の作用効果]
ライブラリ４５は、取得したモデル名に対応するローカルコード種別の文字コードと配置位置とを変換対応テーブル４８において特定する。そして、ライブラリ４５は、特定した文字コードと配置位置とに基づいて、ユニコードのＣＳＶデータベースを、特定したローカルコードの特定形式のデータベースに変換する。したがって、ライブラリ４５は、プリンタ１１の種別に応じて、プリンタ１１に入力可能なデータの形態のデータベースを生成することができる。
【００７８】
また、ライブラリ４５は、モデル名と配置位置とを対応付けたテーブルを有しているので、部分データの配置位置がプリンタ１１の種別によって異なるＰＤ３のデータ形式のデータベースを生成することができる。
【００７９】
また、ライブラリ４５は、部分データを、特定した配置位置で配置してＰＤ３形式のデータベースを生成するインスタンスを生成する一の第２クラスと、生成したＰＤ３形式のデータベースを特定形式のデータベースに変換するインスタンスを生成する一の第３クラスとを有する第２サブＡＰＩを有する。したがって、プリンタの種別ごとに、ＰＤ３形式のデータベースを生成し、生成したＰＤ３形式のデータベースを特定形式のデータベースに変換するＡＰＩをライブラリ４５に設ける場合に比べて、ライブラリ４５が有するクラスの数を低減することができる。その結果、ライブラリ４５が簡素化され、携帯端末に実装することができるアプリケーション３７が実現される。
【００８０】
また、ライブラリ４５は、ユニコードを、プリンタ１１の種別に応じたローカルコード種別の文字コードに変換するインスタンスを生成する第１クラスを有する。そして、ライブラリ４５は、第１クラスに基づいて生成されたインスタンスを処理することにより、ユニコードのＣＳＶデータベースを、プリンタ１１の種別に応じた文字コードのＣＳＶデータベースに変換することができる。したがって、ライブラリ４５は、プリンタ１１の種別に応じた文字コードのデータベースを生成することができる。したがって、ライブラリ４５は、プリンタ１１の種別に拘わらず、プリンタ１１が解釈可能な文字コードで記述されたデータベースを生成することができる。
【００８１】
本体モジュール４３は、ＯＳ３６が提供するＤＬＬの第２ＡＰＩ３８を呼び出して、当該ＤＬＬに、表作成プログラムが作成したＣＳＶデータベースの文字コードをユニコードのＣＳＶデータベースに変換させる（Ｓ１８）。そして、本体モジュール４３は、ユニコードのＣＳＶデータベースを、コモンモジュール４４を介してライブラリ４５に受け渡す。したがって、ライブラリ４５に入力するＣＳＶデータベースの文字コードをユニコードに限定することができる。したがって、種々の文字コードで記述されたＣＳＶデータベースをライブラリ４５に入力する場合に比べ、ライブラリ４５で実行する処理を低減することができる。
【００８２】
アプリケーション３７は、ライブラリ４５に加え、コモンモジュール４４を備える。したがって、アプリケーション３７は、プリンタ１１に入力可能な特定形式のデータベースを生成することもできるし、画像データから印刷データを生成することもできる。
【００８３】
また、ライブラリ４５は、Ｃ＋＋のプログラム言語で記述されている。したがって、Ｃ＋＋で記述されたプログラムと情報やデータを受け渡し可能なプログラムであれば、ライブラリ４５に情報やデータを受け渡してライブラリ４５を利用することができる。
【００８４】
[その他の変形例]
上述の実施形態では、本体モジュール４３が、ライブラリ４５が生成した特定形式のデータベース（バイナリデータ）をＯＳ３６を介してプリンタ１１に送信する例を説明した。しかしながら、本体モジュール４３は、ライブラリ４５が生成した特定形式のデータベース（バイナリデータ）をバイナリデータのまま、或いはファイル形式にして、メモリ３２のデータ記憶領域３５に記憶させてもよい。また、本体モジュール４３は、ライブラリ４５が生成した特定形式のデータベース（バイナリデータ）を、バイナリデータのまま、或いはファイル形式にして、プリンタ１１以外の装置に送信してもよい。
【００８５】
上述の実施形態では、ＯＳ３６が提供するＤＬＬに、表作成プログラムが作成したＣＳＶデータベースの文字コードをユニコードのＣＳＶデータベースに変換させる例を説明した。しかしながら、アプリケーション３７は、表作成プログラムが作成したＣＳＶデータベースの文字コードをユニコードのＣＳＶデータベースに変換するモジュールをさらに備えていてもよい。
【００８６】
上述の実施形態では、ライブラリ４５が、特定形式のデータベースを生成し、生成した特定形式のデータベースをコモンモジュール４４に受け渡す例を説明した。しかしながら、ライブラリ４５は、ＰＤ３形式のデータベースを生成し（Ｓ３７）、生成したＰＤ３形式のデータベースをコモンモジュール４４に受け渡してもよい。
【００８７】
上述の実施形態では、アプリケーション３７に入力されるデータベースが、ＣＳＶデータベースである例を説明した。しかしながら、アプリケーション３７に入力されるデータベースは、ＣＳＶデータベースに限定されない。
【００８８】
上述の実施形態では、部分データの例として、「ローカルコードの名称」、「データベース名」、「基本データ」、「インデックスデータ」を説明した。しかしながら、部分データは、例示したデータ以外のデータであってもよい。
【００８９】
上述の実施形態では、印刷データを生成するコモンモジュール４４が、データベースのデータ形式の変換をライブラリ４５に指示する例を説明した。しかしながら、本体モジュール４３が、データベースのデータ形式の変換をライブラリ４５に直接指示してもよいし、データベースのデータ形式の変換をコモンモジュール４４以外のモジュールを介してライブラリ４５に指示してもよい。
【００９０】
上述の実施形態では、変換前のＣＳＶデータベースファイルを示す第１ファイルパスと、変換後のユニコードＣＳＶデータベースを示す第２ファイルパスとが相違する例を説明した。同様に、第２ファイルパスと第３ファイルパスとが相違する例を説明した。しかしながら、第１ファイルパスと第２ファイルパスとが同一のファイルパスであってもよいし、第２ファイルパスと第３ファイルパスとが同一のファイルパスであってもよい。すなわち、変換前のデータを示すファイルパスと、変換後のデータを示すファイルパスとは、同一であってもよい。
【符号の説明】
【００９１】
１０・・・情報処理装置
１１・・・プリンタ
２３・・・通信インタフェース
３７・・・アプリケーション
３８・・・第２ＡＰＩ
４１・・・ＵＩモジュール
４２・・・本体プログラム
４３・・・本体モジュール
４４・・・コモンモジュール
４５・・・ライブラリ
４６・・・第３ＡＰＩ
４７・・・第１ＡＰＩ
４８・・・変換対応テーブル
【図１】
2020204807.tif 000003
【図２】
2020204807.tif 000004
【図３】
2020204807.tif 000005
【図４】
2020204807.tif 000006
【図５】
2020204807.tif 000007
【図６】
2020204807.tif 000008