JP2019128686A - プログラム - Google Patents

プログラム Download PDF

Info

Publication number
JP2019128686A
JP2019128686A JP2018008475A JP2018008475A JP2019128686A JP 2019128686 A JP2019128686 A JP 2019128686A JP 2018008475 A JP2018008475 A JP 2018008475A JP 2018008475 A JP2018008475 A JP 2018008475A JP 2019128686 A JP2019128686 A JP 2019128686A
Authority
JP
Japan
Prior art keywords
program
data
instruction
module
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018008475A
Other languages
English (en)
Other versions
JP7206593B2 (ja
Inventor
広紀 井上
Hironori Inoue
広紀 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2018008475A priority Critical patent/JP7206593B2/ja
Publication of JP2019128686A publication Critical patent/JP2019128686A/ja
Application granted granted Critical
Publication of JP7206593B2 publication Critical patent/JP7206593B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】通信時に異常が生じても、正常に動作を終了させることができるプログラムを提供する。【解決手段】プログラムは、ユーザの入力を受け付けるUIモジュール61と、プリンタ11との通信を行う通信モジュール62とを備える。UIモジュール61は、プログラムが起動すると起動する(S12)。起動したUIモジュール61は、通信モジュール62をテンポラリフォルダに記憶することをOS46に指示する(S16)。また、UIモジュール61は、通信モジュール62を起動させて通信モジュール62にプリンタ11と通信を行うことをOS46に対して指示する(S23)。また、UIモジュール61は、終了指示を受け付けると、通信モジュール62をテンポラリフォルダから消去することをOS46に指示し、動作を終了する。異常が生じた通信モジュール62は、OS46によって、テンポラリフォルダから消去される。【選択図】図2

Description

本発明は、ユーザインタフェースを介した入力を受け付け、受け付けた入力に応じて外部装置と通信を行うプログラムに関する。
プリンタにフォントデータを送信し、送信したフォントデータが示すフォントでプリンタに印刷を実行させるプログラムが知られている(例えば、特許文献1参照)。
特許文献1に記載されたプリンタドライバ(プログラム)は、ユーザの印刷設定の入力を受け付けるUI画面を表示装置に表示させる機能と、プリンタと通信を行う機能とを有している。
特開2016−53949号公報
特許文献1には、通信を行う機能と、画面表示に関する機能との関係性について、十分に開示されていない。
本明細書では様々な開示を行う。開示例の一例であるプログラムは、ネットワークインタフェース、ユーザインタフェース、メモリ、ディスプレイ、及びコンピュータを備える情報処理装置の前記コンピュータによって実行されるプログラムである。該プログラムは、前記ユーザインタフェースを通じた入力を受け付ける受付手段として前記コンピュータを機能させる第1プログラムと、前記ネットワークインタフェースを通じて外部装置と通信を行う通信手段として前記コンピュータを機能させる第2プログラムと、を備える。前記第1プログラムは、前記プログラムが起動されたことに応じて、前記第2プログラムを前記メモリの一時記憶領域に記憶させる記憶手段と、前記受付手段で前記入力を受け付けたことに応じて、前記第2プログラムに前記外部装置との通信を行って第1データを取得することを指示する第1指示データを前記第2プログラムに入力する第1指示手段と、前記第1指示手段で前記第1指示データを入力された前記第2プログラムが前記外部装置と通信を実行して前記外部装置から受信した前記第1データを取得する第1取得手段と、前記第1取得手段で取得した前記第1データを前記ディスプレイに表示させる表示手段と、前記第1プログラムの終了指示を受け付けたことに応じて、前記第2プログラムを前記メモリの前記一時記憶領域から消去するための指示を行う消去手段と、前記消去手段が指示を行った後、前記第1プログラムの動作を終了する第1終了手段として前記コンピュータを機能させる。前記第2プログラムは、前記第1指示データを入力されたことに応じて、前記外部装置に前記第1データを返信することを指示する第1返信命令を前記外部装置に送信し、前記外部装置が返信した前記第1データを受信する前記通信手段と、前記通信手段で受信した前記第1データを前記指示データの入力元に受け渡す受渡手段として前記コンピュータを機能させる。
上記構成によれば、外部装置との通信プロセスにおいて第2プログラムに異常が生じたとしても、第1プログラムにより、ユーザからの入力を継続して受け付けることができる。また、第1プログラムが終了される際に、異常が生じた第2プログラムがメモリから消去される。したがって、異常が生じた第2プログラムがメモリに残存して情報処理装置に動作不良などの不具合を引き起こすことが防止される。
本実施形態に係るシステム10の模式的な構成図である。 本実施形態に係るシステム10の処理の一部を示す図である。 本実施形態に係るシステム10の処理の一部を示す図であって、図2の続きである。 本実施形態に係るシステム10の処理の一部を示す図であって、図3の続きである。 本実施形態に係るシステム10の処理の一部を示す図であって、図4の続きである。 2つのUIモジュール61が起動し、先に起動した方のUIモジュールが後で動作を終了する場合の処理を示す図である。 2つのUIモジュール61が起動し、先に起動した方のUIモジュールが先に動作を終了する場合の処理を示す図である。 プリンタ11との通信時に通信モジュール62に異常が生じた場合の処理を示す図である。 UIモジュール61がディスプレイ51に表示させる設定画面を示す図である。
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
本実施形態では、図1に示されるシステム10を説明する。システム10は、プリンタ11と、PC12とを備える。プリンタ11とPC12とは、通信ネットワーク13にそれぞれ接続されており、相互に通信可能である。プリンタ11は、外部装置及び画像形成装置の一例である。PC12は、情報処理装置の一例である。情報処理装置は、パーソナルコンピュータや、スマートフォンなどの携帯端末や、タブレットなどであってよい。以下では、PC12がパーソナルコンピュータである例を説明する。
通信ネットワーク13は、例えば、有線LAN、無線LAN、WAN、或いはこれらの組み合わせであってもよい。または、プリンタ11とPC12とは、USBケーブル等によって接続されていてもよい。通信ネットワーク13には、複数のプリンタ11が接続されていてもよい。
プリンタ11は、いわゆるラベルプリンタである。プリンタ11は、印刷媒体に印刷を行い、また、印刷した印刷媒体を切断する。ラミネートフィルムなどからなるテープ、ラベル、ロール紙などは、印刷媒体の一例であってよい。印刷は、画像形成の一例である。
プリンタ11は、印刷エンジン21と、ディスプレイ22と、ネットワークインタフェース(以下、I/Fと記載する)23と、コントローラ31とを備える。印刷エンジン21、ディスプレイ22、及びネットワークI/F23は、コントローラ31の通信バス38と接続されており、コントローラ31と相互に通信可能である。
印刷エンジン21は、テープを搬送する搬送装置と、搬送装置によって搬送されたテープに印字を行う印刷装置と、テープを切断する切断装置とを備える。搬送装置、印刷装置、及び切断装置は、コントローラ31から入力される制御信号に基づいて動作する。
ディスプレイ22は、液晶ディスプレイ、有機ELディスプレイ等であり、各種情報を表示する表示画面を備える。
ネットワークI/F23は、通信ネットワーク13と接続されている。コントローラ31は、ネットワークI/F23を通じて、情報を送受信する。ネットワークI/F23の具体的な通信手順は特に限定されないが、例えば、USBケーブルを着脱可能なUSB−I/FをネットワークI/F23として採用することができる。また、Wi−Fi(登録商標)−I/FをネットワークI/F23として採用してもよい。以下では、プリンタ11とPC12とが無線LANまたは有線LANで接続されており、TCP/IPの通信プロトコルを用いて通信する例を説明する。
コントローラ31は、CPU32と、メモリ33と、通信バス38とを備える。CPU32及びメモリ33は、通信バス38と接続されている。通信バス38は、印刷エンジン21と、ネットワークI/F23と、ディスプレイ22と接続されている。CPU32は、通信バス38を通じて印刷エンジン21、ネットワークI/F23、及びディスプレイ22と接続されている。
メモリ33は、プログラム記憶領域34及びデータ記憶領域35を有している。プログラム記憶領域34は、OS36や装置プログラム37等のプログラムを記憶している。データ記憶領域35は、プログラムの実行に必要なデータを記憶する。
また、データ記憶領域35は、フォントリスト及びフォントデータを記憶している。フォントリストはデータ記憶領域35が記憶するフォントデータのリストである。フォントリストは、フォントの名称であるフォント名と、フォントデータを識別する識別情報であるインデックス番号と、フォントデータのサイズを示すフォントサイズとを項目として有する。フォントリストの一のレコードは、一のインデックス番号と、一のフォント名と、一のフォントサイズとを有する。一のレコードは、一のフォントデータを示す。すなわち、一のレコードは、一のフォントデータと、一のインデックス番号と、一のフォント名と、一のフォントサイズとを対応付けるデータであるとも言える。
OS36は、プリンタ11の基本プログラムである。装置プログラム37は、OS36と協働して、印刷エンジン21に制御信号を出力して印刷エンジン21の動作を制御し、ディスプレイ22に画像信号を出力してディスプレイ22に画像を表示させ、ネットワークI/F23を通じたPC12などの外部装置との通信を制御するプログラムである。装置プログラム37は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。
プログラム記憶領域34は、例えばROMである。データ記憶領域35は、ROMやRAMやEEPROMや、HDDや、プリンタ11に着脱されるUSBメモリ等の可搬記憶媒体や、CPU32が備えるバッファ等である。
メモリ33は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。後述するPC12のメモリ43についても同様である。
PC12は、コントローラ41と、ディスプレイ51と、ユーザI/F52と、ネットワークI/F53と、通信バス48とを備える。
ディスプレイ51、ユーザI/F52、及びネットワークI/F53は、コントローラ41の通信バス48に接続されている。ディスプレイ51、ネットワークインタフェース53、及び通信バス48の構成は、プリンタ11のディスプレイ22、ネットワークI/F23、及び通信バス38の構成と同様である。
ユーザI/F52は、キーボードやマウスである。ユーザI/F52は、ユーザの指示に応じた操作信号の入力を受け付ける。操作信号は、通信バス48を通じてコントローラ41に入力される。
コントローラ41は、CPU42と、メモリ43と、通信バス48とを備える。CPU42は、コンピュータの一例である。
メモリ43は、プログラム記憶領域44及びデータ記憶領域45を有している。プログラム記憶領域44は、OS46やプログラム47等のプログラムを記憶している。データ記憶領域45は、プログラムの実行に必要なデータを記憶する。
OS46は、PC12の基本プログラムである。OS46は、例えば、MacOS(登録商標)、Windows(登録商標)、Linux(登録商標)、Android(登録商標)OS等のオペレーティングシステムである。OS46は、PC12にインストールされた複数のプログラムを並行してCPU42に実行させることができる。複数のプログラムは、例えば、時分割多重方式によって仮想的に並行して実行される。
プログラム47は、CPU42がプログラムとして実行可能な実行ファイルである。プログラム47は、例えば、機械語で記述されたバイナリ形式のバイナリファイルである。
プログラム47は、図2に示されるUIモジュール61と通信モジュール62とを備える。UIモジュール61は、ユーザの入力を受け付ける設定画面(図9)をディスプレイ51に表示させ、また、通信モジュール62の起動等をOS46に指示するプログラムである。通信モジュール62は、プリンタ11との通信を行うプログラムである。UIモジュール61と通信モジュール62とは、時分割多重方式等によって仮想的に並行して実行される。UIモジュール61は、第1プログラムの一例である。通信モジュール62は、第2プログラムの一例である。
UIモジュール61は、種々の言語データを有する。UIモジュール61は、OS46が指定する言語と対応する言語データを決定し、決定した言語データの言語でディスプレイ51に設定画面(図9)を表示させる。すなわち、UIモジュール61は、いわゆるローカライズされたプログラムである。
設定画面は、ユーザの指示を受け付け、また、ユーザに情報を示す画面である。設定画面は、ユーザの指示を受け付けるテキストボックスやプルダウンメニューやスピンボックスやチェックボックスなどの入力手段を有する。また、設定画面は、ユーザに情報(フォントリスト)を示す情報表示領域を有する。
詳しい説明は省略するが、UIモジュール61は、設定画面の上述の入力手段により、フォントリスト取得指示(図2のS21)、フォントデータ転送指示(図4のS51)、及び終了指示(図5のS81)などのユーザの指示を受け付ける。フォントリスト取得指示は、プリンタ11からフォントリストを取得することを示す指示である。フォントデータ転送指示は、フォントデータをプリンタ11に転送(送信)してプリンタ11にフォントデータを記憶させることを示す指示である。終了指示は、プログラム47を終了させることを示す指示である。ユーザの指示を受け付けるステップS21、S51、S81の処理は、受付処理の一例である。
以下、プログラム47(UIモジュール61及び通信モジュール62)が実行する処理について、図2から図9を参照して説明する。
なお、本明細書では、基本的に、プログラムに記述された命令に従ったCPUの処理を説明する。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」、「設定」等の処理は、CPUの処理を表している。CPUによる処理は、OSなどのコントローラを介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPUが要求することなくデータを受信するという処理も、「CPUがデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。
また、プログラムに記述された命令に従ったCPUの処理を、省略した文言で記載することがある。例えば、「CPU42が行う」「プログラム47が行う」「コントローラ41が行う」「PC12が行う」のように記載することがある。CPU32についても同様である。
また、CPUによる、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPUによる、情報Aが事柄Bであることを示しているか、事柄Cであるかを示しているかを判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
また、本明細書中の「データ」と「情報」とは、コンピュータによって取り扱い可能なビット或いはビット列である点において共通する。「データ」とは、各ビットが示す意味内容をコンピュータが考慮することなく取り扱えるものを指す。これに対して、「情報」とは、各ビットが示す意味内容によってコンピュータの動作が分岐するものを指す。さらに、「指示」は、送信先の装置に対して次の動作を促すための制御信号であって、情報を含んでいることもあるし、それ自体が情報としての性質を有していることもある。
また、「データ」及び「情報」は、形式(例えば、テキスト形式、バイナリ形式、フラグ形式等)がコンピュータ毎に変更されたとしても、同一の意味内容と認識される限り、同一のデータ及び情報として取り扱われる。例えば、「2つ」であることを示す情報が、あるコンピュータではASCIIコードで”0x32”というテキスト形式の情報として保持され、別のコンピュータでは二進数表記で”10”というバイナリ形式の情報として保持されてもよい。
但し、上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。例えば、データが一時的に情報として扱われてもよいし、情報が一時的にデータとして扱われてもよい。また、ある装置ではデータとして扱われるものが、他の装置では情報として扱われてもよい。さらには、データの中から情報が取り出されてもよいし、情報の中からデータが取り出されてもよい。
また、本明細書中の「に応じて」は、当該文字列の前に記載された条件が満たされた場合に、当該文字列の後に記載された処理が実行されることを示す。なお、処理が実行されるタイミングは、条件が満たされた後であればよく、当該条件が満たされた直後である必要は必ずしもない
プログラム47は、OS46からの起動指示(S11)によって起動される。OS46は、例えば、ユーザI/F52を用いたユーザからの指示により、起動指示を行う。起動指示には、言語指定が含まれる。
プログラム47が起動すると、まず、UIモジュール61が起動する(S12)。UIモジュール61は、起動すると、OS46からの起動指示に含まれる言語指定を取得する(S13)。以下では、言語指定で指定された言語を指定言語として説明する。
プログラム47は、取得した言語指定に対応する言語データを、記憶する種々の言語データから選択し、ディスプレイ51に表示する設定画面の言語として決定する(S14)。プログラム47は、決定した言語データを用いて、図9に示される設定画面をディスプレイ51に表示する(S15)。言語指定を取得するステップS13の処理は、第4取得手段の一例である。指定言語の言語データを決定するステップS14の処理は、決定手段の一例である。設定画面をディスプレイ51に表示させるステップS15の処理は、表示手段の一例である。
次に、UIモジュール61は、記憶指示コマンドをOS46に入力する(S16)。記憶指示コマンドは、プログラム47の実行ファイルに含まれる通信モジュール62をテンポラリフォルダに記憶することをOS46に指示するコマンドである。テンポラリフォルダは、データやプログラムを一時的に記憶するフォルダである。テンポラリフォルダは、一時記憶領域の一例である。一時記憶領域は、テンポラリフォルダの他、HDDの既存のフォルダであってもよい。また、UIモジュール61が、HDDやRAMにフォルダを作成し、作成したフォルダに通信モジュール62を記憶させることをOS46に指示してもよい。
記憶指示コマンドを受け付けたOS46は、プログラム47の実行ファイルに含まれる通信モジュール62をテンポラリフォルダに記憶させる(S17)。通信モジュール62をテンポラリフォルダに記憶させるステップS17の処理は、記憶手段の一例である。
次に、UIモジュール61は、ロック指示コマンドをOS46に入力する(S18)。ロック指示コマンドは、他のプログラムが通信モジュール62をテンポラリフォルダから消去することを制限するコマンドである。ロック指示コマンドをOS46に入力するステップS18の処理は、ロック手段の一例である。
ロック指示コマンドを入力されたOS46は、通信モジュール62を消去しないことを示す設定をメモリ43に記憶し、通信モジュール62をロックする(S19)。また、OS46は、通信モジュール62をロックしたことをUIモジュール61に通知する(S20)。
その後、UIモジュール61は、ユーザからの指示を受け付けるまで待機する。UIモジュール61は、ユーザからフォントリスト取得指示を受け付けると(S21)、第1指示データを生成する(S22)。第1指示データは、対応確認コマンド、フォントリスト取得コマンド、総記憶容量取得コマンド、及び空き記憶容量取得コマンドを含む。
対応確認コマンドは、プリンタ11に入力されるコマンドである。対応確認コマンドを入力されたプリンタ11は、フォントデータを記憶可能なプリンタであるか否かを示す応答情報を返信する。すなわち、対応確認コマンドは、プリンタ11がフォントデータを記憶可能なプリンタであるか否かを確認するコマンドである。
フォントリスト取得コマンドは、プリンタ11に入力されるコマンドである。フォントリスト取得コマンドを入力されたプリンタ11は、メモリ33に記憶するフォントリストを返信する。すなわち、フォントリスト取得コマンドは、フォントリストを取得するためのコマンドである。フォントリスト取得コマンドは、第1返信命令の一例である。
総記憶容量取得コマンドは、プリンタ11に入力されるコマンドである。総記憶容量取得コマンドを入力されたプリンタ11は、総記憶容量を返信する。総記憶容量とは、フォントデータを記憶可能なメモリ33の領域の容量を意味する。すなわち、総記憶容量取得コマンドは、プリンタ11におけるフォントデータを記憶可能な領域の総記憶容量を取得するためのコマンドである。総記憶容量取得コマンドは、第2返信命令の一例である。
空き記憶容量取得コマンドは、プリンタ11に入力されるコマンドである。空き記憶容量取得コマンドを入力されたプリンタ11は、空き記憶容量を返信する。空き記憶容量とは、総記憶容量から、現在フォントデータの記憶に使用している使用容量を減算した容量を意味する。すなわち、空き記憶容量取得コマンドは、プリンタ11におけるフォントデータを記憶可能な残りの領域の容量である空き記憶容量を取得するためのコマンドである。空き記憶容量取得コマンドは、第3返信命令の一例である。
UIモジュール61は、対応確認コマンド、フォントリスト取得コマンド、総記憶容量取得コマンド、及び空き記憶容量取得コマンドを含む第1指示データを生成する。なお、UIモジュール61は、プリンタ11のIPアドレスを第1指示データに含め、或いは、プリンタ11のMACアドレスなど、プリンタ11を特定するデータを第1指示データに含める。
次に、UIモジュール61は、生成した第1指示データを含む通信オプション付きの起動指示コマンドをOS46に入力する(S23)。通信オプション付きの起動指示コマンドは、通信モジュール62を起動させ、かつ通信モジュール62にプリンタ11と通信を行わせることをOS46に対して指示するコマンドである。通信オプション付きの起動指示コマンドは、第1起動通信指示の一例である。第1指示データを含む通信オプション付きの起動指示コマンドをOS46に入力するステップS23の処理は、第1指示手段の一例である。
通信オプション付きの起動指示コマンドを受け付けたOS46は、通信モジュール62を起動させ(S25)、また、プリンタ11との通信を通信モジュール62に指示する(S24)。通信モジュール62を起動させてプリンタ11との通信を指示するステップS23の処理は、第1指示手段の一例である。
OS46が通信モジュール62に対して行う通信指示には、UIモジュール61がステップS22で生成した第1指示データが含まれる。第1指示データには、上述の複数のコマンドが含まれる。通信モジュール62は、コマンドを1つずつプリンタ11に送信し、コマンドに対するプリンタ11からの応答を受信する。なお、プリンタ11が複数のコマンドを1度に受け付け可能なプリンタである場合は、複数のコマンドが通信モジュール62からプリンタ11へ1度に送信されてもよい。
通信モジュール62とプリンタ11との通信について具体的に説明する。通信モジュール62は、まず、プリンタ11とハンドシェイクを行ってプリンタ11との間の通信を確立する(不図示)。次に、通信モジュール62は、応答確認コマンドをプリンタ11に送信する(S31)。なお、通信モジュール62は、OS46のAPIを用いてプリンタ11と通信を行ってもよいし、OS46を介さずにプリンタ11と通信を行ってもよい。以下、通信モジュール62がOS46を介してプリンタ11と通信することも含めて、「通信モジュール62がプリンタ11と通信を行う」や、「通信モジュール62がプリンタ11に送信する」や、「通信モジュール62がプリンタ11から受信する」などと記載することがある。
一方、応答確認コマンドを受信したプリンタ11は、応答確認コマンドにしたがって、自身がフォントデータを記憶可能なプリンタ11であるか否か、すなわち、自身がプログラム47が管理可能なプリンタ11であるか否かを示す応答を返信する(S32)。プリンタ11が返信した応答は、通信モジュール62によって受信される(S32)。
図には示されていないが、プログラム47は、プリンタ11がプログラム47によって管理可能なプリンタ11でないことを示す応答を受け取ると、例えば、その旨を示す表示を設定画面に表示し、プリンタを選択し直すなどの再度のユーザの入力を受け付けるまで待機する。
通信モジュール62は、プリンタ11がプログラム47によって管理可能なプリンタ11であることを示す応答を受け取ると、フォントリストを返信することを示すフォントリスト取得コマンドをプリンタ11に送信する(S33)。フォントリスト取得コマンドを受信したプリンタ11は、メモリ33に記憶されたフォントリストを含む応答を返信する(S34)。フォントリストを含む応答を受信した通信モジュール62は、受信した応答に含まれるフォントリストをメモリ43に記憶する(S35)。フォントリストは、第1データの一例である。
次に、通信モジュール62は、総記憶容量を返信することを要求する総記憶容量取得コマンドをプリンタ11に送信する(S36)。総記憶容量取得コマンドを受信したプリンタ11は、総記憶容量を含む応答を返信する(S37)。総記憶容量を含む応答を受信した通信モジュール62は、受信した応答に含まれる総記憶容量をメモリ43に記憶する(S38)。
次に、通信モジュール62は、空き記憶容量を返信することを要求する空き記憶容量取得コマンドをプリンタ11に送信する(S39)。空き記憶容量取得コマンドを受信したプリンタ11は、空き記憶容量を含む応答を返信する(S40)。空き記憶容量を含む応答を受信した通信モジュール62は、受信した応答に含まれる空き記憶容量をメモリ43に記憶する(S41)。その後、通信モジュール62は、プリンタ11との間に確立した通信を解放してプリンタ11との通信を終了する。すなわち、複数のコマンドを送信して応答を受信するまで、通信モジュール62は、プリンタ11との間に確立した通信を維持する。通信モジュール62がプリンタ11にコマンドを送信し、コマンドに対する応答を受信するステップS31〜S40の処理は、通信手段の一例である。
通信モジュール62は、プリンタ11との通信の結果得た情報であるフォントリスト、総記憶容量、及び空き記憶容量をOS46に受け渡し(S42)、動作を終了する(S43)。通信モジュール62がフォントリスト、総記憶容量、及び空き記憶容量をOS46に受け渡すステップS42の処理は、受渡手段の一例である。通信モジュール62が動作を終了するステップS43の処理は、第2終了手段の一例である。
OS46は、通信モジュール62から受け渡されたフォントリスト、総記憶容量、及び空き記憶容量をUIモジュール61に受け渡す(S44)。UIモジュール61は、OS46から、フォントリスト、総記憶容量、及び空き記憶容量を取得する(S44)。UIモジュール61がフォントリストを取得するステップS44の処理は、第1取得手段の一例である。
UIモジュール61は、OS46から取得したフォントリストを指定言語に変換する(S45)。その後、UIモジュール61は、OS46から受け取った総記憶容量及び空き記憶容量と、変換したフォントリストとをディスプレイ51に表示させ、設定画面を更新する(S46)。フォントリストを指定言語に変換するステップS45の処理は、変換手段の一例である。設定画面を更新するステップS46は、表示手段の一例である。
図4に示されるように、UIモジュール61は、ユーザからフォントリストの転送指示を受け付けると(S51)、転送指示に含まれるパスを取得する(S52)。パスは、ユーザが送信を指定するフォントデータを示す。UIモジュール61がパスを取得するステップS52の処理は、第2取得手段の一例である。
次に、UIモジュール61は、第2指示データを生成する(S53)。第2指示データは、ステップS52で取得したパスと、当該パスで示されるフォントデータをメモリ33に記憶させることをプリンタ11に指示する記憶コマンドと、さらに、上述の複数のコマンドとを含む。複数のコマンドは、プリンタ11にフォントリスト、総記憶容量、及び空き記憶容量を送信することを要求するコマンドである。すなわち、複数のコマンドは、新たなフォントデータをメモリ33に記憶させた後に更新されたフォントリストや総記憶容量や空き記憶容量をプリンタ11に送信させるコマンドである。なお、UIモジュール61は、パスに代えて、パスが示すフォントデータ自体を第2指示データに含めてもよい。フォントデータは、第2データの一例である。記憶コマンドは、記憶命令の一例である。
UIモジュール61は、生成した第2指示データを含む通信オプション付きの起動指示コマンドをOS46に入力する(S54)。ステップS54でOS46に入力される通信オプション付きの起動指示コマンドは、第2起動通信指示の一例である。通信オプション付きの起動指示コマンドをOS46に入力するステップS54の処理は、第2指示手段の一例である。
通信オプション付きの起動指示コマンドを受け付けたOS46は、通信モジュール62を起動させ(S56)、また、通信モジュール62にプリンタ11との通信を指示する(S55)。OS46が通信モジュール62に対して行う通信の指示には、UIモジュール61がステップS53で生成した第2指示データが含まれる。
起動された通信モジュール62は、OS46から入力された通信指示に含まれる第2指示データにしたがって、プリンタ11と通信を行う。具体的に説明すると、まず、通信モジュール62は、第2指示データに含まれるパスを用いて、プリンタ11に送信するフォントデータを取得する(S57)。次に、通信モジュール62は、取得したフォントデータと、当該フォントデータをメモリ33に記憶することをプリンタ11に指示する記憶コマンドとを含む送信データであるBinファイルを生成し(S58)、プリンタ11に送信する(S59)。通信モジュール62がパスを用いてフォントデータを取得するステップS57の処理は、第3取得手段の一例である。
プリンタ11は、通信モジュール62が送信したBinファイルを受信すると、Binファイルに含まれる記憶コマンドにしたがって、Binファイルに含まれるフォントデータをメモリ33に記憶させる(S60)。また、プリンタ11は、新たなフォントデータをメモリ33に記憶したことに応じて、フォントリストに新たなレコードを追加する。すなわち、プリンタ11は、フォントリストを更新する。
一方、通信モジュール62は、Binファイルの送信後、ステップS33、S36、S39の処理と同様に、フォントリスト取得コマンド、総記憶容量取得コマンド、及び空き記憶容量取得コマンドをプリンタ11に順次送信し、ステップS32、S37、S40の処理と同様に、応答を順次受信する。通信モジュール62がプリンタ11と通信を行うステップS59、S60、S33〜S40の処理は、通信手段の一例である。
通信モジュール62は、図5に示されるように、プリンタ11から応答を受信するごとに、当該応答に含まれるデータ(フォントリスト、総記憶容量、及び空き記憶容量)をメモリ43に順次記憶する(S71)。通信モジュール62は、プリンタ11との通信が終了すると、プリンタ11からの応答に含まれるフォントリスト、総記憶容量、及び空き記憶容量をOS46に受け渡す(S72)。その後、通信モジュール62は、動作を終了する(S73)。
一方、OS46は、通信モジュール62から受け渡されたフォントリスト、総記憶容量、及び空き記憶容量をUIモジュール61に受け渡す(S74)。UIモジュール61は、受け渡されたフォントリストを指定言語に変換し(S75)、変換したフォントリスト、総記憶容量、及び空き記憶容量をディスプレイ51に表示させて、設定画面を更新する(S76)。フォントリストを指定言語に変換するステップS75の処理は、変換手段の一例である。設定画面を更新するステップS76は、表示手段の一例である。
また、UIモジュール61は、ユーザから終了指示を受け付けると(S81)、ステップS18でOS36に指示したロックを解除することをOS46に指示するコマンドをOS46に入力する(S82)。コマンドを入力されたOS46は、通信モジュール62に設定したロックを解除する(S83)。具体的には、OS46は、ロックの設定をメモリ43から消去する。通信モジュール62に設定したロックを解除するステップS83の処理は、ロック解除手段の一例である。
一方、UIモジュール61は、ロックの解除をOS46に指示した後、通信モジュール62をテンポラリホルダから消去することを要求するコマンドをOS46に入力する(S84)。当該コマンドを入力されたOS46は、通信モジュール62をテンポラリフォルダから消去し(S85)、通信モジュール62をテンポラリフォルダから消去したことをUIモジュール61に対して通知する(S86)。当該通知を受けたUIモジュール61は、動作を終了する(S87)。なお、RAMやHDDにフォルダを作成し、作成したフォルダに通信モジュール62が記憶されている場合、UIモジュール61は、通信モジュール62とともに、作成したフォルダの消去もOS46に指示する。すなわち、UIモジュール61は、一時記憶されたフォルダ及び通信モジュール62の全ての消去をOS46に指示する。UIモジュール61が通信モジュール62の消去をOS46に指示するステップS84の処理は、消去手段の一例である。UIモジュール61の動作を終了するステップS87の処理は、第1終了手段の一例である。
上述のように、UIモジュール61は、起動すると、通信モジュール62をテンポラリフォルダに記憶させて通信モジュール62をロックする。UIモジュール61が通信モジュール62をロックすることは、複数のUIモジュール61が起動される場合に特に有効である。以下、詳しく説明する。
2つのUIモジュール61が起動され、先に起動した方のUIモジュール61が、後で起動した方のUIモジュール61よりも後で動作を終了する場合の処理を図6を参照して説明する。なお、図6では、OS46の図示を省略しているが、UIモジュール61と通信モジュール62とは、図2〜図5と同様に、OS46を通じて動作する。また、以下では、先に起動した方のUIモジュール61を第1のUIモジュール61とし、後で起動した方のUIモジュール61を第2のUIモジュール61として説明する。また、第1のUIモジュール61が実行する処理のうち、図2〜図5で説明した処理と同一の処理には、同一の符号に添え字「a」を付し、第2のUIモジュール61が実行する処理のうち、図2〜図5で説明した処理と同意の処理には、同一の符号に添え字「b」を付して説明することがある。例えば、第1のUIモジュール61が実行する処理のうち、図2〜図5で説明した処理S12と同一の処理には、符号S12aを付し、第2のUIモジュール61が実行する処理のうち、図2〜図5で説明した処理S12と同一の処理には、符号S12bを付して説明する。
OS46からの起動指示(S11a)によりプログラム47が起動されると、第1のUIモジュール61が起動する(S12a)。
起動した第1のUIモジュール61は、ステップS13からS15の処理(図2)を実行した後、通信モジュール62をテンポラリフォルダに記憶させる(S16a)。また、第1のUIモジュール61は、通信モジュール62に対してロックを行うことを指示するコマンドをOS46に入力し(S18a)、通信モジュール62をロックする。
第1のUIモジュール61が起動した後、プログラム47がOS46からの起動指示(S11b)により起動されると、第2のUIモジュール61が起動される(S12b)。
第2のUIモジュール61は、OS46に対して、実行ファイルの通信モジュール62をテンポラリフォルダに記憶することを要求するコマンドをOS46に入力する。当該コマンドを入力されたOS46は、通信モジュール62がテンポラリフォルダに既に記憶されていることにより、通信モジュール62をテンポラリフォルダに新たに記憶することなく、「失敗」を示す通知を第2のUIモジュール61に対して行う(S91)。
また、第2のUIモジュール61は、通信モジュール62に対してロックを行うことをOSに指示し(S18b)、通信モジュール62をロックする。すなわち、通信モジュール62は、第1のUIモジュール61及び第2のUIモジュール61の双方にロックされる。
その後、第1のUIモジュール61よりも先に第2のUIモジュール61に終了指示が入力される(S81b)。第2のUIモジュール61は、終了指示が入力されると、OS46にロックを解除する指示を入力し、通信モジュール62に設定されたロックを解除する(S82b)。
また、第2のUIモジュール61は、テンポラリフォルダから通信モジュール62を消去することを指示するコマンドをOS46に入力する(S84b)。当該コマンドを入力されたOS46は、通信モジュール62がロックされているか否かをメモリ43に記憶された設定によって確認する。OS46は、通信モジュール62が第1のUIモジュール61によってロックされていることにより、通信モジュール62をテンポラリフォルダから消去することなく、「失敗」を示す通知を第2のUIモジュール61に対して行う(S92)。第2のUIモジュール61は、その後、動作を終了する(S87b)。
第2のUIモジュール61の動作終了後、第1のUIモジュール61に終了指示が入力されると(S81a)、第1のUIモジュール61は、通信モジュール62のロックを解除することを指示するコマンドをOS46に入力し、通信モジュール62に設定されたロックを解除する(S82a)。
また、第1のUIモジュール61は、テンポラリフォルダから通信モジュール62を消去することを指示するコマンドをOS46に入力する(S84a)。当該コマンドを入力されたOS46は、通信モジュール62がロックされているか否かをメモリ43に記憶された設定によって確認する。OS46は、通信モジュール62が第2のUIモジュール61によってロックされていないことにより、通信モジュール62をテンポラリフォルダから消去する。第1のUIモジュール61は、その後、動作を終了する(S87a)。
上述のように、複数のUIモジュール61が起動しても、通信モジュール62は、1つしかテンポラリフォルダに記憶されず、また、起動された全てのUIモジュール61の動作が終了するまでは、通信モジュール62がテンポラリフォルダから削除されることがない。
図6では、先に起動した方のUIモジュール61が、後で起動した方のUIモジュール61よりも後で動作を終了する場合について説明した。図7では、先に起動した方のUIモジュール61が、後で起動した方のUIモジュール61よりも先に動作を終了する場合を説明する。なお、図7では、図6と同様に、OS46の図示を省略している。また、以下では、先に起動した方のUIモジュール61を第1のUIモジュール61とし、後で起動した方のUIモジュール61を第2のUIモジュール61として説明する。また、第1のUIモジュール61が実行する処理のうち、図2〜図5で説明した処理と同一の処理には、同一の符号に添え字「a」を付し、第2のUIモジュール61が実行する処理のうち、図2〜図5で説明した処理と同意の処理には、同一の符号に添え字「b」を付して説明することがある。
まず、図6の場合と同様に、第1のUIモジュール61が先に起動され(S12a)、第2のUIモジュール61が後で起動される(S12b)。また、通信モジュール62は、第1のUIモジュール61及び第2のUIモジュール61の双方によってロックされる(S18a、S18b)。
その後、後で起動した第2のUIモジュール61よりも先に、第1のUIモジュール61に終了指示が入力されると(S81a)、第1のUIモジュール61は、通信モジュール62のロックの解除を指示するコマンドをOS46に入力し、通信モジュール62に設定されたロックを解除する(S82a)。
また、第1のUIモジュール61は、テンポラリフォルダから通信モジュール62を消去することを指示するコマンドをOS46に入力する(S84a)。当該コマンドを入力されたOS46は、通信モジュール62がロックされているか否かをメモリ43に記憶された設定によって確認する。OS46は、通信モジュール62が第2のUIモジュール61によってロックされていることにより、通信モジュール62をテンポラリフォルダから消去することなく、「失敗」を示す通知を第1のUIモジュール61に対して行う(S92)。第2のUIモジュール61は、その後、動作を終了する(S87a)。
第1のUIモジュール61の動作終了後、第2のUIモジュール61に終了指示が入力されると(S81b)、第2のUIモジュール61は、通信モジュール62のロックの解除を指示するコマンドをOS46に入力し、通信モジュール62に設定されたロックを解除する(S82b)。
また、第2のUIモジュール61は、テンポラリフォルダから通信モジュール62を消去することを指示するコマンドをOS46に入力する(S84b)。当該コマンドを入力されたOS46は、通信モジュール62がロックされているか否かをメモリ43に記憶された設定によって確認する。OS46は、通信モジュール62が第1のUIモジュール61によってロックされていないことにより、通信モジュール62をテンポラリフォルダから消去する。第2のUIモジュール61は、その後、動作を終了する(S87b)。
次に、通信モジュール62とプリンタ11との通信において、通信異常を生じた場合について、図8を参照して説明する。なお、図4で説明した処理と同一の処理については、図4で説明した処理と同一の符号を付して説明を省略することがある。
UIモジュール61及び通信モジュール62は、転送指示を受け付けると(S51)、ステップS52〜54及びステップS56〜59の処理を実行する。通信モジュール62とプリンタ11と通信において、いわゆる通信クラッシュなどの異常が生じたとする。図示例では、通信モジュール62がBinファイルを送信する際に、通信クラッシュが生じて、通信モジュール62に異常が生じた場合が示されている。
異常が生じたことに応じて、ユーザが終了を指示し、終了指示がUIモジュール61に入力されると(S81)、UIモジュール61は、ロックを解除することをOS46に指示し、その後、通信モジュール62をテンポラリフォルダから消去することをOS46に指示する(S84)。
一方、ロックを解除することを指示されたOS46は、通信モジュール62をロックしたことを示す設定をメモリ43から削除してロックを解除する(S83)また、通信モジュール62を消去することを指示されたOS46は、テンポラリフォルダから通信モジュール62を消去し(S85)、通信モジュール62を消去したことをUIモジュール61に通知する(S86)。当該通知を受けたUIモジュール61は、動作を終了する(S87)。すなわち、UIモジュール61が動作を終了する際に、異常を生じた通信モジュール62は、テンポラリフォルダから消去される。
[実施形態の作用効果]
本実施形態では、UIモジュール61は、プログラム47が起動すると起動される。一方、通信モジュール62は、OS46によって起動される。したがって、UIモジュール61と通信モジュール62とは、起動のプロセスが相違する。また、UIモジュール61と通信モジュール62とは、OS46を介して相互にデータを受け渡す。したがって、プリンタ11との通信等において通信モジュール62に異常が生じたとしても、異常が生じた通信モジュール62がUIモジュール61の動作を阻害することがない。すなわち、通信モジュールに異常が生じたとしても、UIモジュール61は、ユーザからの指示を受け付けて処理することができる。
また、異常が生じた通信モジュール62は、UIモジュール61の動作が終了する際にテンポラリフォルダから消去される。したがって、異常が生じた通信モジュール62がテンポラリフォルダに残存して、OS46の動作を阻害することがない。
また、通信モジュール62は、異常が生じなくても、UIモジュール61の動作が終了する際にテンポラリフォルダから消去される。したがって、テンポラリフォルダに不要なプログラムが残存することを抑制することができる。
また、本実施形態では、後に起動したUIモジュール61(第2のUIモジュール61)が通信モジュール62をテンポラリフォルダに記憶することをOS46に指示したとしても、先に起動したUIモジュール61によってテンポラリフォルダに通信モジュール62が既に記憶されている場合、通信モジュール62がテンポラリフォルダに更に記憶されない。すなわち、複数のUIモジュール61が起動されても、通信モジュール62は、1つしかテンポラリフォルダに記憶されない。したがって、複数の通信モジュール62がテンポラリフォルダに記憶される場合に比べ、プログラム47が使用するテンポラリフォルダの容量(使用率)を少なくすることができる。
また、本実施形態では、複数のUIモジュール61が起動すると、起動した各UIモジュール61(第1のUIモジュール61及び第2のUIモジュール61)は、それぞれ通信モジュール62をロックする。起動した各UIモジュール61は、動作を終了する際に、それぞれ通信モジュール62のロックを解除する。したがって、起動した全てのUIモジュール61の動作が終了するまで、通信モジュール62がテンポラリフォルダから消去されることがない。その結果、起動した全てのUIモジュール61において、通信モジュール62を用いてプリンタ11と通信を行うことができる。
また、本実施形態では、UIモジュール61は、OS46を通じて通信モジュール62を起動させ、OS46を通じて通信モジュール62に第1指示データを受け渡す。一方、通信モジュール62は、フォントリストや総記憶容量や空き記憶容量をOS46に受け渡すと、動作を終了する。したがって、複数のUIモジュール61が起動しても、通信モジュール62は、1つしか起動されない。すなわち、OS46を通じて通信モジュール62を起動させることにより、1つの通信モジュール62のみを起動させることができる。その結果、複数の通信モジュール62を起動させる場合に比べ、CPU42の処理負担を軽減することができる。
また、本実施形態では、OS46のロック機能を利用して、UIモジュール61が通信モジュール62に対してロックを行う。したがって、通信モジュール62に対してロックを行う機能をUIモジュール61が有する場合に比べ、UIモジュール61の構成を簡単にすることができる。
また、本実施形態では、UIモジュール61は、第2指示データを含む通信オプション付きの起動指示コマンドをOS46に入力することにより、フォントデータをプリンタ11に記憶させることができる。
また、本実施形態では、UIモジュール61は、フォントデータを示すパスをOS46を介して通信モジュール62に受け渡し、第2指示データを含む通信オプション付きの起動指示コマンドをOS46に入力することにより、フォントデータをプリンタ11に記憶させることができる。
また、本実施形態では、通信モジュール62から受け渡されたフォントリストをUIモジュール61が指定言語に変換してディスプレイ51に表示させる。したがって、通信モジュール62には、データを指定言語に変換する処理が不要である。すなわち、通信モジュール62には、いわゆるローカライズが不要である。その結果、通信モジュール62の構成が簡単になる。
また、本実施形態では、複数のコマンドをプリンタ11に送信する際(S31〜S40)、一度の通信確立で複数のコマンドをプリンタ11に順次送信し、コマンドに対する応答をプリンタ11から順次受信する。したがって、通信モジュール62が一のコマンドを送信するたびにプリンタ11との間に通信を確立する場合に比べ、PC12とプリンタ11との間の通信量(通信確立の手順に必要な通信量)が低減する。その結果、通信ネットワーク13におけるコリジョンの発生等が低減し、通信トラフィックが安定する。また、PC12とプリンタ11との間の通信時間が低減する。
[変形例]
本変形例では、複数のプログラム47がPC12にインストールされた例を説明する。一のプログラム47(以下、プログラム47Aと記載する)は、例えば、後述の家庭用ラベルプリンタのフォントを管理するプログラムであり、他の一のプログラム47(以下、プログラム47Bと記載する)は、例えば、金属加工/木材加工プリンタのフォントを管理するプログラムである。
プログラム47Aは、UIモジュール61(以下、UIモジュール61Aと記載する)と、通信モジュール62とを有する。プログラム47Bは、UIモジュール61(以下、UIモジュール61Bと記載する)と、通信モジュール62とを有する。
UIモジュール61AとUIモジュール61Bとは、実施形態で説明した処理を行う機能以外の機能の前部または一部が相違する。例えば、UIモジュール61AとUIモジュール61Bとは、ディスプレイ51に表示させる設定画面や、ユーザが印刷を指示する画像に対する編集機能などが相違する。すなわち、UIモジュール61AとUIモジュール61Bとは、実施形態で説明した処理をそれぞれ行うことができる別種のUIモジュール61である。
プログラム47Aが有する通信モジュール62と、プログラム47Bが有する通信モジュール62とは、同構成である。
プログラム47Aが起動すると、UIモジュール61Aが起動する。起動したUIモジュール61Aは、通信モジュール62をテンポラリフォルダに記憶させることをOS46に指示する。指示されたOS46により、通信モジュール62がテンポラリフォルダに記憶される。
プログラム47Aの起動後、プログラム47Bが起動すると、プログラム47Bは、上述の実施形態と同様に、通信モジュール62をテンポラリフォルダに記憶させることをOS46に指示する。指示されたOS46は、通信モジュール62がテンポラリフォルダに既に記憶されていることにより、通信モジュール62をテンポラリフォルダに新たに記憶しない。すなわち、プログラム47A及びプログラム47Bが起動しても、1つの通信モジュール62しかテンポラリフォルダに記憶されない。したがって、プログラム47A及びプログラム47Bがそれぞれ通信モジュール62をテンポラリフォルダに記憶させる場合に比べ、使用するテンポラリフォルダの容量が少なくなる。
また、プログラム47A及びプログラム47Bは、起動すると、上述の実施形態と同様にOS46のロック機能を利用して、通信モジュール62をそれぞれロックし、動作を終了する際に、通信モジュール62のロックをそれぞれ解除する。したがって、プログラム47A及びプログラム47Bの両方のプログラムが動作を終了するまでは、通信モジュール62は、テンポラリフォルダから消去されない。その結果、プログラム47A及びプログラム47Bは、どちらか一方のプログラム47が先に動作を終了したとしても、通信モジュール62を通じてプリンタ11と通信を行うことができる。
[その他の変形例]
上述の変形例では、UIモジュール61の機能が互いに相違するプログラム47Aとプログラム47BとがPC12にインストールされた例を説明した。しかしながら、同一の2つのプログラム47がPC12にインストールされ、同一の2つのプログラム47が起動したとしても、上述の変形例と同様に、1つの通信モジュール62しかテンポラリフォルダに記憶されない。また、2つのUIモジュール61がともに動作を終了しない限り、通信モジュール62はテンポラリフォルダから消去されない。
また、上述の実施形態では、ラベルプリンタであるプリンタ11を説明したが、プリンタ11は、家庭用ラベルプリンタであってもよいし、マスキングテープのような装飾用シートの作成に使われる飾り付けラベル用プリンタであってもよい。食品のパッケージや、電気ケーブルに貼り付けるラベルや、大量のラベルを一度に生成することが必要な用途に使われるプロ向けラベルプリンタであってもよい。プリンタ11は、ラベルプリンタ以外のプリンタであってもよい。例えば、プリンタ11は、ページプリンタや、金属や木材やガラスなどを印刷媒体とし、レーザ光などで印刷媒体の表面を加工する加工プリンタであってもよい。
また、上述の実施形態では、フォントデータを第2データの一例として説明した。しかしながら、第2データは、例えば、葉書の通信面に印刷する背景画像を示す背景画像データなどの画像データであってもよいし、ウォーターマークなどであってもよい。
また、上述の実施形態では、プログラム47が、UIモジュール61と通信モジュール62とを含む実行ファイルである例を説明した。しかしながら、UIモジュール61のみが実行ファイルであってもよい。起動したUIモジュール61は、URLを指定してOS46にコマンドを入力する。当該コマンドを入力されたOS46は、URLが示す通信モジュール62をインターネットを通じてダウンロードして取得し、テンポラリフォルダに記憶させる。
11・・・プリンタ
12・・・PC
42・・・CPU
43・・・メモリ
47・・・プログラム
51・・・ディスプレイ
52・・・ユーザI/F
53・・・ネットワークI/F
61・・・UIモジュール
62・・・通信モジュール

Claims (13)

  1. ネットワークインタフェース、ユーザインタフェース、メモリ、ディスプレイ、及びコンピュータを備える情報処理装置の前記コンピュータによって実行されるプログラムであって、
    該プログラムは、
    前記ユーザインタフェースを通じた入力を受け付ける受付手段として前記コンピュータを機能させる第1プログラムと、
    前記ネットワークインタフェースを通じて外部装置と通信を行う通信手段として前記コンピュータを機能させる第2プログラムと、を備えており、
    前記第1プログラムは、
    前記プログラムが起動されたことに応じて、前記第2プログラムを前記メモリの一時記憶領域に記憶させる記憶手段と、
    前記受付手段で前記入力を受け付けたことに応じて、前記第2プログラムに前記外部装置との通信を行って第1データを取得することを指示する第1指示データを前記第2プログラムに入力する第1指示手段と、
    前記第1指示手段で前記第1指示データを入力された前記第2プログラムが前記外部装置と通信を実行して前記外部装置から受信した前記第1データを取得する第1取得手段と、
    前記第1取得手段で取得した前記第1データを前記ディスプレイに表示させる表示手段と、
    前記第1プログラムの終了指示を受け付けたことに応じて、前記第2プログラムを前記メモリの前記一時記憶領域から消去するための指示を行う消去手段と、
    前記消去手段が指示を行った後、前記第1プログラムの動作を終了する第1終了手段として前記コンピュータを機能させ、
    前記第2プログラムは、
    前記第1指示データを入力されたことに応じて、前記外部装置に前記第1データを返信することを指示する第1返信命令を前記外部装置に送信し、前記外部装置が返信した前記第1データを受信する前記通信手段と、
    前記通信手段で受信した前記第1データを前記第1指示データの入力元に受け渡す受渡手段として前記コンピュータを機能させるプログラム。
  2. 上記第1プログラムは、複数起動が可能であって、
    上記第1プログラムは、
    起動されたことに応じて、前記第2プログラムに対して、起動された他の第1プログラムにおける前記消去手段で消去することを制限するロック手段と、
    前記受付手段で起動終了を示す入力を受け付けたことに応じて、前記ロック手段を解除するロック解除手段として前記コンピュータを機能させる請求項1に記載のプログラム。
  3. 前記第1プログラムは、
    前記コンピュータによって実行されるOSに、前記第1指示データを含む第1起動通信指示を行って、前記OSに前記第2プログラムを起動させ、かつ、前記OSに前記第1指示データを前記第2プログラムに入力させる前記第1指示手段として前記コンピュータを機能させ、
    前記第2プログラムは、
    前記OSによって起動され、かつ、前記OSから前記第1指示データを入力されたことに応じて実行する前記通信手段と、
    前記通信手段で受信した前記第1データを前記OSに受け渡す前記受渡手段と、
    前記受渡手段で前記OSに前記第1データを受け渡したことに応じて前記第2プログラムの動作を終了させる第2終了手段として前記コンピュータを機能させ、
    前記第1プログラムは、
    前記OSから前記第1指示データを取得する前記第1取得手段として前記コンピュータを機能させる請求項1に記載のプログラム。
  4. 前記記憶手段は、
    前記第1プログラムが起動されたことに応じて、前記第2プログラムの記憶を前記OSに指示することで、前記メモリの一時記憶領域に前記第2プログラムが記憶されていない場合に、前記一時記憶領域に前記第2プログラムを記憶させ、前記一時記憶領域に前記第2プログラムが記憶されている場合に、前記一時記憶領域に前記第2プログラムを追加記憶させない、請求項3に記載のプログラム。
  5. 前記第1プログラムは、
    前記コンピュータによって実行されるOSに、起動された前記第2プログラムに対して、起動された他の第1プログラムにおける前記消去手段の実行を制限することを指示する前記ロック手段と、
    前記OSに、前記ロック手段の解除を行うことを指示する前記ロック解除手段として前記コンピュータを機能させる請求項2に記載のプログラム。
  6. 前記第1プログラムは、
    前記OSに前記第2プログラムを起動させ、かつ、前記OSに対して第2指示データを前記第2プログラムに入力させる第2起動通信指示を前記OSに入力する第2指示手段として前記コンピュータを機能させ、前記第2指示データは、前記外部装置と通信を行って前記外部装置に第2データを記憶させることを前記第2プログラムに指示するデータであり、
    前記第2プログラムは、
    前記第2指示データを入力されたことに応じて、前記外部装置に前記第2データを記憶させることを指示する記憶命令及び前記第2データを前記外部装置に送信する前記通信手段として前記コンピュータを機能させる請求項3に記載のプログラム。
  7. 前記第1プログラムは、
    前記第2データのパスを取得する第2取得手段と、
    前記第2取得手段で取得した前記パスと、前記第2起動通信指示とを前記OSに入力する前記第2指示手段として前記コンピュータを機能させ、
    前記第2プログラムは、
    前記パス及び前記第2指示データを入力されたことに応じて、前記パスが示す前記第2データを取得する第3取得手段と、
    前記第3取得手段で取得した前記第2データ、及び前記記憶命令を前記外部装置に送信する前記通信手段として前記コンピュータを機能させる請求項6に記載のプログラム。
  8. 前記第1プログラムは、
    前記OSに前記第1起動通信指示を行って、前記OSに前記第2プログラムを起動させ、かつ、前記OSに前記第1指示データを前記第2プログラムに入力させる前記第1指示手段として前記コンピュータを機能させ、前記第1指示データは、前記第1返信命令と、前記外部装置のメモリの総記憶容量を前記外部装置に返信させる第2返信命令と、前記外部装置のメモリの空き記憶容量を前記外部装置に返信させる第3返信命令とを含み、
    前記第2プログラムは、
    前記第1指示データを入力されたことに応じて、前記第1返信命令を前記外部装置に送信し、前記外部装置が返信した前記第1データを受信する前記通信手段と、
    前記第1指示データを入力されたことに応じて、前記第2返信命令を前記外部装置に送信し、前記外部装置が返信した前記総記憶容量を受信する前記通信手段と、
    前記第1指示データを入力されたことに応じて、前記第3返信命令を前記外部装置に送信し、前記外部装置が返信した前記空き記憶容量を受信する前記通信手段と、
    前記通信手段で受信した前記第1データ、前記総記憶容量、前記空き記憶容量、及び通信の完了を示す完了データを前記OSに受け渡す前記受渡手段として前記コンピュータを機能させる請求項3に記載のプログラム。
  9. 前記外部装置は、画像を形成する画像形成装置であり、
    前記第2データは、前記画像形成装置が実行する画像形成に用いられるデータである請求項6に記載のプログラム。
  10. 前記外部装置は、印刷媒体に画像を印刷するプリンタであり、
    前記第2データは、フォントを示すフォントデータである請求項9に記載のプログラム。
  11. 複数種類の言語データを有しており、
    前記第1プログラムは、
    言語指定を取得する第4取得手段と、
    前記第4取得手段で取得した言語指定で指定される言語を前記言語データから決定する決定手段と、
    前記決定手段で決定した前記言語データを用いて前記ディスプレイに表示させる前記表示手段と、として前記コンピュータを機能させる請求項1に記載のプログラム。
  12. 前記第1プログラムは、
    前記第1取得手段で取得した前記第1データを前記決定手段で決定した言語データに変換する変換手段として前記コンピュータを機能させる請求項11に記載のプログラム。
  13. 前記プログラムは、前記第1プログラム及び前記第2プログラムを含む実行ファイルであり、前記実行ファイルは、起動指示を受け付けたことに応じて、前記第1プログラムが起動されるファイルである請求項1に記載のプログラム。
JP2018008475A 2018-01-22 2018-01-22 プログラム Active JP7206593B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018008475A JP7206593B2 (ja) 2018-01-22 2018-01-22 プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018008475A JP7206593B2 (ja) 2018-01-22 2018-01-22 プログラム

Publications (2)

Publication Number Publication Date
JP2019128686A true JP2019128686A (ja) 2019-08-01
JP7206593B2 JP7206593B2 (ja) 2023-01-18

Family

ID=67473133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018008475A Active JP7206593B2 (ja) 2018-01-22 2018-01-22 プログラム

Country Status (1)

Country Link
JP (1) JP7206593B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07149006A (ja) * 1993-11-29 1995-06-13 Toshiba Corp プリンタ制御装置
JPH0820142A (ja) * 1994-07-07 1996-01-23 Canon Inc 出力装置及び出力方法
JPH10240471A (ja) * 1997-02-26 1998-09-11 Ricoh Co Ltd プリントシステム
JP2000315075A (ja) * 1999-04-28 2000-11-14 Canon Inc 外字管理方法及び装置並びに記憶媒体
JP2005103948A (ja) * 2003-09-30 2005-04-21 King Jim Co Ltd 文字情報処理システム、文字情報処理装置及び文字情報処理プログラム
JP2007249676A (ja) * 2006-03-16 2007-09-27 Yaskawa Electric Corp プログラミング装置のアプリケーション起動順序管理装置
JP2013120481A (ja) * 2011-12-07 2013-06-17 Brother Ind Ltd 定型印字情報処理プログラム、定型印字情報処理方法、記録媒体

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07149006A (ja) * 1993-11-29 1995-06-13 Toshiba Corp プリンタ制御装置
JPH0820142A (ja) * 1994-07-07 1996-01-23 Canon Inc 出力装置及び出力方法
JPH10240471A (ja) * 1997-02-26 1998-09-11 Ricoh Co Ltd プリントシステム
JP2000315075A (ja) * 1999-04-28 2000-11-14 Canon Inc 外字管理方法及び装置並びに記憶媒体
JP2005103948A (ja) * 2003-09-30 2005-04-21 King Jim Co Ltd 文字情報処理システム、文字情報処理装置及び文字情報処理プログラム
JP2007249676A (ja) * 2006-03-16 2007-09-27 Yaskawa Electric Corp プログラミング装置のアプリケーション起動順序管理装置
JP2013120481A (ja) * 2011-12-07 2013-06-17 Brother Ind Ltd 定型印字情報処理プログラム、定型印字情報処理方法、記録媒体

Also Published As

Publication number Publication date
JP7206593B2 (ja) 2023-01-18

Similar Documents

Publication Publication Date Title
US8553268B1 (en) Printing system, image forming apparatus, information processing apparatus, and printing method
US8305615B2 (en) Job processing method for restarting jobs after an interrupt
JP6303404B2 (ja) 出力システム、端末装置、プログラム及び出力方法
US20130290840A1 (en) Document Management Apparatus for Managing a Document Image Including Handwritten Comment Areas
WO2020158715A1 (ja) サポートプログラム、情報処理装置、および印刷方法
US8451467B2 (en) Printing apparatus, method for controlling print job, and computer program for pre-registering condition information relating to conditions for cancelling execution of a print job
JP6558240B2 (ja) プログラム
US20150370650A1 (en) Image processing apparatus, image processing method, and non-transitory computer readable medium
JP2016175187A (ja) 画像形成装置、該装置の制御方法、情報処理装置、該装置の制御方法、及びプログラム
JP2015007964A (ja) システム、及び方法
US11005946B2 (en) Non-transitory storage medium storing instructions for creating two-dimensional-code
JP7131044B2 (ja) プログラム及び通信システム
JP2019185524A (ja) プログラム及び通信システム
JP2016124104A (ja) 画像形成装置、その制御方法及びプログラム
JP7047504B2 (ja) ジョブシステム、ジョブ実行方法、情報処理装置、プログラム
JP7131045B2 (ja) プログラム及び通信システム
US9137410B2 (en) Information processing apparatus, method and program for controlling cover sheet and document data transmission in reference with historical data
JP7206593B2 (ja) プログラム
US20110055689A1 (en) Method of performing at least one operation in image forming apparatus, and image forming apparatus and host device to perform the method
JP4375347B2 (ja) 印刷システムおよび印刷制御方法
JP2020149159A (ja) 画像形成装置、情報処理装置及びプログラム
JP2009020553A (ja) 電子ファイル管理装置および電子ファイル管理プログラム
JP6372181B2 (ja) 出力システム、出力制御システム、プログラム及び出力方法
JP5472347B2 (ja) サーバー、該サーバーによるジョブの印刷制御方法及び印刷制御プログラム
JP7119382B2 (ja) プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220817

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221219

R150 Certificate of patent or registration of utility model

Ref document number: 7206593

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150