Program set, method for obtaining reading results, and information processing device
The program set allows information processing devices to communicate with scanners using unsupported protocols by starting and registering a second program, enhancing scanner availability and simplifying user interaction.
Patent Information
- Application Number
- JP2024195789
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-11-08
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2040-03-10
AI Technical Summary
Scanners that do not support a predetermined general-purpose communication protocol, such as IPP, cannot be used with information processing devices, and user interfaces for scanners using general-purpose protocols are cumbersome and time-consuming.
A program set that includes a first program to start and register a second program corresponding to the scanner's protocol, allowing the information processing device to send scan commands and receive results using the scanner's supported protocol, even if it does not support the general-purpose protocol.
Increases the availability of scanners by enabling communication with devices that do not support the general-purpose protocol, simplifying the user interface and reducing the time required for settings changes.
Smart Images

Figure 0007761118000001 
Figure 0007761118000002 
Figure 0007761118000003
Abstract
Description
[Technical Field]
[0001] The technical field disclosed in this specification relates to a program set for controlling a scanner, a method for obtaining a read result, and an information processing device. [Background technology]
[0002] In an information processing device capable of communicating with a device such as a scanner, a technology for performing data communication with the scanner using a predetermined general-purpose protocol is known. For example, Patent Document 1 discloses a configuration in which data communication between the information processing device and the scanner is performed using a protocol called IPP (Internet Printing Protocol). Patent Document 1 further discloses a configuration in which, since IPP is a general-purpose protocol and does not support a specific function such as setting the opening direction of a document, the specific function is realized by making it possible to set the specific function on the scanner side. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2016-111560 Summary of the Invention [Problem to be solved by the invention]
[0004] In order for an information processing device to communicate with a scanner using a predetermined general-purpose communication protocol, the destination scanner must support that predetermined general-purpose communication protocol. Therefore, when a scanning system incorporated in an information processing device performs data communication using a predetermined general-purpose communication protocol, a scanner that does not support that predetermined general-purpose communication protocol cannot be used. For example, when an information processing device performs data communication using IPP as in Patent Document 1, a scanner that does not support IPP cannot be used.
[0005] Even if a scanner supports a specific general-purpose communication protocol, if the scanner uses settings that are not supported by IPP, the user has to switch the settings on the scanner each time, and the scanner's user interface is difficult to use, which is time-consuming for the user.Similar problems arise when scanning using a general-purpose driverless scanning function such as AirPrint (registered trademark), because it uses a general-purpose communication protocol.
[0006] This specification discloses a technique for increasing the availability of a scanner when the scanner is used from an information processing device. [Means for solving the problem]
[0007] A program set made to solve this problem is a program set executable by a computer of a first information processing device, the program set including a first program and a second program, wherein the first program causes the computer to execute a startup process for starting the second program when a scanner corresponding to a first protocol is capable of communicating through a communication interface of the first information processing device and the second program corresponding to the scanner is not running, and a first registration process for registering the second program as a scanner in an operating system of the first information processing device when the second program is started in the startup process, and the second program causes the computer to execute a transmission process for sending a scan command in the first protocol that the scanner can support to the scanner via the communication interface based on the scan job when the operating system receives a scan job in which the second program registered in the operating system is specified as an output destination, the second program, based on the scan job, and a reception process for receiving the scan results of the scanner scanning an original in accordance with the scan command sent in the transmission process via the communication interface using the first protocol.
[0008] According to the program set disclosed in this specification, if a second program corresponding to a scanner that supports the first protocol is not running, the first information processing device starts the second program and registers it as a scanner in the operating system (hereinafter referred to as "OS"). This makes the second program selectable in the OS. Furthermore, when the OS receives a scan job using the second protocol that specifies the second program as the output destination, the second program sends a scan command to the scanner using the first protocol based on the scan job and receives the scan results from the scanner. This allows the first information processing device to issue a scan instruction to a scanner that does not support the second protocol and receive the scan results.
[0009] A control method for realizing the above functions, an information processing device, and a computer-readable storage medium storing an application program are also novel and useful. [Effects of the Invention]
[0010] The program set disclosed in this specification realizes a technique for increasing the availability of a scanner when the scanner is used from an information processing device. [Brief explanation of the drawings]
[0011] [Figure 1] 1 is a schematic configuration diagram of a scan system according to an embodiment; [Figure 2] FIG. 10 is a sequence diagram showing a procedure for starting and registering a scan server. [Figure 3] FIG. 10 is a sequence diagram showing a procedure of a pull scan. [Figure 4] FIG. 10 is a sequence diagram showing a procedure of push scanning. [Figure 5] FIG. 10 is a sequence diagram showing the procedure of a program that can execute both pull scanning and push scanning. [Figure 6]FIG. 10 is a sequence diagram showing the procedure for starting up and registering a scan server in the second embodiment. [Figure 7] FIG. 10 is a sequence diagram showing the procedure of push scanning in the second embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0012] A first embodiment of a scanning system will be described in detail below with reference to the accompanying drawings. This embodiment discloses a scanning system including multiple personal computers (hereinafter referred to as "PCs") and scanners connected to the PCs.
[0013] As shown in FIG. 1, the scanning system 100 of this embodiment includes a PC1, a PC2, and a scanner 3, all of which are connected to a common network. PC1 and PC2 are devices that send scan instructions to the scanner 3, receive image data from the scanner 3, edit the received image data, and so on. Both PC1 and PC2 are examples of information processing devices, with PC1 being an example of a first information processing device and PC2 being an example of a second information processing device. Note that PC2 is a device that has the same configuration and functions as PC1, and the following description will be limited to PC1 as a representative device to the extent that distinction is not necessary. Instead of PC1 or PC2, a smartphone or a tablet computer, for example, may be used.
[0014] As shown in Fig. 1, the PC 1 of this embodiment includes a controller 10 including a CPU 11 and a memory 12. The PC 1 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 Fig. 1 is a collective term for hardware and software used to control the PC 1, and does not necessarily represent a single piece of hardware that actually exists in the PC 1.
[0015] The CPU 11 executes various processes in accordance with programs read from the memory 12 and based on user operations. The CPU 11 is an example of a computer. The memory 12 is a storage area that stores various programs such as a startup program for starting the PC 1 and various application programs (hereinafter referred to as "apps") for using the scanner, various data such as image data and document data, and various setting information. The memory 12 is also used as a work area when various processes are executed.
[0016] The user IF 13 is, for example, a touch panel, and includes hardware for displaying a screen for notifying the user of information and hardware for accepting input operations by the user. Note that the user IF 13 may be a combination of a display having a display function and a keyboard, mouse, trackball, or the like having an input acceptance function.
[0017] The communication IF 14 includes hardware for communicating with external devices such as the PC 2 and the scanner 3. The communication standards of the communication IF 14 include, for example, Ethernet (registered trademark) and Wi-Fi (registered trademark), and may include wireless communication and wired communication, or may include multiple configurations corresponding to multiple communication standards. In the scanning system 100 of this embodiment, the communication method between the PC 1 and the PC 2, the communication method between the PC 1 and the scanner 3, and the communication method between the PC 2 and the scanner 3 may be different from each other.
[0018] As shown in FIG. 1, the memory 12 of the PC 1 stores various data and programs, including an OS 41, a scan application 42, a management program 43, and a scan server program 44. The OS 41 incorporates a general-purpose scan control program 45. The OS 41 may be, 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 scan server program 44 is an example of a second program. The combination of the management program 43 and the scan server program 44 is an example of a program set.
[0019] The scan application 42 receives user instructions such as designation of a device to perform scanning, designation of a location to save the scanned results, instructions to perform scanning, various scan settings, etc. The scan application 42 may also receive instructions to display or edit the image of the scanned results received from the scanner.
[0020] The generic scan control program 45 is a program that controls the operation of the scanner based on a predetermined standard. The generic 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 generic scan control program 45 is a general-purpose program that is compatible with multiple models of scanners that support a predetermined standard. Therefore, any scanner equipped with a function compatible with the generic scan control program 45 can perform standard-based scanning, regardless of the manufacturer. Examples of scanning systems that utilize the generic scan control program 45 include AirPrint and Mopria (registered trademark).
[0021] Since the general-purpose scan control program 45 is a general-purpose program that supports multiple models, the scan settings that it can accept are limited to general ones, and therefore the general-purpose scan control program 45 does not necessarily accept all scan settings that can be executed by the specified scanner.
[0022] The OS 41 of this embodiment controls the scanner using a generic scan control program 45, and is a version that does not accept the installation of individual control programs such as scanner drivers for individual models. The scan application 42 of this embodiment is compatible with the generic scan control program 45 and can pass a scan job to the OS 41 using a predetermined generic protocol compatible with the generic scan control program 45. The OS 41 generates a scan command using the generic scan control program 45 based on the passed scan job and transmits the generated scan command to the specified scanner using the generic protocol. The generic protocol is, for example, IPP, which is an example of the second protocol.
[0023] The OS 41 also has a function to determine whether a scanner connected to the PC 1 is compatible with the generic scan control program 45 and to register information about compatible scanners in the memory 12. The scan application 42 accepts the selection of a device to execute a scan from the scanners registered in the memory 12. Note that the scanner 3 of the scan system 100 of this embodiment does not support the standard used by the generic scan control program 45 and is not compatible with the generic protocol, for example. In other words, the scanner 3 cannot receive scan commands generated by the OS 41, or cannot process them correctly even if it receives them. Alternatively, the scanner 3 of the scanning system 100 of this embodiment, for example, supports the standard used by the general-purpose scanning control program 45 and is also compatible with general-purpose protocols, but has functions that are not supported by the standard used by the general-purpose scanning control program 45.
[0024] The management program 43 is a program that manages the operation of the scanner 3 and the operation of the scan server program 44. Specifically, the management program 43 is a program that starts the scan server program 44 corresponding to the scanner 3 and registers the scan server configured by the scan server program 44 as a virtual scanner in the OS 41. Once the scan server is registered as a virtual scanner in the OS 41, the virtual scanner, i.e., the scan server program 44, can be selected as a scanner in the scan application 42, etc.
[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 is compatible with both dedicated protocols and general-purpose protocols that are compatible with the scanner 3. The dedicated protocol is an example of a first protocol. In the scan system 100 of this embodiment, 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 of this embodiment is a device that has a function of communicating with the PC 1 and the PC 2 and an image reading function of reading an image of an original document to obtain image data. The scanner 3 is not limited to a device with a single scanning function, and may be, for example, a multifunction device, a copier, or a fax machine.
[0027] Next, the procedure of the scan processing executed by PC 1 in scan system 100 of this embodiment will be described with reference to the sequence diagrams of Figures 2 to 5. Note that the processes and each processing step of the flowcharts in the following description basically represent processing by CPU 11 in accordance with instructions written in programs such as management program 43 and scan server program 44. Processing by CPU 11 also includes hardware control using an IF (also called API) for data exchange with other modules of OS 41 of PC 1. Note that in this specification, there are cases where the operation of each program is described without mentioning OS 41.
[0028] First, the procedure for registering a virtual scanner before executing a scan will be described with reference to the sequence diagram in Fig. 2. First, the management program 43 is started (S101). The management program 43 is started automatically when the PC 1 is started, for example. The management program 43 may also be started based on a user instruction.
[0029] When the management program 43 is started, it first searches for scan servers that are running on other PCs, etc. that are included in the same scan system 100 as PC1 (S102). In this embodiment, the management program 43 inquires of PC2 in the scan system 100 whether or not the scan server program 44 is running. If there are multiple PCs, etc. connected to the same system, the management program 43 of PC1 inquires of all the other PCs, etc.
[0030] Then, the management program 43 receives response information from PC2 (S103). If the scan server program 44 of PC1 or PC2 receives an inquiry from another device while it is running, it responds with information indicating that it is running. If it determines that it has received information indicating that it is running ([Yes]), the management program 43 passes information indicating the scan server program 44 of PC2 to the OS 41 (S104) and requests that the OS 41 register it as a scanner. S104 is an example of a second registration process.
[0031] The management program 43 further sends to PC2 a list registration request to add information about its own device to the save destination list of the scan server program 44 of PC2, along with its own device identification information (S105). S105 is an example of a second registration request process. The save destination list is a list for registering devices that receive and save the results of scanning an image of an original document with the scanner 3 via the scan server program 44.
[0032] Based on the information received in S104, the OS 41 registers the scan server program 44 running on the PC 2 as a scanner (S106). As a result, when an instruction to select a scanner is received by the scan application 42 or the like, the OS 41 passes information about the scan server program 44 running on the PC 2 to the scan application 42 or the like as one of the scanner options. By being able to use the scan server program 44 running on the PC 2, there is no need to start multiple scan server programs 44 in the entire scan system 100 in which the scanner 3 is shared by multiple PCs, and there is less waste in the entire system.
[0033] On the other hand, if it is determined that no information indicating that the program is running has been received ([None]), the management program 43 instructs the scan server program 44 of its own device to be started (S107). S107 is an example of a startup process and a startup step. For example, if the management program 43 does not receive response information within a predetermined time, such as when the PC 2 is not started, the management program 43 determines that it has not received information indicating that the PC 2 is running.
[0034] When the scan server program 44 is started, it performs initial settings based on its own information, such as model information and capability information about the scanner 3 (S108). The scan server program 44 acquires information about the scanner 3 at the time of installation or the previous execution and stores it in a storage area managed by the scan server program 44. When the scan server program 44 completes its startup, it notifies the management program 43 of the initial setting information (S109). Based on the received information, the management program 43 passes information about the scan server program 44 to the OS 41 (S110) and requests that the OS 41 register it as a scanner. S110 is an example of a first registration process, and is an example of a registration process and a registration step.
[0035] The management program 43 further passes a list registration request to the launched scan server program 44, requesting that the program create a save destination list and register information about the program's own device (S111). S111 is an example of a first registration request process. The scan server program 44 registers the program's own device identification information in the save destination list based on the received request (S112). S112 is an example of a list registration process. If the scan server program 44 already has a save destination list that it manages, the scan server program 44 registers the requested information in that save destination list. Furthermore, the OS 41 registers the launched scan server program 44 as a scanner based on the information received from the management program 43 in S110 (S113). In S106 and S113, it is preferable to have the OS 41 register the scanner 3 with a name indicating the scanner 3.
[0036] The scan server program 44 running on PC1 may receive a scan server search or list registration request from another device connected to the scan system 100, such as PC2. When a scan server search request is received, the scan server program 44 sends information indicating that the program is running to PC2 (S114). When 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 destination list (S115). S115 is an example of list registration processing.
[0037] This completes the process for the user of PC1 to use scanner 3 to perform a scan. Note that if scan server program 44 is running on PC2 and information about that scan server program 44 is registered as a scanner in OS 41, the scanner information will be lost when PC2 is shut down. For example, PC1's management program 43 may register PC2's scan server program 44 as a virtual scanner in OS 41, and then periodically communicate with PC2's scan server program 44. If the running scan server program 44 is not found, it may search for a scan server program 44 running on another PC, and if not found, start PC1's scan server program 44.
[0038] Furthermore, instead of creating the destination list when the scan server program 44 is started, the destination list may be permanently stored in a storage area managed by the scan server program 44. For example, a destination list may be created in which information about the PCs and the like included in the scan system 100 (in this embodiment, PC1 and PC2) is registered in advance.
[0039] Next, we will explain the procedure for using the scanner 3 with the scan application 42 of 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 an instruction to select a scanner, it displays information about the scanners registered in the 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 the OS 41, the scan server program 44 is displayed as one of the options.
[0040] The procedure for executing a scan, or the so-called pull scan procedure, when the scan server program 44 is selected as the device to perform the scan and the scan application 42 of PC1 receives an instruction to perform the scan will be explained with reference to the sequence diagram of Figure 3.
[0041] When the scan application 42 receives an instruction to execute a scan (S201), it passes the scan job to the OS 41 (S202). Based on the received scan job, the OS 41 uses the general-purpose scan control program 45 to generate a scan command in a general-purpose protocol, and passes the generated scan command to the scan server program 44, which is the selected device (S203). As a result, the scan server program 44 acquires the scan command. S203 is an example of an acquisition process and an acquisition step.
[0042] The scan server program 44 sends an instruction to the scanner 3 to check its status (S204). The scan server program 44 supports a dedicated protocol and can communicate with the scanner 3 using the dedicated protocol. Based on the received status check instruction, the scanner 3 responds with information indicating its own status to the scan server program 44 of the device that sent the status check instruction (S205). The scanner status may include, for example, available or unavailable, and the scanner 3 may be able to 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 scan command of the general-purpose protocol received in S203 into a scan command of the dedicated protocol (S206). The scan server program 44 transmits the converted scan command to the scanner 3 using the dedicated protocol (S207). S207 is an example of a transmission process and a transmission step.
[0044] The scanner 3 executes scanning based on the scan command of the dedicated protocol received in S207 (S208). In S208, the scanner 3 executes scanning in response to a scan start instruction from the user who set the document. The scanner 3 then transmits the results of scanning the document to the scan server program 44 of the device that sent the scan command (S209).
[0045] The scan server program 44 receives the read result transmitted from the scanner 3 in S209. S209 is an example of a receiving process and a receiving step. The communication in S209 is also communication using a dedicated protocol. The scan server program 44 performs image correction on the received read result (S210). S210 is an example of image correction processing. As image correction, the scan server program 44 executes, for example, character recognition processing and moire removal processing. The scan server program 44 may also receive instructions from the user as to whether or not to perform image correction. By performing image correction, 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 results of the scan by the scanner 3.
[0047] On the other hand, if the response received in S205 is not available, or if no response is received from the scanner 3 after a predetermined time has elapsed ([NG]), the scan server program 44 returns an error notification indicating that the scanner 3 is in an error state to the OS 41 (S213). When the OS 41 receives the error notification from the scan server program 44, it causes the user IF 13 to display a message informing the user of the error (S214).
[0048] As a result, by selecting the scan server program 44 in place of the scanner 3, even if the scanner 3 does not support the general-purpose protocol, the scan results can be obtained from the scan application 42 using the scanner 3. Note that image correction of the scan results and error notification in the event of an error do not need to be performed.
[0049] Next, the procedure for causing the scanner 3 to execute a scan will be further explained with reference to the sequence diagram in Fig. 4. Fig. 4 is a sequence diagram showing the procedure for executing a scan when the scanner 3 receives an instruction to execute a scan, that is, the procedure for a so-called push scan. The general-purpose scan control program 45 does not support the push scan function, and the activated scan server program 44 is used.
[0050] When the scanner 3 receives an instruction to start scanning on its operation panel without receiving a scan command (S301), it sends a search request for PCs that can properly communicate with the scanner 3 via the network of the scan system 100 (S302). In other words, the scanner 3 searches for PCs that can communicate using a dedicated protocol. In response to the search request from the scanner 3, the scan server program 44 responds with the device identification information of the scanner 3 (S303). S303 is an example of response processing.
[0051] In S303, the scan server program 44 also passes the destination list stored in the storage area managed by the scan server program 44 to the scanner 3. The destination list is, for example, a list created in S111 of FIG. 2, and is a list of devices that may communicate with the scanner 3 using the scan server program 44.
[0052] Based on the received save destination list, the scanner 3 displays a list of save destination information indicating where the scanned results will be saved on its operation panel (S304), and accepts the user's selection (S305). The save destination information may be the save destination list itself, or may be the save destination list converted into information that is easy for the user to understand. Furthermore, upon accepting a scan start instruction from the user, the scanner 3 scans and reads the image of the document (S306), and transmits the scanned results and the save destination information accepted in S305 to the scan server program 44 (S307).
[0053] The scan server program 44 associates the received read result with the storage destination information and stores them in a memory area managed by the program (S308). S308 is an example of storage processing. By receiving the read results together with the destination information indicating the destination registered in the scanner 3, the scan server program 44 can store the read results separately for each device such as the PC 1. The memory area is provided in the memory (12 or 22, see Figure 1) of the device on which the scan server program 44 is running.
[0054] The management program 43 periodically, or in response to a user instruction, passes an output request requesting the scan results with its own device specified as the save destination to the running scan server program 44 (S309). If the management program 43 and 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 device different from the management program 43, the management program 43 adds the identification information of its own device to the output request and sends the output request to the device running the scan server program 44.
[0055] The scan server program 44 that received the output request determines whether or not there are read results addressed to the management program 43 that issued the output request in the memory area that it manages (S310). That is, the scan server program 44 determines whether or not there are read results in which the identification information added to the received output request matches the storage destination information added to the read results.
[0056] If it is determined that there are matching read results ([Yes]), the scan server program 44 passes the read results to the management program 43 that requested them (S311). If there are multiple matching read results, the scan server program 44 passes all of the read results. Since the read results pushed from the scanner 3 are temporarily stored by the scan server program 44 and later saved in the real save destination, the real save destination does not need to be running when the scan server program 44 receives the read results. Note that if it is determined that there are no read results in which the identification information added to the output request matches the save destination information added to the read results, the scan server program 44 may return information indicating that there are none.
[0057] The management program 43 stores the received read result as a file (S312). S312 is an example of a save process. The management program 43 may notify the user that a file has been created. The management program 43 may also save the file in a predetermined folder, such as a folder managed by the management program 43, or may determine the destination folder based on a user instruction. This allows the management program 43 to appropriately save image data of an original document image that has been instructed to be read by the scanner 3, thereby realizing so-called push scanning. Furthermore, by the management program 43 saving the scan results as a file, the user can easily find and check the scan results pushed from the scanner 3 in the folder where the file is saved.
[0058] The scan server program 44 deletes the passed scan results from the memory area it manages (S313). This saves data in the memory area. The scan server program 44 may delete the data after confirming that the management program 43 has saved the data, or may delete the data if it remains in the memory area for a certain period of time, or may delete the data based on a user instruction.
[0059] In Fig. 4, the push scan procedure in which the management program 43 receives the read results has been described, but it is also possible to have the scan application 42 receive the read results of the push scan. This procedure will be described with reference to the sequence diagram in Fig. 5. Note that, below, the same steps as those in Fig. 3 or 4 are denoted by the same reference numerals and will not be described again.
[0060] 3, in this procedure, the scan application 42 of the PC 1 first receives a scan execution instruction with the scan server program 44 selected instead of the scanner 3 (S201). The scan application 42 passes a scan job to the OS 41 using a general-purpose protocol (S202). The OS 41 generates a scan command and passes it to the scan server program 44 (S203).
[0061] The scan server program 44 determines whether or not the read result, to which the identification information of the device that sent the received scan command is added, is in the memory area that it manages (S401). S401 is the same process as S310 in Fig. 4, but the scan server program 44 makes its determination based on the information of the device that sent the scan command, rather than the identification information attached to the output request. 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 the read result, to which the identification information of its own device is added, is present.
[0062] Note that a user who performs push scanning must first execute scanning of an original document using the scanner 3 before issuing the scan instruction in S201. In other words, in the case of push scanning, S301 to S308 in Fig. 4 have already been executed. In this case, the scan server program 44 does not delete the scanning result in S313, but stores it in a memory area managed by itself.
[0063] If the scan server program 44 determines that there are corresponding read results ([Yes]), it passes the read results to the OS 41 that output the scan command (S402). S402 is an example of a read result response process. 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 results to the device that sent the scan command.
[0064] The OS 41 that has received the read result passes the received read result to the scan application 42 (S403). That is, by causing the scanner 3 to execute scanning in advance, the read result can be obtained using the scan application 42.
[0065] If the scan server program 44 determines that there are no corresponding read results ([NONE]), it executes the same procedure as the pull scan procedure shown in Fig. 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 a transmission process and a transmission step.
[0066] The scanner 3 executes a scan based on the received scan command (S208) and sends the read results to the scan server program 44 (S209). The scan server program 44 passes the received read results to the OS 41 that output the scan command (S404). S404 is the same process as S402. The OS 41 that has received the read results passes the received read results to the scan application 42 (S405). S405 is the same process as S403. Note that the scan server program 44 may also perform image correction before S402 or S404.
[0067] In other words, when scan server program 44 receives a scan command, if it has stored the read results of the push scan, it returns the read results; if it has not stored the read results, it sends a scan command to scanner 3. In either case, the user of scan application 42 only needs to perform an operation indicating a read instruction, providing excellent operability. Even if scan server program 44 is executed on a device separate from scan application 42, it can determine the save destination for the read results based on the device identification information and save destination information, and therefore can pass the read results to the appropriate save destination.
[0068] On the other hand, if an OK response is not obtained from the scanner 3 ([NG]), the scan server program 44 returns an error notification to the OS 41 (S213), and the OS 41 displays a message informing the user IF 13 of the error (S214).
[0069] As a result, even if the scanner 3 does not support the general-purpose protocol, it can execute a scan based on a scan command from the general-purpose scan control program 45 and obtain the read results in the scan application 42 of the PC 1 or PC 2. Also, even if a general-purpose scan control program 45 that does not support push scan is used, it is possible to achieve processing similar to push scan in a pseudo manner.
[0070] The scan server program 44 may be continuously running while PC1 or PC2 is running, or may be terminated based on a user's termination instruction, for example. Before terminating, the scan server program 44 may notify the management program 43 in which it is registered of the termination.
[0071] As described above in detail, according to the scan system 100 of this embodiment, when the system includes a scanner 3 that supports a dedicated protocol, the management program 43 launches the scan server program 44 that corresponds to the scanner 3 and registers the launched scan server program 44 in the OS 41. This makes it possible to select the scan server program 44 as a scanner in the OS 41. Furthermore, when the OS 41 receives a scan job in which the scan server program 44 is specified as an output destination, it passes a scan command based on the scan job to the scan server program 44. The scan server program 44 sends a scan command to the scanner 3 using the dedicated protocol, receives the scan results from the scanner 3, and returns them to the OS 41. This makes it possible to issue a scan instruction from the scan application 42 or the like and obtain the scan results even for a scanner 3 that does not support a general-purpose protocol.
[0072] Next, a second embodiment of the scan system will be described in detail with reference to the accompanying drawings. This embodiment discloses a scan system 100 that has 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 the scan system 100 of this embodiment, each PC that uses the scanner 3 uses its own scan server program 44. Below, the same components and procedures as those of the first embodiment will be assigned the same reference numerals as those of the first embodiment, and their description will be omitted.
[0073] The procedure for registering a virtual scanner in the scan system 100 of this embodiment will be described with reference to the sequence diagram of Fig. 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 settings (S108) and notifies the management program 43 of the initial setting information (S109). Based on the information received from the scan server program 44, the management program 43 passes information about 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 embodiment, as will be described later, the scan results received by the scan server program 44 are limited to data addressed to the device itself. Therefore, the scan server program 44 of PC1 does not need to generate a save destination list, nor does it accept list registration requests from other PCs. Note that a user who wants to use the scanner 3 on PC2 starts the management program 43 on PC2, just like PC1, and then starts the scan server program 44 of PC2 and registers it in the OS 51 of PC2.
[0076] Following the procedure in FIG. 6, the procedure for using the scanner 3 with the PC 1 will be described. The so-called pull scan procedure is the same as that described in the sequence diagram in FIG. 3. That is, the scan server program 44 communicates with the scanner 3 using a dedicated protocol, checks the status of the scanner 3 (S204-S205), and sends a scan command (S206-S207). The scanner 3 sends the read results to the scan server program 44 (S208-S209). The scan server program 44 receives the read results and passes them to the OS 41 of its own device (S211). 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 Fig. 7. Fig. 7 is a sequence diagram for when the procedure in Fig. 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] The scanner 3 receives an instruction to start scanning from the operation panel (S301) and sends a search request to each PC in the scan system 100 (S302). The search request in S302 is passed to both the scan server program 44 in PC1 and the scan server program 44 in PC2. Each scan server program 44 that receives the search request responds to the scanner 3. The scan server program 44 in PC1 responds to the scanner 3 via the communication IF 14 of PC1 (S501). The scan server program 44 in PC2 responds to the scanner 3 via the communication IF 24 of PC2 (S502). S501 and S502 are examples of response processing.
[0079] Based on the received response, scanner 3 displays a list of selectable storage destination information for devices (S304). Having received responses from both scan server program 44 of PC1 and scan server program 44 of PC2, scanner 3 displays PC1 and PC2 as selectable storage destination information. 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 original (S306).
[0080] If the selection accepted in S305 is PC1 ([PC1]), the scanner 3 sends the read results to the scan server program 44 of PC1 (S503). The scan server program 44 of PC1 stores the received read results in the memory 12 (S504). In this embodiment, the scan server program 44 receives only the scan results for which the scanner 3 is the destination, so the scanner 3 does not need to add destination information to the scan results before sending them. Furthermore, the management program 43 does not need to receive the read results from the scan server program 44 .
[0081] If the selection accepted in S305 is PC2 ([PC2]), the scanner 3 sends the read results to the scan server program 44 of PC2 (S505). The scan server program 44 of PC2 stores the received read results in the memory 22 (S506). Thereafter, the processes of S309 to S311 and S313 shown in FIG. 4 may be executed, or the process shown in FIG. 5 may be executed.
[0082] As explained in detail above, the scan system 100 of this embodiment also allows a scan application 42 or the like to issue a scan instruction to a scanner 3 that does not support a general-purpose protocol, and allows the scan results to be obtained. It also allows for simulated push scanning, which is not supported by the general-purpose scan control program 45. In this embodiment, communication between PC1 and PC2 is not required, and the communication load is small, compared to the first embodiment. Meanwhile, in the first embodiment, for example, by using the scan server program 44 of PC2, the processing load on PC1 is reduced.
[0083] Note that each embodiment is merely illustrative and does not limit the present invention in any way. Therefore, the technology disclosed in this specification can naturally be improved and modified in various ways without departing from the spirit and scope of the present invention. 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 a scanner compatible with the general-purpose scan control program 45. Furthermore, a PC not equipped with the scan server program 44 may also be included.
[0084] Also, for example, in the push scan procedure, the scanner 3 sends the read results to the scan server program 44, which stores them in a memory area managed by the program, but they may also be stored in the memory of the scanner 3. In that case, the scan server program 44 may receive a request for the read results from the management program 43 or the OS 41, communicate with the scanner 3, and determine whether the read results are in the memory of the scanner 3.
[0085] Also, for example, the scanner 3 may accept registration of the save destination list itself and store it in advance instead of receiving it from the scan server program 44. For example, the save destination list may be registered by direct input to the scanner 3 using an operation panel of the scanner 3 or the like, or may be received from the scan application 42 or the like and stored. On the other hand, if the scanner 3 is configured to receive the save destination list from the scan server program 44, there is no need to store it in the scanner 3 in advance.
[0086] Also, for example, the scan server program 44 does not have to perform the correction process, and there may be another program that performs the correction process.
[0087] In the second embodiment, the management program 43 may be included in the scan server program 44. That is, the scan server program 44 may have a function of registering itself with the OS 41 when it is started.
[0088] Furthermore, in any flowchart disclosed in each embodiment, the execution order of multiple processes in any multiple steps can be changed or they can be executed in parallel as long as there is no contradiction in the processing content.
[0089] The processes disclosed in the embodiments may be executed by hardware such as a single CPU, multiple CPUs, or ASIC, or a combination thereof. The processes disclosed in the embodiments may be realized in various ways, such as a recording medium on which a program for executing the processes is recorded, or a method. [Explanation of symbols]
[0090] 1, 2 PCs 3. Scanner 11, 21 CPUs 12, 22 memory 13, 23 User Interface 14, 24 communication interface 41, 51 OS 43 Management Program 44 Scan Server Program
Claims
1. An extension program executable by a computer of an information processing device capable of communicating with a scanning device via a communication interface, wherein an operating system of the information processing device has a general-purpose scanning function, and the extension program is a program for extending the general-purpose scanning function of the operating system in correspondence with the scanning device; The extension program is executed by the computer to cause the information processing device to: 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 for transmitting a specific scan command to the scanning device via the communication interface based on the received scan job; a read result receiving process for receiving, from the scanning device via the communication interface, a read result obtained by scanning an original in response to the scanning device receiving the specific scan command transmitted from the information processing device; An extension program characterized by executing the above.
2. 2. The expansion program according to claim 1, The extension program is executed by the computer to cause the information processing device to: when the information processing device receives the read result via the communication interface before transmitting the specific scan command to the scanning device, executes a storage process of storing the received read result in a memory area managed by the extension program; An extension program characterized by:
3. 3. The expansion program according to claim 2, The extension program is executed by the computer to cause the information processing device to: When the operating system receives the scan job, If the read result is not stored in the memory area, the scan command transmission process is executed; If the read result is stored in the memory area, the scan command transmission process is not executed, and a read result response process is executed to respond to the operating system with the read result stored in the memory area. An extension program characterized by:
4. 4. The expansion program according to claim 1, The extension program is executed by the computer to cause the information processing device to: a correction process for correcting the read result received from the scanning device via the communication interface; an output process for outputting the corrected reading result as scan data; An extension program characterized by executing the above.
5. 5. The expansion program according to claim 1, the scanning device conforms to a first scan protocol, and the operating system of the information processing device conforms to a second scan protocol different from the first scan protocol; An extension program characterized by:
6. 6. The expansion program according to claim 5, the second scan protocol is IPP; An extension program characterized by:
7. 2. The expansion program according to claim 1, the scanning device is compliant with a second scan protocol, and the operating system of the information processing device is compliant with the second scan protocol; An extension program characterized by:
8. 8. The expansion program according to claim 7, the second scan protocol is IPP; An extension program characterized by:
9. 2. The expansion program according to claim 1, The functions extended by the extension program include a push scan function. An extension program characterized by:
10. 2. The expansion program according to claim 1, The extension program is registered with the operating system. An extension program characterized by:
Citation Information
Patent Citations
Image reading device
JP2006139376A
Multifunction machine, multifunction machine control system, program and recording medium
JP2011124652A
Image reading system, image reader, control method thereof, and program
JP2012044420A
Image input system, information processing apparatus, method for controlling the same, and program
JP2012253515A
Image reading device, information processing method, and program
JP2016111560A