[go: up one dir, main page]

JP7080061B2 - Image processing equipment - Google Patents

Image processing equipment Download PDF

Info

Publication number
JP7080061B2
JP7080061B2 JP2018006687A JP2018006687A JP7080061B2 JP 7080061 B2 JP7080061 B2 JP 7080061B2 JP 2018006687 A JP2018006687 A JP 2018006687A JP 2018006687 A JP2018006687 A JP 2018006687A JP 7080061 B2 JP7080061 B2 JP 7080061B2
Authority
JP
Japan
Prior art keywords
image processing
application
plug
processing
image
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.)
Active
Application number
JP2018006687A
Other languages
Japanese (ja)
Other versions
JP2019071038A (en
Inventor
啓介 伊藤
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to EP18196324.0A priority Critical patent/EP3471388B1/en
Priority to CN201811154807.5A priority patent/CN109660684B/en
Priority to US16/151,432 priority patent/US10706495B2/en
Priority to KR1020180118745A priority patent/KR102348317B1/en
Publication of JP2019071038A publication Critical patent/JP2019071038A/en
Priority to US16/893,725 priority patent/US11176633B2/en
Application granted granted Critical
Publication of JP7080061B2 publication Critical patent/JP7080061B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、画像処理装置に関するものである。
The present invention relates to an image processing apparatus .

画像形成装置、及び情報処理装置においては、装置内のソフトウェアフレームワークに、プラグインアプリケーション(以下では、アプリケーションをアプリと略記する。)をアドオンすることによって、後から機能を追加することができる。そのような方法を採用することによって、装置内の既存のソースコードを極力修正することなく、装置への機能追加が可能になる。追加した機能を利用する際は、機能の要求元モジュールが、ソフトウェアフレームワークに対して、その機能に対応したプラグインアプリを指定した上で、実行要求を通知する。ソフトウェアフレームワークは、その要求に従い、指定されたプラグインアプリを実行する。 In the image forming apparatus and the information processing apparatus, a function can be added later by adding a plug-in application (hereinafter, the application is abbreviated as an application) to the software framework in the apparatus. By adopting such a method, it is possible to add functions to the device without modifying the existing source code in the device as much as possible. When using the added function, the function requesting module notifies the software framework of the execution request after specifying the plug-in application corresponding to the function. The software framework executes the specified plug-in application according to the request.

特許文献1は、プラグインアプリがアドオンされた画像処理装置のUI上にWebページを表示し、ユーザによってWebページの該当箇所が選択されると、当該箇所に紐づいたスクリプトを実行し、対応するプラグインアプリを呼び出す技術を提案している。 Patent Document 1 displays a web page on the UI of an image processing device to which a plug-in application is added, and when a user selects a corresponding part of the web page, a script associated with the part is executed and the corresponding part is dealt with. We are proposing a technology to call a plug-in application.

特開2012-162044号公報Japanese Unexamined Patent Publication No. 2012-162044

しかしながら、上記従来技術には以下に記載する課題がある。追加した機能を利用する際に、機能の要求元モジュールは、適切なプラグインアプリを選択する必要がある。上記従来技術では、例えば、他の情報処理装置に、どのプラグインアプリを利用すべきか問い合わせた上で、その回答に従って選択している。この時、問い合わせる情報処理装置が存在しない場合は、機能の要求元モジュール自身が、どのプラグインアプリを利用すべきか判断し、選択を行う必要がある。ここで、誤ったプラグインを選択した場合、意図しない処理を実行してしまう虞がある。また、UI上のWebページに表示される画面等の選択(操作)可能箇所にプラグインアプリ等を紐づけて登録することは、製品の設計開発を行う中で、画面構成や仕様に何らかの制約が加わり、設計の自由度を著しく低下する可能性がある。 However, the above-mentioned prior art has the following problems. When using the added function, the function requesting module needs to select an appropriate plug-in application. In the above-mentioned prior art, for example, after asking another information processing device which plug-in application should be used, the selection is made according to the answer. At this time, if the information processing device to be inquired does not exist, the function requesting module itself needs to determine which plug-in application should be used and make a selection. Here, if the wrong plug-in is selected, there is a risk that unintended processing will be executed. In addition, registering a plug-in application, etc. in association with a selectable (operable) location such as a screen displayed on a Web page on the UI has some restrictions on the screen configuration and specifications during product design and development. In addition, the degree of freedom in design may be significantly reduced.

本発明は、上述の問題に鑑みて成されたものであり、装置に後から追加された機能を利用する際に、当該機能の要求元モジュールが適切なプラグインアプリを好適に選択する仕組みを提供することを目的とする。 The present invention has been made in view of the above-mentioned problems, and when a function added later to the device is used, a mechanism for the requesting module of the function to appropriately select an appropriate plug-in application is provided. The purpose is to provide.

本発明は、1以上の機能を提供し、さらに、プラグインアプリケーションをインストールすることにより、提供する機能を追加可能な画像処理装置であって、
所定の処理を実行する要求を受け付ける受付手段と、前記受付手段によって受け付けた前記要求から前記所定の処理の識別情報と、該所定の処理を実行する際に用いるパラメータと、を取得する取得手段と、前記所定の処理を実行できるかどうかを、前記画像処理装置にインストールされた1以上のプラグインアプリケーションのそれぞれに前記識別情報を通知することで、問い合わせる問合せ手段と、問い合わせの結果で特定された前記所定の処理を実行できるプラグインアプリケーションに、前記パラメータを用いた前記所定の処理を指示する指示手段とを備えることを特徴とする。
The present invention is an image processing device that provides one or more functions and can add the provided functions by installing a plug-in application.
An acquisition means for acquiring a receiving means for receiving a request for executing a predetermined process, identification information of the predetermined process from the request received by the receiving means , and parameters used when executing the predetermined process. By notifying each of the one or more plug-in applications installed in the image processing apparatus of the identification information, whether or not the predetermined process can be executed is specified by the inquiry means for inquiring and the result of the inquiry. The plug-in application capable of executing the predetermined process is provided with an instruction means for instructing the predetermined process using the parameter .

本発明によれば、装置に後から追加された機能を利用する際に、当該機能の要求元モジュールが適切なプラグインアプリを好適に選択することができる。 According to the present invention, when a function added later to the device is used, the requesting module of the function can suitably select an appropriate plug-in application.

一実施形態に係る画像形成システムの構成例を表す図。The figure which shows the structural example of the image formation system which concerns on one Embodiment. 一実施形態に係る画像形成装置の構成例を表す図。The figure which shows the structural example of the image forming apparatus which concerns on one Embodiment. 一実施形態に係る画像形成装置におけるソフトウェア構成の一例を示す階層図。A hierarchical diagram showing an example of a software configuration in an image forming apparatus according to an embodiment. 一実施形態に係るサーバの構成例を表す図。The figure which shows the configuration example of the server which concerns on one Embodiment. 一実施形態に係るサーバにおけるソフトウェア構成の一例を示す階層図。A hierarchical diagram showing an example of a software configuration in a server according to an embodiment. 一実施形態に係る画像処理プラグインアプリ303の呼び出し処理を示すフローチャート。The flowchart which shows the call process of the image processing plug-in application 303 which concerns on one Embodiment. 一実施形態に係る画像処理プラグインアプリ303の呼び出し処理を示すフローチャート。The flowchart which shows the call process of the image processing plug-in application 303 which concerns on one Embodiment. 一実施形態に係る画像形成装置に実装される画像処理システムの概要を示す図。The figure which shows the outline of the image processing system mounted on the image forming apparatus which concerns on one Embodiment. 一実施形態に係る画像処理プラグインアプリ303の呼び出し処理を示すフローチャート。The flowchart which shows the call process of the image processing plug-in application 303 which concerns on one Embodiment. 一実施形態に係る実行可否判定処理を示すフローチャート。A flowchart showing an executionability determination process according to an embodiment.

以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。 An embodiment of the present invention is shown below. The individual embodiments described below will help to understand various concepts such as superordinate, intermediate and subordinate concepts of the present invention. Further, the technical scope of the present invention is established by the scope of claims, and is not limited by the following individual embodiments.

<第1の実施形態>
<画像形成システムの構成>
以下では、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係る画像形成システムの構成例について説明する。図1は、画像形成システムの構成の一例を示す図である。画像形成システムは、画像処理装置の一例となる画像形成装置101、102、情報処理端末103、104、及びサーバ105を有する。画像形成装置101、102、情報処理端末103、104、及びサーバ105は、ネットワーク106により相互に接続されて、通信可能である。ネットワーク106は、LAN(ローカルエリアネットワーク)やインターネット等の、画像形成システム内の装置が相互に通信可能なネットワークである。
<First Embodiment>
<Structure of image formation system>
Hereinafter, the first embodiment of the present invention will be described. First, a configuration example of the image forming system according to the present embodiment will be described with reference to FIG. FIG. 1 is a diagram showing an example of the configuration of an image forming system. The image forming system includes image forming devices 101, 102, information processing terminals 103, 104, and a server 105, which are examples of image processing devices. The image forming apparatus 101, 102, the information processing terminals 103, 104, and the server 105 are connected to each other by the network 106 and can communicate with each other. The network 106 is a network in which devices in the image forming system, such as a LAN (local area network) and the Internet, can communicate with each other.

図1では、2つの画像形成装置101、102が設けられた例を示しているが、画像形成システムには任意の数(1つ以上)の画像形成装置を設けることが可能である。本実施形態では、画像形成装置101、102は複合機(MFP:Multifunction Peripheral)であるが、例えば、MFP、印刷装置、複写機、及びファクシミリ装置の何れであってもよい。以下では、画像形成装置101、102が同じ構成を有する場合を想定し、画像形成装置102についての詳細な説明を省略する。 Although FIG. 1 shows an example in which two image forming devices 101 and 102 are provided, an arbitrary number (one or more) of image forming devices can be provided in the image forming system. In the present embodiment, the image forming apparatus 101, 102 is a multifunction device (MFP: Multifunction Peripheral), but may be, for example, any of an MFP, a printing apparatus, a copying machine, and a facsimile apparatus. In the following, it is assumed that the image forming devices 101 and 102 have the same configuration, and detailed description of the image forming device 102 will be omitted.

画像形成装置101は、プリンタ及びスキャナを備え、例えば、情報処理端末103、104から印刷要求(印刷データ)を受信して、プリンタにより印刷を行うこと、及びスキャナにより原稿の画像を読み取って画像データを生成することが可能である。また、画像形成装置101は、スキャナにより生成された画像データに基づいて、プリンタにより印刷を行うこと、及び情報処理端末103、104から受信した印刷データを保存することも可能である。画像形成装置101は、更に、スキャナにより生成された画像データの情報処理端末103、104への送信、サーバ105を用いた画像処理、及びサーバ105に格納されている文書の印刷を行うことが可能である。また、画像形成装置101は、プリンタやスキャナ等を用いて各種サービスを提供するが、新たなサービス(機能)を追加可能に構成される。具体的には、画像形成装置101に追加のプラグインアプリをインストールことにより新たなサービスの追加を実現することができる。 The image forming apparatus 101 includes a printer and a scanner, for example, receiving a print request (print data) from the information processing terminals 103 and 104 and printing by the printer, and reading the image of the original by the scanner to obtain image data. It is possible to generate. Further, the image forming apparatus 101 can print by a printer based on the image data generated by the scanner and can store the print data received from the information processing terminals 103 and 104. The image forming apparatus 101 can further transmit image data generated by the scanner to the information processing terminals 103 and 104, perform image processing using the server 105, and print a document stored in the server 105. Is. Further, the image forming apparatus 101 provides various services by using a printer, a scanner, or the like, but is configured so that new services (functions) can be added. Specifically, it is possible to add a new service by installing an additional plug-in application on the image forming apparatus 101.

<画像形成装置のハードウェア構成>
次に、図2を参照して、画像形成装置101のハードウェア構成の一例について説明する。画像形成装置101は、コントローラ201、プリンタ202、スキャナ203、及び操作部204を有する。コントローラ201は、CPU211、RAM212、HDD213、ネットワークインタフェース(I/F)214、プリンタI/F215、スキャナI/F216、操作部I/F217、及び拡張I/F218を有する。CPU211は、RAM212、HDD213、ネットワークI/F214、プリンタI/F215、スキャナI/F216、操作部I/F217、及び拡張I/F218とデータを授受することが可能である。また、CPU211は、HDD213から読み出したプログラム(命令)をRAM212に展開し、RAM212に展開したプログラムを実行する。
<Hardware configuration of image forming device>
Next, an example of the hardware configuration of the image forming apparatus 101 will be described with reference to FIG. The image forming apparatus 101 includes a controller 201, a printer 202, a scanner 203, and an operation unit 204. The controller 201 includes a CPU 211, a RAM 212, an HDD 213, a network interface (I / F) 214, a printer I / F 215, a scanner I / F 216, an operation unit I / F 217, and an extended I / F 218. The CPU 211 can exchange data with the RAM 212, HDD 213, network I / F 214, printer I / F 215, scanner I / F 216, operation unit I / F 217, and extended I / F 218. Further, the CPU 211 expands the program (instruction) read from the HDD 213 into the RAM 212, and executes the program expanded in the RAM 212.

HDD213には、CPU211が実行可能なプログラム、画像形成装置101で使用する設定値、及びユーザから要求された処理に関連するデータ等が格納されうる。RAM212は、CPU211がHDD213から読み出したプログラムを一時的に格納するために用いられる。また、RAM212は、プログラムの実行に必要な各種のデータを格納するために用いられる。ネットワークI/F214は、ネットワーク106を介して画像形成システム内の他の装置との通信を行うためのインタフェースである。ネットワークI/F214は、データの受信をCPU211に通知すること、及びRAM212上のデータをネットワーク106に送信することが可能である。 The HDD 213 may store a program that can be executed by the CPU 211, a set value used by the image forming apparatus 101, data related to the processing requested by the user, and the like. The RAM 212 is used to temporarily store the program read from the HDD 213 by the CPU 211. Further, the RAM 212 is used to store various data necessary for executing the program. The network I / F 214 is an interface for communicating with other devices in the image forming system via the network 106. The network I / F 214 can notify the CPU 211 of the reception of the data and can transmit the data on the RAM 212 to the network 106.

プリンタI/F215は、CPU211から受信した印刷データをプリンタ202に送信すること、及びプリンタ202から通知された当該プリンタの状態をCPU211に通知することが可能である。スキャナI/F216は、CPU211から受信した画像読取指示をスキャナ203に送信すること、及びスキャナ203から受信した画像データをCPU211に送信することが可能である。また、スキャナI/F216は、スキャナ203から通知された当該スキャナの状態をCPU211に通知することが可能である。 The printer I / F 215 can transmit the print data received from the CPU 211 to the printer 202, and can notify the CPU 211 of the status of the printer notified by the printer 202. The scanner I / F 216 can transmit the image reading instruction received from the CPU 211 to the scanner 203, and can transmit the image data received from the scanner 203 to the CPU 211. Further, the scanner I / F 216 can notify the CPU 211 of the state of the scanner notified by the scanner 203.

操作部I/F217は、操作部204においてユーザによって入力された指示をCPU211に通知すること、及びユーザの操作を受け付ける操作画面の画面情報を操作部204へ送信することが可能である。拡張I/F218は、画像形成装置101に外部機器を接続することを可能とするインタフェースである。拡張I/F218は、例えば、USB(Universal Serial Bus)形式のインタフェースである。画像形成装置101は、USBメモリ等の外部記憶装置が拡張I/F218に接続された場合、当該外部記憶装置に格納されているデータの読み取り及び当該外部記憶装置に対するデータの書き込みを行うことが可能である。 The operation unit I / F 217 can notify the CPU 211 of the instruction input by the user in the operation unit 204, and can transmit the screen information of the operation screen for accepting the user's operation to the operation unit 204. The extended I / F 218 is an interface that enables an external device to be connected to the image forming apparatus 101. The extended I / F 218 is, for example, a USB (Universal Serial Bus) type interface. When an external storage device such as a USB memory is connected to the expansion I / F 218, the image forming apparatus 101 can read data stored in the external storage device and write data to the external storage device. Is.

プリンタ202は、プリンタI/F215から受信した画像データに対応する画像をシートに印刷すること、及び当該プリンタの状態をプリンタI/F215に通知することが可能である。スキャナ203は、スキャナI/F216から受信した画像読取指示に従って、原稿の画像を読み取って画像データを生成し、生成した画像データをスキャナI/F216へ送信することが可能である。また、スキャナ203は、当該スキャナの状態をスキャナI/F216へ通知することが可能である。操作部204は、画像形成装置101に対して各種の指示を行うための操作をユーザに行わせるためのインタフェースである。例えば、操作部204は、タッチパネル機能を有する表示部を備え、操作画面をユーザに提供し、当該操作画面を介してユーザからの操作を受け付ける。 The printer 202 can print an image corresponding to the image data received from the printer I / F 215 on the sheet, and can notify the printer I / F 215 of the status of the printer. The scanner 203 can read the image of the original and generate image data according to the image reading instruction received from the scanner I / F 216, and transmit the generated image data to the scanner I / F 216. Further, the scanner 203 can notify the scanner I / F 216 of the state of the scanner. The operation unit 204 is an interface for causing the user to perform an operation for giving various instructions to the image forming apparatus 101. For example, the operation unit 204 includes a display unit having a touch panel function, provides an operation screen to the user, and receives an operation from the user via the operation screen.

<画像形成装置の画像処理システム>
次に、図8を参照して、本実施形態に係る画像形成装置101に実装される画像処理(情報処理)システムの概要について説明する。本実施形態では、画像処理システムは、プラットフォーム部800、Nativeアプリ801、拡張アプリ802、Nativeモジュール803、画像処理実行クライアント804、画像処理実行サーバ805、及び拡張処理プラグイン1~3で構成される。
<Image processing system of image forming device>
Next, with reference to FIG. 8, an outline of the image processing (information processing) system mounted on the image forming apparatus 101 according to the present embodiment will be described. In the present embodiment, the image processing system is composed of a platform unit 800, a Native application 801 and an extended application 802, a Native module 803, an image processing execution client 804, an image processing execution server 805, and extended processing plug-ins 1 to 3. ..

Nativeアプリ801又は拡張アプリ802(Javaアプリ)は、ユーザからの指示に従って、所望の画像処理(情報処理)の実行をプラットフォーム部800に要求しうる。Nativeアプリ801は、例えばC言語等のプログラム言語によって記述され、画像形成装置101に元々備わっている(プリインストールされている)アプリである。Nativeアプリ801は、例えば、プリントアプリ、コピーアプリ、スキャンアプリ、及び送信アプリ等である。Nativeアプリ801を更新するためには、画像形成装置101のファームウェアを更新する必要がある。拡張アプリ802は、例えばJava言語等のプログラム言語によって記述されたアプリである。拡張アプリ802は、画像形成装置101の機能を拡張するために画像形成装置101に後からインストールされる。拡張アプリ802は、例えば、画像形成装置101へのユーザのログインを管理するログインアプリ等である。 The Native application 801 or the extended application 802 (Java application) may request the platform unit 800 to execute desired image processing (information processing) according to an instruction from the user. The Native application 801 is an application that is described in a programming language such as C language and is originally provided (pre-installed) in the image forming apparatus 101. The Native application 801 is, for example, a print application, a copy application, a scan application, a transmission application, and the like. In order to update the Native application 801 it is necessary to update the firmware of the image forming apparatus 101. The extended application 802 is an application described by a programming language such as Java language. The expansion application 802 is later installed in the image forming apparatus 101 in order to extend the function of the image forming apparatus 101. The extended application 802 is, for example, a login application that manages a user's login to the image forming apparatus 101.

画像形成装置101では、プラットフォーム部800上で、1つ以上の拡張処理プラグインを動作させることが可能である。本実施形態では、3つの拡張処理プラグイン1~3がプラットフォーム部800上で動作している。拡張処理プラグイン1~3は、拡張アプリ702と同様、画像形成装置101の機能を拡張するために画像形成装置101に後からインストールされる。拡張処理プラグインの機能を更新する場合には、当該プラグインのみを更新すればよく、画像形成装置101のファームウェアの更新は必要とならない。 In the image forming apparatus 101, it is possible to operate one or more expansion processing plug-ins on the platform unit 800. In this embodiment, three extended processing plug-ins 1 to 3 are operating on the platform unit 800. Similar to the expansion application 702, the expansion processing plug-ins 1 to 3 are later installed in the image forming apparatus 101 in order to expand the functions of the image forming apparatus 101. When updating the function of the extended processing plug-in, it is sufficient to update only the plug-in, and it is not necessary to update the firmware of the image forming apparatus 101.

本実施形態では、拡張処理プラグイン1は、画像形成装置101内のJava言語で記述されたライブラリに接続して処理を実行する拡張処理プラグインである。拡張処理プラグイン2は、クラウド等の外部サーバに接続して処理を実行する拡張処理プラグインである。拡張処理プラグイン3は、C言語で記述されたNativeモジュール703に接続して処理を実行する拡張処理プラグインである。 In the present embodiment, the extended processing plug-in 1 is an extended processing plug-in that connects to a library described in Java language in the image forming apparatus 101 and executes processing. The extended processing plug-in 2 is an extended processing plug-in that connects to an external server such as a cloud and executes processing. The extended processing plug-in 3 is an extended processing plug-in that connects to the Native module 703 written in C language and executes processing.

拡張処理プラグイン3は、画像処理実行クライアント804及び画像処理実行サーバ805を介して、Nativeモジュール803に接続する。Nativeモジュール803は、Nativeアプリ801と同様、画像形成装置101にプリインストールされている。また、Nativeモジュール803を更新するためには、Nativeアプリ801と同様、画像形成装置101のファームウェアの更新が必要になる。本実施形態では、Nativeモジュール803は、OCR処理を提供するモジュールである。なお、拡張処理プラグイン1~3は一例にすぎず、拡張処理プラグインの接続先及び処理内容は、上述の接続先及び処理内容に限定されない。 The extended processing plug-in 3 connects to the Native module 803 via the image processing execution client 804 and the image processing execution server 805. The Native module 803 is pre-installed in the image forming apparatus 101 like the Native application 801. Further, in order to update the Native module 803, it is necessary to update the firmware of the image forming apparatus 101 as in the Native application 801. In this embodiment, the Native module 803 is a module that provides OCR processing. The extended processing plug-ins 1 to 3 are merely examples, and the connection destination and processing content of the extended processing plug-in are not limited to the above-mentioned connection destination and processing content.

プラットフォーム部800は、Nativeアプリ701又は拡張アプリ802から画像処理の実行要求を受け付けることができる。例えば、プラットフォーム部800は、スキャンアプリから、スキャンした画像から文字画像を抽出するOCR処理の実行要求を受け付ける。プラットフォーム部800は、画像処理の実行要求を受け付けると、拡張処理プラグイン1~3のうちで、実行要求に従って画像処理を実行させる拡張処理プラグインを選択し、選択した拡張処理プラグインに画像処理の実行を指示する。例えばプラットフォーム部800は、実行を要求された画像処理の種別及び内容(即時性が求められるか、処理負荷の度合い等)に基づいて、利用する拡張処理プラグインを決定する。プラットフォーム部800は、要求された画像処理の実行結果を、利用した拡張処理プラグインから取得する。プラットフォーム部800は、取得した実行結果を、実行要求に対する応答として、当該実行要求の送信元のアプリへ出力する。 The platform unit 800 can receive an image processing execution request from the Native application 701 or the extension application 802. For example, the platform unit 800 receives an OCR process execution request for extracting a character image from a scanned image from a scan application. Upon receiving the image processing execution request, the platform unit 800 selects an extended processing plug-in that executes image processing according to the execution request from the extended processing plug-ins 1 to 3, and performs image processing on the selected extended processing plug-in. Instruct to execute. For example, the platform unit 800 determines an extended processing plug-in to be used based on the type and content of the image processing requested to be executed (whether immediacy is required, the degree of processing load, etc.). The platform unit 800 acquires the requested image processing execution result from the extended processing plug-in used. The platform unit 800 outputs the acquired execution result to the application that is the source of the execution request as a response to the execution request.

なお、図8に示される各要素は、以下で説明する図3に示される各要素と以下のような対応関係を有する。プラットフォーム部800は、接続ライブラリ332に対応する。Nativeアプリ801は、デバイス制御ライブラリ309に対応する。拡張アプリ802は、単独機能プラグインアプリ302に対応する。拡張処理プラグイン1~3は、画像処理プラグインアプリ303に対応する。Nativeモジュール803は、Nativeモジュール316に対応する。画像処理実行クライアント804は、Nativeクライアント331に対応する。画像処理実行サーバ805は、Nativeサーバ315に対応する。 Each element shown in FIG. 8 has the following correspondence with each element shown in FIG. 3 described below. The platform unit 800 corresponds to the connection library 332. The Native app 801 corresponds to the device control library 309. The extension application 802 corresponds to the single function plug-in application 302. The extended processing plug-ins 1 to 3 correspond to the image processing plug-in application 303. The Native module 803 corresponds to the Native module 316. The image processing execution client 804 corresponds to the Native client 331. The image processing execution server 805 corresponds to the Native server 315.

<画像形成装置のソフトウェア構成>
次に、図3を参照して、画像形成装置101のソフトウェア構成の一例について説明する。画像形成装置101のソフトウェア構成は、例えば、HDD213に格納されたプログラムを用いて実現される。図3に示すソフトウェア構成は、オペレーティングシステム317を含む最下位層と、Java(登録商標)言語実行環境330に対応する最上位層と、それらの間の中間層とから成る階層構造を有する。この階層構造は、一部の例外を除いて、下位の階層が提供するサービスを上位の階層が利用する関係を有している。なお、この例外とは、後述するように、デバイス制御ライブラリ309が、画像処理制御部340を介して、最上位層に含まれる画像処理プラグインアプリ303を利用できることである。
<Software configuration of image forming device>
Next, an example of the software configuration of the image forming apparatus 101 will be described with reference to FIG. The software configuration of the image forming apparatus 101 is realized by using, for example, a program stored in the HDD 213. The software configuration shown in FIG. 3 has a hierarchical structure including a lowest layer including an operating system 317, a highest layer corresponding to the Java® language execution environment 330, and an intermediate layer between them. This hierarchical structure has a relationship in which the service provided by the lower hierarchy is used by the upper hierarchy, with some exceptions. The exception to this is that, as will be described later, the device control library 309 can use the image processing plug-in application 303 included in the uppermost layer via the image processing control unit 340.

最下位層は、オペレーティングシステム317を含み、プログラムの実行の管理やメモリ管理等を行う階層である。オペレーティングシステム317には、プリンタ制御ドライバ318、スキャナ制御ドライバ319、及びネットワークI/F制御ドライバ320が組み込まれている。プリンタ制御ドライバ318、スキャナ制御ドライバ319、及びネットワークI/F制御ドライバ320は、相互に連携して機能することが可能である。プリンタ制御ドライバ318は、プリンタI/F215を介してプリンタ202を制御するためのソフトウェアである。スキャナ制御ドライバ319は、スキャナI/F216を介してスキャナ203を制御するためのソフトウェアである。ネットワークI/F制御ドライバ320は、ネットワークI/F214を制御するためのソフトウェアである。 The lowest layer includes the operating system 317, and is a layer that manages program execution, memory management, and the like. The operating system 317 incorporates a printer control driver 318, a scanner control driver 319, and a network I / F control driver 320. The printer control driver 318, the scanner control driver 319, and the network I / F control driver 320 can function in cooperation with each other. The printer control driver 318 is software for controlling the printer 202 via the printer I / F 215. The scanner control driver 319 is software for controlling the scanner 203 via the scanner I / F 216. The network I / F control driver 320 is software for controlling the network I / F 214.

最下位層より上位の中間層は、デバイス制御ライブラリ309及び画像処理制御部340を含む。本実施形態では、デバイス制御ライブラリ309及び画像処理制御部340のプログラムは、C言語又はC++言語等のコンパイル言語で記述され、CPU211が直接実行できるオブジェクトファイルの形式で、HDD213に格納されうる。 The intermediate layer above the lowest layer includes the device control library 309 and the image processing control unit 340. In the present embodiment, the programs of the device control library 309 and the image processing control unit 340 are described in a compiled language such as C language or C ++ language, and can be stored in the HDD 213 in the form of an object file that can be directly executed by the CPU 211.

最上位層は、Java言語実行環境330で動作するアプリを含む、アプリ層である。最上位層は、プラグインアプリ301及びデバイス制御アプリ304を含み、Nativeクライアント331、接続ライブラリ332、及び外部クライアント333を更に含む。最上位層の各アプリは、デバイス制御ライブラリ309又は接続ライブラリ332によって提供されるAPIを利用しながら動作することによって、様々な機能を提供する。なお、画像形成装置101のファームウェアの更新により、デバイス制御アプリ304の機能を拡張することが可能である。 The uppermost layer is an application layer including an application running in the Java language execution environment 330. The top layer includes the plug-in application 301 and the device control application 304, and further includes a Native client 331, a connection library 332, and an external client 333. Each upper layer application provides various functions by operating while using the API provided by the device control library 309 or the connection library 332. The function of the device control application 304 can be expanded by updating the firmware of the image forming apparatus 101.

本実施形態では、プラグインアプリ301及びデバイス制御アプリ304のプログラムは、Java言語で記述され、Java仮想マシンが解釈できるJavaバイトコード形式で、HDD213に格納されうる。そのため、CPU211は、Java仮想マシンのプログラムを実行し、Javaバイトコード形式のプログラムをHDD213から読み出してJava仮想マシンに実行させることによって、最上位層の各アプリによる処理を実現する。 In the present embodiment, the programs of the plug-in application 301 and the device control application 304 are written in Java language and can be stored in the HDD 213 in a Java byte code format that can be interpreted by the Java virtual machine. Therefore, the CPU 211 executes the program of the Java virtual machine, reads the program in the Java byte code format from the HDD 213, and causes the Java virtual machine to execute the program, thereby realizing the processing by each application in the uppermost layer.

このように、Java言語等のプログラミング言語を利用する理由の1つは、プログラムの記述の簡易さである。Javaではメモリ領域の管理は自動的に行われるため、開発者がメモリ領域の管理を行う必要はない。このため、開発者がプログラムを記述する際の手間が低減され、開発効率が向上することが期待される。 As described above, one of the reasons for using a programming language such as Java language is the simplicity of program description. Since the memory area is automatically managed in Java, the developer does not need to manage the memory area. Therefore, it is expected that the time and effort required for the developer to write the program will be reduced and the development efficiency will be improved.

(デバイス制御ライブラリ309)
次に、デバイス制御ライブラリ309について、より具体的に説明する。デバイス制御ライブラリ309は、後述する単独機能プラグインアプリ302又はデバイス制御アプリ304と、静的又は動的にリンクされる。デバイス制御ライブラリ309は、最上位層の各アプリによる指示に基づいて、最下位層のオペレーティングシステム317を利用する。また、デバイス制御ライブラリ309は、Native接続ライブラリ314に対して画像処理の実行を要求することも可能である。デバイス制御ライブラリ309は、一例として、プリントライブラリ310、コピーライブラリ311、スキャン保存ライブラリ312、及びスキャン送信ライブラリ313で構成される。
(Device control library 309)
Next, the device control library 309 will be described more specifically. The device control library 309 is statically or dynamically linked with the single function plug-in application 302 or the device control application 304 described later. The device control library 309 uses the operating system 317 of the lowest layer based on the instruction by each application of the upper layer. The device control library 309 can also request the Native connection library 314 to execute image processing. As an example, the device control library 309 is composed of a print library 310, a copy library 311, a scan storage library 312, and a scan transmission library 313.

プリントライブラリ310は、プリンタ制御ドライバ318の機能を利用してプリントジョブの制御を行うためのAPI(Application Programming Interface)を提供する。プリントジョブは、HDD213に保存されている印刷データ、又は外部装置(情報処理端末103、104等)からネットワークI/F214を通して受信した印刷データに基づいてプリンタ202で印刷を行う、一連の処理を指す。コピーライブラリ311は、スキャナ制御ドライバ319及びプリンタ制御ドライバ318の機能を利用してコピージョブの制御を行うためのAPIを提供する。コピージョブは、スキャナ203で原稿画像のスキャンを行い、得られた画像データに基づいてプリンタ202で印刷を行う、一連の処理である。 The print library 310 provides an API (Application Programming Interface) for controlling a print job by using the function of the printer control driver 318. The print job refers to a series of processes in which the printer 202 prints based on the print data stored in the HDD 213 or the print data received from the external device (information processing terminals 103, 104, etc.) through the network I / F 214. .. The copy library 311 provides an API for controlling a copy job by utilizing the functions of the scanner control driver 319 and the printer control driver 318. The copy job is a series of processes in which the scanner 203 scans the original image and the printer 202 prints based on the obtained image data.

スキャン保存ライブラリ312は、スキャナ制御ドライバ319の機能を利用してスキャン保存ジョブの制御を行うためのAPIを提供する。スキャン保存ジョブは、スキャナ203で原稿画像のスキャンを行い、得られた画像データを印刷データ又は汎用フォーマットのデータに変換し、HDD213、又は拡張I/F218に接続されたUSB等の外部記憶装置に保存する、一連の処理を指す。なお、汎用フォーマットは、例えば、PDF(Portable Document Format)又はJPEG(Joint Photographic Experts Group)等のデータフォーマットである。 The scan save library 312 provides an API for controlling a scan save job by utilizing the function of the scanner control driver 319. The scan save job scans the original image with the scanner 203, converts the obtained image data into print data or general-purpose format data, and stores it in an external storage device such as a USB connected to the HDD 213 or the extended I / F 218. Refers to a series of processes to save. The general-purpose format is, for example, a data format such as PDF (Portable Document Format) or JPEG (Joint Photographic Experts Group).

スキャン送信ライブラリ313は、スキャナ制御ドライバ319及びネットワークI/F制御ドライバ320の機能を利用してスキャン送信ジョブの制御を行うためのAPIを提供する。スキャン送信ジョブは、スキャナ203で原稿画像のスキャンを行い、得られた画像データを汎用フォーマットのデータに変換し、ネットワークI/F214を通して外部へ送信する、一連の処理を指す。スキャン送信ジョブでは、ネットワークI/F214を通して、例えば、サーバ105等のファイルサーバへデータが送信されるか、又は情報処理端末103、104等の外部装置へ電子メールによりデータが送信される。 The scan transmission library 313 provides an API for controlling a scan transmission job by utilizing the functions of the scanner control driver 319 and the network I / F control driver 320. The scan transmission job refers to a series of processes in which a scanner 203 scans an original image, converts the obtained image data into general-purpose format data, and transmits the obtained image data to the outside through a network I / F 214. In the scan transmission job, data is transmitted through the network I / F 214 to, for example, a file server such as a server 105, or data is transmitted by e-mail to an external device such as an information processing terminal 103 or 104.

(画像処理制御部340)
次に、画像処理制御部340について、より具体的に説明する。画像処理制御部340は、Native接続ライブラリ314、Nativeサーバ315、及びNativeモジュール316を含む。Native接続ライブラリ314は、デバイス制御ライブラリ309から画像処理の実行要求を受けると、要求内容を接続ライブラリ332へ転送する。Nativeサーバ315は、後述するJava言語実行環境330で動作するアプリから要求を受けて、Nativeモジュール316を実行する機能を提供する。Nativeモジュール316は、様々な種類の画像処理を実行可能なソフトウェアである。
(Image processing control unit 340)
Next, the image processing control unit 340 will be described more specifically. The image processing control unit 340 includes a Native connection library 314, a Native server 315, and a Native module 316. When the Native connection library 314 receives an image processing execution request from the device control library 309, the Native connection library 314 transfers the request contents to the connection library 332. The Native server 315 provides a function of executing the Native module 316 in response to a request from an application running in the Java language execution environment 330 described later. Native module 316 is software capable of performing various types of image processing.

Nativeサーバ315及びNativeモジュール316は、図3に示すように、Native制御プロセス350上で実行される。Native制御プロセス350は、Nativeサーバ315及びNativeモジュール316以外の他のソフトウェアが有する論理メモリ空間とは分離された論理メモリ空間を有するプログラム実行単位である。なお、このようなメモリ空間の分離は、一般的なOS(オペレーティングシステム)が備えるプロセス機構を用いる方法等の、他の方法により実現することも可能である。 The Native server 315 and the Native module 316 are executed on the Native control process 350, as shown in FIG. The Native control process 350 is a program execution unit having a logical memory space separated from the logical memory space of software other than the Native server 315 and the Native module 316. It should be noted that such separation of the memory space can also be realized by another method such as a method using a process mechanism provided in a general OS (operating system).

本実施形態では、上述のように、Native制御プロセス350が有する論理メモリ空間が、他のソフトウェアが有する論理メモリ空間と独立している。このため、Native制御プロセス350上でメモリ操作に不具合が生じても、そのような不具合が、Nativeサーバ315に画像処理の実行を要求する側のアプリが有する論理メモリ空間に影響を及ぼすことを防止できる。即ち、Nativeサーバ315に画像処理の実行を要求する側のアプリの動作に不具合が生じることを防止できる。 In the present embodiment, as described above, the logical memory space of the Native control process 350 is independent of the logical memory space of other software. Therefore, even if a memory operation defect occurs on the Native control process 350, it is possible to prevent such a defect from affecting the logical memory space of the application on the side that requests the Native server 315 to execute image processing. can. That is, it is possible to prevent a problem in the operation of the application on the side that requests the Native server 315 to execute the image processing.

(デバイス制御アプリ304)
次に、デバイス制御アプリ304について、より具体的に説明する。デバイス制御アプリ304は、一例として、プリントアプリ305、コピーアプリ306、スキャン保存アプリ307、及びスキャン送信アプリ308を含む。これらのデバイス制御アプリ304は、画像形成装置101における常駐型のアプリである。
(Device control application 304)
Next, the device control application 304 will be described more specifically. The device control application 304 includes, as an example, a print application 305, a copy application 306, a scan save application 307, and a scan transmission application 308. These device control apps 304 are resident apps in the image forming apparatus 101.

プリントアプリ305、コピーアプリ306、スキャン保存アプリ307、及びスキャン送信アプリ308は、それぞれ画面情報321、322、323、324を有する。CPU211は、画面情報321、322、323、324のそれぞれに基づいて、対応する操作画面を、操作部I/F217を通して操作部204に表示しうる。また、CPU211は、表示した操作画面を介してユーザからの指示を受け付けうる。 The print application 305, the copy application 306, the scan save application 307, and the scan transmission application 308 have screen information 321, 322, 323, and 324, respectively. The CPU 211 can display the corresponding operation screen on the operation unit 204 through the operation unit I / F 217 based on each of the screen information 321, 322, 323, 324. Further, the CPU 211 can receive an instruction from the user via the displayed operation screen.

CPU211は、ユーザが操作部204を操作してデバイス制御アプリ304の設定の変更を行ったことを検知すると、その変更の内容をHDD213に書き込む。CPU211(デバイス制御アプリ304)は、ユーザが操作部204を操作してジョブの実行要求を行ったことを検知すると、デバイス制御ライブラリ309のAPIをコールすることによって、ジョブの実行を開始する。また、CPU211(デバイス制御アプリ304)は、接続ライブラリ332に対して、画像処理の実行を要求することも可能である。 When the CPU 211 detects that the user has operated the operation unit 204 to change the setting of the device control application 304, the CPU 211 writes the content of the change to the HDD 213. When the CPU 211 (device control application 304) detects that the user has operated the operation unit 204 to request the execution of the job, the CPU 211 (device control application 304) starts the job execution by calling the API of the device control library 309. Further, the CPU 211 (device control application 304) can also request the connection library 332 to execute image processing.

例えば、プリントアプリ305は、プリントライブラリ310のAPIをコールすることによって、プリントジョブを実行する。コピーアプリ306は、コピーライブラリ311のAPIをコールすることによって、コピージョブを実行する。スキャン保存アプリ307は、スキャン保存ライブラリ312のAPIをコールすることによって、スキャン保存ジョブを実行する。スキャン送信アプリ308は、スキャン送信ライブラリ313のAPIをコールすることによって、スキャン送信ジョブを実行する。 For example, the print application 305 executes a print job by calling the API of the print library 310. The copy application 306 executes the copy job by calling the API of the copy library 311. The scan save application 307 executes the scan save job by calling the API of the scan save library 312. The scan transmission application 308 executes the scan transmission job by calling the API of the scan transmission library 313.

(プラグインアプリ301)
次に、プラグインアプリ301について、より具体的に説明する。プラグインアプリ301は、常駐型のアプリであるデバイス制御アプリ304とは別に、画像形成装置101に対してプラグインとしてインストール及びアンインストールが可能なアプリである。プラグインアプリ301は、リモートUI(ユーザインタフェース)等を用いることにより、画像形成装置101にインストールされる。なお、リモートUIは、情報処理端末103、104等の外部装置においてWebブラウザから画像形成装置101にアクセスし、画像形成装置101の状況の確認、印刷ジョブの操作、及び各種設定等を可能にする仕組みである。
(Plug-in application 301)
Next, the plug-in application 301 will be described more specifically. The plug-in application 301 is an application that can be installed and uninstalled as a plug-in for the image forming apparatus 101, separately from the device control application 304, which is a resident application. The plug-in application 301 is installed in the image forming apparatus 101 by using a remote UI (user interface) or the like. The remote UI accesses the image forming apparatus 101 from a Web browser on an external device such as the information processing terminals 103 and 104, and enables confirmation of the status of the image forming apparatus 101, operation of a print job, various settings, and the like. It is a mechanism.

プラグインアプリ301は、単独機能プラグインアプリ302及び画像処理プラグインアプリ303を含む。各プラグインアプリ301(単独機能プラグインアプリ302及び画像処理プラグインアプリ303)には、それぞれ動作に必要なプログラムがパッケージングされている。また、各プラグインアプリ301は、それぞれ個別に起動及び停止を行うことが可能である。 The plug-in application 301 includes a single function plug-in application 302 and an image processing plug-in application 303. Each plug-in application 301 (single function plug-in application 302 and image processing plug-in application 303) is packaged with a program necessary for operation. In addition, each plug-in application 301 can be started and stopped individually.

プラグインアプリ301のインストールから起動、停止、アンインストールまでの一連の流れは、例えば以下のとおりである。まず、CPU211は、リモートUI等を用いたプラグインアプリ301のインストールを検知すると、当該プラグインアプリの情報をHDD213に保存する。次に、CPU211は、プラグインアプリ301に対する起動指示を検知すると、当該プラグインアプリに対する起動指示を行う。プラグインアプリ301は、起動している間、当該プラグインアプリの機能を提供することが可能である。 The flow from the installation of the plug-in application 301 to the start, stop, and uninstallation is as follows, for example. First, when the CPU 211 detects the installation of the plug-in application 301 using the remote UI or the like, the CPU 211 saves the information of the plug-in application in the HDD 213. Next, when the CPU 211 detects a start instruction for the plug-in application 301, the CPU 211 gives a start instruction to the plug-in application. The plug-in application 301 can provide the function of the plug-in application while it is running.

その後、CPU211は、プラグインアプリ301に対する停止指示を検知すると、当該プラグインアプリ301に対して停止指示を行う。更に、CPU211は、プラグインアプリ301に対するアンインストール指示を検知すると、当該プラグインアプリ301の情報をHDD213から削除することにより、当該プラグインアプリをアンインストールする。なお、CPU211によって検知される上述の各指示は、例えば、リモートUI又は操作部204から行われうるが、これ以外の方法で指示が行われてもよい。 After that, when the CPU 211 detects the stop instruction to the plug-in application 301, the CPU 211 gives the stop instruction to the plug-in application 301. Further, when the CPU 211 detects an uninstall instruction for the plug-in application 301, the CPU 211 uninstalls the plug-in application by deleting the information of the plug-in application 301 from the HDD 213. The above-mentioned instructions detected by the CPU 211 may be given from, for example, the remote UI or the operation unit 204, but the instructions may be given by other methods.

(単独機能プラグインアプリ302)
次に、単独機能プラグインアプリ302について、より具体的に説明する。単独機能プラグインアプリ302は、画面情報325を有する。CPU211は、画面情報325に基づいて、対応する操作画面を、操作部I/F217を通して操作部204に表示しうる。また、CPU211は、表示した操作画面を介してユーザからの指示を受け付けうる。
(Independent function plug-in application 302)
Next, the single function plug-in application 302 will be described more specifically. The single function plug-in application 302 has screen information 325. The CPU 211 can display the corresponding operation screen on the operation unit 204 through the operation unit I / F 217 based on the screen information 325. Further, the CPU 211 can receive an instruction from the user via the displayed operation screen.

単独機能プラグインアプリ302は、デバイス制御ライブラリ309が提供するAPIをコールすることによって、デバイス制御アプリ304とは別の機能又は画面をユーザに提供することが可能である。単独機能プラグインアプリ302は、デバイス制御ライブラリ309による複数の機能を組み合わせて提供することが可能である。例えば、単独機能プラグインアプリ302は、或る画像のコピーを行うとともに、スキャンにより得られた画像データを、当該プラグインアプリ自体が保持する宛先データベース内の特定の宛先へ送信する機能を提供することが可能である。 The single function plug-in application 302 can provide a function or screen different from the device control application 304 to the user by calling the API provided by the device control library 309. The single function plug-in application 302 can provide a combination of a plurality of functions by the device control library 309. For example, the stand-alone function plug-in application 302 provides a function of copying a certain image and transmitting the image data obtained by scanning to a specific destination in the destination database held by the plug-in application itself. It is possible.

なお、単独機能プラグインアプリ302は、画像処理機能を有していなくてもよく、その場合、画像処理の設定を行わない。デバイス制御ライブラリ309は、単独機能プラグインアプリ302から印刷データ、又は汎用フォーマットに変換後の画像データを受信すると、オペレーティングシステム317に対して必要な処理の制御を指示することで、ジョブを実行させる。 The single function plug-in application 302 does not have to have an image processing function, and in that case, the image processing is not set. When the device control library 309 receives the print data or the image data converted into the general-purpose format from the single function plug-in application 302, the device control library 309 causes the operating system 317 to execute the job by instructing the operating system 317 to control the necessary processing. ..

(画像処理プラグインアプリ303)
次に、画像処理プラグインアプリ303について、より具体的に説明する。画像処理プラグインアプリ303は、特定の画像処理を提供するアプリである。なお、画像処理プラグインアプリ303は、それぞれ異なる画像処理を実行する複数のアプリで構成されてもよい。例えば、入力画像に対して画像形式変換、斜行補正、帳票認識、及びOCR処理等をそれぞれ実行可能な複数のアプリが、画像処理プラグインアプリ303として画像形成装置101にインストールされてもよい。なお、画像処理プラグインアプリ303は、追加でインストールされる際に、当該アプリにおいて実行可能な画像処理を示す画像処理情報として、当該画像処理の名称(画像処理名)を保持しておくことが望ましい。これにより、後述する図6のS603で問い合わせされる画像処理名に対応する画像処理の実行可否を好適に判定することができる。
(Image processing plug-in application 303)
Next, the image processing plug-in application 303 will be described more specifically. The image processing plug-in application 303 is an application that provides specific image processing. The image processing plug-in application 303 may be composed of a plurality of applications that execute different image processing. For example, a plurality of applications capable of performing image format conversion, skew correction, form recognition, OCR processing, and the like on the input image may be installed in the image forming apparatus 101 as the image processing plug-in application 303. The image processing plug-in application 303 may retain the name of the image processing (image processing name) as image processing information indicating the image processing that can be executed in the application when it is additionally installed. desirable. Thereby, it is possible to suitably determine whether or not the image processing corresponding to the image processing name inquired in S603 of FIG. 6 described later can be executed.

画像処理プラグインアプリ303は、単独機能プラグインアプリ302又はデバイス制御アプリ304から、接続ライブラリ332を介して画像処理要求(画像処理の実行要求)を受け付けることが可能である。また、画像処理プラグインアプリ303は、デバイス制御ライブラリ309からも、Native接続ライブラリ314及び接続ライブラリ332を介して、画像処理要求を受け付けることが可能である。 The image processing plug-in application 303 can receive an image processing request (image processing execution request) from the independent function plug-in application 302 or the device control application 304 via the connection library 332. Further, the image processing plug-in application 303 can also receive an image processing request from the device control library 309 via the Native connection library 314 and the connection library 332.

画像処理プラグインアプリ303は、受け付けた画像処理要求に従って、画像処理を実行する。画像処理要求には、処理対象の画像データ及び処理パラメータが含まれうる。当該処理パラメータは、例えば、後述する画像処理名及び画像処理に関わるパラメータを含む。また、画像処理プラグインアプリ303は、画像処理要求に基づいて、必要に応じて、Nativeクライアント331の画像処理機能を利用することが可能である。なお、画像処理プラグインアプリ303は、それ自体が画像処理機能を有していなくてもよい。画像処理プラグインアプリ303は、画像処理機能を有していなくても、Nativeクライアント331を利用することによって、Nativeモジュール316の画像処理機能を利用することが可能である。 The image processing plug-in application 303 executes image processing according to the received image processing request. The image processing request may include image data to be processed and processing parameters. The processing parameters include, for example, an image processing name described later and parameters related to image processing. Further, the image processing plug-in application 303 can use the image processing function of the Native client 331 as needed based on the image processing request. The image processing plug-in application 303 itself does not have to have an image processing function. The image processing plug-in application 303 can use the image processing function of the Native module 316 by using the Native client 331 even if it does not have the image processing function.

このように画像処理プラグインアプリ303がNativeモジュール316を利用する理由の1つは、画像処理を行う際の処理速度の高速化である。具体的には、画像処理を行う際には、大量かつ複雑な数値演算の実行が必要になる場合や処理の過程で大量のメモリが必要になる場合がある。そのような場合、Javaのように仮想マシンを介して処理を行うプログラミング言語による処理系ではなく、CPUが直接実行できるオブジェクトファイルを生成するコンパイル言語による処理系を利用することにより、処理速度の高速化が期待できる。 As described above, one of the reasons why the image processing plug-in application 303 uses the Native module 316 is to increase the processing speed when performing image processing. Specifically, when performing image processing, a large amount of complicated numerical operations may be required to be executed, or a large amount of memory may be required in the process of processing. In such a case, the processing speed is high by using a processing system using a compile language that generates an object file that can be directly executed by the CPU, instead of a processing system using a programming language that processes via a virtual machine like Java. Can be expected to change.

さらに、画像処理プラグインアプリ303は、外部クライアント333を利用し、サーバ(外部装置)105のような外部デバイスに対して、入力画像、及び画像処理要求を送信し、外部の画像処理クライアントによる画像処理の実行を要求することも可能である。そうすることで、画像形成装置101が実行できない画像処理を実行したり、大量のメモリを利用した高速な処理を実行したりすることが可能になる。 Further, the image processing plug-in application 303 uses the external client 333 to transmit an input image and an image processing request to an external device such as a server (external device) 105, and the image by the external image processing client. It is also possible to request the execution of processing. By doing so, it becomes possible to execute image processing that cannot be executed by the image forming apparatus 101, or to execute high-speed processing using a large amount of memory.

<サーバのハードウェア構成>
次に、図4を参照して、本実施形態に係るサーバの構成例について説明する。サーバ105は、CPU401、RAM402、HDD403、及びネットワークI/F404を有する。CPU211は、RAM402、HDD403、及びネットワークI/F404とデータを授受することが可能である。また、CPU401は、HDD403から読み出したプログラム(命令)をRAM402に展開し、RAM402に展開したプログラムを実行する。
<Server hardware configuration>
Next, a configuration example of the server according to the present embodiment will be described with reference to FIG. The server 105 has a CPU 401, a RAM 402, an HDD 403, and a network I / F 404. The CPU 211 can exchange data with the RAM 402, the HDD 403, and the network I / F 404. Further, the CPU 401 expands the program (instruction) read from the HDD 403 into the RAM 402, and executes the program expanded in the RAM 402.

HDD403には、CPU401で実行可能なプログラム、サーバ105で使用する設定値、及びユーザから要求された処理に関するデータ等が格納されうる。RAM402は、CPU401がHDD403から読み出したプログラムを一時的に格納するために用いられる。RAM402は、プログラムの実行に必要な各種のデータを記憶しておくことが可能である。ネットワークI/F404は、ネットワーク上に存在する他の装置とネットワーク通信を行うためのインタフェースである。ネットワークI/F404は、データの受信をCPU401に通知すること、及びRAM402上のデータをネットワーク106に送信することが可能である。 The HDD 403 may store a program that can be executed by the CPU 401, a setting value used by the server 105, data related to processing requested by the user, and the like. The RAM 402 is used to temporarily store the program read from the HDD 403 by the CPU 401. The RAM 402 can store various data necessary for executing the program. The network I / F 404 is an interface for performing network communication with other devices existing on the network. The network I / F 404 can notify the CPU 401 of the reception of data and transmit the data on the RAM 402 to the network 106.

<サーバのソフトウェア構成>
次に、図5を参照して、CPU401が処理するソフトウェアの構造の一例について説明する。図5に示す構造を有するソフトウェアは、例えば、サーバ105のHDD403に格納されたプログラムを用いて実現される。サーバ105は、ソフトウェア構成として、モジュール501、及び通信ライブラリ502を含む。なお、本発明におけるサーバのソフトウェア構成を上記2つのコンポーネントのみに限定する意図はなく、他のモジュール等が含まれてもよい。
<Server software configuration>
Next, an example of the structure of the software processed by the CPU 401 will be described with reference to FIG. The software having the structure shown in FIG. 5 is realized by using, for example, a program stored in the HDD 403 of the server 105. The server 105 includes a module 501 and a communication library 502 as a software configuration. It should be noted that the software configuration of the server in the present invention is not intended to be limited to only the above two components, and other modules and the like may be included.

モジュール501は、通信ライブラリ502から送られた、入力画像、及び画像処理要求を受け取り、当該要求に従って、入力画像に対して画像処理を実行する。そして、処理後の画像データを、通信ライブラリ502を介して通知する。通信ライブラリ502は、画像形成装置101のような、ネットワーク106上に存在する他のデバイスとの通信処理を実行するためのAPIを提供するライブラリである。通信ライブラリ502は、画像形成装置101から送られた入力画像、及び画像処理要求を受信し、それらを、モジュール501に転送する。さらに、通信ライブラリ502は、モジュール501が生成した処理後の画像データを、画像形成装置101へ送信する。 Module 501 receives the input image and the image processing request sent from the communication library 502, and executes image processing on the input image according to the request. Then, the processed image data is notified via the communication library 502. The communication library 502 is a library that provides an API for executing communication processing with other devices existing on the network 106, such as the image forming apparatus 101. The communication library 502 receives the input image sent from the image forming apparatus 101 and the image processing request, and transfers them to the module 501. Further, the communication library 502 transmits the processed image data generated by the module 501 to the image forming apparatus 101.

<処理手順>
次に、図6を参照して、接続ライブラリ332が、画像処理プラグインアプリ303を呼び出す際の処理手順について説明する。以下で説明する処理は、例えば、CPU211がHDD213に格納されたプログラムをRAM212に展開して、実行することによって実現される。
<Processing procedure>
Next, with reference to FIG. 6, a processing procedure when the connection library 332 calls the image processing plug-in application 303 will be described. The process described below is realized, for example, by the CPU 211 expanding the program stored in the HDD 213 into the RAM 212 and executing the program.

まず、S601で、接続ライブラリ332は、受付手段として機能し、単独機能プラグインアプリ302やデバイス制御アプリ304から、画像処理の実行要求を受け付ける。ここで、接続ライブラリ332は、実行が要求された画像処理に対応する画像処理情報として、画像処理名と、パラメータの指定とを受信する。例えば、画像処理名(ImagingName)は、「OCR」のような文字列であってもよい。また、パラメータは、「言語:日本語」のような当該画像処理に関わるパラメータが指定される。 First, in S601, the connection library 332 functions as a receiving means and receives an image processing execution request from the independent function plug-in application 302 or the device control application 304. Here, the connection library 332 receives the image processing name and the parameter designation as the image processing information corresponding to the image processing requested to be executed. For example, the image processing name (ImagingName) may be a character string such as "OCR". Further, as the parameter, a parameter related to the image processing such as "language: Japanese" is specified.

次に、S602で、接続ライブラリ332は、受け付けた要求からS601で指定された画像処理名を取得する。続いて、S603で、接続ライブラリ332は、インストールされている全ての画像処理プラグインアプリ303に対して、画像処理名を指定し、それに対応する画像処理が実行可能か否かを問い合わせる。ここで、各画像処理プラグインアプリ303は、指定された画像処理名に該当する画像処理を自身が実行可能であるか否か判断し、その結果を接続ライブラリ332に応答する。このように、本実施形態によれば、画像処理名を検索キーとして用い、インストールされているプラグインアプリの中から要求された画像処理に適切なプラグインアプリを好適に選択することができる。つまり、接続ライブラリ332は、種々の画像処理に対応するプラグインをそれぞれ把握しておく必要がなく、当該要求から画像処理名を抽出して、各プラグインアプリに問い合わせることにより、適切なプラグインアプリを選択することができる。これにより、例えば、メニュー画面における各画像処理ボタンにインストールしたプラグインアプリを紐づけるなどの登録処理を必要とせず、製品における開発設計の自由度を向上させるとともに、余分な処理を削減することもできる。 Next, in S602, the connection library 332 acquires the image processing name specified in S601 from the received request. Subsequently, in S603, the connection library 332 specifies an image processing name for all the installed image processing plug-in applications 303, and inquires whether or not the corresponding image processing can be executed. Here, each image processing plug-in application 303 determines whether or not the image processing corresponding to the designated image processing name can be executed by itself, and responds the result to the connection library 332. As described above, according to the present embodiment, the image processing name can be used as a search key, and a plug-in application suitable for the requested image processing can be suitably selected from the installed plug-in applications. That is, the connection library 332 does not need to know the plug-ins corresponding to various image processings, and by extracting the image processing name from the request and inquiring to each plug-in application, an appropriate plug-in is installed. You can select an app. As a result, for example, registration processing such as linking the installed plug-in application to each image processing button on the menu screen is not required, the degree of freedom in development design of the product can be improved, and extra processing can be reduced. can.

次に、S604で、接続ライブラリ332は、各応答に基づいて、画像処理情報である画像処理名に対応する画像処理が実行可能な画像処理プラグインアプリ303が存在するか否かを判断する。存在する場合はS605へ進み、存在しない場合はS606へ進む。例えば、上記の例では、画像処理名、「OCR」に対応する画像処理プラグインアプリ303が存在する場合は、S605へ進む。S605で、接続ライブラリ332は、画像処理プラグインアプリ303に対して、S601で指定されたパラメータを通知した上で、画像処理の実行指示を通知する。一方、S606で、接続ライブラリ332は、デバイス制御アプリ304又はデバイス制御ライブラリ309に対して、実行可能な画像処理プラグインアプリ303が見つからなかったことを画像処理の要求元に通知し、処理を終了する。具体的には、接続ライブラリ332は、所定の画像処理を実行可能なプラグインアプリケーションが存在しないことを要求元に通知する。 Next, in S604, the connection library 332 determines whether or not there is an image processing plug-in application 303 that can execute image processing corresponding to the image processing name that is the image processing information, based on each response. If it exists, the process proceeds to S605, and if it does not exist, the process proceeds to S606. For example, in the above example, if the image processing plug-in application 303 corresponding to the image processing name “OCR” exists, the process proceeds to S605. In S605, the connection library 332 notifies the image processing plug-in application 303 of the parameters specified in S601, and then notifies the image processing execution instruction. On the other hand, in S606, the connection library 332 notifies the device control application 304 or the device control library 309 that the executable image processing plug-in application 303 has not been found, and ends the processing. do. Specifically, the connection library 332 notifies the requester that there is no plug-in application capable of executing the predetermined image processing.

以上説明したように、本実施形態に係る画像処理装置(画像形成装置)は、所定の画像処理を実行する要求を受け付け、当該所定の画像処理の名称を示す画像処理名を当該要求から取得する。また、画像処理装置は、取得した画像処理名を用いて、受け付けた所定の画像処理を実行可能なプラグインアプリケーションを選択し、その実行を指示する。これにより、本実施形態によれば、追加した画像処理機能を利用する要求元モジュールが、直接プラグインを選択する必要がなくなり、画像処理名の指定をするだけで適切なプラグインを利用することができ、プラグインの誤選択の危険性を低減できる。 As described above, the image processing apparatus (image forming apparatus) according to the present embodiment receives a request for executing a predetermined image processing, and acquires an image processing name indicating the name of the predetermined image processing from the request. .. Further, the image processing apparatus selects a plug-in application capable of executing the received predetermined image processing by using the acquired image processing name, and instructs the execution thereof. As a result, according to the present embodiment, the requesting module that uses the added image processing function does not need to directly select the plug-in, and the appropriate plug-in can be used only by specifying the image processing name. And the risk of misselection of plug-ins can be reduced.

本発明は、上記実施形態に限らず様々な変形が可能である。例えば、上記S603では、接続ライブラリ332が画像処理名を用いて各画像処理プラグインアプリ303に対して、当該画像処理名に対応する画像処理の実行可否を問い合わせている。この構成の代わりに、各画像処理プラグインアプリ303がインストールされる際に、接続ライブラリ332に対して自身が実行可能な画像処理の画像処理名を当該プラグインアプリに紐づけて登録するようにしてもよい。これにより、接続ライブラリ332は、画像処理名を用いて、各画像処理プラグインアプリに対して問い合わせることなく、自身が保持している情報に基づいて、適切なプラグインを選択することができる。 The present invention is not limited to the above embodiment and can be modified in various ways. For example, in S603, the connection library 332 uses the image processing name to inquire of each image processing plug-in application 303 whether or not the image processing corresponding to the image processing name can be executed. Instead of this configuration, when each image processing plug-in application 303 is installed, the image processing name of the image processing that can be executed by itself is registered in the connection library 332 in association with the plug-in application. You may. As a result, the connection library 332 can select an appropriate plug-in based on the information held by the connection library 332 without inquiring about each image processing plug-in application by using the image processing name.

<第2の実施形態>
以下では、本発明の第2の実施形態を説明する。上記第1の実施形態では、接続ライブラリ332は、画像処理プラグインアプリ303に対して、画像処理名を指定し、それに対応する画像処理が実行可能か否か問い合わせることで、プラグインの選択を行った。
<Second embodiment>
Hereinafter, a second embodiment of the present invention will be described. In the first embodiment, the connection library 332 selects an image processing plug-in application 303 by designating an image processing name and inquiring whether or not the corresponding image processing can be executed. gone.

しかしながら、画像処理名からだけでは、画像処理プラグインアプリ303の選択が正しく行えない場合もあり得る。ここでは、画像処理名として、「OCR」が指定されたケースを考える。OCR処理を行うプラグインとしては、デバイス内のNativeモジュール316に処理を要求するプラグインと、ネットワーク106を介してサーバ105に処理を要求するプラグインが存在する。前者は、英語等、デバイス内にOCR用の辞書が存在する言語についての処理を行うためのプラグインであり、後者は、デバイス内に辞書が存在しない言語についての処理を行うためのプラグインである。このようなケースでは、「OCR」という画像処理名に対応するプラグインが複数個存在するため、画像処理名の情報のみからでは、正しく画像処理プラグインアプリ303の選択を行うことができない。 However, it may not be possible to correctly select the image processing plug-in application 303 only from the image processing name. Here, consider a case where "OCR" is specified as the image processing name. As the plug-in that performs OCR processing, there are a plug-in that requests processing from the Native module 316 in the device and a plug-in that requests processing from the server 105 via the network 106. The former is a plug-in for processing languages such as English that have a dictionary for OCR in the device, and the latter is a plug-in for processing languages that do not have a dictionary in the device. be. In such a case, since there are a plurality of plug-ins corresponding to the image processing name "OCR", it is not possible to correctly select the image processing plug-in application 303 only from the information of the image processing name.

そこで、本実施形態では、画像処理プラグインアプリ303の選択を行う際、画像処理名に加えて、画像処理に関わるパラメータ情報を利用する。当該パラメータは、キーとバリューのペアから成り、一つの画像処理に対して、複数指定されてもよい。上記の例において、パラメータを、「キー:バリュー」の形で表現すると、「言語:英語」という文言が指定される。画像処理名、「OCR」と、パラメータ、「言語:英語」の情報に基づいて、接続ライブラリ332は、Nativeモジュール316を利用してOCR処理を実行する画像処理プラグインアプリ303を選択することが可能になる。 Therefore, in the present embodiment, when selecting the image processing plug-in application 303, parameter information related to image processing is used in addition to the image processing name. The parameter consists of a key / value pair, and may be specified more than once for one image processing. In the above example, when the parameter is expressed in the form of "key: value", the word "language: English" is specified. Based on the information of the image processing name, "OCR" and the parameter, "Language: English", the connection library 332 can select the image processing plug-in application 303 that executes the OCR processing by using the Native module 316. It will be possible.

また、別の例としては、パラメータとして指定される、「入力画像解像度」によって、利用するプラグインを切り替えることも考えられる。まず、パラメータとして、「入力画像解像度:300DPI」が指定された場合には、デバイス内のNativeモジュール316に処理を要求するプラグインを利用する。一方、パラメータとして、「入力画像解像度:600DPI」が指定された場合には、サーバ105に処理を要求するプラグインを利用する。これは、入力解像度が高くなるにつれ、処理に必要なRAM212の容量が増えるため、画像形成装置101内で処理できる入力画像解像度には一定の制限があり、所定の入力解像度を超えた場合は、サーバ105に処理を要求する必要があるためである。 Further, as another example, it is conceivable to switch the plug-in to be used according to the "input image resolution" specified as a parameter. First, when "input image resolution: 300 DPI" is specified as a parameter, a plug-in that requests processing from the Native module 316 in the device is used. On the other hand, when "input image resolution: 600 DPI" is specified as a parameter, a plug-in that requests processing from the server 105 is used. This is because the capacity of the RAM 212 required for processing increases as the input resolution increases, so that there is a certain limit to the input image resolution that can be processed in the image forming apparatus 101, and if the input resolution exceeds a predetermined input resolution, This is because it is necessary to request processing from the server 105.

<処理手順>
図7を参照して、本実施形態における、接続ライブラリ332が、画像処理プラグインアプリ303を呼び出す際の処理手順について説明する。以下で説明する処理は、例えば、CPU211がHDD213に格納されたプログラムをRAM212に展開して、実行することによって実現される。なお、本実施形態のシステム構成、及び処理手順は、上記第1の実施形態で説明したものと同一であるため、その説明を省略し、異なる箇所のみを説明する。具体的には、S701、S704、S705、S706は、S601、S604、S605、S606と同一であるため説明を省略する。
<Processing procedure>
With reference to FIG. 7, a processing procedure when the connection library 332 calls the image processing plug-in application 303 in the present embodiment will be described. The process described below is realized, for example, by the CPU 211 expanding the program stored in the HDD 213 into the RAM 212 and executing the program. Since the system configuration and the processing procedure of the present embodiment are the same as those described in the first embodiment, the description thereof will be omitted and only the different parts will be described. Specifically, since S701, S704, S705, and S706 are the same as S601, S604, S605, and S606, the description thereof will be omitted.

S702で、接続ライブラリ332は、S701で指定を受けた、画像処理名とパラメータを参照する。さらに、S703で、接続ライブラリ332は、インストールされている全ての画像処理プラグインアプリ303に対して、画像処理名とパラメータを指定し、それに対応する画像処理が実行可能か否かを問い合わせる。 In S702, the connection library 332 refers to the image processing name and parameters specified in S701. Further, in S703, the connection library 332 specifies an image processing name and parameters for all the installed image processing plug-in applications 303, and inquires whether or not the corresponding image processing can be executed.

以上説明したように、本実施形態によれば、画像処理名とパラメータの2つの情報に基づいて、より細かい条件で、画像処理プラグインアプリ303を選択することが可能になる。また、上述したように、上記S703では、接続ライブラリ332が画像処理名及びパラメータを用いて各画像処理プラグインアプリ303に対して、当該画像処理名及びパラメータに対応する画像処理の実行可否を問い合わせている。この構成の代わりに、各画像処理プラグインアプリ303がインストールされる際に、接続ライブラリ332に対して自身が実行可能な画像処理に対応する画像処理名及びパラメータを当該プラグインアプリに紐づけて登録するようにしてもよい。これにより、接続ライブラリ332は、画像処理名及びパラメータを用いて、各画像処理プラグインアプリに対して問い合わせることなく、自身が保持している情報に基づいて、適切なプラグインを選択することができる。 As described above, according to the present embodiment, it is possible to select the image processing plug-in application 303 under more detailed conditions based on the two pieces of information of the image processing name and the parameter. Further, as described above, in the above S703, the connection library 332 uses the image processing name and the parameter to inquire of each image processing plug-in application 303 whether or not the image processing corresponding to the image processing name and the parameter can be executed. ing. Instead of this configuration, when each image processing plug-in application 303 is installed, the image processing name and parameters corresponding to the image processing that can be executed by the connection library 332 are associated with the plug-in application. You may try to register. As a result, the connection library 332 can select an appropriate plug-in based on the information held by itself without inquiring about each image processing plug-in application by using the image processing name and parameters. can.

<第3の実施形態>
以下では、本発明の第3の実施形態を説明する。上記第2の実施形態においては、接続ライブラリ332は、画像処理プラグインアプリ303に対して、画像処理名とパラメータを指定し、それに対応する画像処理が実行可能か否か問い合わせることで、プラグインの選択を行った。
<Third embodiment>
Hereinafter, a third embodiment of the present invention will be described. In the second embodiment, the connection library 332 is a plug-in by designating an image processing name and parameters to the image processing plug-in application 303 and inquiring whether or not the corresponding image processing can be executed. Made the selection.

しかしながら、すべての画像処理プラグインアプリ303について、画像処理名とパラメータを指定した上で、画像処理が実行可能か否かを判断しようとすると、処理に時間が掛かってしまう場合がある。例えば、画像処理プラグインアプリ303の数が多かったり、実行可能か否かの判定ロジックが複雑なものが多数存在する場合である。 However, for all the image processing plug-in applications 303, if it is attempted to determine whether or not the image processing can be executed after specifying the image processing name and the parameters, the processing may take time. For example, there are a large number of image processing plug-in applications 303, or there are many complicated determination logics for whether or not they can be executed.

上記第2の実施形態の方法では、画像処理が実行可能か否かの問い合わせを、画像処理プラグインアプリ303の数と同じ回数実行する必要がある。このような方法では、指定された画像処理を行う機能を有さない画像処理プラグインアプリについても、プラグインの能力についての問い合わせ処理を行うこととなる。例えば、指定された画像処理を実行する機能を有さない画像処理プラグインアプリについても、当該画像処理プラグインアプリの能力を示す関数を呼び出し、指定されたパラメータで画像処理を実行可能かどうか確認する確認処理が発生してしまう。この確認処理を実行するための判定ロジックが複雑な場合、本来実行する必要がない処理を実行することとなる。また、アプリケーションによっては、指定された画像処理を行う機能を有していなくても、指定されたパラメータで画像処理を行うことが可能かを判定するための判定処理を実行してしまう可能性もある。これらの本来実行する必要がない処理を実行することにより、検索時間が長くなったり、CPU211の処理負荷が増大したりするという問題がある。 In the method of the second embodiment, it is necessary to execute the inquiry as to whether or not the image processing can be executed as many times as the number of the image processing plug-in application 303. In such a method, even for an image processing plug-in application that does not have a function to perform a designated image processing, an inquiry process regarding the ability of the plug-in is performed. For example, even for an image processing plug-in application that does not have the function to execute the specified image processing, call the function indicating the ability of the image processing plug-in application and check whether the image processing can be executed with the specified parameters. Confirmation processing will occur. If the determination logic for executing this confirmation process is complicated, a process that does not originally need to be executed will be executed. In addition, depending on the application, even if it does not have the function to perform the specified image processing, there is a possibility that the judgment processing for determining whether the image processing can be performed with the specified parameters may be executed. be. By executing these processes that do not originally need to be executed, there are problems that the search time becomes long and the processing load of the CPU 211 increases.

そこで、本実施形態においては、二段階のフィルタを動作させて、画像処理プラグインアプリ303の選択を行うことで、処理速度、及び柔軟性を両立させることとする。初めに、一段階目のフィルタを適用し、指定された画像処理名のみから、画像処理プラグインアプリ303の候補を絞り込む。これは単に、指定された画像処理名と一致する画像処理名を保持する画像処理プラグインアプリ303を探し出すだけの処理である。そして、その後、二段階目のフィルタを適用し、一段階目のフィルタで絞り込んだ候補に対してパラメータを指定し、処理が可能か否かを問い合わせることで、適切な画像処理プラグインアプリ303を選択する。 Therefore, in the present embodiment, the processing speed and flexibility are both achieved by operating the two-stage filter and selecting the image processing plug-in application 303. First, the first-stage filter is applied to narrow down the candidates for the image processing plug-in application 303 only from the specified image processing name. This is simply a process of finding an image processing plug-in application 303 that holds an image processing name that matches the designated image processing name. Then, by applying the second-stage filter, specifying the parameters for the candidates narrowed down by the first-stage filter, and inquiring whether processing is possible, the appropriate image processing plug-in application 303 can be obtained. select.

一段階目のフィルタ処理は、取得した画像処理名を用いて、指定された画像処理を実行可能なプラグインアプリケーションを選択する第1の選択処理である。また、二段階目のフィルタ処理は、第1の選択処理によって選択されたプラグインアプリケーションのうちから、パラメータに応じた画像処理を実行可能なプラグインアプリケーションを選択する第2の選択処理である。このようにすれば、処理が実行可能か否かを判断するためのロジックが複雑な場合であっても、予め絞り込んだ候補にだけ処理を適応させればよいため、二段階フィルタを動作させない場合と比べて、処理時間の増加を抑制することができる。 The first-stage filter processing is the first selection processing for selecting a plug-in application capable of executing the specified image processing using the acquired image processing name. Further, the second-stage filter processing is a second selection process of selecting a plug-in application capable of performing image processing according to a parameter from the plug-in applications selected by the first selection process. By doing so, even if the logic for determining whether or not the processing is feasible is complicated, the processing needs to be applied only to the candidates narrowed down in advance, so that the two-step filter is not operated. As compared with, the increase in processing time can be suppressed.

<処理手順>
ここで、図8に示すフローチャートを参照して、本実施形態における、接続ライブラリ332が、画像処理プラグインアプリ303を呼び出す処理の詳細について説明する。以下で説明する処理は、例えば、CPU211がHDD213に格納されたプログラムをRAM212に展開して、実行することによって実現される。なお、本実施形態のシステム構成、及び処理手順は、上記第1の実施形態で説明したものと同一であるため、その説明を省略し、異なる箇所のみを説明する。具体的には、S901、S902、S908、S909は、S601、S602、S605、S606と同一である。
<Processing procedure>
Here, with reference to the flowchart shown in FIG. 8, the details of the process in which the connection library 332 calls the image processing plug-in application 303 in the present embodiment will be described. The process described below is realized, for example, by the CPU 211 expanding the program stored in the HDD 213 into the RAM 212 and executing the program. Since the system configuration and the processing procedure of the present embodiment are the same as those described in the first embodiment, the description thereof will be omitted and only the different parts will be described. Specifically, S901, S902, S908, and S909 are the same as S601, S602, S605, and S606.

S903で、接続ライブラリ332は、インストールされている全ての画像処理プラグインアプリ303に対して、画像処理名を指定し、その画像処理名に対応するプラグインか否かを問い合わせる。これは、前述した一段階目のフィルタに対応する処理である。S904で、接続ライブラリ332は、指定された画像処理名に対応する画像処理プラグインアプリ303が存在するか否か判断する。存在する場合は、S905へ、存在しない場合は、S909へ進む。例えば、S901で、画像処理名、「OCR」が指定された場合、それと同じ画像処理名を保持する画像処理プラグインアプリ303が存在する場合は、S905へ進む。S905で、接続ライブラリ332は、S901で指定を受けた、パラメータを参照する。S906で、接続ライブラリ332は、S904で検出した画像処理プラグインアプリ303に対して、パラメータを指定し、それに対応する画像処理が実行可能か否か問い合わせる。上記の例においては、画像処理名、「OCR」の画像処理プラグインアプリ303に対して、パラメータ、「言語:英語」を指定して、画像処理が実行可能か否か問い合わせる。この時、上記第2の実施形態と同様、画像処理プラグインアプリ303内部では、所定のディレクトリ以下に、英語に対応したOCR用の辞書が存在するか否かで、実行可能か否かを判断する。 In S903, the connection library 332 specifies an image processing name for all the installed image processing plug-in applications 303, and inquires whether or not the plug-in corresponds to the image processing name. This is a process corresponding to the above-mentioned first-stage filter. In S904, the connection library 332 determines whether or not the image processing plug-in application 303 corresponding to the specified image processing name exists. If it exists, the process proceeds to S905, and if it does not exist, the process proceeds to S909. For example, if the image processing name "OCR" is specified in S901 and the image processing plug-in application 303 holding the same image processing name exists, the process proceeds to S905. In S905, the connection library 332 refers to the parameter specified in S901. In S906, the connection library 332 specifies a parameter to the image processing plug-in application 303 detected in S904, and inquires whether the corresponding image processing can be executed. In the above example, the image processing name and the image processing plug-in application 303 of "OCR" are inquired about whether or not the image processing can be executed by designating the parameter and "language: English". At this time, as in the second embodiment, inside the image processing plug-in application 303, it is determined whether or not it can be executed depending on whether or not a dictionary for OCR corresponding to English exists under a predetermined directory. do.

また、同一の画像処理名に対応する画像処理プラグインアプリ303として、画像形成装置101内部で処理を行うプラグインと、サーバ105に処理を依頼するプラグインの両方が存在する場合もある。 Further, as the image processing plug-in application 303 corresponding to the same image processing name, there may be both a plug-in that performs processing inside the image forming apparatus 101 and a plug-in that requests processing from the server 105.

指定された画像形成装置101内部で画像処理を行う場合は、サーバ105に処理を依頼する場合と比較して、サーバ105との通信時間が不要であるため、短い時間で処理を実行できる。一方、画像形成装置101内の他の機能とメモリを共有するため、場合によってはメモリが不足し、他の機能の動作に影響を与えることがある。サーバ105に画像処理を依頼する場合は、画像形成装置101のメモリを使用しないため、画像形成装置101の他の機能の動作に影響を与えないで済む。 When the image processing is performed inside the designated image forming apparatus 101, the communication time with the server 105 is not required as compared with the case where the processing is requested to the server 105, so that the processing can be executed in a short time. On the other hand, since the memory is shared with other functions in the image forming apparatus 101, the memory may be insufficient in some cases, which may affect the operation of the other functions. When requesting image processing to the server 105, the memory of the image forming apparatus 101 is not used, so that the operation of other functions of the image forming apparatus 101 does not have to be affected.

即ち、画像形成装置101においてメモリ不足が発生しない場合には、画像形成装置101の内部で画像処理を行う画像処理プラグインアプリ303によって処理を実行した方が、サーバ105に処理を依頼するよりも処理時間を短縮できる可能性が高い。一方、画像形成装置101においてメモリ不足が発生する可能性がある場合には、サーバ105に画像処理を依頼する画像処理プラグインアプリ303によって処理を実行する方が好ましい。 That is, when the memory shortage does not occur in the image forming apparatus 101, it is better to execute the processing by the image processing plug-in application 303 that performs image processing inside the image forming apparatus 101 than to request the server 105 to perform the processing. There is a high possibility that the processing time can be shortened. On the other hand, when there is a possibility that the image forming apparatus 101 may run out of memory, it is preferable to execute the processing by the image processing plug-in application 303 that requests the server 105 to perform the image processing.

そこで、画像処理プラグインアプリは、指定されたパラメータを満たす画像処理を行う際のメモリ使用量に応じて、指定された画像処理を画像処理プラグインアプリが実行可能かを判定することとしてもよい。 Therefore, the image processing plug-in application may determine whether the image processing plug-in application can execute the specified image processing according to the memory usage amount when performing the image processing satisfying the specified parameter. ..

例えば、画像形成装置101内部で画像処理を行う画像処理プラグインアプリ303は、「入力画像解像度:600DPI」のような、入力解像度についてのパラメータを元に、実行可能か否か判断する。「入力画像解像度:600DPI」に対応する画像処理を実行するためには、実行時のRAM212使用量が多く、他の機能の実行に影響を及ぼす可能性がある。従って、画像形成装置101の内部で処理を行う画像処理プラグインアプリ303は、当該画像処理が実行不可能であると判断する。 For example, the image processing plug-in application 303 that performs image processing inside the image forming apparatus 101 determines whether or not it can be executed based on a parameter related to the input resolution such as "input image resolution: 600 DPI". In order to execute the image processing corresponding to the "input image resolution: 600 DPI", the amount of RAM 212 used at the time of execution is large, which may affect the execution of other functions. Therefore, the image processing plug-in application 303 that performs processing inside the image forming apparatus 101 determines that the image processing cannot be executed.

また、サーバ105に処理を依頼する画像処理プラグインアプリ303は、サーバ105において十分にメモリ容量を確保することができるので、当該画像処理を実行することが可能であると判断する。 Further, since the image processing plug-in application 303 that requests the server 105 to perform the processing can secure a sufficient memory capacity in the server 105, it is determined that the image processing can be executed.

一方、パラメータが「入力画像解像度:300DPI」であれば、実行時のRAM212使用量は、600DPIの場合に比べて少なく、他の機能の実行に影響を及ぼす可能性が低い。そこで、画像形成装置101の内部で処理を行う画像処理プラグインアプリ303は、当該画像処理を実行可能であると判断する。 On the other hand, when the parameter is "input image resolution: 300 DPI", the amount of RAM 212 used at the time of execution is smaller than that in the case of 600 DPI, and it is unlikely to affect the execution of other functions. Therefore, the image processing plug-in application 303 that performs processing inside the image forming apparatus 101 determines that the image processing can be executed.

S907において、接続ライブラリ332は、指定されたパラメータをもとに処理を実行することができる画像処理プラグインアプリ303が存在するか否か判断する。存在する場合は、S908へ、存在しない場合は、S909へ進む。 In S907, the connection library 332 determines whether or not there is an image processing plug-in application 303 that can execute processing based on the specified parameter. If it exists, the process proceeds to S908, and if it does not exist, the process proceeds to S909.

本実施形態で示した方法によると、二段階のフィルタを動作させて、画像処理プラグインアプリ303の選択を行うことで、処理速度、及び柔軟性を両立させることが可能になる。 According to the method shown in the present embodiment, by operating the two-step filter and selecting the image processing plug-in application 303, it is possible to achieve both processing speed and flexibility.

<変形例>
本発明は上記実施形態に限らず様々な変形が可能である。例えば、画像形成装置101内部で画像処理を行う画像処理プラグインアプリ303は、画像処理の実行可否を、指定されたパラメータだけでなく、画像形成装置101のRAM212の使用状況に応じて、動的に判断を行うこととしてもよい。
<Modification example>
The present invention is not limited to the above embodiment and can be modified in various ways. For example, the image processing plug-in application 303 that performs image processing inside the image forming apparatus 101 dynamically determines whether or not the image processing can be executed according to not only the specified parameters but also the usage status of the RAM 212 of the image forming apparatus 101. You may make a judgment.

例えば、画像形成装置101内部で処理を行う画像処理プラグインアプリ303は、パラメータとして「入力画像解像度:600DPI」が入力された場合でも、RAM212の空き容量が所定の容量以上である場合は、当該画像処理を実行可能と判断する。一方、画像形成装置101内部で処理を行う画像処理プラグインアプリ303は、RAM212の空き容量が所定の容量未満の場合は、パラメータとして「入力画像解像度:600DPI」が入力されると、当該画像処理を実行することはできないと判断する。 For example, the image processing plug-in application 303 that performs processing inside the image forming apparatus 101 is concerned when the free capacity of the RAM 212 is equal to or larger than a predetermined capacity even when "input image resolution: 600 DPI" is input as a parameter. Judge that image processing is feasible. On the other hand, the image processing plug-in application 303 that performs processing inside the image forming apparatus 101 processes the image when "input image resolution: 600 DPI" is input as a parameter when the free capacity of the RAM 212 is less than a predetermined capacity. Judge that it cannot be executed.

上記の処理を、図10のフローチャートを用いて説明する。本フローチャートによる処理は、CPU211が画像処理プラグインアプリ303を実行することによって実現される。以下で説明する処理は、例えば、CPU211がHDD213に格納されたプログラムをRAM212に展開して、実行することによって実現される。 The above processing will be described with reference to the flowchart of FIG. The processing according to this flowchart is realized by the CPU 211 executing the image processing plug-in application 303. The process described below is realized, for example, by the CPU 211 expanding the program stored in the HDD 213 into the RAM 212 and executing the program.

S1001で、画像処理プラグインアプリ303は、指定されたパラメータに応じた画像処理を実行するために必要な、メモリ空き容量の閾値を取得する。例えば、画像処理プラグインアプリ303は、画像処理のパラメータと、メモリの容量に関する閾値とを対応付けた情報を管理しており、当該情報を参照して、指定されたパラメータに対応する閾値を取得する。当該対応付け情報は、例えば、画像処理プラグインアプリ303のインストール時に、画像形成装置101のHDD213等の記憶部に記憶される。 In S1001, the image processing plug-in application 303 acquires the threshold value of the free memory capacity required to execute the image processing according to the specified parameter. For example, the image processing plug-in application 303 manages information in which an image processing parameter and a threshold value related to a memory capacity are associated with each other, and obtains a threshold value corresponding to a specified parameter by referring to the information. do. The correspondence information is stored, for example, in a storage unit such as HDD 213 of the image forming apparatus 101 when the image processing plug-in application 303 is installed.

次に、S1002で、画像処理プラグインアプリ303は、RAM212の空き容量を取得する。S1002は、画像形成装置101のメモリの使用状況を取得する容量取得処理である。続いて、S1003で、画像処理プラグインアプリ303は、S1002で取得した空き容量が、S1001で取得した閾値以上であるか否かを判定する。 Next, in S1002, the image processing plug-in application 303 acquires the free space of the RAM 212. S1002 is a capacity acquisition process for acquiring the usage status of the memory of the image forming apparatus 101. Subsequently, in S1003, the image processing plug-in application 303 determines whether or not the free space acquired in S1002 is equal to or greater than the threshold value acquired in S1001.

画像処理プラグインアプリ303は、S1002で取得した空き容量が、S1001で取得した閾値以上である場合には、S1004に進み、指定された画像処理を実行可能であると接続ライブラリ332に応答して処理を終了する。一方、画像処理プラグインアプリ303は、S1002で取得した空き容量が、S1001で取得した閾値未満である場合には、S1005に進み、指定された画像処理の実行が不可能であると接続ライブラリ332に応答して処理を終了する。 If the free space acquired in S1002 is equal to or greater than the threshold value acquired in S1001, the image processing plug-in application 303 proceeds to S1004 and responds to the connection library 332 that the specified image processing can be executed. End the process. On the other hand, the image processing plug-in application 303 proceeds to S1005 when the free space acquired in S1002 is less than the threshold value acquired in S1001, and the connection library 332 states that the specified image processing cannot be executed. Ends the process in response to.

以上のようにして、画像処理プラグインアプリ303は、メモリの使用状況と、メモリの使用状況に関する閾値とに基づいて、特定のプラグインアプリケーションが、パラメータに応じた画像処理を実行可能か否か判定する。このようにして、画像形成装置101のメモリ使用状況に応じて動的に、指定された画像処理の実行の可否を応答することができる。また接続ライブラリ332は、応答された内容(判定結果)に基づいて、指定されたパラメータに応じた画像処理を実行可能なプラグインアプリケーションを選択することができる。 As described above, whether or not the image processing plug-in application 303 can execute image processing according to the parameters based on the memory usage status and the threshold value regarding the memory usage status. judge. In this way, it is possible to dynamically respond whether or not the designated image processing can be executed according to the memory usage status of the image forming apparatus 101. Further, the connection library 332 can select a plug-in application that can execute image processing according to a specified parameter based on the returned content (determination result).

本変形例では、画像処理プラグインアプリ303が、指定された画像処理の実行可否を判定する例について説明したが、これに限らず、接続ライブラリ332が当該判定を行うこととしてもよい。例えば、接続ライブラリ332が、画像処理プラグインアプリ303の識別情報と、画像処理のパラメータと、メモリの容量に関する閾値と関連付けて管理する。そして、判定対象の画像処理プラグインアプリ303の識別情報に関連付けられたパラメータと閾値に基づいて、図10に示した処理と同様の処理を実行することとしてもよい。この場合、図10に示した処理は、HDD213に記憶されたプログラムコードをRAM212に展開し、CPU211が実行することにより実現される。 In this modification, an example in which the image processing plug-in application 303 determines whether or not the specified image processing can be executed has been described, but the present invention is not limited to this, and the connection library 332 may perform the determination. For example, the connection library 332 manages the identification information of the image processing plug-in application 303 in association with the image processing parameters and the threshold value related to the memory capacity. Then, the same processing as that shown in FIG. 10 may be executed based on the parameters and the threshold values associated with the identification information of the image processing plug-in application 303 to be determined. In this case, the process shown in FIG. 10 is realized by expanding the program code stored in the HDD 213 to the RAM 212 and executing the program code by the CPU 211.

S1004では、接続ライブラリ332は、判定対象の画像処理プラグインアプリ303が指定された処理を実行可能であると判定する。またS1005では、接続ライブラリ332は、判定対象の画像処理プラグインアプリ303が指定された処理を実行することができないと判定する。 In S1004, the connection library 332 determines that the image processing plug-in application 303 to be determined can execute the specified process. Further, in S1005, the connection library 332 determines that the image processing plug-in application 303 to be determined cannot execute the specified process.

以上のようにしても、画像形成装置101のメモリ使用状況に応じて動的に、指定された画像処理の実行の可否を判定することができる。 Even in the above manner, it is possible to dynamically determine whether or not the designated image processing can be executed according to the memory usage status of the image forming apparatus 101.

<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
<Other embodiments>
The present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by the processing to be performed. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

101、102:画像形成装置、103、104:情報処理端末、105:サーバ、201:コントローラ、202:プリンタ、203:スキャナ、204:操作部、211:CPU、212:RAM、213:HDD、214:ネットワークI/F、215:プリンタI/F、216:スキャナI/F、217:操作部I/F、218:拡張I/F 101, 102: Image forming device, 103, 104: Information processing terminal, 105: Server, 201: Controller, 202: Printer, 203: Scanner, 204: Operation unit, 211: CPU, 212: RAM, 213: HDD, 214 : Network I / F, 215: Printer I / F, 216: Scanner I / F, 217: Operation unit I / F, 218: Extended I / F

Claims (5)

1以上の機能を提供し、さらに、プラグインアプリケーションをインストールすることにより、提供する機能を追加可能な画像処理装置であって、
所定の処理を実行する要求を受け付ける受付手段と、
前記受付手段によって受け付けた前記要求から前記所定の処理の識別情報と、該所定の処理を実行する際に用いるパラメータと、を取得する取得手段と、
前記所定の処理を実行できるかどうかを、前記画像処理装置にインストールされた1以上のプラグインアプリケーションのそれぞれに前記識別情報を通知することで、問い合わせる問合せ手段と、
問い合わせの結果で特定された前記所定の処理を実行できるプラグインアプリケーションに、前記パラメータを用いた前記所定の処理を指示する指示手段と
を備えることを特徴とする画像処理装置。
An image processing device that provides one or more functions and can add the provided functions by installing a plug-in application.
A reception means that accepts requests to execute predetermined processing,
An acquisition means for acquiring the identification information of the predetermined process and the parameters used when executing the predetermined process from the request received by the reception means.
An inquiry means for inquiring whether or not the predetermined process can be executed by notifying each of the one or more plug-in applications installed in the image processing device of the identification information.
An instruction means for instructing the plug-in application that can execute the predetermined process specified by the result of the inquiry to perform the predetermined process using the parameter, and
An image processing device characterized by comprising.
前記問合せ手段は、前記識別情報を用いた前記問い合わせの結果で特定された前記プラグインアプリケーションに対して、前記パラメータを用いた前記所定の処理が実行できるかどうかのさらなる問い合わせを行い、
前記指示手段は、前記さらなる問い合わせの結果で前記パラメータを用いた前記所定の処理を実行できることが特定されたプラグインアプリケーションに対して、前記パラメータを用いた前記所定の処理を指示することを特徴とする請求項1に記載の画像処理装置。
The inquiry means further inquires whether or not the predetermined process using the parameter can be executed for the plug-in application specified by the result of the inquiry using the identification information .
The instruction means is characterized in that it instructs a plug-in application that is specified to be able to execute the predetermined process using the parameter as a result of the further inquiry to the predetermined process using the parameter. The image processing apparatus according to claim 1 .
前記所定の処理がOCR処理である場合において、
前記識別情報は、OCRの文字列を含み、
前記パラメータは、OCRの言語を示すことを特徴とする請求項1または2に記載の画像処理装置。
When the predetermined process is an OCR process,
The identification information includes an OCR character string.
The image processing apparatus according to claim 1 or 2 , wherein the parameter indicates the language of OCR.
前記パラメータは、前記所定の処理が施される入力画像の解像度を示すことを特徴とする請求項1または2に記載の画像処理装置。 The image processing apparatus according to claim 1 or 2, wherein the parameter indicates a resolution of an input image to which the predetermined processing is performed. 前記問合せ手段による問い合わせの結果で、外部装置が提供する画像処理クライアントを前記所定の処理を実行可能なプラグインアプリケーションとして特定された場合、前記指示手段は、前記画像処理クライアントに対して前記パラメータを用いた前記所定の処理を指示することを特徴とする請求項1乃至の何れか1項に記載の画像処理装置。 When the image processing client provided by the external device is specified as a plug-in application capable of executing the predetermined process as a result of the inquiry by the inquiry means, the instruction means causes the parameter to the image processing client. The image processing apparatus according to any one of claims 1 to 4 , wherein the predetermined processing is instructed using the image processing apparatus.
JP2018006687A 2017-10-10 2018-01-18 Image processing equipment Active JP7080061B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP18196324.0A EP3471388B1 (en) 2017-10-10 2018-09-24 Image processing apparatus, method for controlling the same, and program
CN201811154807.5A CN109660684B (en) 2017-10-10 2018-09-30 Image processing apparatus, control method thereof, and storage medium
US16/151,432 US10706495B2 (en) 2017-10-10 2018-10-04 Image processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium
KR1020180118745A KR102348317B1 (en) 2017-10-10 2018-10-05 Image processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium
US16/893,725 US11176633B2 (en) 2017-10-10 2020-06-05 Image processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017197059 2017-10-10
JP2017197059 2017-10-10

Publications (2)

Publication Number Publication Date
JP2019071038A JP2019071038A (en) 2019-05-09
JP7080061B2 true JP7080061B2 (en) 2022-06-03

Family

ID=66440694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018006687A Active JP7080061B2 (en) 2017-10-10 2018-01-18 Image processing equipment

Country Status (1)

Country Link
JP (1) JP7080061B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12254227B2 (en) 2021-09-01 2025-03-18 Canon Kabushiki Kaisha Information processing apparatus, control method of information processing apparatus, and storage medium
JP7626173B2 (en) * 2022-10-26 2025-02-04 株式会社リコー Terminal device, information processing method, program, and information processing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011176453A (en) 2010-02-23 2011-09-08 Ricoh Co Ltd Information processor, utilization limitation method, and program
JP2012185800A (en) 2011-02-16 2012-09-27 Ricoh Co Ltd Device, program control method, program control program and recording medium
JP2012234559A (en) 2012-07-17 2012-11-29 Ricoh Co Ltd Information processing device, information processing method, information processing program and storage medium storing information processing program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011176453A (en) 2010-02-23 2011-09-08 Ricoh Co Ltd Information processor, utilization limitation method, and program
JP2012185800A (en) 2011-02-16 2012-09-27 Ricoh Co Ltd Device, program control method, program control program and recording medium
JP2012234559A (en) 2012-07-17 2012-11-29 Ricoh Co Ltd Information processing device, information processing method, information processing program and storage medium storing information processing program

Also Published As

Publication number Publication date
JP2019071038A (en) 2019-05-09

Similar Documents

Publication Publication Date Title
KR102348317B1 (en) Image processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium
JP2025096441A (en) Application Program
US20130219261A1 (en) Apparatus, information processing system, and information processing method
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
US10416937B2 (en) Image forming apparatus, image forming method, and storage medium
US10996998B2 (en) Information processing apparatus and control method thereof
JP2008305004A (en) Image forming apparatus, application execution method, and application execution program
JP7080061B2 (en) Image processing equipment
CN110572527B (en) Image processing apparatus, control method thereof, and computer-readable storage medium
JP6961412B2 (en) Image forming device, control method of image forming device, and program
JP7030426B2 (en) Image forming device and its control method, and program
US8804164B2 (en) Image forming system and control method using middleware
US20250335135A1 (en) Printing system, printing method thereof, storage medium, and server system
US10992834B2 (en) Image processing apparatus, method for controlling the same, and computer-readable storage medium
JP2009294773A (en) Information processor, information processing method, information processing program and recording medium
JP7102248B2 (en) Image processing equipment, information processing methods and programs
JP2025035120A (en) Apparatus, program and method for generating print data
JP5766652B2 (en) Image forming apparatus
JP2016018508A (en) Image forming apparatus and control method thereof
JP2018205889A (en) Image forming apparatus, debugging apparatus, reading control method, and program

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220214

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: 20220425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220524

R151 Written notification of patent or utility model registration

Ref document number: 7080061

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151