Patent Publication Number: US-9886227-B2

Title: Computer, print control method, and networked system

Description:
CROSS-REFERENCE TO APPLICATIONS 
     The present application claims priority under 35 U.S.C. § 119 to European Patent Application No. 15197829.3, filed Dec. 3, 2015, the contents of which are incorporated herein by reference in their entirety. 
     BACKGROUND 
     1. Technical Field 
     The present invention relates to a print control method in a networked image forming system. 
     2. Description of the Related Art 
     In large organisations it is common to provide many image forming apparatuses (e.g. multi-function peripherals), that are connected to a network, for use by multiple users. Such an approach is often more economical than providing separate printers for each user, especially if advanced functions—such as double-sided printing, colour and finishing functions—are desired. When the first such systems were introduced, the user would designate which image forming apparatus would be used at the time of sending a document to print. However, this is not always convenient. 
     In an alternative approach, the user adds a document to be printed to a print queue, without specifying a specific image forming apparatus. The print queue is treated by the operating system of the user&#39;s PC as a virtual printer so that the user can select it when printing from any application running on his PC. Then, when the user wants to print the document, the user goes to a networked image forming device and identifies himself, e.g. using a username and PIN or password or a token such as a swipe card or RFID. The image forming apparatus obtains a list of the documents in the print queue belonging to the user. The list is displayed to the user who selects the documents to be printed and the image forming apparatus prints the selected documents. 
     The above system works well for print jobs generated by applications running in the user&#39;s own PC. However, a large organisation may well have some enterprise applications which are run on central mainframe computers. Enterprise applications may perform vital functions for the organisation, for example transaction processes such as invoice generation and management of large databases. Enterprise applications are often specific to the organisation concerned and may represent very large investments in programming and development. Often enterprise applications rely on outdated programming languages, operating systems or hardware so that development of the applications is particularly hard. Such enterprise applications are often referred to as legacy applications. 
     A particular issue with many enterprise applications is that they have their own individual processes for data output, in particular for printing. Print outputs from many enterprise applications cannot be included in the user-centric centralised print queue systems described above. This is inconvenient for users. 
     It is an aim of the present invention to at least partially solve one or more of the above problems and provide improved user convenience for printing from enterprise systems. 
     SUMMARY 
     According to an embodiment of the present invention, there is provided a print control program comprising code to be executed by a computer connected to a network, which is also connected to an image forming device and an external system configured to generate external print jobs, the code being configured to: maintain a local print queue including local print jobs based on content generated by another computer program executed by the computer; receive a request for a job list from the image forming device; send a request for a list of the external print jobs to the external system; receive a list of the external print jobs from the external system; merge the list of the external print jobs with a list of the local print jobs in the local print queue to form a combined job list; and send the combined job list to the image forming apparatus. 
     According to an embodiment of the present invention, there is provided a print control method for use in a networked system comprising a computer, an image forming device and an external system configured to generate external print jobs, the method comprising: the computer maintaining a local print queue including local print jobs based on content generated by another computer program executed by the computer; the image forming device sending a request for a job list to the computer; the computer sending a request for a list of the external print jobs to the external system; the external system sending a list of the external print jobs to the computer; the computer merging the list of the external print jobs with a list of the local print jobs in the local print queue to form a combined job list; and the computer sending the combined job list to the image forming apparatus. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Exemplary embodiments of the invention are described below with reference to the accompanying drawings, in which: 
         FIG. 1  is a schematic drawing of part of a networked system according to an embodiment of the invention; 
         FIG. 2  is a schematic drawing of a networked system according to an embodiment of the invention; 
         FIG. 3  is a flow chart of a process to generate a print job from output of a local application on a user PC; 
         FIG. 4  is a flow chart of a process to generate a print job from output of an external application; and 
         FIG. 5  is a flow chart of a process of an embodiment of the invention for printing print jobs from a queue. 
     
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
     A networked image forming system  1  according to an embodiment of the invention is depicted schematically in  FIGS. 1 and 2 . A plurality of user computers  11 - 1  to  11 - n  are connected to a first local area network LAN 1  and operated by a plurality of users  10 - 1  to  10 - m . The number of users  10  need not be equal to the number of user computers  11 . The user computers  11  can include desktop and laptop computers, tablets, smartphones, virtual machines and other computing devices capable of generating a print job. The user computers may operate using any convenient operating system such as Windows®, iOS or Linux. 
     The first local area network LAN 1  may be based on wired or wireless technologies, or a combination of both and can operate using any suitable protocol such as Ethernet (IEEE 802.3) and/or Wi-Fi (IEEE 802.11). A user computer  11  includes a print control program acting as a client tool  100  that manages a print queue and is described further below. 
     User computer  11  also includes one or more local applications which are configured to generate a print job  13  in response to a user command or as a result of an automated process. A print job is a file containing instructions to print something, for example all or part of a document, a screenshot or the output of a program. A document can be, for example, a text document, a picture, a spreadsheet, a report, or a multi-media document in any convenient format. A print job can also be in any convenient format, such as for example Postscript® or page description language (PDL) and may include data of the content to be printed in the original document format or rendered (e.g. rasterised) data. The local application can be a word processing program, a spreadsheet program, a presentation program, an image editor, a desktop publishing program, etc. The embodiments of the present invention can be used with any application capable of generating a print job. 
     An image forming device  20  is also connected to the first local area network LAN 1  and is able to print a print job  13 . Image forming device  20  may be, for example, a multi-function peripheral (MFP) capable of one or more additional functions, such as scanning, copying or faxing, as well as printing. Image forming device  20  has a print engine to create printed output  30  on media such as paper, transparencies, envelopes, etc. The print engine may operate according to any convenient printing technique, such as xerography, inkjet printing, bubble jet printing, etc. There may be multiple image forming devices  20  of various forms connected to the first local area network LAN 1 . 
     The first local area network LAN 1  is connected to a second local area network LAN 2  via a wide area network (WAN) such as the Internet. First local area network LAN 1  and second local area network LAN 2  may be connected via a virtual private network (VPN). An authentication server  40 - 1  is provided in the second local area network LAN 2  and provides authentication services for an organisation. Authentication may be required, for example, when a user logs onto a user computer, connects a user computer to the first local area network LAN 1 , or accesses a network resource, such as image forming device  20 . 
     In a large organisation having many sites and/or large sites, the users may be divided up amongst many different local area networks, due to physical restrictions on network size and/or limits on the number of users per network. Providing an authentication server per network therefore means that there must be many authentication servers, increasing the maintenance burden and making synchronisation of data between the authentication servers burdensome. It is generally desirable that users be able to log onto and use resources of any network in their organisation. Therefore it is desirable that the number of authentication servers  40  be kept to a minimum and so an authentication server  40  may provide authentication services to users and resources connected to multiple different local area networks, which may be physically remote from one-another. Nevertheless, a backup authentication server  40 - 2  can be provided as a fail-over used in the event of a failure of the authenticated server  40 - 1 . 
     Authentication server  40 - 1  may communicate with other servers, for example a directory server  50  and a database server  60 . Directory server, for example an LDAP server, may store a hierarchical directory of users, including information such as user IDs, real names, hashed passwords and access rights. Database server  60 , for example an SQL server, may store data recording users&#39; usage of the network and its resources. The usage data may be used for accounting purposes and/or for tracking the consumption of consumables such as paper, ink or toner. 
     For the same reasons as with the authentication server, an organisation may desire to reduce the number of directory servers  50  and database servers  60  it maintains. Hence the directory server  50  and database server  60  may be located in one or more third local area networks LAN 3 . They can also be located in the same local area network as the authentication server  40 . 
     An external system  200  is also connected to one of the local area networks, e.g. LAN 1 . External system  200  operates one or more external applications which are capable of creating print jobs either in response to a user instruction or automatically, e.g. in response to a trigger event or according to a schedule. The external application may be an enterprise application, for example a database manager, a report server, an accounting system, etc. A user may interact with the external application via a browser application running on the user PC or a dedicated terminal application running on the user PC  11 . A user with the correct privileges can print data from the external application executed by the external system  200 . 
     It should be noted that whilst the present invention is described in relation to a system which is connected to multiple local area networks, the invention can also be applied in a system in which all components are connected to the same network, be that a local area network, a wide area network, wired or wireless. 
     The process of printing in an embodiment of the invention will now be described in more detail with reference to  FIGS. 3 to 5 . 
     As shown in  FIG. 3 , when a user  10  wishes to print a document, for example, he/she issues a print instruction S 1  in the relevant application or via the operating system of his/her user computer  11 . The user may be prompted to select options for printing—such as scaling, duplex printing or finishing—or default options may be applied. The user may be provided with the option to select a specific device to print the document, e.g. a printer connected directly to the user computer or a network printer. A print service according to an embodiment of the invention may be presented to the user as an option to be selected instead of a specific physical printer. The print service may be presented to the user and treated by the operating system as a virtual printer that is equivalent to a physical printer. In an embodiment, the print service is selected by default. 
     The content to be printed is prepared S 2  by the application or operating system and delivered to a client tool, e.g. in the form of a printer driver associated with the print service. A job spool system  110  converts S 3  the content to a print job  13 , for example defined in page description language (PDL). The print job is then passed to spooled job manager  120  which manages the print queue which may contain multiple print jobs. The print job  13  is entered S 4  into a print queue. The print queue is stored in the user computer  11 , e.g. in a non-volatile mass storage device such as a hard disk or a solid state drive. 
     Next, the client tool  100  requests authentication S 5  from authentication server  40  and registers with it. Communication between the printer driver (and other elements of the system) and authentication server can be performed using any suitable protocol, such as HTTP or HTTPs. SLS or TLS encryption can be employed. In the registration procedure, client tool  100  provides information identifying the user  10  who has instructed printing, e.g. by providing a user ID and a hashed password. The authentication server  40  determines whether the user ID and password are valid S 6  and optionally whether the user has necessary privileges to use the print service. User privileges may entitle a user to use all functions of the print service or only some. Authentication server  40  may look-up the user&#39;s record in directory server  50  in order to determine the user&#39;s privileges or other information. User privileges may be inferred from other information stored about the user, e.g. membership of groups, rather than stored explicitly. If the user does not have the necessary privileges an error message is sent to the client tool  100 . 
     If the user does have the necessary privileges, the authentication server creates and sends S 7  a user-host record indicating that the user has a print job  131  in the print queue  13  maintained by client tool  100  on user computer  11  to database server  60 . The user-host record includes an address, e.g. a hostname and/or an IP address, of the user computer  11 . A user may use more than one computer and accordingly the database server  60  may store multiple user-host records linking a user with multiple user computers  11 . 
     As shown in  FIG. 4 , if the user wishes to print data from the external application executed by the external system, the user selects the data to be printed S 10  and issues a print command by whatever means are supported by the external application. Any necessary authentication steps are performed by the external application, e.g. with reference to the authentication server  40 . The external application outputs S 11  the selected data to an external spool system forming part of the external system  200 . The external spool system creates S 12  and stores a print job  13  in its own print queue. 
     Referring again to  FIGS. 2 and 5 , to print a print job, the user proceeds to an image forming device  20  at which he or she wishes to obtain the print out and logs in S 20  to that image forming device  20 . Various different log-in methods can be provided. For example the user may log-in by entering a username and password or PIN on an input device, using a swipe card, smart card or RFID token, biometrics or any combination of such methods. The image forming apparatus  20  obtains S 21  the address(es) and host name(s) of the user&#39;s PC(s) from the database server  50  or a local cache. 
     Image forming device  20  then requests S 22  print job information from the user computer(s) whose address(es) were obtained. The request for the print job information may include the user ID and hashed password for authentication purposes. Job list manager  122  of client tool  100 , in response to the request from image forming apparatus and having performed any necessary authentication, then obtains S 23  a list of the user&#39;s local print jobs. The job list manager also sends a request for external print jobs to external spool system connector  130  of client tool  100 . 
     Job information converter  133  converts the request for external print jobs into a format appropriate for the external service and passes it to external service connector  131 . External service connector  131  sends the request S 24  to the external spool service  200 . The external service connector is provided with the address, e.g. URL and/or hostname, of the external service. The request sent to external spool service  200  may comply with an application programming interface (API) of the external service. A legacy application may not have a defined API, in which case the external service connector  131  may mimic user commands on a terminal application or browser normally used to communicate with the external system. 
     If the client tool is to connect to multiple external services, multiple external service connectors  131  may be provided or a single external service connector  131  may be configured to connect to multiple external services, e.g. if they have similar APIs. A request for a list of the user&#39;s print jobs is sent to each relevant external service. 
     Any user job lists returned S 25  by the external service(s) are received by the external service connector  131  and passed to the job list manager  122 . The job list manager  122  merges S 26  the user&#39;s print jobs from the local print queue and from the external services into a single combined print job list. The combined print job list is then sent to image forming device  20 . The job information returned by the external service is converted, as necessary, into the job list format expected by the image forming device. 
     In the combined print job list, the origin of the print jobs may be indicated in the name of the print job. For example the name of a print job may be in the form “[application]-[filename]”, where [application] indicates a local application, such as Word™, or an external application, such as Oracle™. The job list manager may convert the names of print jobs contained in lists from an external service to a common format for inclusion in the combined print job list. In the event that the external service does not provide a name for a print job, the job list manager may create one, e.g. using the date and time of the print job and its origin. 
     Image forming device  20  displays S 27  the combined print job list and allows the user to select S 28  one or more print jobs to be printed at that time. Other functions, such as to save a print job to a later time or to delete a print job, can also be provided. The image forming device  20  sends S 29  a request for the selected print job(s)  13  to the client tool  100  on the respective user computer(s)  11 . 
     If the selected print jobs include any local print jobs, the job data manager  122  of the client tool  100  returns S 30 A the respective print data. 
     If the selected print jobs include any external print jobs, the job data requester  132  sends a request S 30 B for the respective job data to the relevant external service. The external spool service returns the respective print job data to the image forming apparatus  20 . Alternatively, the external spool service can return the print job data or content to the client tool  100  which in turn forwards it to the image forming apparatus  20 . This alternative approach may introduce a little delay but can be advantageous if the print job data provided by the external service requires format conversion before it can be printed or to allow advanced job editing and finishing functions not catered for by the external spool service. For example, the external service can return content in a document file format—e.g. .doc, .xls or .pdf—and the client tool converts this to a print job  13 . 
     The print jobs received by the image forming apparatus  20  are printed as printed document(s)  30 . If necessary, the print job is rendered by the image forming apparatus  20 . 
     In an embodiment of the invention, the client tool on the user computer can be used to provide additional functionality. For example, the client tool may be capable of generating a preview image of part or all of a document to be printed. The client tool can be further configured to communicate a preview image to the image forming apparatus for the user to check before printing. Also, the client tool may apply rules based on the content of a document or meta-data. For example, a document containing prohibited content, e.g. predetermined words, can be prevented from printing. Similarly, a print job derived from a specific type of document, e.g. determined by the filename extension, can be prevented from printing. 
     When the print job has been sent to the image forming apparatus  20 , the client tool  100  deletes it from the print queue  13 . Generally the client tool does not wait to receive confirmation of successful printing before deleting the print job from the queue but that can be implemented as an alternative. 
     If it is desired to record usage information, the image forming apparatus  20  sends a usage message to database server  60  which records the user&#39;s usage. The usage message can be sent directly to database server  60  or via authentication server  40 . 
     In the above described embodiment of the present invention, the client tool (print control program) is executed by a user computer. In an embodiment, the print control program is executed on a server computer shared by multiple users and maintains separate print queues for different users. 
     The present invention provides a number of advantages as compared to conventional systems. Firstly, user convenience is enhanced because the user only has to perform one logon process at the image forming device and sees all of his or her print jobs in a single job list. It is not necessary for the user to logon to several different applications on the image forming device and peruse several different print queues in order to see all of his or her print jobs. Secondly, the client tool uses existing functionality, e.g. a defined API, of the external system, and so does not require modification of the external system. Thirdly, the image forming device only needs to communicate to the print control program on the user computer and does not need to be provided with software to communicate with and register with multiple hosts of multiple external systems. Fourthly, information regarding printing from the external legacy system is easily integrated into the tracking of print jobs from other sources without modification to the external systems. 
     Having described specific embodiments of the present invention, it will be appreciated that variations and modifications of the above described embodiments can be made. The scope of the present invention is not to be limited by the above description but only by the terms of the appended claims.