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