US10423375B2 - Non-transitory computer-readable storage medium, client computer, and print method - Google Patents
Non-transitory computer-readable storage medium, client computer, and print method Download PDFInfo
- Publication number
- US10423375B2 US10423375B2 US15/969,542 US201815969542A US10423375B2 US 10423375 B2 US10423375 B2 US 10423375B2 US 201815969542 A US201815969542 A US 201815969542A US 10423375 B2 US10423375 B2 US 10423375B2
- Authority
- US
- United States
- Prior art keywords
- queue
- job
- server
- rendered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 25
- 238000007639 printing Methods 0.000 claims description 40
- 238000012790 confirmation Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000009877 rendering Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1259—Print job monitoring, e.g. job status
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/126—Job scheduling, e.g. queuing, determine appropriate device
- G06F3/1261—Job scheduling, e.g. queuing, determine appropriate device by using alternate printing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1207—Improving or facilitating administration, e.g. print management resulting in the user being informed about print result after a job submission
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/121—Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1248—Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1288—Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1297—Printer code translation, conversion, emulation, compression; Configuration of printer parameters
- G06F3/1298—Printer language recognition, e.g. programme control language, page description language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/122—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
Definitions
- the present invention relates to the issuing of printing instructions by a client computer that is connected to a plurality of print servers.
- Printing systems include a client computer that is arranged to send print instructions to a print server.
- the client installs software that is required to send print jobs to the print server, such as a printer driver and a print processor.
- This software can be installed by the user providing the client with installation media.
- this software can be installed by being sent to the client by the print server using, for example, technology such as Point and Print from Microsoft (registered trademark).
- Print jobs are stored in a print queue by the memory of the client to be sent to the print server. Once a print job has been transferred successfully, the print queue is updated to remove the print job. However, if the print server fails, the client waits until the print server becomes available. When the client can communicate with the print server, the print job is sent to the print server.
- a non-transitory computer-readable storage medium storing a software package comprising a printer driver and a print processor.
- the printer driver is configured, when installed on a client computer: to maintain a list of print servers that the client computer can use to send a print job to a printer; and to render the print job into a page description language.
- the print processor is configured: to create a first print queue for sending the rendered print job from the client computer to a first print server and to add the rendered print job to the created first print queue; and to monitor sending of the rendered print job in the first print queue.
- the print processor is configured to create a second print queue and to add a duplicate print job to the second print queue by duplicating the rendered print job in the first print queue;
- the printer driver is configured to select a second print server from the list of print servers maintained by the printer driver; and the printer driver is configured to send the duplicate print job in the second print queue from the client computer to the second print server.
- the printer driver is configured to select a third print server from the list of print servers maintained by the printer driver, and the printer driver is configured to send the duplicate print job in the second print queue from the client computer to the third print server.
- the print processor is configured, if the sending of the rendered print job from the client computer to the first print server is successful, to update the first print queue by removing the rendered print job, when a confirmation notification is received.
- the print processor is configured, if the sending of the rendered print job from the client computer to the first print server is not successful: to update the first print queue by removing the rendered print job when creating the second print queue; and to update the second print queue by removing the duplicate print job when creating the second print queue, when a confirmation notification is received.
- the printer driver is configured to maintain the list of print servers by receiving data on the print servers that are available to the client computer from at least one of the print servers.
- a client computer comprising a non-transitory computer-readable storage medium storing a software package according to the first aspect, the software package comprising a printer driver and a print processor.
- the printer driver is configured, when installed on a client computer: to maintain a list of print servers that the client computer can use to send a print job to a printer; and to render the print job into a page description language.
- the print processor is configured: to create a first print queue for sending the rendered print job from the client computer to a first print server and to add the rendered print job to the created first print queue; and to monitor sending of the rendered print job in the first print queue.
- the print processor is configured to create a second print queue and to add a duplicate print job to the second print queue by duplicating the rendered print job in the first print queue;
- the printer driver is configured to select a second print server from the list of print servers maintained by the printer driver; and the printer driver is configured to send the duplicate print job in the second print queue from the client computer to the second print server.
- the client computer is configured to automatically retrieve the software package from the first print server.
- the automatic retrieval of the software package is performed using point and print.
- a print system comprising the client computer and a plurality of print servers.
- a print method for providing resilient transmission of a print job from a client computer to a print server comprising: installing a printer driver and a print processor on a client computer: the printer driver maintaining a list of print servers that the client computer can use to send a print job to a printer; the printer driver rendering the print job into a page description language; and the print processor creating a first print queue for sending the rendered print job from the client computer to a first print server and adding the rendered print job to the created first print queue; and the print processor monitoring the sending of the rendered print job in the first print queue; wherein if the sending of the rendered print job from the client computer to the first print server is not successful: the print processor creating a second print queue and adding a duplicate print job to the second print queue by duplicating the rendered print job in the first print queue; the printer driver selecting a second print server from the list of print servers maintained by the printer driver; and the printer driver sending the duplicate print job in the second print queue from the client computer to the second print
- FIG. 1 is a schematic of a printing system comprising a client computer connected to a plurality of print servers, which are connected to a plurality of printers;
- FIGS. 2A-2C are schematic diagrams illustrating hardware components of a client computer, a print server, and a printer;
- FIGS. 3A-3B provide workflows showing how the client computer interacts with a first print server and a second print server, where FIG. 3A details the situation in which the print job is successfully printed via the first print server, and where FIG. 3B details the situation for which there is a failure of the first print server;
- FIG. 4A is a flowchart of processes performed on the client computer
- FIG. 4B is a flowchart of processes performed on the first print server.
- FIG. 4C is a flowchart of processes performed on the second print server.
- FIG. 1 shows a printing system 100 .
- a client computer 110 is connected to a plurality of print servers 131 - 133 via a first network 121 .
- the plurality of print servers 131 - 133 are connected to a plurality of printers 161 - 162 via a second network 122 .
- the first network 121 and second network 122 may be parts of the same network. Transmission of information over the networks 121 - 122 can be performed, for example, using wired connections such as Ethernet, or wireless local area networking (WLAN) such as Wi-Fi (registered trademark).
- WLAN wireless local area networking
- the client 110 is a laptop or personal computer running Microsoft Windows (registered trademark) operating system. However, in other embodiments, different hardware and/or operating systems may be used. Thus, the client computer 110 is referred to as a client.
- Microsoft Windows registered trademark
- the first print server 131 comprises a memory 140 which stores data and software.
- the memory 140 of the first print server 131 includes a universal printer driver 141 a and a print processor 142 a that can be downloaded by the client 110 using ‘Point and Print’ processes managed by the Windows operating system.
- ‘Point and Print’ the operating system causes the client to copy an entire driver package (including the universal printer driver and print processer) to the client and install the printer driver.
- this ‘Point and Print’ process all runnable components of the driver are installed on the client and driver signing and integrity are checked by the operating system on the client.
- the universal printer driver is a printer driver that prints into a PDL (page description language) that can be understood by the print servers 131 - 133 .
- the print server 131 (or other print server) receives the print job from the universal printer driver and is configured to convert the print job into a suitable print job format for printing by the selected printer 161 - 162 .
- the printing system 100 is configured to perform client-side rendering which causes the universal printer driver 141 b to render the print job to the Page Description Language (PDL) that the printer uses instead of other formats that the universal printer driver natively uses.
- PDL Page Description Language
- the client 110 has a client-side spooler that co-operates with a server-side spooler installed on the first print server 131 to transfer print job data between the client 110 and first print server 131 .
- the print processor 142 b is a piece of software that is used to monitor print jobs in the client-side Windows Spooler. It works together with the universal printer driver 141 b to move the spooled print jobs from the hard disk drive 222 to the printer 161 - 162 .
- universal printer driver 141 a allows the client 110 to communicate with any of the print servers 131 - 133 .
- the second print server 132 and the third print server 133 also have a memory which stores a copy of the universal printer driver and a print processor to allow clients that are connected to those servers to install those software components, although the client 110 has downloaded the universal printer driver 141 b from the memory 140 of the first print server 131 and it is not necessary for the client 110 to install new software. If the client 110 is to submit a print job to the second print server 132 or the third print server 133 , then the print job can be submitted without the need to download additional software.
- the client 110 also comprises a memory 111 , onto which is stored copies of the universal printer driver 141 b and the print processor 142 b , which have been obtained from the first print server 131 in accordance with the ‘Point and Print’ process described above.
- a memory 111 onto which is stored copies of the universal printer driver 141 b and the print processor 142 b , which have been obtained from the first print server 131 in accordance with the ‘Point and Print’ process described above.
- the universal printer driver 141 b and the print processor 142 b are installed on the client 110 , it is possible for the client 110 to submit a print job to any of the print servers 131 - 133 .
- An example of the type of print processor 142 b is the APJ Print Processor, which is used to monitor print jobs in a print spooler, provided by NT-ware Systemprogrammtechnik (registered trademark).
- An APJ print processor embodying the invention was not available to the public at the relevant earliest date of this disclosure.
- the client 110 also stores, in the memory 111 , information that is used to implement print jobs, including a print queue 151 and an offline print queue 152 .
- the term “first print queue” is used to refer to the print queue 151 .
- the term “second print queue” is used to refer to the offline print queue 152 .
- the term “rendered print job” refers to a print job in the first print queue 151 , that has been rendered into a page description language, by the printer driver 141 b of the client 110 .
- the term “duplicate print job” refers to a print job in the second print queue 152 , that has been duplicated from the first print queue 151 , by the print processor 142 b of the client 110 .
- FIG. 2A shows the hardware configuration of the client 110 .
- the client 110 comprises a CPU 210 , a memory 111 , a display unit 230 , a communication control unit 241 , and an I/O control unit 250 .
- the memory 111 includes a read-only memory (ROM) 221 , a hard disk drive 222 , and a random-access memory (RAM) 223 .
- the display unit 230 includes a monitor that is used to present information to the user.
- the communication control unit 241 allows the client 110 to communicate over the local area network (LAN) with the print servers 131 - 133 .
- the I/O control unit 250 is connected to a keyboard 251 and a mouse 252 , which the user can use to provide the client 110 with instructions.
- These components are standard hardware components for computers and other devices and perform their usual functions. These components are interconnected via a system bus 290 .
- FIG. 2B shows the hardware configuration of the print server 131 - 133 .
- the print server 131 - 133 includes features that perform substantially the same functions as the features of the client 110 , as indicated by the corresponding reference numerals.
- the communication control unit 242 allows the print server 131 to communicate over the LAN with the client 110 and the printers 161 - 162 . It is not necessary for the print server 131 to include the display unit 230 or the I/O control unit 250 , because the client 110 includes these features, but these features may be included.
- FIG. 2C shows the hardware configuration of a printer 161 - 162 .
- the term “printer” is used to refer to any multifunction peripheral device (MFP), which typically is configured to perform a variety of functions including printing, scanning and communication.
- MFP multifunction peripheral device
- the printer 161 - 162 includes features that perform substantially the same functions as the features of the client 110 , as indicated by the corresponding reference numerals.
- the printers 161 - 162 each further include various hardware components which are dedicated to functionality as an MFP, such as a recording unit 281 , an image reader 282 , and an image processing unit 283 .
- the display unit 230 is a touch-screen liquid crystal display (LCD) provided on the printer 161 - 162 to allow a user to make selections and view information on the printer 161 - 162 , such as requesting the printing of a print job stored on a print server 131 - 133 .
- the communication control unit 243 is provided to allow the printer 161 - 162 to communicate over the LAN with the print server 131 .
- the printer 161 - 162 includes an authentication processing unit 260 and a card reader 253 connected to the I/O control unit 250 .
- the authentication processing unit 260 is provided to authenticate user details received from the card reader 253 . Data from the card reader 253 is received at the authentication processing unit 260 via the I/O control unit 253 .
- the authentication processing unit 260 may be implemented by software run using the CPU 210 and RAM 230 rather than as a separate hardware component.
- the operation unit 270 is a keypad and other buttons that allow a user to enter settings and other information to the printer 161 - 162 .
- the recording unit 281 represents parts of the printer 161 - 162 dedicated to printing. The recording unit 281 functions to print image data onto a recording medium and output the recording medium for collection by the user.
- the memory 220 of the printer 161 - 162 includes an image memory 224 , which is a memory provided for storage of image data obtained during scanning by the image reader 282 or printing by the recording unit 281 .
- the image-processing unit 283 represents various application specific integrated circuits (ASIC) provided in the printer 161 - 162 to increase the speed of certain image processing operations, such as conversion of scanned RGB data into CMYK data during a copy operation.
- ASIC application specific integrated circuits
- the printer 161 - 162 runs an operating system, such as the Multifunctional Embedded Application Platform (MEAP) operating system provided on multifunction devices sold by Canon (registered trademark).
- MEAP Multifunctional Embedded Application Platform
- FIGS. 3A-3B provide workflows of the operation implemented by printing system 100 .
- FIG. 3A illustrates a workflow in which the print job is successfully printed using the first print server 131 .
- the print servers 131 - 133 are configured to exchange metadata with one another F 10 . More particularly, the print servers 131 - 133 communicate with one another via the first network 121 or the second network 122 to share information, including their IP address and metadata about jobs stored on those servers. Furthermore, the print servers 131 - 133 can establish whether the other printer servers 131 - 133 are currently available to the client 110 .
- the client 110 is configured to use the first print server 131 .
- Point and Print refers to the capability of installing a connection to a remote printer 161 - 162 without the user being required to provide any installation media. Instead, all necessary files and configuration information are automatically downloaded from the selected print server 131 to the client 110 .
- a Point and Print request is transmitted F 21 from the client 110 to the first print server 131 .
- the first printer 131 sends F 22 to the client 110 copies of the universal printer driver 141 a and the print processor 142 a .
- background synchronisation F 23 of the client 110 and the print server 131 occurs.
- the IP addresses of the other printer servers 132 and 133 is communicated from the first printer server 131 to the universal printer driver.
- the universal printer driver is configured to print to the first print server 131 and in parallel stores IP addresses for the other available printer servers 132 and 133 on the network 121 .
- printing can be achieved by using the software stored locally in the memory 111 of the client 110 including the universal printer driver 141 b and print processor 142 b.
- a printing operation will now be described.
- a user instructs the client 110 that a print job is to be printed F 31 .
- the client 110 uses the universal printer driver 142 b to render the print job F 32 .
- Rendering the print job locally by the client 110 means that it is not necessary for the print job to be rendered by the print server 131 .
- the client 110 creates F 33 a print queue 151 , which stores a list of jobs that are to be printed.
- the print job created by the universal printer driver 141 b is stored in the created print queue 151 .
- the print job is sent F 41 to the first print server 131 by the Windows spooler.
- the Windows print system transfers the print job data via remote desktop protocol (RDP), which provides the basis for the sharing of the print queue 151 via Point and Print.
- RDP remote desktop protocol
- the print job will be received F 42 by the first print server 131 , and subsequently, the first print server 131 will issue instructions F 43 to a printer selected from the plurality of printers 161 - 162 .
- confirmation is received F 44 by the first print server 131 , from the selected printer 161 .
- a notification is sent F 45 from the first print server 131 to the client 110 .
- the client 110 performs an assessment F 51 of whether the print job was successfully completed.
- the assessment during normal operation is achieved by determining the receipt F 45 from the first print server 131 of the notification which confirms that the print job has been successfully printed. Consequently, the client 110 updates the print queue 151 by removing the print job.
- the print queue 151 can be updated when the print job has been successfully spooled to the first print server 131 . This is because it is more important that the print job is spooled to the first print server 131 , rather than the print job being printed by a physical printer 161 - 162 . The responsibility of the client 110 ends once the print job has been fully sent (or spooled) to the first print server 131 . Thus, it is not necessary for the method to include steps F 43 -F 45 .
- FIG. 3B illustrates a workflow for which there is a failure of the first print server 131 , with the print job being successfully printed via the second print server 132 .
- the print servers exchange metadata as previously described in connection with FIG. 3A .
- the universal printer driver are installed on the client 110 using ‘Point and Print’ as previously described in steps F 21 and F 22 .
- the driver synchronises with the first print server in order to obtain IP addresses of the other print servers on the network.
- a printing operation will now be described.
- a user instructs the client 110 that a print job is to be printed F 31 .
- the client 110 uses the universal printer driver 142 b to render the print job F 32 .
- the client 110 creates F 33 a print queue 151 , which stores a list of jobs that are to be printed.
- the print job created by the universal printer driver 141 b is stored in the created print queue 151 .
- the Windows spooler attempts to transmit the print job to the first print server 131 .
- the first print server is not online. Accordingly, it is determined F 51 by the print processor that is monitoring the spooling that the print job was not successfully transmitted.
- a timeout error is identified by the client 110 if it is determined F 51 that no notification is received during a predetermined time period. In the event that a failure occurs with the printing of the print job, it is desirable to make alternative arrangements, so that the print job is executed. In the event of a timeout error being identified by the client 110 , the method proceeds to step F 52 .
- the print processor 142 b creates F 52 an offline print queue 152 , which is achieved by duplicating the contents of the print queue 151 .
- the offline print queue 152 then transmits the duplicated print job to a different server 132 - 133 under control of the printer driver 141 b.
- the IP address of the different print server 132 - 133 is identified from the universal printer driver 141 b , which obtained the IP address in synchronisation step F 23 .
- the IP addresses are stored in the universal printer driver 141 b and a first address is selected F 60 as the destination to send the print job from the offline print queue 152 .
- the IP address is that of the second print server 132 .
- the print job is sent F 61 to the second print server 132 by the client 110 using the printer driver 141 b to transmit instructions according to the offline print queue 152 .
- the sending of the print job F 61 from the client 110 to the second print server 132 is achieved using internet printing protocol (IPP).
- IPP internet printing protocol
- the universal printer driver 141 b does not write to the Windows print system according to RDP printing. Instead, the universal printer driver 141 b directly initiates IPP connections to the second print server 132 , bypassing the Windows printing system. A positive result is sent back to the print processor, such that the printing of the print job is treated as successful.
- the print processor 142 b is responsible for duplicating the print queue 151 , thus duplicating the print job to that print queue 151 , which creates the offline print queue 152 .
- the print job duplicate of the offline print queue 152 is flagged for IPP printing. This flag is read by the universal printer driver 141 b of the duplicate print job, which will then issue the IPP printing process.
- the universal printer driver 141 b and the print processor 142 b software which were obtained from the first print server 131 are compatible with the second print server 132 , and so the client 110 can print via the second print server 132 without the need to download any additional software.
- the second print server 132 will issue instructions F 63 to a printer selected from the plurality of printers 161 - 162 . If printing is successfully completed, confirmation is sent from the selected printer 161 to the second print server 132 . A notification is sent F 64 from the second print server 132 to the client 110 .
- the print queue 151 can be updated when the print job has been successfully spooled to the second print server 132 . This is because it is more important that the print job is spooled to the second print server 132 , rather than the print job being printed by a physical printer 161 - 162 . The responsibility of the client 110 ends once the print job has been fully sent (or spooled) to the second print server 132 . Thus, it is not necessary for the method to include steps F 63 -F 65 .
- the client 110 performs an assessment of whether the print job was successfully completed F 71 . If it is determined that notification F 64 confirms that the print job has been successful, the client 110 updates the print queue 151 and the offline print queue 152 to remove the print job. On the other hand, if it is determined that the print job was not successfully completed F 71 , the client 110 instead instructs the third print server 133 to complete the print job, since it continues to be listed by the offline print queue 152 .
- the client 110 can be connected to a plurality of print servers 131 - 133 , each of which has a different IP address.
- the print queue of the client 110 is only configured to send print jobs to the first print server 131 .
- the present arrangement allows the client to print to any of the print servers 131 - 133 , because the universal printer driver 141 b includes all of the IP addresses associated with the print servers 131 - 133 , and the print processor 142 b is able to re-route the print job to an appropriate print server by duplicating the print queue.
- the client 110 is used to instruct a replacement print server 132 - 133 .
- the replacement print server 132 - 133 is selected by the client 110 from the list of available print servers 132 - 133 that are stored by the universal printer driver 141 b .
- the client 110 can be configured to determine how to choose between the available print servers 132 - 133 .
- FIG. 3B shows the situation in which the second print server 132 has been selected to implement the print jobs that are stored by the offline print queue 152 that has been created F 52 by the client 110 .
- FIGS. 4A-C provide flowcharts showing processes performed on the client and the printer servers.
- the reference numerals used in the workflows illustrated by FIGS. 3A-3B correspond to the last 2 digits of the reference numeral used in FIGS. 4A-C .
- FIG. 4A shows method steps that are performed by the client 110 .
- step S 121 a Point and Print request is sent to the first print server 131 .
- step S 122 the client 110 awaits receipt from the first print server 131 of copies of the universal printer driver 141 b and the print processor 142 b in a driver package. These software components are then installed on the client computer.
- step S 123 the client 110 and print servers 131 - 133 are synchronized, such that the universal printer driver 141 b acquires IP addresses of the print servers on the network.
- step S 131 print instructions are received from the user, which are submitted to the I/O control unit 250 of the client 110 using input devices 251 - 252 .
- step S 132 the universal printer driver 141 b renders the print job for printing.
- step S 133 the print processor 142 b monitors the print job in the print queue 161 .
- step S 141 the print job is sent to the first print server 131 .
- step S 145 a If it is determined that the print job was successfully implemented, in step S 145 a , a print notification is received.
- the print queue 151 is updated S 171 a , and subsequently the process ends.
- step S 145 b the print processor 142 b identifies that the print job was not successfully printed if no notification is received within a predetermined period of time.
- step S 152 an offline print queue 152 is created by the print processor duplicating the print queue 151 , and the print queue 151 is updated to remove the print job that has been duplicated to the offline print queue 151 .
- the print job is to be completed by the second print server 132 , and so the print queue 151 is updated so that the print job isn't sent to the first print server 131 when the first print server 131 comes back online.
- a replacement print server such as the second print server 132 or the third print server 133 , is selected F 60 by the printer driver 141 b . Instructions are then sent F 61 by the printer driver 141 b to the replacement print server 132 - 133 that has been selected. The replacement print server 132 - 133 is selected based upon the synchronisation information that was received in step S 123 .
- step S 165 an assessment is made of whether the print job was successfully printed. If the print job was successfully printed, then the process moves to step S 171 b . If the print job was not successfully printed, then an alternative print server is selected F 60 by returning to step S 161 . In step S 171 b , the offline print queue 152 is updated, thus removing the print job from the offline print queue 152 .
- FIG. 4B shows method steps that are performed by the first print server 131 .
- step S 210 metadata is exchanged between the print servers 131 - 133 .
- step S 221 the first print server 131 receives the Point and Print request from the client 110 .
- step S 222 the universal printer driver 141 a and the print processor 142 a are transmitted in a software package from the first print server 131 to the client 110 .
- step S 223 information is synchronized with the universal printer driver 142 b to convey IP addresses of printer servers 131 - 133 .
- step S 242 an assessment is made of whether a print job has been received from the client 110 .
- step S 242 If a print job is not received by the first print server 131 (NO in step S 242 ), then there has been a failure. As a consequence, the print processor 142 b of the client 110 will determine that there has been a timeout error. As an alternative to the timeout error being determined by the client 110 , instead it is possible that an error notification could be transmitted by the first print server 131 to the client 110 , in the event that the first print server 131 determines that it is not capable of sending the print job to the printer 161 - 162 .
- step S 242 If the print job is received by the first print server 131 (YES in step S 242 ), then the print job is sent S 243 to the printer 161 - 162 . Note that this step is not required, because it is not relevant whether printing has actually occurred. Instead, an assessment is made of whether spooling of the print job has occurred from the client 110 to the first print server 131 . For example, the print job may be stored on the first print server 131 for later printing.
- step S 244 a confirmation notification is received by the first print server 131 that was transmitted by the printer 161 - 162 to confirm that printing was successful.
- step S 245 in response to the first print server 131 receiving confirmation from the printer 161 - 162 , a print notification is sent to the client 110 . Since it is more important that the print job is spooled to the first print server 131 , rather than the print job being printed by a physical printer 161 - 162 , it is not necessary for the method to include steps S 243 -S 245 .
- FIG. 4C shows method steps that are performed by the second print server 132 .
- step S 310 metadata is exchanged between the print servers 131 - 133 .
- step S 362 an assessment is made of whether a print job has been received from the client 110 . If a print job is not received by the second print server 132 (NO in step S 362 ), then no further action is taken. If the print job is received by the second print server 132 (YES in step S 362 ), then the print job is sent S 363 to the printer 161 - 162 .
- the significant event under consideration is the transmission of the print job from the client 110 to the second print server 132 , rather than the successful transmission of the print job from the second print server 132 to the printer 161 - 162 .
- step S 364 a confirmation notification is received by the second print server 132 that was transmitted by the printer 161 - 162 to confirm that printing was successful.
- step S 365 in response to the second print server 132 receiving confirmation from the printer 161 - 162 , a print notification is sent to the client 110 . Since it is more important that the print job is spooled to the second print server 132 , rather than the print job being printed by a physical printer 161 - 162 , it is not necessary for the method to include steps S 363 -S 365 . For example, the print job may be stored on the second print server 132 for later printing.
- the second print server 132 serves as a backup in the event that there is a failure of the first print server 131 . Furthermore, the print job is executed by the client 110 without having to install any software from the second print server 132 , because compatible software was previously installed from the first print server 131 .
- the above examples can also be realised by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described examples, and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described examples.
- the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., a computer-readable medium such as a non-transitory computer-readable medium).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
Description
Claims (9)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1707218.2 | 2017-05-05 | ||
GB1707218.2A GB2562106B (en) | 2017-05-05 | 2017-05-05 | Resilient print job submission |
Publications (2)
Publication Number | Publication Date |
---|---|
US20180321888A1 US20180321888A1 (en) | 2018-11-08 |
US10423375B2 true US10423375B2 (en) | 2019-09-24 |
Family
ID=59065676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/969,542 Active US10423375B2 (en) | 2017-05-05 | 2018-05-02 | Non-transitory computer-readable storage medium, client computer, and print method |
Country Status (3)
Country | Link |
---|---|
US (1) | US10423375B2 (en) |
DE (1) | DE102018110612A1 (en) |
GB (1) | GB2562106B (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10587543B2 (en) * | 2017-07-19 | 2020-03-10 | Google Llc | Offline content notification reminders |
JP7494664B2 (en) * | 2020-09-02 | 2024-06-04 | セイコーエプソン株式会社 | Print control program, control method for print control device, and print control device |
JP2023020235A (en) * | 2021-07-30 | 2023-02-09 | ブラザー工業株式会社 | Communication system, computer program for authentication server, computer program for printer, printer, and method |
JP7547418B2 (en) * | 2022-07-29 | 2024-09-09 | キヤノン株式会社 | Information processing device, information processing method, and program |
US12073136B2 (en) * | 2022-10-17 | 2024-08-27 | Kyocera Document Solutions Inc. | Industrial printing system, print server, and grouping process method for peer-to-peer grouping of production printing jobs |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692111A (en) * | 1994-10-05 | 1997-11-25 | Microsoft Corporation | Automatic installation of printers in a distributed environment |
US5819020A (en) * | 1995-10-16 | 1998-10-06 | Network Specialists, Inc. | Real time backup system |
WO2000054138A1 (en) | 1999-03-11 | 2000-09-14 | Electronics For Imaging, Inc. | Client print server link for output peripheral device |
US6288790B1 (en) * | 1998-05-15 | 2001-09-11 | International Business Machines Corporation | Mobility support for printing |
US20010047348A1 (en) * | 2000-02-01 | 2001-11-29 | Lemuel Davis | Consumer driven content media duplication system |
US20020186407A1 (en) | 2001-06-12 | 2002-12-12 | Laughlin John David | Printer-embedded service to allow for fail-over operation through automatic rerouting of print jobs to comparable printers |
US20030076522A1 (en) | 2001-10-23 | 2003-04-24 | Simpson Shell S. | Document printing system |
US20030128384A1 (en) * | 2002-01-04 | 2003-07-10 | Nelson Dean S. | Dynamic load-balancing print server systems and methods |
EP1548569A2 (en) | 2003-12-10 | 2005-06-29 | Canon Kabushiki Kaisha | Information processing apparatus, print job management method, information processing program, and recording medium |
US20050141007A1 (en) * | 2003-12-03 | 2005-06-30 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, information processing program, and storage medium |
US20080030770A1 (en) * | 2006-08-07 | 2008-02-07 | Konica Minolta Business Technologies, Inc. | Data outputting system and output controlling server of the same |
US20080040717A1 (en) * | 2006-08-12 | 2008-02-14 | Hobson Steve J | Method, Apparatus and Computer Program Product for Transaction Recovery |
-
2017
- 2017-05-05 GB GB1707218.2A patent/GB2562106B/en active Active
-
2018
- 2018-05-02 US US15/969,542 patent/US10423375B2/en active Active
- 2018-05-03 DE DE102018110612.2A patent/DE102018110612A1/en active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692111A (en) * | 1994-10-05 | 1997-11-25 | Microsoft Corporation | Automatic installation of printers in a distributed environment |
US5819020A (en) * | 1995-10-16 | 1998-10-06 | Network Specialists, Inc. | Real time backup system |
US6288790B1 (en) * | 1998-05-15 | 2001-09-11 | International Business Machines Corporation | Mobility support for printing |
WO2000054138A1 (en) | 1999-03-11 | 2000-09-14 | Electronics For Imaging, Inc. | Client print server link for output peripheral device |
US20010047348A1 (en) * | 2000-02-01 | 2001-11-29 | Lemuel Davis | Consumer driven content media duplication system |
US20020186407A1 (en) | 2001-06-12 | 2002-12-12 | Laughlin John David | Printer-embedded service to allow for fail-over operation through automatic rerouting of print jobs to comparable printers |
US20030076522A1 (en) | 2001-10-23 | 2003-04-24 | Simpson Shell S. | Document printing system |
US20030128384A1 (en) * | 2002-01-04 | 2003-07-10 | Nelson Dean S. | Dynamic load-balancing print server systems and methods |
US20050141007A1 (en) * | 2003-12-03 | 2005-06-30 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, information processing program, and storage medium |
EP1548569A2 (en) | 2003-12-10 | 2005-06-29 | Canon Kabushiki Kaisha | Information processing apparatus, print job management method, information processing program, and recording medium |
US20080030770A1 (en) * | 2006-08-07 | 2008-02-07 | Konica Minolta Business Technologies, Inc. | Data outputting system and output controlling server of the same |
US20080040717A1 (en) * | 2006-08-12 | 2008-02-14 | Hobson Steve J | Method, Apparatus and Computer Program Product for Transaction Recovery |
Non-Patent Citations (1)
Title |
---|
Microsoft, Introduction to Printing; Apr. 19, 2017, Web Site, https://docs.microsoft.com/en-us/windows-hardware/drivers/print/introduction-to-printing, All Pages (Year: 2017). * |
Also Published As
Publication number | Publication date |
---|---|
DE102018110612A1 (en) | 2018-11-08 |
GB2562106B (en) | 2020-01-22 |
GB201707218D0 (en) | 2017-06-21 |
US20180321888A1 (en) | 2018-11-08 |
GB2562106A (en) | 2018-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10423375B2 (en) | Non-transitory computer-readable storage medium, client computer, and print method | |
JP5854654B2 (en) | Printing system, printing method, print server, control method, and program | |
US8553264B2 (en) | Information processing including specifying a printer to execute a print process of a stored job | |
JP5763904B2 (en) | Printing system, printing method, print server, control method therefor, and program | |
JP5995525B2 (en) | System, image forming apparatus, server, and control method thereof | |
US9086826B2 (en) | Information processing apparatus, method for controlling the same, and storage medium | |
JP5236958B2 (en) | Notification method, management device, and client device | |
US20100208298A1 (en) | Image forming apparatus | |
JP5618773B2 (en) | Image forming system, image forming apparatus, and method in image forming apparatus | |
JP5719198B2 (en) | Print system, information processing apparatus, control method, and program | |
JP6531450B2 (en) | Image forming apparatus, image processing system and method | |
US8582162B2 (en) | Information processing apparatus, output method, and storage medium | |
US9417826B2 (en) | Image forming apparatus with status control | |
JP6389429B2 (en) | Image forming apparatus and image forming system | |
JP2013126754A (en) | Print system, image forming apparatus, print server and control method thereof, and program | |
US20120008164A1 (en) | Processing system, control method, and storage medium therefor | |
JP6233354B2 (en) | Image forming apparatus and program | |
US12073133B2 (en) | System and method for providing printing service and configured to change printer connection destination | |
US9798963B2 (en) | Image forming system that reduces load for processing regarding correction of print position displacement, and method for correcting print position displacement | |
US20230236776A1 (en) | Information processing device having os-standard general-purpose printing program installed thereon that enables the device to notify user of connection error with printer | |
JP2006228099A (en) | Server, and method and program for issuing print request | |
JP2006285840A (en) | Document management system | |
US20120019862A1 (en) | Image processing apparatus, control method of image processing apparatus, and program | |
JP4531729B2 (en) | Billing data holding system and billing data holding method | |
US11388298B2 (en) | Image forming apparatus and control method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: CANON EUROPA N.V., NETHERLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ROSEMANN, MICHAEL;REEL/FRAME:047196/0075 Effective date: 20180927 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: NT-WARE SYSTEMPROGRAMMIERUNGS-GMBH, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CANON EUROPA N.V.;REEL/FRAME:068269/0324 Effective date: 20240619 |