Program set, method for obtaining reading results, and information processing device.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- BROTHER KOGYO KK
- Filing Date
- 2025-10-14
- Publication Date
- 2026-08-04
AI Technical Summary
【0010】 本明細書に開示されるプログラムセットによれば、情報処理装置からスキャナを利用する場合の、スキャナの利用可能性を高める技術が実現される。
Smart Images

Figure 0007899938000001 
Figure 0007899938000002 
Figure 0007899938000003
Abstract
Description
Technical Field
[0004] , , ,
[0005] , , ,
[0001] The technical field disclosed in this specification relates to a program set for controlling a scanner, a method for obtaining a reading result, and an information processing apparatus.
Background Art
[0002] In an information processing apparatus capable of communicating with a device such as a scanner, a technique for performing data communication with the scanner according to a predetermined general-purpose protocol is known. For example, Patent Document 1 discloses a configuration in which an information processing apparatus and a scanner perform data communication according to a protocol called IPP (Internet Printing Protocol). Further, in Patent Document 1, since IPP is a general-purpose protocol and does not support a specific function such as setting the opening direction of a document, a configuration is disclosed in which the specific function is realized by enabling it to be set on the scanner side.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] For an information processing apparatus to communicate with a scanner according to a predetermined general-purpose communication protocol, the destination scanner needs to support the predetermined general-purpose communication protocol. Therefore, when a scanning system incorporated in an information processing apparatus performs data communication using a predetermined general-purpose communication protocol, a scanner that does not support the predetermined general-purpose communication protocol cannot be used. For example, when an information processing apparatus performs data communication using IPP as in Patent Document 1, a scanner that does not support IPP cannot be used.
[0005] Furthermore, even if a scanner supports a predetermined general-purpose communication protocol, if the scanner uses settings that are not supported by IPP, the user may have to switch settings on the scanner each time, or the scanner's user interface may be difficult to use, resulting in inconvenience for the user. Similar problems exist when performing scans using general-purpose driverless scanning functions such as AirPrint (registered trademark), because general-purpose communication protocols are used.
[0006] This specification discloses a technology that enhances the usability of scanners when they are used with information processing equipment. [Means for solving the problem]
[0007] The program set provided for the purpose of solving this problem is a program set executable by the computer of a first information processing device, the program set includes a first program and a second program, the first program is characterized in that, when a scanner corresponding to a first protocol can communicate via the communication interface of the first information processing device and the second program corresponding to the scanner is not started, the first program causes the computer to execute a startup process to start the second program, and when the second program is started in the startup process, it causes the computer to execute a first registration process to register the second program as a scanner in the operating system of the first information processing device, the second program is characterized in that, when the operating system receives a scan job in which the second program registered in the operating system is designated as the output destination by a second protocol different from the first protocol, the computer executes a transmission process to send a scan command of the first protocol that the scanner can handle to the scanner via the communication interface based on the scan job, and a reception process to receive the scan result obtained when the scanner reads the document in response to the scan command sent in the transmission process via the communication interface using the first protocol.
[0008] According to the program set disclosed herein, if the second program corresponding to a scanner compatible with the first protocol is not running, the first information processing device starts the second program and registers it as a scanner with the operating system (hereinafter referred to as "OS"). This makes the second program selectable by the OS. Furthermore, when the OS receives a scan job via the second protocol that specifies the second program as the output destination, the second program sends a scan command to the scanner via the first protocol based on that scan job and receives the reading result from the scanner. As a result, even scanners that do not support the second protocol can be instructed to read from the first information processing device and the reading result can be received.
[0009] Novel and useful control methods, information processing devices, and computer-readable storage media for storing application programs are also desirable for realizing the above functions. [Effects of the Invention]
[0010] The program set disclosed herein provides a technology that enhances the usability of scanners when they are used from an information processing device. [Brief explanation of the drawing]
[0011] [Figure 1] This is a schematic diagram of the scanning system according to an embodiment. [Figure 2] This is a sequence diagram showing the procedure for starting and registering the scan server. [Figure 3] This is a sequence diagram showing the procedure for pull scan. [Figure 4] This is a sequence diagram showing the procedure for push scanning. [Figure 5] This is a sequence diagram illustrating the procedure for a program capable of performing both pull scans and push scans. [Figure 6]This is a sequence diagram showing the procedure for starting and registering the scan server in the second configuration. [Figure 7] This is a sequence diagram showing the procedure for push scanning in the second form. [Modes for carrying out the invention]
[0012] The first embodiment of the scanning system will be described in detail below with reference to the attached drawings. This embodiment discloses a scanning system that includes multiple personal computers (hereinafter referred to as "PCs") and scanners connected to those PCs.
[0013] The scanning system 100 in this embodiment, as shown in Figure 1, includes a PC1, a PC2, and a scanner 3, all connected to a common network. PC1 and PC2 are devices that send scan execution instructions to the scanner 3, receive image data from the scanner 3, edit the received image data, etc. Both PC1 and PC2 are examples of information processing devices; PC1 is an example of a first information processing device, and PC2 is an example of a second information processing device. PC2 has a similar configuration and functions to PC1, and in the following description, PC1 will be used as a representative example where distinction is not necessary. Instead of PC1 and PC2, for example, a smartphone or a tablet computer may be used.
[0014] As shown in Figure 1, the PC1 in this configuration includes a CPU 11 and a controller 10 which includes memory 12. The PC1 also includes a user interface (hereinafter referred to as "user IF") 13 and a communication interface (hereinafter referred to as "communication IF") 14, which are electrically connected to the controller 10. Note that the controller 10 in Figure 1 is a general term for the hardware and software used to control the PC1, and does not necessarily represent a single piece of hardware actually present in the PC1.
[0015] The CPU 11 executes various processes according to the program read from memory 12 and based on user operations. The CPU 11 is an example of a computer. Memory 12 is a memory area that stores various programs such as the startup program for starting PC1 and various application programs for using the scanner (hereinafter referred to as "apps"), as well as various data such as image data and document data, and various setting information. Memory 12 is also used as a work area when various processes are executed.
[0016] User interface 13 is, for example, a touch panel and includes hardware that displays a screen to inform the user of information, and hardware that accepts user input. Alternatively, user interface 13 may be a combination of a display with display functionality and a keyboard, mouse, trackball, etc., with input acceptance functionality.
[0017] The communication interface 14 includes hardware for communicating with external devices such as PC2 and scanner 3. The communication standards of the communication interface 14 may include, for example, Ethernet® and Wi-Fi®, and may include both wireless and wired communication, or may include multiple configurations that support multiple communication standards. In this embodiment of the scanning system 100, the communication methods between PC1 and PC2, between PC1 and scanner 3, and between PC2 and scanner 3 may each be different methods.
[0018] As shown in FIG. 1, the memory 12 of PC1 stores various data and various programs, including an OS 41, a scan application 42, a management program 43, and a scanner server program 44. A general-purpose scan control program 45 is incorporated in the OS 41. The OS 41 is, for example, iOS (registered trademark), Android (registered trademark), Microsoft Windows (registered trademark), macOS (registered trademark), or Linux (registered trademark). The management program 43 is an example of a first program, and the scanner server program 44 is an example of a second program. The combination of the management program 43 and the scanner server program 44 is an example of a program set.
[0019] The scan application 42 receives user instructions such as designation of a device for executing a scan, designation of a storage location for a reading result, an instruction to execute a scan, and various scan settings. The scan application 42 may further receive instructions for displaying and editing an image of a reading result received from a scanner.
[0020] The general-purpose scan control program 45 is a program that controls the operation of a scanner based on a predetermined standard. The general-purpose scan control program 45 is a program that utilizes the scan control function of the OS 41 and is a standard program provided by the OS 41. The general-purpose scan control program 45 is a general-purpose program that supports a plurality of models of scanners conforming to a predetermined standard. Therefore, any scanner having a function corresponding to the general-purpose scan control program 45 can execute a scan based on the standard, regardless of the manufacturer. Examples of scan systems that utilize the general-purpose scan control program 45 include AirPrint and Mopria (registered trademark).
[0021] Note that since the general-purpose scan control program 45 is a general-purpose program corresponding to a plurality of models, the scan settings that can be received are limited to common ones. Therefore, the general-purpose scan control program 45 does not always receive all scan settings that can be executed on a designated scanner.
[0022] In this configuration, OS41 controls the scanner using a general-purpose scan control program 45 and does not accept the installation of individual control programs, such as scanner drivers corresponding to specific models. In this configuration, the scan application 42 is compatible with the general-purpose scan control program 45 and can pass scan jobs to OS41 using a predetermined general-purpose protocol compatible with the general-purpose scan control program 45. Based on the passed scan job, OS41 generates a scan command using the general-purpose scan control program 45 and sends the generated scan command to the specified scanner using the general-purpose protocol. The general-purpose protocol is, for example, IPP, which is an example of a second protocol.
[0023] OS41 also has a function to determine whether the scanner connected to PC1 is compatible with the general-purpose scan control program 45 and to register information of compatible scanners in memory 12. The scan application 42 accepts the selection of a device to perform a scan from the scanners registered in memory 12. However, the scanner 3 of this scan system 100 does not support the standards used by the general-purpose scan control program 45 and is not compatible with the general-purpose protocol. In other words, the scanner 3 cannot receive scan commands generated by OS41, or even if it does receive them, it cannot process them correctly. Alternatively, the scanner 3 of the scan system 100 in this embodiment, for example, supports the standards used by the general-purpose scan control program 45 and is compatible with general-purpose protocols, but has functions that are not supported by the standards used by the general-purpose scan control program 45.
[0024] The management program 43 is a program that manages the operation of scanner 3 and scan server program 44. Specifically, the management program 43 starts the scan server program 44 corresponding to scanner 3 and registers the scan server configured by scan server program 44 as a virtual scanner with OS 41. Once the scan server is registered as a virtual scanner with OS 41, scan applications 42, etc., can select that virtual scanner, i.e., scan server program 44, as the scanner.
[0025] The scan server program 44 is a program that receives scan commands generated by the OS 41 on behalf of the scanner. The scan server program 44 is a program that corresponds to the model of the scanner 3 and can support both the dedicated protocol and the general-purpose protocol that the scanner 3 can support. The dedicated protocol is an example of the first protocol. In this configuration of the scan system 100, when a virtual scanner registered in the OS 41 is selected, the OS 41 passes the generated scan command to the scan server program 44.
[0026] The scanner 3 of the scanning system 100 in this embodiment is a device that has a communication function with PC1 and PC2, and an image reading function that reads an image of a document and acquires image data. The scanner 3 is not limited to a single-function scanning device, but may be, for example, a multifunction printer, a copier, or a fax machine.
[0027] Next, the procedure for the scan process performed on PC1 in the scan system 100 of this embodiment will be explained with reference to the sequence diagrams in Figures 2 to 5. Note that each processing step in the following explanation and flowchart basically represents the processing of the CPU 11 according to instructions written in programs such as the management program 43 and the scan server program 44. The processing by the CPU 11 also includes hardware control using an IF (also called an API) for data exchange with other modules of the OS 41 of PC1. Note that in this specification, the description of OS 41 may be omitted when explaining the operation of each program.
[0028] First, the procedure for registering the virtual scanner before performing a scan will be explained with reference to the sequence diagram in Figure 2. First, the management program 43 is started (S101). The management program 43 is started automatically, for example, when PC1 starts up. The management program 43 may also be started based on user instructions.
[0029] When the management program 43 is started, it first searches for a scan server running on other PCs, etc., that are included in the same scan system 100 as PC1 (S102). In this configuration, the management program 43 queries PC2 of the scan system 100 to see if the scan server program 44 is running. If there are multiple PCs, etc., connected to the same system, the management program 43 on PC1 queries all the other PCs, etc.
[0030] Then, the management program 43 receives response information from PC2 (S103). Note that if the scan server programs 44 on PC1 or PC2 receive an inquiry from another device while running, they respond with information indicating that they are running. If the management program 43 determines that it has received information indicating that it is running ([Yes]), it passes information indicating the scan server program 44 on PC2 to the OS 41 (S104) and requests the OS 41 to register it as a scanner. S104 is an example of the second registration process.
[0031] The management program 43 further sends a list registration request to PC2, requesting that its device information be added to the save destination list of the scan server program 44 on PC2, along with the device's identification information (S105). S105 is an example of the second registration request process. The save destination list is a list that registers devices that receive and save the scanning results obtained by scanning the original document image with the scanner 3 via the scan server program 44.
[0032] Based on the information received in S104, OS41 registers the scan server program 44 running on PC2 as a scanner (S106). As a result, when a scanner selection instruction is received from a scan application 42, etc., OS41 passes the information of the scan server program 44 running on PC2 to the scan application 42, etc., as one of the scanner options. By being able to use the scan server program 44 running on PC2, the scan system 100 as a whole, which shares scanner 3 among multiple PCs, does not need to start multiple scan server programs 44, resulting in less waste for the system as a whole.
[0033] On the other hand, if it determines that it has not received any information indicating that it is running ([None]), the management program 43 instructs the device to start the scan server program 44 (S107). S107 is an example of a startup process and startup step. For example, if PC2 is not started, or if no response information is received within a predetermined time, the management program 43 will determine that it did not receive information indicating that it is running.
[0034] When the scan server program 44 is started, it performs initial setup based on its own information, such as the model information and capability information of the scanner 3 (S108). The scan server program 44 acquires information about the scanner 3 during installation or the last time it was run and stores it in a memory area it manages. Once the scan server program 44 has finished starting up, it notifies the management program 43 of the initial setup information (S109). Based on the information it receives, the management program 43 passes the information of the scan server program 44 to the OS 41 (S110) and requests the OS 41 to register it as a scanner. S110 is an example of the first registration process and is an example of the registration process and registration steps.
[0035] The management program 43 then passes a list registration request to the launched scan server program 44, requesting it to create a save location list and register its own device information (S111). S111 is an example of the first registration request process. Based on the received request, the scan server program 44 registers its own device identification information in the save location list (S112). S112 is an example of the list registration process. If a save location list under its management already exists, the scan server program 44 registers the requested information in that save location list. Also, based on the information received from the management program 43 in S110, the OS 41 registers the launched scan server program 44 as a scanner (S113). In S106 and S113, it is advisable to register the scanner 3 with the OS 41 using a name that indicates scanner 3.
[0036] The scan server program 44 running on PC1 may receive requests to search for the scan server or register to a list from other devices connected to the scan system 100, such as PC2. If a scan server search is received, the scan server program 44 sends information to PC2 indicating that it is running (S114). If a list registration request is received, the scan server program 44 registers the device identification information of the device that sent the list registration request in its own storage list (S115). S115 is an example of the list registration process.
[0037] This completes the preparation for the user of PC1 to perform a scan using scanner 3. However, if the scan server program 44 is running on PC2 and its information is registered as a scanner in OS 41, the scanner information will be lost when PC2 is shut down. The management program 43 of PC1 may, for example, register the scan server program 44 of PC2 as a virtual scanner in OS 41, then periodically communicate with the scan server program 44 of PC2, and if a running scan server program 44 is not found, it may search for a running scan server program 44 on another PC, and if none is found, start the scan server program 44 on PC1.
[0038] Alternatively, instead of creating the save location list when the scan server program 44 is started, it may be permanently stored in a memory area managed by the scan server program 44. For example, a save location list may be created in advance with information on PCs (PC1 and PC2 in this configuration) included in the scan system 100.
[0039] Next, we will explain the procedure for using scanner 3 with the scan application 42 on PC1, after the procedure in Figure 2 described above has been completed and the scan server program 44 is running on PC1 or PC2. When the scan application 42 receives a command to select a scanner, it displays the scanner information registered in OS 41 and accepts the user's selection. In S106 or S113 of Figure 2, since the running scan server program 44 is registered in OS 41, the scan server program 44 is displayed as one of the options.
[0040] With the scan server program 44 selected as the device to perform the scan, the procedure for executing a scan, also known as a pull scan, when the scan application 42 on PC1 receives a scan execution command, will be explained with reference to the sequence diagram in Figure 3.
[0041] When the scan application 42 receives a scan execution instruction (S201), it passes the scan job to the OS 41 (S202). Based on the received scan job, the OS 41 generates a scan command of a general-purpose protocol using the general-purpose scan control program 45, and passes the generated scan command to the selected device, the scan server program 44 (S203). As a result, the scan server program 44 acquires the scan command. S203 is an example of the acquisition process and acquisition step.
[0042] The scan server program 44 sends a status check instruction to the scanner 3 (S204). The scan server program 44 supports a dedicated protocol and can communicate with the scanner 3 using this protocol. Based on the received status check instruction, the scanner 3 responds to the scan server program 44 of the device that sent the status check instruction with information indicating its own status (S205). The scanner's status may include, for example, "available" or "unavailable," and the scanner 3 may also respond with more detailed information.
[0043] If the scan server program 44 determines that it has received response information indicating availability ([OK]), it converts the general-purpose protocol scan command received in S203 into a dedicated protocol scan command (S206). The scan server program 44 then sends the converted scan command to the scanner 3 using the dedicated protocol (S207). S207 is an example of the transmission process and transmission step.
[0044] Scanner 3 performs a scan based on the dedicated protocol scan command received in S207 (S208). In S208, Scanner 3 performs a scan after receiving a scan start command from the user who placed the document. Then, Scanner 3 sends the scan result of the scanned document to the scan server program 44 of the device that sent the scan command (S209).
[0045] The scan server program 44 receives the reading result transmitted from the scanner 3 in S209. S209 is an example of the reception process and reception step. The communication in S209 is also communication using a dedicated protocol. The scan server program 44 applies image correction to the received reading result (S210). S210 is an example of the image correction process. As image correction, the scan server program 44 performs, for example, character recognition processing and moiré removal processing. The scan server program 44 may also accept instructions from the user regarding whether or not to perform image correction. If image correction is performed, more suitable image data can be obtained.
[0046] The scan server program 44 passes the corrected image data to the OS 41 of the device that sent the scan command in S203 (S211). The OS 41 passes the received image data to the scan application 42, which is the program that accepted the scan job in S202 (S212). As a result, the scan application 42 receives the reading result from the scanner 3.
[0047] On the other hand, if the response received in S205 is unavailable, or if no response is received from scanner 3 after a predetermined time has elapsed ([NG]), the scan server program 44 returns an error notification to OS 41 indicating that scanner 3 is in an error state (S213). When OS 41 receives an error notification from scan server program 44, it displays a message to inform user IF 13 of the error (S214).
[0048] This allows scanning results to be obtained from the scanning application 42 using the scanner 3 by selecting the scan server program 44 as an alternative to scanner 3, even if scanner 3 does not support a general-purpose protocol. Furthermore, image correction of the scanning results and error notifications in case of errors are not required.
[0049] Next, the procedure for instructing scanner 3 to perform a scan will be explained with reference to the sequence diagram in Figure 4. Figure 4 is a sequence diagram showing the procedure for executing a scan after scanner 3 receives a scan command, also known as a push scan. The general-purpose scan control program 45 does not support the push scan function, so the running scan server program 44 is used.
[0050] If scanner 3 receives a scan start instruction on its control panel while it has not received a scan command (S301), it sends a search request to a PC that can communicate appropriately with the currently running scanner via the scan system 100 network (S302). In other words, scanner 3 searches for a PC that can communicate using a dedicated protocol. The scan server program 44 receives the search request from scanner 3 and responds with its own device identification information (S303). S303 is an example of the response process.
[0051] In S303, the scan server program 44 also passes to the scanner 3 a list of storage locations stored in the memory area it manages. The storage location list is, for example, the list created in S111 in Figure 2, and is a list of devices that may communicate with the scanner 3 using the scan server program 44.
[0052] Scanner 3 displays a list of destination information indicating where the scanned results will be saved on its control panel based on the received destination list (S304), and accepts the user's selection (S305). The destination information may be the destination list itself, or it may be the destination list converted into information that is easy for the user to understand. Furthermore, Scanner 3 accepts the user's instruction to start scanning, scans and reads the image of the document (S306), and sends the scan result and the destination information received in S305 to the scan server program 44 (S307).
[0053] The scan server program 44 associates the received read results with the storage location information and stores them in a memory area it manages (S308). S308 is an example of the storage process. By receiving storage location information indicating the storage location registered in scanner 3 along with the reading results, the scan server program 44 can distinguish and store the reading results for each device such as PC1. The memory area is located in the memory (12 or 22, see Figure 1) of the device in which the scan server program 44 is running.
[0054] The management program 43 periodically, or at the user's instruction, passes an output request to the running scan server program 44 requesting read results with its own device designated as the save location (S309). If the management program 43 and the scan server program 44 are running on the same device, the management program 43 inputs the output request to the scan server program 44. If the scan server program 44 is running on a different device than the management program 43, the management program 43 adds its own device identification information to the output request and sends the output request to the device running the scan server program 44.
[0055] The scan server program 44, upon receiving the output request, determines whether or not there is a read result in the memory area it manages that is intended for the management program 43 that made the output request (S310). In other words, the scan server program 44 determines whether or not there is a read result in which the identification information attached to the received output request matches the storage location information attached to the read result.
[0056] If the scan server program 44 determines that there is a matching read result ([Yes]), it passes the read result to the management program 43 that requested it (S311). If there are multiple matching read results, the scan server program 44 passes all of them. Since the read results pushed from scanner 3 are temporarily stored by the scan server program 44 and later saved to the actual storage location, the scan server program 44 does not need to be running when it receives the read results. If the scan server program 44 determines that there is no read result that matches the identification information attached to the output request and the storage location information attached to the read result, it may return information indicating that there is no match.
[0057] The management program 43 saves the received reading results as a file (S312). S312 is an example of the saving process. The management program 43 may also notify the user that a file has been created. The management program 43 may also save the file to a predetermined folder, such as a folder under its management, or it may determine the destination folder based on user instructions. As a result, the image data of the document that has been ordered to be scanned by the scanner 3 is appropriately saved by the management program 43, thus realizing so-called push scanning. Furthermore, by saving the scanning results as a file, the user can easily find and check the scanning results that were pushed from the scanner 3 in the folder where the file is saved.
[0058] The scan server program 44 deletes the read results that have been passed from the memory area it manages (S313). This saves the amount of data in the memory area. The scan server program 44 may delete the results after confirming that the management program 43 has finished saving them, or if they remain in the memory area for a certain period of time, or it may delete them based on user instructions.
[0059] Figure 4 illustrates the procedure for a push scan in which the management program 43 receives the reading results. However, it is also possible to have the scan application 42 receive the reading results of the push scan. This procedure will be explained with reference to the sequence diagram in Figure 5. In the following, steps that are the same as those in Figure 3 or Figure 4 will be denoted by the same reference numerals and their explanation will be omitted.
[0060] In this procedure, first, with the scan server program 44, which replaces scanner 3, selected, similar to the pull scan procedure shown in Figure 3, the scan application 42 on PC1 receives a scan execution command (S201). The scan application 42 passes the scan job to OS 41 using a general-purpose protocol (S202). OS 41 generates a scan command and passes it to the scan server program 44 (S203).
[0061] The scan server program 44 determines whether the read result, which has the identification information of the device that sent the received scan command added to it, is in the memory area under its management (S401). S401 is the same process as S310 in Figure 4, but instead of making the determination based on the identification information attached to the output request, the scan server program 44 makes the determination based on the information of the device that sent the scan command. If the OS 41 and the scan server program 44 are running on the same device, the scan server program 44 determines whether or not there is a read result with the identification information of its own device added to it.
[0062] Note that users performing a push scan must have already scanned the document using scanner 3 before issuing the scan command in S201. In other words, in the case of a push scan, steps S301 to S308 in Figure 4 have already been executed. In this case, the scan server program 44 does not delete the scan result in S313, but stores it in its own managed memory area.
[0063] If the scan server program 44 determines that there is a corresponding read result ([Yes]), it passes that read result to the OS 41 that output the scan command (S402). S402 is an example of read result response processing. If the scan server program 44 is running on a device other than the scan application 42, the scan server program 44 sends the read result to the device that sent the scan command.
[0064] The OS41, upon receiving the reading result, passes the received reading result to the scan application 42 (S403). In other words, by having the scanner 3 perform a scan in advance, the reading result can be obtained using the scan application 42.
[0065] If the scan server program 44 determines that there are no matching reading results ([None]), it performs the same procedure as the pull scan procedure shown in Figure 3. That is, the scan server program 44 sends a status check to the scanner 3 (S204) and receives a response from the scanner 3 (S205). If the response is OK ([OK]), the scan server program 44 converts the received scan command (S206) and sends the converted scan command to the scanner 3 (S207). S207 in this figure is also an example of the transmission process and transmission step.
[0066] Scanner 3 performs a scan based on the received scan command (S208) and sends the reading result to scan server program 44 (S209). Scan server program 44 passes the received reading result to OS 41, which output the scan command (S404). S404 is the same process as S402. OS 41, having received the reading result, passes the received reading result to scan application 42 (S405). S405 is the same process as S403. Note that scan server program 44 may also perform image correction before S402 and S404.
[0067] In other words, when the scan server program 44 receives a scan command, it returns the read result of the push scan if it has stored it, and sends a scan command to the scanner 3 if it has not stored it. For users using the scan application 42, in either case, they only need to perform an operation to indicate a read command, making it easy to use. Even if the scan server program 44 is running on a device other than the scan application 42, it can determine the storage location of the read result based on the device's identification information and storage location information, so it can pass the read result to the appropriate storage location.
[0068] On the other hand, if an OK response is not received from scanner 3 ([NG]), the scan server program 44 returns an error notification to OS 41 (S213), and OS 41 displays a message informing user IF 13 of the error (S214).
[0069] This allows scanner 3, which does not support general-purpose protocols, to perform scans based on scan commands from the general-purpose scan control program 45, and to acquire the reading results using the scan application 42 on PC1 or PC2. Furthermore, even when using a general-purpose scan control program 45 that does not support push scanning, it is possible to simulate the same processing as push scanning.
[0070] The scan server program 44 may run continuously while PC1 and PC2 are running, or it may terminate based on a user's termination command, for example. Before terminating, the scan server program 44 may notify the management program 43, which is registered with it, of its termination.
[0071] As explained in detail above, in this embodiment of the scan system 100, if a scanner 3 compatible with a dedicated protocol is included in the system, the management program 43 starts a scan server program 44 corresponding to the scanner 3 and registers the started scan server program 44 with the OS 41. This makes the scan server program 44 selectable as a scanner in the OS 41. Furthermore, when the OS 41 receives a scan job specified as the output destination for the scan server program 44, it passes a scan command based on that scan job to the scan server program 44. The scan server program 44 sends the scan command to the scanner 3 using the dedicated protocol, receives the reading result from the scanner 3, and returns it to the OS 41. As a result, even if the scanner 3 does not support a general-purpose protocol, it is possible to issue a reading command from a scan application 42, etc., and obtain the reading result.
[0072] Next, a second embodiment of the scanning system will be described in detail with reference to the attached drawings. This embodiment discloses a scanning system 100 with the same hardware configuration as the first embodiment, but in which the scan server program 44 is not shared among multiple PCs. In other words, in this embodiment of the scanning system 100, each PC using the scanner 3 uses its own scan server program 44. In the following, the same configurations and procedures as in the first embodiment will be denoted by the same reference numerals as in the first embodiment and their explanation will be omitted.
[0073] The procedure for registering a virtual scanner in the scan system 100 of this configuration will be explained with reference to the sequence diagram in Figure 6. When the management program 43 is started (S101), the management program 43 starts the scan server program 44 of its own device without searching for other PCs (S107).
[0074] The scan server program 44 performs initial setup (S108) and notifies the management program 43 of the initial setup information (S109). Based on the information received from the scan server program 44, the management program 43 passes the information of the scan server program 44 to the OS 41 (S110). Based on the information received from the management program 43, the OS 41 registers the scan server program 44 as a scanner (S113).
[0075] In this configuration, as will be described later, the scan server program 44 receives only data addressed to its own device. Therefore, the scan server program 44 on PC1 does not need to generate a save destination list, nor does it accept list registration requests from other PCs. A user who wishes to use scanner 3 on PC2 will, in the same way as on PC1, start the management program 43 on PC2, start the scan server program 44 on PC2, and register it with the OS 51 on PC2.
[0076] The procedure for using scanner 3 on PC1 after the steps in Figure 6 will be explained below. The procedure for so-called pull scanning is the same as the procedure explained in the sequence diagram in Figure 3. That is, the scan server program 44 communicates with scanner 3 using a dedicated protocol, checks the status of scanner 3 (S204~S205), and sends a scan command (S206~S207). Scanner 3 sends the reading result to the scan server program 44 (S208~S209). The scan server program 44 receives the reading result and passes it to its own OS 41 (S211). Note that the scan server program 44 may also perform image correction.
[0077] Next, the procedure for so-called push scanning will be explained with reference to the sequence diagram in Figure 7. Figure 7 is a sequence diagram for the case where the procedure in Figure 6 has been completed on both PC1 and PC2, and both the scan server program 44 on PC1 and the scan server program 44 on PC2 are running.
[0078] Scanner 3 receives a scan start command from the control panel (S301) and sends a search request to each PC of the scan system 100 (S302). The search request in S302 is passed to both the scan server program 44 of PC1 and the scan server program 44 of PC2. Each scan server program 44 that receives the search request responds to Scanner 3. The scan server program 44 of PC1 responds to Scanner 3 via the communication IF 14 of PC1 (S501). The scan server program 44 of PC2 responds to Scanner 3 via the communication IF 24 of PC2 (S502). S501 and S502 are examples of response processing.
[0079] Scanner 3 displays a list of selectable storage destinations based on the received response (S304). Having received responses from both the scan server program 44 on PC1 and the scan server program 44 on PC2, Scanner 3 displays PC1 and PC2 as selectable storage destinations. Scanner 3 accepts the user's selection from the displayed list (S305), accepts the user's instruction to start scanning, and reads the image of the document (S306).
[0080] If the selection received in S305 is PC1 ([PC1]), then scanner 3 sends the reading result to the scan server program 44 on PC1 (S503). The scan server program 44 on PC1 saves the received reading result to memory 12 (S504). In this configuration, the scan server program 44 only receives read results that are sent to its own device. Therefore, the scanner 3 does not need to add destination information to the read results before sending them. Furthermore, the management program 43 does not need to receive the reading results from the scan server program 44.
[0081] If the selection received in S305 is PC2 ([PC2]), the scanner 3 sends the reading result to the scan server program 44 on PC2 (S505). The scan server program 44 on PC2 saves the received reading result to memory 22 (S506). After that, you may execute the processes S309-S311 and S313 shown in Figure 4, or you may execute the process shown in Figure 5.
[0082] As explained in detail above, even with this embodiment of the scan system 100, it is possible to issue reading instructions to the scanner 3, which does not support general-purpose protocols, from the scan application 42, etc., and to obtain the reading results. Furthermore, it is possible to simulate push scanning, which is not supported by the general-purpose scan control program 45. In this embodiment, communication between PC1 and PC2 is unnecessary compared to the first embodiment, resulting in a lower communication load. On the other hand, in the first embodiment, for example, the processing load on PC1 is reduced by using the scan server program 44 on PC2.
[0083] It should be noted that each embodiment is merely illustrative and does not limit the present invention in any way. Therefore, the technology disclosed herein can naturally be improved and modified in various ways without departing from its essence. For example, the number of PCs and printers constituting each embodiment is not limited to the illustrated examples. For example, the scan system 100 may include two or more scanners, and may include scanners compatible with the general-purpose scan control program 45. It may also include a PC that does not have the scan server program 44.
[0084] Furthermore, for example, in the push scan procedure, the scanner 3 sends the reading result to the scan server program 44, which stores it in a memory area under its management. However, it is also possible to store it in the scanner 3's own memory. In that case, the scan server program 44 may receive a request for the reading result from the management program 43 or the OS 41, communicate with the scanner 3, and determine whether or not the reading result is in the scanner 3's memory.
[0085] Alternatively, for example, scanner 3 may accept registration of the save location list and store it in advance, instead of receiving it from the scan server program 44. For example, scanner 3 may accept registration of the save location list through direct input via its control panel, or it may receive and store it from a scan application 42, etc. On the other hand, if scanner 3 is configured to receive the save location list from the scan server program 44, there is no need to store it in advance on scanner 3.
[0086] Furthermore, for example, the scan server program 44 does not need to perform correction processing. There may be another program that performs the correction processing.
[0087] In the second form, the management program 43 may be included in the scan server program 44. In other words, the scan server program 44 may have a function to register itself with the OS 41 when it is started.
[0088] Furthermore, in any flowchart disclosed in each embodiment, the execution order of any multiple processes in any multiple steps can be arbitrarily changed or executed in parallel, as long as no inconsistencies arise in the processing content.
[0089] Furthermore, the processes disclosed in the embodiments may be executed by a single CPU, multiple CPUs, hardware such as an ASIC, or a combination thereof. Also, the processes disclosed in the embodiments can be implemented in various forms, such as a recording medium or method that stores a program for executing the process. [Explanation of symbols]
[0090] 1, 2 PC 3 Scanners 11, 21 CPU 12, 22 memory 13, 23 User IF 14, 24 Communication IF 41, 51 OS 43 Management Programs 44 Scan Server Program
Claims
1. An extension program executable by a computer of an information processing device that can communicate with a scanning device via a communication interface, wherein the operating system of the information processing device has a general-purpose scanning function, and the extension program corresponds to the scanning device and is a program for extending the general-purpose scanning function of the operating system. The aforementioned extension program, when executed by the computer, will result in the information processing device receiving the information. When the operating system of the information processing device receives a scan job for executing a scan using the scanning device, A scan command transmission process that transmits a specific scan command to the scanning device via the communication interface based on the received scan job, The scanning device receives the scanning result from the scanning device via the communication interface in response to receiving the specific scan command transmitted from the information processing device, and the scanning result is received from the scanning device via the communication interface. Make it run, The aforementioned extension program, when executed by the computer, further provides the information processing device with: A status confirmation process that checks the status of the scanning device by querying the scanning device, If the result of the status check process indicates that the scanning device is unavailable, an error notification process is performed to notify an error. An extension program characterized by causing the execution of [a specific action].
2. In the extension program described in claim 1, In the error notification process, the error is notified to the operating system. An extension program characterized by the following features.
3. In the extension program described in claim 1 or claim 2, The status confirmation process is performed before the specific scan command is sent to the scanning device. An extension program characterized by the following features.
4. In an extension program according to any one of claims 1 to 3, The aforementioned extension program, when executed by the computer, will result in the information processing device receiving the information. A correction process for correcting the reading result received from the scanning device via the communication interface, Output processing that outputs the corrected reading result as scan data, An extension program characterized by causing the execution of [a specific action].
5. In an extension program according to any one of claims 1 to 4, The scanning device conforms to a first scanning protocol, and the operating system of the information processing device conforms to a second scanning protocol that is different from the first scanning protocol. An extension program characterized by the following features.
6. In the extended program described in claim 5, The second scanning protocol is IPP. An extension program characterized by the following features.
7. In the extension program described in claim 1, The scanning device conforms to the second scanning protocol, and the operating system of the information processing device conforms to the second scanning protocol. An extension program characterized by the following features.
8. In the extended program described in claim 7, The second scanning protocol is IPP. An extension program characterized by the following features.
9. In an extension program according to any one of claims 1 to 8, The aforementioned extension program is registered with the operating system. An extension program characterized by the following features.