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