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