Information processing method, information processing device and storage medium

By acquiring printer settings and status information on the server PC and performing predetermined processing when generating PDL, the problem that the client PC and the printer cannot communicate mutually exclusively is solved, and appropriate communication in the printing system is realized.

CN113835646BActive Publication Date: 2025-03-25CANON KK
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110631365.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-06-08
Filing Date
2021-06-07
Publication Date
2025-03-25
Estimated Expiration
2041-06-07

AI Technical Summary

Technical Problem

In some operating systems, print jobs received by the client PC may not start the vendor-provided language monitor, resulting in the inability of printer management tools to communicate mutually exclusively with the client PC, affecting appropriate communication.

Method used

By performing a series of operations on the first information processing device (such as a server PC), including obtaining communication setting information of the printer, acquiring printer status information, and performing predetermined processing when setting information indication, to ensure that the printer is ready to communicate with the second information processing device (such as a client PC), and performing predetermined processing when generating the PDL.

Benefits of technology

Appropriate communication in the printing system is realized, ensuring smooth communication between the printer and the information processing device, and avoiding obstacles in the hybrid communication mode.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113835646B_ABST
    Figure CN113835646B_ABST
Patent Text Reader

Abstract

The present invention provides an information processing method, an information processing device, and a storage medium. Appropriate printing processing is performed in a printing system in which a first information processing device capable of communicating with a printer and a second information processing device capable of communicating with the printer via the first information processing device are connected via a network. To this end, the information processing method performed by the first information processing device includes: obtaining setting information about communication with the printer; obtaining information about the status of the printer from the printer; and performing predetermined processing. In the case where the setting information indicates that the printer is ready to communicate with the second information processing device and the second information processing device generates a PDL, the predetermined processing is performed while waiting for communication with the printer.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to an information processing method, an information processing device, and a storage medium. Background Art

[0002] A network system has been actually used in which a plurality of information processing devices connected to each other via a network share a device such as a printer. Japanese Patent Laid-Open No. 2006-99747 discloses a printing system that allows a printer connected to a specific personal computer (server PC) to be used by different personal computers (client PCs) connected via a network.

[0003] In this printing system using a network, print data created on a client PC is converted into a printer description language (PDL) by the client PC or the server PC. Then, a language monitor in the server PC sends the generated PDL to the printer and prints the image.

[0004] However, for example, in a specific operating system (OS) such as the recent Windows (registered trademark), a language monitor provided by a vendor may not be started for a print job received from a client PC. In this case, a program (such as a management tool) started on the server PC to grasp the printer usage status cannot be mutually exclusive with the client PC. In addition, some systems do not initially have a language monitor, and in this case, they cannot be mutually exclusive with the client PC. As a result, communication with the printer based on a program such as a printer driver and communication with the printer based on a program such as a management tool may occur in a mixed manner, thereby hindering appropriate communication. Summary of the invention

[0005] The embodiments of the present disclosure are made to solve the above-mentioned problems, and the embodiments of the present disclosure enable communication to be appropriately performed in a printing system in which a first information processing device capable of communicating with a printer and a second information processing device capable of communicating with the printer via the first information processing device are connected to each other via a network. In a first aspect of the present disclosure, an information processing method is proposed, which is performed by a first information processing device, in which the first information processing device is capable of communicating with a printer, the first information processing device and the second information processing device are connected via a network, and the second information processing device is capable of communicating with the printer via the first information processing device, the information processing method comprising: obtaining setting information about communication with the printer; obtaining information about the status of the printer from the printer by communicating with the printer, the obtaining of information about the status of the printer being started based on input of a command from a user; and when the setting information indicates that the printer is ready to communicate with the second information processing device via the first information processing device, and the second information processing device generates a printer description language (PDL) based on print data, performing a predetermined process while waiting for communication with the printer, wherein obtaining information about the status of the printer and performing the predetermined process are performed by respective different programs on the first information processing device.

[0006] In a second aspect of the present disclosure, a non-temporary computer-readable storage medium is proposed, which includes program instructions, which when executed by a computer of a first information processing device causes the first information processing device to perform the following operations: obtain setting information about communication with a printer; obtain information about the status of the printer from the printer by communicating with the printer, and obtaining information about the status of the printer is started based on the input of a command from a user; and when the setting information indicates that the printer is ready to communicate with a second information processing device via the first information processing device and the second information processing device generates a printer description language, i.e., PDL, based on print data, perform predetermined processing while waiting to communicate with the printer, wherein obtaining information about the status of the printer and performing the predetermined processing are performed by respective different programs on the first information processing device.

[0007] In the third aspect of the present disclosure, an information processing device is proposed, which is interposed between a printer and different information processing devices connected to the information processing device via a network, and is capable of controlling communication between the printer and the different information processing devices, the information processing device comprising: a setting information obtaining unit for obtaining setting information about communication of the printer; a status information obtaining unit for obtaining information about the status of the printer from the printer by communicating with the printer based on input of a command from a user; and an execution unit for causing the status information obtaining unit to wait for communication with the printer and perform predetermined processing when the setting information indicates that the printer is ready to communicate with the different information processing device via the information processing device and the different information processing device generates a printer description language, i.e., PDL, based on print data, wherein the status information obtaining unit obtaining the information about the status of the printer and the execution unit performing the predetermined processing are performed by respective different programs on the information processing device.

[0008] Further features of the present disclosure will become apparent from the following description of exemplary embodiments with reference to the attached drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Figure 1 is a schematic diagram of the printing system;

[0010] Figure 2 is a block diagram showing the hardware structure of a server PC;

[0011] Figure 3 is a block diagram showing the configuration of functions in the server PC and the printer A;

[0012] Figure 4A and Figure 4B Each is a block diagram showing the structure of functions in a client PC and a server PC;

[0013] Figure 5 is a diagram showing a printer sharing setting screen of printer A;

[0014] Figure 6 is a diagram showing a usage history display screen;

[0015] Figure 7 is a flowchart showing the processing performed by the filter of the server PC;

[0016] Figure 8 is a flowchart showing the processing performed by the management tool of the server PC;

[0017] Fig. 9A and Fig. 9B are diagrams each showing a guidance dialog box;

[0018] Fig. 10A and Fig. 10B is a flowchart showing the processing performed by the management tool of the server PC;

[0019] Fig.11 is a flowchart showing the processing performed by the filter of the client PC;

[0020] Fig. 12A and Fig. 12B is a flowchart showing a process performed by a management tool of a server PC; and

[0021] Fig.13 is a diagram showing a notification dialog box. DETAILED DESCRIPTION

[0022] Embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.

[0023] (First embodiment)

[0024] Figure 1 is a schematic diagram of a printing system used in the present embodiment. The server PC 1 and the client PC 40 can communicate with each other via the network 20. The printer A 30 is a local printer directly connected to the server PC 1 via the communication interface 10. Examples of networks that can be used as the network 20 include a local area network (LAN) and a wide area network (WAN). The connection with the network 20 can be wired or wireless, and these two methods can coexist. The communication interface 10 can be in any form as long as it allows mutual communication, for example, a universal serial bus (USB) can be used.

[0025] In the present embodiment, a PC directly connected to the printer A 30 is referred to as a server PC 1, and a PC that can use the printer A 30 via the server PC 1 is referred to as a client PC 40 for convenience, but both of them may have a general function as a PC.

[0026] Figure 2 1 is a block diagram showing the hardware structure of the server PC 1. The CPU 101 uses the RAM 103 as a work area and performs overall control of the device according to the program stored in the ROM 102 or the hard disk 104. For example, the CPU 101 loads the OS or application installed in the hard disk 104 to the RAM 103 and executes various programs according to the read program.

[0027] The input device 105 is, for example, a keyboard and / or a mouse, and is a device for receiving instructions from a user. The display device 106 is, for example, a cathode ray tube (CRT) display, and displays information to inform the user. In the case where a floppy disk is inserted, the disk controller 107 controls data access to the floppy disk according to the instruction of the CPU 101. The communication control unit 108 controls communication with the externally connected printer A 30 according to the instruction of the CPU 101.

[0028] The CPU 101 uses the RAM 103 as a work area to execute operations described later according to the programs of the OS loaded into the RAM 103. Figure 7 , Figure 8 , FIG. 10A to FIG. 12B Although the above description is provided as the hardware structure of the server PC 1, the client PC 40 may have the same structure. In the present embodiment, the CPU 101, ROM 102, RAM 103, etc. form a computer of the server PC as the information processing device of the present embodiment.

[0029] Figure 3 30. It is a block diagram showing the structure of functions in the server PC 1 and the printer A 30. The functional blocks shown in the server PC 1 are managed by the OS installed in the server PC 1. The present embodiment assumes a mode in which Windows 10 (registered trademark) is used as the OS and the V4 architecture is used as the printing system. In the V4 architecture, the client PC 40 does not have a language monitor capable of grasping the communication performed by the management tool 6 described later. Note that the V3 architecture can be used as the printing system. In the case of using the V3 architecture, the client PC 40 has a language monitor, but in the case such as disabling the language monitor, the problem to be solved by the present disclosure may occur.

[0030] The application 2 places a print job regarding the generated image in the spooler 3 in accordance with the user's instruction.

[0031] The spooler 3 includes a filter 4 and a port monitor 5. The spooler 3 is a function implemented by the OS in the server PC 1. On the other hand, the filter 4 is a function provided by a printer driver provided by a vendor of the printer A. The filter 4 manages print jobs using a print queue, and at the same time, converts print data in the print job into a printer description language (PDL). The port monitor 5 sends the PDL generated by the spooler 3 to the printer A 30 via a USB interface (I / F) 7.

[0032] The management tool 6 is a function implemented by a program provided by the vendor of the printer A 30, and manages the history and progress of the printing process executed by the printer A 30. In the present exemplary embodiment, the management tool 6 is a program different from the printer driver. For example, the management tool 6 generates a command for requesting information on the history of the printing process in accordance with the instruction of the user, and sends the command to the printer A 30 via the USB I / F 7. The management tool 6 receives the information on the history of the printing process from the printer A 30, and displays the received information on the display device 106 (see FIG. 1 ). Figure 2 ).

[0033] The transmission of PDL by the port monitor 5 and the transmission and reception of management information by the management tool 6 are both performed via the USB I / F 7, but in this embodiment, control is performed so that these information cannot be transmitted in a mixed manner. Details of this control will be given later.

[0034] The N / WI / F 8 is an interface through which the server PC 1 transmits and receives information to and from other devices connected to the network 20 .

[0035] As described above, the spooler 3 is a function implemented by the OS in the server PC 1, not a function implemented by a program provided by the vendor of the printer A 30. Therefore, in the present embodiment, the spooler 3 cannot control the communication with the management tool 6, and therefore cannot perform the mutual exclusion described later. On the other hand, like the management tool 6, the filter 4 is a function implemented by a program provided by the vendor of the printer A 30, and therefore can control the communication with the management tool 6 and perform the mutual exclusion described later.

[0036] The printer A 30 includes a USB I / F 31, a printer control unit 32, and a printing unit 33. The USB I / F 31 is an interface for transmitting / receiving information to / from the server PC 1. The printing unit 33 is an engine part of the printer A 30, and is controlled by the printer control unit 32. The printer control unit 32 performs operations such as causing the printing unit 33 to print an image based on the PDL received from the server PC 1, to obtain history information based on a history information command received from the server PC 1, and to send the history information to the server PC 1 via the USB I / F 31.

[0037] Figure 4A and Figure 4B 4 is a diagram showing a control structure in which a user of the client PC 40 causes the printer A 30 to print an image generated on the client PC 40. Figure 4A and Figure 4B is omitted, but Figure 1The printer A 30 shown in FIG. 1 is connected to the server PC 1 via a USB I / F 7 .

[0038] The client PC 40 has an application 41, a spooler 42, and an N / WI / F 44. The spooler 42 includes a filter 43. The functions of the application 41, the filter 43, and the N / WI / F 44 are respectively the same as the application 2, the filter 4, and the N / WI / F 8 in the server PC 1. Although the printing system shown includes the server PC 1 and one client PC 40, more PCs may be connected to the network 20.

[0039] In the printing system of the present embodiment, regarding printing based on a print job created (generated) on the client PC 40 , the user of the server PC 1 can set whether to convert print data into PDL by the server PC 1 or by the client PC 40 .

[0040] Figure 4A The case where the server PC 1 receives the print data in the print job created on the client PC 40 and converts the print data into PDL is shown. In this case, the spooler 42 of the client PC 40 does not start the filter 43, but sends the print job generated in the application 41 to the server PC 1. The spooler 3 of the server PC 1 starts the filter 4, and then the filter 4 sequentially converts the print data included in the print job received from the client PC 40 into PDL, and places the PDL in the port monitor 5. The port monitor 5 sends the received PDL to the printer A 30 via the USB I / F 7.

[0041] Note that after receiving the print data from the spooler 3 and before converting the print data into PDL, the filter 4 performs mutual exclusion by locking a mutex shared by the filter 4 and the management tool 6. The filter 4 performs PDL conversion with the mutex valid, and hands over the converted data to the spooler 3. Therefore, the spooler 3 sends the print job to the printer A 30 with the mutex valid. After sending the print job to the printer A 30, the filter 4 cancels the mutex.

[0042] In this way, in the case where the spooler 3 of the server PC 1 performs PDL conversion, the filter 4 can control the timing of the management tool 6 before the print job received from the client PC 40 is sent to the printer A 30. Therefore, the filter 4 of the server PC 1 and the management tool 6 can mutually exclude each other's processing so that data transmission and reception via the USB I / F 7 do not occur simultaneously in a mixed manner. The mutual exclusion will be described later.

[0043] Figure 4B The case where the client PC 40 performs PDL conversion of print data in a print job created in the client PC 40 before sending the print job to the server PC 1 is shown. In this case, the spooler 42 of the client PC 40 starts the filter 43, and then the filter 43 sequentially converts the print data included in the print job generated in the application 41 into PDL. Then, the client PC 40 sends the print command together with the generated PDL as a print job to the server PC 1 via the N / WI / F 44. The spooler 3 of the server PC 1 does not start the filter 4, but puts the PDL received from the client PC 40 into the port monitor 5. The port monitor 5 sends the PDL put therein to the printer A 30 via the USB I / F 7.

[0044] In this way, in the case where the spooler 42 of the client PC 40 generates PDL, there is no timing at which the filter 4 can control the management tool 6 before the print job received from the client PC 40 is sent to the printer A 30. Therefore, the management tool 6 of the server PC 1 cannot mutually exclude the filter 4 using the existing method. Therefore, during the printing operation based on the print job sent from the client PC 40, the management tool 6 of the present embodiment performs pause control instead of mutual exclusion. The pause control is to pause the sending and receiving for the processing performed by the management tool 6 itself, and will be described in detail later.

[0045] Figure 5 30. The user of the server PC 1 can open the printer sharing setting screen from the printer properties screen in the OS. Figure 5 The setting screen 50 shown in FIG. 1 is displayed, and various settings are set on the setting screen 50 .

[0046] On the setting screen 50, a check box 51 is a box for setting whether to share the printer A 30 with other PCs connected to the server PC 1 via the network. In the present embodiment, the state in which the server PC 1 shares the printer A 30 with different devices is a state in which not only the communication between the printer A 30 and the server PC 1 but also the communication between the printer A 30 and the different devices via the server PC 1 is allowed. In other words, in the state in which the server PC 1 shares the printer A 30 with different devices, the server PC 1 sends data received from the different devices to the printer A 30. In this case, the server PC 1 can send data newly generated based on the data received from the different devices or data generated by processing the data received from the different devices to the printer A 30.

[0047] Once the OK button 54 is pressed with the check box 51 checked, the printer A 30 is shared between the server PC 1 and the client PC 40. The text box 52 is a box for editing the shared name of the printer A 30 to be shared. The check box 53 is a box for setting whether the PDL is to be generated by the client PC 40 or by the server PC 1. Once the OK button 54 is pressed with the check box 53 checked, the client PC 40 that has created the print job generates the PDL in the print processing performed thereafter. If the OK button 54 is pressed with the check box 53 not checked, the server PC 1 generates the PDL in the print processing performed thereafter. In the case where the cancel button 55 is pressed, the setting is disabled regardless of whether the check boxes 51 and 53 are checked or not checked. The checked / unchecked state in the check box is saved as setting information about the printer A 30, and is read out when necessary.

[0048] Figure 6 1 is a diagram showing a usage history display screen 60 displayed on the display device 106 by the management tool 6 of the server PC 1. The names of the printers connected to the server PC 1 are displayed in the printer selection list 61. Figure 6 The case where only the printer A 30 is connected via USB is shown, but a plurality of printer names are displayed if a plurality of printers are connected.

[0049] Once the user selects a printer from the printers displayed in the printer selection list 61 and presses the display history box 63 at the lower right of the screen, the management tool 6 requests information about the history of print processing from the selected printer. Then, after receiving the information about the history of print processing from the printer, the management tool 6 displays the use history list 62 based on the received information. Figure 6 A case is shown in which the print date and time, user name, sheet type, sheet size, and number of copies are displayed as information on each print process performed by the printer A 30. Once the user presses the end button 64, the management tool 6 closes the use history display screen 60.

[0050] Figure 7 40. is a flowchart showing a process executed by the filter 4 of the server PC 1 in the case where the server PC 1 generates a PDL. This process is started by the spooler 3 activating the filter 4 based on receipt of a print job from the client PC 40.

[0051] When the process starts, in S11, the filter 4 first locks the mutex shared with the management tool 6. This prohibits the management tool 6 from performing any transmission and reception with the printer A 30.

[0052] In S12 , the filter 4 receives the print data from the spooler 3 .

[0053] In S13 , the filter 4 generates PDL based on the received print data.

[0054] In S14, the filter 4 outputs the PDL generated in S13. Then, the spooler 3 sends the PDL output by the filter 4 to the printer A 30 via the port monitor 5 and the USB I / F 7.

[0055] In S15, the filter 4 determines whether all print data has been received from the spooler 3. If the filter 4 determines that there is still print data to be received, the filter 4 returns to S12 to receive the next print data from the spooler 3. If the filter 4 determines that all print data has been received, the filter 4 proceeds to S16.

[0056] In S16, the filter 4 unlocks the mutex locked in S11. This enables the management tool 6 to transmit and receive with the printer A 30. Thus, the process ends.

[0057] The mutex is a tool for mutual exclusion between the filter 4 and the management tool 6. Locking of the mutex by one of the filter 4 and the management tool 6 prohibits the other from performing any transmission and reception with the printer A 30, while unlocking of the mutex permits transmission and reception. The filter 4 and the management tool 6 each lock the mutex before starting processing, and unlock the mutex after completing the processing. This helps prevent information for the filter 4 and information for the management tool 6 from being simultaneously transmitted or received via the USB I / F 7.

[0058] In the present embodiment, even if the management tool 6 receives a request for history information of print processing related to the printer A 30 while the filter 4 is executing the PDL processing, the management tool 6 cannot send the information to the printer A 30. The management tool 6 must wait until the mutex is unlocked by the filter 4. Then, after the filter 4 unlocks the mutex in S16, the management tool 6 now locks the mutex and sends a request command to the printer A 30 and receives the use history information from the printer A 30.

[0059] Figure 8 is a flowchart showing the status information acquisition process executed by the management tool 6 of the server PC 1. Figure 6 The process begins with the display history frame 63 shown.

[0060] When the process starts, in S21, the management tool 6 obtains printer sharing status information from the OS. The information obtained here is Figure 5The information set on the setting screen 50 shown. Therefore, among the connected printers, the shared information about the printers whose check boxes 51 are checked is provided to the management tool 6.

[0061] In S22, the management tool 6 determines whether the target printer is set to be shared based on the sharing information obtained in S21. If the management tool 6 determines that the target printer is not set to be shared, the management tool 6 proceeds to S23 to obtain information about a list of print jobs currently being processed or waiting to be processed by the server PC 1 from the OS.

[0062] In S24, referring to the list information obtained in S23, the management tool 6 determines whether the print job currently being processed or waiting to be processed includes a print job rendered by the client PC 40. Specifically, the management tool 6 compares the name of itself (server PC 1) with the names of PCs in the list information, thereby determining whether the print job includes any print job rendered by a PC other than the server PC 1.

[0063] In the case where the list includes a print job drawn by the client PC 40, the management tool 6 cannot allow a mutex to function between the management tool 6 and the filter 43 of the client PC 40. Therefore, once the management tool 6 starts the above-mentioned usage history information obtaining process, there is a problem that the management tool 6 and the spooler 3 may send or receive information in a mixed manner via the USB I / F 7. In order to avoid this risk, in the present embodiment, the management tool 6 repeats steps S23 and S24 until it is determined in S24 that the list does not include any print job drawn by the client PC 40.

[0064] If the management tool 6 determines in S24 that the print job currently being processed or waiting to be processed does not include the print job drawn by the client PC 40, the management tool 6 proceeds to S25 to lock the mutex to obtain the usage history information of the printer A 30. Figure 7 According to the process shown, the mutex has been locked by the filter 4. Therefore, the management tool 6 waits for the mutex to be unlocked by the filter 4, and locks the mutex once the mutex is unlocked.

[0065] In S26, the management tool 6 generates a command for requesting the printer A 30 for its usage history. In S27, the management tool 6 sends the usage history request command generated in S26 to the printer A 30 via the USB I / F 7. In S28, the management tool 6 obtains usage history information from the printer A 30 via the USB I / F 7. In S29, the management tool 6 determines whether all usage history information has been obtained. If the management tool 6 determines that there is still history information to be obtained, the management tool 6 returns to S26 to generate a new command. If the management tool 6 determines that all usage history information has been obtained, the management tool 6 proceeds to S30 and unlocks the mutex.

[0066] Then, in S31, the management tool 6 displays the following information on the display device 106 based on the usage history information obtained in S25 to S30: Figure 6 The usage history display screen 60 is shown. The process ends here.

[0067] On the other hand, if the management tool 6 determines in S22 that the printer is set to be shared, the management tool 6 proceeds to S32 to obtain information about the PC set to perform drawing from the OS. The information obtained here is Figure 5 The information set on the setting screen 50 shown.

[0068] In S33, the management tool 6 determines whether the PC set to perform drawing is the client PC 40. If the PC set to perform drawing is not the client PC 40 (that is, it is the server PC 1), the management tool 6 proceeds to S23 to obtain and display the use history of the printer A 30 in the steps S23 to S31 already described. If the PC set to perform drawing is the client PC 40, the management tool 6 proceeds to S34.

[0069] If the PC set to perform drawing is the client PC 40, the management tool 6 cannot make the mutex work between the management tool 6 and the filter 43 of the client PC 40. Therefore, once the management tool 6 starts the processing for obtaining the use history information, there is a problem that the management tool 6 and the spooler 3 may send or receive information in a mixed manner via the USB I / F 7. In order to avoid this risk, in the case where the PC set to perform drawing is set to a PC other than the server PC 1, the management tool 6 of the present embodiment temporarily stops the processing of obtaining the use history of the printer A 30. Then, the management tool 6 performs processing to prompt the user to cancel the setting for sharing the printer A 30 or change the PC set to perform drawing to the server PC 1. In the present embodiment, the mode of canceling the setting for sharing the printer A 30 is a state in which, although the communication between the printer A 30 and the server PC 1 is allowed, the communication between the printer A 30 and other devices via the server PC 1 is not allowed. In other words, in a state where the server PC 1 does not share the printer A 30 with different devices (the sharing setting is canceled), the server PC 1 does not transfer data sent from other devices to the printer A 30 .

[0070] Fig. 9A and Fig. 9B Shown in Figure 8 The guidance dialog box displayed to the user by the management tool 6 in S34 and S36.

[0071] In S34, the management tool 6 displays Fig. 9A The guidance dialog box 70 is shown. In the guidance dialog box 70, guidance is given to cancel the printer sharing setting or change the PC set to perform drawing to the server PC 1. Once the user presses any one of the Continue button 71, the Cancel button 72 and the Help button 73, the guidance dialog box 70 is closed.

[0072] If the management tool 6 determines in S35 that the help button 73 has been pressed, the management tool 6 proceeds to S36 to display Fig. 9B In the guidance dialog box 75, details on how to cancel the printer sharing setting or how to change the PC set to perform drawing to the server PC are presented. Figure 5 The setting screen 50 shown allows the user to change settings regarding the shared printer A 30 and settings regarding the PDL generation PC.

[0073] If the management tool 6 determines in S37 that the Continue button 71 has been pressed, the management tool 6 returns to S21. At this time, in the case where the user has changed the settings according to the guidance dialog boxes 70, 75, the management tool 6 can process according to S23 to S31 already described to smoothly obtain and display the use history of the printer A 30. A case is conceivable in which a print job is received from the client PC 40 before the management tool 6 checks the pressing of the Continue button 71 in S37. However, even in this case, the management tool 6 repeats steps S23 and S24 until it is determined in S24 that the list does not include the print job drawn by the client PC 40. Therefore, data communication performed with respect to the print job drawn by the client PC 40 and data communication performed by the management tool 6 do not occur in a mixed manner.

[0074] If the management tool 6 determines in S38 that the cancel button 72 has been pressed, the management tool 6 ends the process.

[0075] According to the present embodiment described above, in the case where the filter that generates PDL is the filter 4 running on the server PC 1, mutual exclusion using a mutex helps prevent data communication of the filter 4 and data communication of the management tool 6 from occurring in a mixed manner. In the case where the filter that generates PDL is the filter 43 running on the client PC 40, the management tool 6 suspends its processing and performs processing to prompt the user to cancel the setting of the shared printer A 30 or change the PC set to perform drawing to the server PC 1. This helps prevent information for different programs from being sent or received in a mixed manner via the USB I / F 7, and allows print processing to be performed appropriately.

[0076] (Second embodiment)

[0077] This embodiment also uses Figures 1 to 6 In the present embodiment, the management tool 6 of the server PC 1 performs processing to obtain the use history of the printer A 30 while monitoring the processing status of the spooler 3 of the server PC 1 .

[0078] Fig. 10A and Fig. 10B The following flowchart is shown, which shows the status information acquisition processing executed by the management tool 6 of the server PC 1 of this embodiment. Figure 6 This process starts at the timing of displaying the history frame 63 as shown.

[0079] When starting this process, the management tool 6 first sets the pause flag to on as a default in S51. The pause flag is a flag for determining whether it is appropriate for the management tool 6 to perform a process for obtaining information on the usage history of the printer A 30.

[0080] In S52, the management tool 6 starts the monitoring thread for the print job. Thereafter, the management tool 6 simultaneously performs steps S53 to S62 of the main thread and steps S70 to S82 of the monitoring thread.

[0081] First, the main thread is described. In S53, the management tool 6 locks the mutex. In the case where the mutex has been locked by the filter 4, the management tool 6 waits for the filter 4 to unlock the mutex and locks the mutex after the mutex is unlocked.

[0082] In S54, the management tool 6 checks the pause flag. In S55, the management tool 6 determines whether the pause flag is off. In the case where the management tool 6 starts the use history information acquisition process when the pause flag is set to on, there is a problem that the management tool 6 and the spooler 3 may send or receive information in a mixed manner via the USB I / F 7. In order to avoid this risk, the management tool 6 waits while repeating steps S54 and S55 until it is determined in S55 that the pause flag is off.

[0083] After determining that the pause flag is off in S55, the management tool 6 starts the use history information acquisition process. Steps S56 to S60 for obtaining the use history information are performed as follows. Figure 8 The steps S26 to S30 shown are the same and therefore will not be described again here.

[0084] In S61, the management tool 6 requests to terminate the monitoring thread started in S52. In S62, the management tool 6 displays the following information on the display device 106 based on the usage history information obtained in S56 to S59: Figure 6 The usage history display screen 60 is displayed, and then the processing ends.

[0085] On the other hand, after starting the monitoring thread in S52, in S71, the management tool 6 first obtains the printer sharing status information from the OS. The information obtained here is Figure 5 The information set on the setting screen 50 shown.

[0086] In S72, the management tool 6 determines whether the target printer is set to be shared based on the information obtained in S71. If the management tool 6 determines that the target printer is not set to be shared, the management tool 6 proceeds to S80 and sets the pause flag to off. If the management tool 6 determines that the target printer is set to be shared, the management tool 6 proceeds to S73.

[0087] In S73, the management tool 6 obtains information about the PC set to perform drawing from the OS. The information obtained here is Figure 5 The information set on the setting screen 50 shown.

[0088] In S74, the management tool 6 determines whether the PC set to perform drawing is the client PC 40. If the PC set to perform drawing is not the client PC 40 (i.e., the server PC 1), the management tool 6 proceeds to S80 and sets the pause flag to OFF. If the PC set to perform drawing is the client PC 40, the management tool 6 proceeds to S75.

[0089] In S75 , the management tool 6 obtains the print job processing status in the server PC 1 from the OS.

[0090] In S76, the management tool 6 determines whether the server PC 1 is currently processing a print job, and if the server PC 1 is not currently processing any print job, it proceeds to S80 to set the pause flag to OFF. If the server PC 1 is currently processing a print job, the management tool 6 proceeds to S77.

[0091] In S77, the management tool 6 obtains information about the print job currently being processed by the server PC 1 from the OS. The information about the print job includes, for example, the name of the PC that generates the job. Even in the case where the client PC 40 generates the PDL, the OS of the client PC 40 sends the information about the print job to the server PC 1 before generating the PDL. Therefore, the management tool 6 of the server PC 1 can obtain the information about the print job before the filter 43 of the client PC 40 generates the PDL.

[0092] In S78, the management tool 6 determines whether the print job currently being processed by the server PC 1 is a print job created in a PC other than the server PC 1. Specifically, the management tool 6 makes this determination by comparing the name of the PC that generated the print job with the name of the server PC 1. If the management tool 6 determines that the print job currently being processed is a print job created in the server PC 1, the management tool 6 proceeds to S80 and sets the pause flag to OFF. If the management tool 6 determines that the print job currently being processed is a print job created in a PC other than the server PC 1, the management tool 6 proceeds to S79.

[0093] In S79, the management tool 6 sets the pause flag to on.

[0094] In S81, the management tool 6 determines whether there is a request from the main thread to end the monitoring thread. If there is no request, the management tool 6 proceeds to S82 to wait for 500 milliseconds, and then returns to S71. If there is a request to end the monitoring thread, the management tool 6 ends the monitoring thread.

[0095] according to Fig. 10A and Fig. 10B , in the main thread, the management tool 6 performs steps S56 to S59 while checking whether the pause flag is off to obtain information about the usage history of the printer A 30. In the case where the pause flag is on, the management tool 6 waits until the pause flag is set to off while repeating steps S54 and S55. In other words, the management tool 6 obtains the information about the usage history of the printer A 30 in stages by repeating the steps of checking the pause flag, waiting until the pause flag is set to off, and obtaining the usage history information.

[0096] On the other hand, in the monitoring thread performed simultaneously with the main thread, the management tool 6 sets the pause flag to on only when the determination results in S72, S74, S76, and S78 are all "yes". In other words, the management tool 6 sets the pause flag to on only when the print job drawn by the client PC 40 is being processed by the server PC 1. In other cases, the management tool 6 sets the pause flag to off because mutual exclusion using a mutex effectively works between the management tool 6 of the server PC 1 and the filter 4. The management tool 6 performs this updating of the pause flag every 500 milliseconds.

[0097] Fig.11 4 is a flowchart showing processing executed by the filter 43 of the client PC 40 in the case where the client PC 40 generates a PDL. This processing is started by the spooler 42 activating the filter 43 based on receiving a print job generated by the application 41.

[0098] Once the process starts, in S101 , the filter 43 first obtains the output destination of the print job from the OS of the client PC 40 .

[0099] In S102, the filter 43 determines whether the output destination of the print job is a shared printer connected to a different PC. If the filter 43 determines that the output destination of the print job is a shared printer, the filter 43 waits for one second in S103 and then proceeds to S104 to start PDL conversion and output of the print data. If the filter 43 determines that the output destination of the print job is not a shared printer, the filter 43 proceeds to S104 without waiting and starts converting and outputting the PDL of the print data. Steps S104 to S109 for PDL conversion and output of the print data performed thereafter are the same as those in the previous step. Figure 7 The steps S11 to S16 shown are the same and therefore will not be described again here.

[0100] Now, in the management tool 6 executed by the server PC 1 Fig. 10A and Fig. 10B The flowchart in FIG. 1 is the same as the flowchart in FIG. 11 and the flowchart in FIG. 12 which is executed by the filter 43 of the client PC 40. Fig.11 . In the case where the output destination of the print job is a shared printer, the client PC 40 starts generating the PDL after waiting for one second. In contrast, the server PC 1 determines whether it is appropriate to update the pause flag (i.e., perform information processing for obtaining the usage history of the printer A 30) every 500 milliseconds. Therefore, in the case where the output destination of the print job is a shared printer, the management tool 6 of the server PC 1 can detect that the server PC 1 has received the print job from the client PC 40 before the spooler 3 receives the PDL from the client PC 40. In other words, the management tool 6 sets the pause flag to on (S79) before the spooler 3 receives the PDL from the client PC 40, and can wait until the processing of the print job created in the client PC 40 is completed. Although the above structure causes the client PC 40 to start generating the PDL after waiting for one second and to update the pause flag every 500 milliseconds, these numbers can be changed as long as the pause flag is updated at a predetermined interval shorter than the time period that the client PC 40 waits.

[0101] The present embodiment as described above helps prevent information of different programs from being sent or received in a mixed manner via the USB I / F 7, and enables print processing to be performed appropriately without the user having to change settings as in the first embodiment.

[0102] (Third Embodiment)

[0103] This embodiment also uses Figures 1 to 6 In the present embodiment, the management tool 6 of the server PC 1 performs processing to obtain the usage history of the printer A 30 while changing the settings of the printing system as required.

[0104] Fig. 12A and Fig. 12B FIG. 1 is a flowchart showing the status information acquisition process executed by the management tool 6 of the server PC 1 of the present embodiment. Figure 6 This process starts at the timing of displaying the history frame 63 as shown.

[0105] Once the process is started, in S121, the management tool 6 first sets the PDL change flag to OFF as a default. The PDL change flag is a flag for indicating that the PC set to perform drawing has been changed from the client PC 40 to the server PC 1. Steps S122 to S132 for obtaining and displaying the usage history information performed thereafter are similar to the steps S123 to S134. Figure 8 Steps S21 to S31 are shown to be the same and therefore will not be described again.

[0106] In S133, the management tool 6 obtains information on the PDL change flag.

[0107] In S134, the management tool 6 determines whether the PDL change flag is on. If the PDL change flag is on, the management tool 6 proceeds to S135 to change the PC set to perform drawing from the server PC 1 back to the client PC 40, and ends the process. If the management tool 6 determines in S134 that the PDL change flag is off, the management tool 6 ends the process.

[0108] If the management tool 6 determines in S123 that the printer is set to be shared, the management tool 6 proceeds to S136 and obtains information about the PC set to perform drawing from the OS. The information obtained here is Figure 5 The information set on the setting screen 50 shown.

[0109] In S137, the management tool 6 determines whether the PC set to perform drawing is the client PC 40. If the PC set to perform drawing is not the client PC 40 (that is, it is the server PC 1), the management tool 6 proceeds to S124 and follows the steps S124 to S135 already described to perform processing for obtaining and displaying the use history of the printer A 30. If the management tool 6 determines in S137 that the PC set to perform drawing is the client PC 40, the management tool 6 proceeds to S138.

[0110] In S138, the management tool 6 displays Fig.13 The notification dialog box 80 is shown. The notification dialog box 80 gives a notification that the PC set to perform drawing is changed to the server PC 1. The notification dialog box 80 is closed by the user pressing a continue button 81 or a cancel button 82.

[0111] If the management tool 6 determines in S139 that the continue button 81 has been pressed, the management tool 6 changes the PC set to perform drawing from the client PC 40 to the server PC 1 in S140, sets the PDL change flag to on in S141, and returns to S136.

[0112] In the case where the management tool 6 returns to S136 after determining in S139 that the continue button 81 has been pressed, it is determined in S137 that the PC set to perform drawing is not the client PC 40. Therefore, the management tool 6 proceeds to S124, and can perform processing to obtain and display the use history of the printer A 30. In this case, it is conceivable that a print job can be received from the client PC 40 before the management tool 6 switches the drawing PC to the server PC 1 in S140. However, even in this case, the management tool 6 waits while repeating steps S124 and S125 until it is determined in S125 that a print job drawn by the client PC 40 is not included. Therefore, data communication performed regarding a print job drawn by the client PC 40 and data communication performed by the management tool 6 do not occur in a mixed manner.

[0113] If the management tool 6 determines in S142 that the cancel button 82 has been pressed, the management tool 6 ends the process without changing the PC set to perform drawing.

[0114] According to the present embodiment described above, the management tool 6 can perform processing to obtain the use history of the printer A 30 while changing the PC set to perform the drawing process as needed. Specifically, in the case where the PC set to perform the drawing process is set to the client PC 40, the PC set to perform the drawing process is set to the server PC 1 during the period in which the management tool 6 is performing the history information obtaining process, and is changed back after the history information obtaining process ends. Thus, the present embodiment helps prevent the spooler 3 and the management tool 6 from sending or receiving information in a mixed manner, and enables the print process to be appropriately performed without giving the user the trouble of changing back the setting of the drawing PC.

[0115] (Other embodiments)

[0116] Although the server PC 1 and the printer A 30 are connected to each other via an interface in the above-described first to third embodiments, the server PC 1 and the printer A 30 may be an integrated device.

[0117] Although the above description is about the mutual exclusion between the printer driver and the management tool 6, the process of the present disclosure can also be performed for the mutual exclusion between the printer driver and different programs. For example, the process of the present disclosure can be performed for the mutual exclusion between the printer driver and a program for communicating with the printer (the program is not the management tool 6).

[0118] The present disclosure provides a system or device with a storage medium, which stores the program code of the software that implements the functions described in the above embodiments, so that a computer in the system or device reads and executes the program code. In this case, the program code read from the storage medium implements the functions of the above embodiments, and the storage medium storing the program code forms the present disclosure.

[0119] Examples of storage media that can be used to provide the program code include floppy disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, nonvolatile memory cards, ROMs, and DVDs.

[0120] Instead of realizing the functions of the above-described embodiments by having a computer execute the program code, an OS running on a computer or the like may perform part or all of the actual processing based on instructions in the program code.

[0121] In addition, a mode may be adopted in which the program code read from the storage medium is written into a memory in an expansion board inserted into the computer or in an expansion unit connected to the computer. In this case, the present disclosure also includes a mode in which a CPU or the like in the expansion board or unit performs part or all of the actual processing based on the instructions in the written program code, and the functions of the present embodiment described above are realized through such processing.

[0122] The embodiments of the present invention may also be implemented by providing software (program) for performing the functions of the above-described embodiments to a system or device via a network or various storage media, and a computer or a central processing unit (CPU) or a microprocessing unit (MPU) of the system or device reads and executes the program.

[0123] Although the present disclosure includes exemplary embodiments, it is to be understood that the present disclosure is not limited to the disclosed exemplary embodiments.The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.

Claims

1. An information processing method, which is performed by a first information processing device, in a printing system, the first information processing device can communicate with a printer, the first information processing device and a second information processing device are connected via a network, and the second information processing device can communicate with the printer via the first information processing device, the information processing method comprising: obtaining setting information indicating whether the second information processing device is allowed to communicate with the printer via the first information processing device and whether the second information processing device generates a printer description language (PDL) based on print data; obtaining information about a status of the printer from the printer by communicating with the printer based on an input of a command from a user; as well as When the setting information indicates that the second information processing device is allowed to communicate with the printer via the first information processing device and the second information processing device generates a printer description language (PDL) based on print data, a predetermined process is performed and a communication with the printer is waited for to obtain information about the status of the printer. The obtaining of information on the status of the printer and the sending of the PDL generated by the second information processing device to the printer are performed by respective different programs on the first information processing device.

2. The information processing method according to claim 1, wherein: The predetermined process is a process for prompting a user to change a setting in the setting information.

3. The information processing method according to claim 2, wherein: The predetermined process is a process for prompting a user to change the setting in the setting information so that communication between the printer and the second information processing apparatus is not permitted or so that the first information processing apparatus generates a PDL to be received by the printer.

4. The information processing method according to claim 1, wherein: The predetermined processing is a processing for checking a flag set to on when the second information processing device is allowed to communicate with the printer via the first information processing device, the second information processing device is set to generate PDL, and the first information processing device is processing the PDL generated by the second information processing device.

5. The information processing method according to claim 4, in, When executing the predetermined process, repeating the predetermined process until it is confirmed that the flag is off, and When it is determined that the flag is off, communication with the printer is started for obtaining information on the status of the printer.

6. The information processing method according to claim 4 or 5, wherein: The determination of whether the flag is on or off is repeated at predetermined intervals.

7. The information processing method according to claim 1, in, The predetermined processing is processing for changing settings in the setting information so that the first information processing apparatus generates PDL, and wherein, after the change is made, communication with the printer for obtaining information on the status of the printer is started.

8. The information processing method according to claim 7, further comprising: After obtaining information about the status of the printer from the printer, the setting in the setting information is changed again to cause the second information processing apparatus to generate the PDL.

9. The information processing method according to claim 1, wherein: When it is confirmed that the print jobs currently being processed or waiting to be processed by the first information processing apparatus do not include a job having the PDL generated by the second information processing apparatus, communication with the printer for obtaining information on the status of the printer is started.

10. The information processing method according to claim 1, wherein: Obtaining information about the status of the printer includes: sending a command for requesting a usage history to the printer; receiving the usage history from the printer; and displaying the received usage history.

11. The information processing method according to claim 1, wherein: The predetermined process is executed by the printer driver.

12. A non-transitory computer-readable storage medium comprising program instructions, which, when executed by a computer of a first information processing device, cause the first information processing device to perform the following operations: obtaining setting information indicating whether a second information processing device is allowed to communicate with a printer via the first information processing device and whether the second information processing device generates a printer description language (PDL) based on print data; obtaining information about a status of the printer from the printer by communicating with the printer based on an input of a command from a user; as well as When the setting information indicates that the second information processing device is allowed to communicate with the printer via the first information processing device and the second information processing device generates a printer description language (PDL) based on print data, a predetermined process is performed and a communication with the printer is waited for to obtain information about the status of the printer. The obtaining of information on the status of the printer and the sending of the PDL generated by the second information processing device to the printer are performed by respective different programs on the first information processing device.

13. An information processing device interposed between a printer and a different information processing device connected to the information processing device via a network and capable of controlling communication between the printer and the different information processing device, the information processing device comprising: a setting information obtaining unit for obtaining setting information indicating whether the different information processing device is allowed to communicate with the printer via the information processing device and whether the different information processing device generates a printer description language (PDL) based on print data; a status information obtaining unit for obtaining information on a status of the printer from the printer by communicating with the printer based on an input of a command from a user; as well as an execution unit configured to, when the setting information indicates that the different information processing device is allowed to communicate with the printer via the information processing device and the different information processing device generates a printer description language (PDL) based on print data, cause the status information acquisition unit to wait for communication with the printer to obtain information on the status of the printer and to perform predetermined processing, The state information obtaining unit obtaining the information on the state of the printer and transmitting the PDL generated by the different information processing device to the printer are performed by different programs on the information processing device.

Citation Information

Patent Citations

  • Information processor, control method therefor and program

    JP2006099747A

  • Information processing device, control method, and program

    US20180220025A1