Secure printing from cloud print server by suspending print job with valid pin code and requesting user pin code when reacquiring job list

A printer performing printing for a cloud print server that provides a print service includes an acquisition unit, a determination unit, a flag enabling unit, a request unit, and a control unit. The acquisition unit acquires a job list from the cloud print server. The determination unit determines presence/absence of a job including a valid PIN code. A valid PIN code indicates that the job is to be secure printed. The flag enabling unit does not enable a suspension flag in response to determining the absence of the job, and enables the suspension flag in response to determining the presence of the job. The request unit requests input of a PIN code if the suspension flag is enabled when the acquisition unit acquires the job list again. The control unit controls printing of the job to be secure printed based on the input PIN code.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relate to a printer, a control method, and a storage medium.

2. Description of the Related Art

Some image forming apparatuses have a function called confidential printing or secure printing. The function is intended to perform printing after successful authentication is carried out in order to prevent the printing from starting in a place out of sight and information from leaking to a third party when printing a highly confidential document. A technique includes adding a password to print data and holding the password-added print data in an image forming apparatus before making prints. Such a technique needs a large-capacity storage unit. Japanese Patent Application Laid-Open No. 2002-370407 discusses a method for implementing the function with less memory.

Cloud print services have recently started to be used. Cloud print services are attracting attention because printing can be performed from tablet terminals without a printer driver.

However, a system that can perform secure printing by using the current cloud print services has yet to be constructed. For example, while a password may be added to print data by using some kind of device, the conventional configuration of holding the password-added print data in an image forming apparatus is difficult to implement in a low memory capacity apparatus having no hard disk.

Even when applying the method discussed in Japanese Patent Application Laid-Open No. 2002-370407, the image forming apparatus needs to store job numbers, passwords, and first-page data of a plurality of jobs. Again, such a system is difficult to implement in an apparatus having no hard disk.

SUMMARY OF THE INVENTION

The present invention is directed to the implementation of secure printing by cloud printing without changing the existing protocols of the cloud printing. Here, the protocols of the cloud print services maybe changed to store only first pages in advance.

According to an aspect of the present invention, a printer capable of performing printing in cooperation with a cloud print server for providing a print service includes an acquisition unit configured to acquire a job list from the cloud print server, a determination unit configured to determine presence or absence of a job including a valid personal identification number (PIN) code based on job information included in the acquired job list, wherein the valid PIN code indicates that the job is to be secure printed, a flag enabling unit configured not to enable a suspension flag in response to determining the absence of the job, and to enable the suspension flag in response to determining the presence of the job, a request unit configured to request input of a PIN code if the suspension flag is enabled when the acquisition unit acquires the job list again after determining the presence or absence of a job including the valid PIN code, and a control unit configured to control printing of the job to be secure printed, acquired from the cloud print server, based on the PIN code input in response to the request of input of a PIN code.

DESCRIPTION OF THE EMBODIMENTS

FIG. 1is a schematic diagram illustrating a use environment of an image forming apparatus according to the present exemplary embodiment. In an example, the image forming apparatus is a multifunction peripheral (MFP).

A cloud print server100, an MFP200, and a wireless network router400are connected to a network500. A PDA terminal300is connected to the network500through the wireless network router400.

The PDA terminal300communicates with the cloud print server100by using a predetermined protocol and transmits a print request according to a user's print instruction. Upon receiving the print request from the PDA terminal300, the cloud print server100notifies the MFP200of the arrival of a print job. According to the notification from the cloud print server100, the MFP200receives the print job from the cloud print server100by using a predetermined protocol and performs printing. The protocols will be outlined later. Web printing is implemented by such cooperation of the MFP200and the cloud print server100.

FIG. 2is a block diagram illustrating the hardware configuration of the MFP200illustrated inFIG. 1. InFIG. 2, the MFP200includes a central processing unit (CPU)201, a read-only memory (ROM)202, a random access memory (RAM)203, a network interface card (NIC)204, an external input controller (hereinafter, referred to as PANELC)205, and various types of buttons or a touch panel (referred to as PANEL)206. The MFP200also includes a display controller (referred to as DISPC)207and a display208. The MFP200further includes a printer unit (referred to as PRINTER)211and a scanner unit (referred to as SCANNER)212.

The CPU201performs centralized control over the devices connected to a system bus213and executes firmware modules stored in the ROM202. The firmware modules include at least two or more modules. The firmware modules can be updated one by one. Based on the firmware modules as a control program, the CPU201performs processing, or a control method for controlling a printer, illustrated by a flowchart to be described later. The RAM203functions as an image storage location as well as a main memory and a work area of the CPU201.

The PANELC205controls an instruction input from the PANEL206which is mounted on the MFP200. The DISPC207controls drawing on the display208. The NIC204bidirectionally exchanges data with a file server (not illustrated) and the cloud print server100illustrated inFIG. 1through a local area network (LAN)214. The PRINTER211forms an image on a recording sheet by an electrophotographic process. The SCANNER212reads an image printed on a recording sheet. The SCANNER212includes an optional auto document feeder (not illustrated) and can automatically read a plurality of documents.

FIG. 10is a block diagram illustrating the software configuration of the MFP200illustrated inFIG. 1. Software2000according to the present exemplary embodiment includes modules such as a user interface (UI)2001, a job controller2002, and an operating system (OS)2006. The software2000also includes a module of a protocol stack2004. The OS2006is combined with a device driver2005which mediates transactions between other modules, tasks, and the hardware illustrated inFIG. 2, including the PRINTER211. The job controller2002includes a task of a cloud print2003. The modules and tasks are constituted by respective programs stored in the ROM202illustrated inFIG. 2. The CPU201executes the programs to implement the modules and tasks.

The OS2006adjusts schedules for the modules and tasks to occupy the CPU201illustrated inFIG. 2and manages the operation of the entire software2000. The UI2001draws a screen on the display206through the DISPC207and accepts inputs from the PANEL206through the PANELC205. The job controller2002accepts copy, print, and other requests, and controls the MFP200in cooperation with the other modules to perform operations based on the requests. The protocol stack2004controls network protocols such as Transmission Control Protocol/Internet Protocol (TCP/IP), Extensible Messaging and Presence Protocol (XMPP), and Hypertext Transfer Protocol (HTTP), and implements communications with the MFP200and the cloud print server100through the network500. The cloud print2003is a task including print control processing to be described later. The cloud print2003executes a sequence for cloud printing to be described later to perform printing by using the PRINTER211according to a job notification received through the NIC204.

FIG. 3is a diagram illustrating an example of the sequence for cloud printing assumed in an exemplary embodiment. In particular, the first exemplary embodiment describes a sequence for cloud printing based on the Google Cloud Print which has been released by Google (registered trademark).FIG. 4is a diagram illustrating an example of a sequence for printing a secure job by cloud printing. The first exemplary embodiment implements secure printing, which is not expected of the Google Cloud Print, without changing the specifications of the Google Cloud Print but strictly conforming to the specifications.

FIG. 5is a flowchart illustrating the procedure of the print control processing according to the present exemplary embodiment. The CPU201executes the program that constitutes the cloud print2003illustrated inFIG. 10, and the resulting various types of units perform the processing ofFIG. 5. In an exemplary embodiment, the processing is assumed to be performed by the job controller2002. Referring toFIGS. 3,4, and5, the printing procedure according to the present exemplary embodiment will be described in detail below.

The cloud printing assumed in an exemplary embodiment needs registering the capabilities of a printer into the cloud print server100in advance. The MFP200according to the present exemplary embodiment sends data describing printer capabilities to the cloud print server100according to a user's operation on the screen of the UI2001illustrated inFIG. 10(processing3001ofFIG. 3). The printer capabilities are described in an Extensible Markup Language (XML) format. There are predetermined keywords for expressing specific printer capabilities. Such keywords can be used to register capabilities including supported sheet sizes, the presence or absence of a two-sided printing function, and the presence or absence of a Nup function.

Private keywords may be additionally defined. The MFP200according to the present exemplary embodiment defines a keyword that represents a PIN code, and registers the capability of interpreting a PIN code into the cloud print server100in advance. The PIN code is not limited to a number string and may be a character string, a symbol string, or a combination of these. The cloud print server100then provides a print setting screen with an additional item for a PIN code. The registration of the PIN code as printer information is one of the characteristics of an exemplary embodiment.

The user can make a print request to the previously registered printer (3002illustrated inFIG. 3).FIG. 6illustrates an example of the PDA terminal's screen that is displayed to the user when making a print request. For a normal print request, the user specifies 0 as an invalid PIN code to the item6001illustrated inFIG. 6. The requested cloud print server100notifies the MFP200, the registered printer, of the submission of a job by XMPP (3003). The job notification is passed through the protocol stack2004illustrated inFIG. 10, and detected in step S5-001illustrated inFIG. 10.

In step S5-001, if the job controller2002detects the job notification (Yes in step S5-001), the job controller2002proceeds to step S5-002. An item “enable secure printing” may be provided separately and the job controller2002may have the user input a PIN code when the item is checked. In such a case, whether the PIN code is a valid PIN code may be determined based on the information whether the item “enable secure printing” is checked.

In step S5-002, the job controller2002fetches a job ID list or job list. “Fetch” refers to acquiring the job list from the cloud print server100. The job list includes at least a job ID. Aside from the job ID (s), the job list includes job data on each job and universal resource locator (URL) information indicating the storage location of a job ticket. Such information will be referred to as job information.

The MFP200sends a job fetch request to the cloud print server100(3004). Upon receiving the job fetch request, the cloud print server100sends a job ID list, or job list, including n job IDs to the MFP200(3005). Immediately after a request to print a job is made, the job ID list typically includes one job ID (n=1) that is notified in3001. If another job is requested to be printed during job print processing to be described later or while a job is suspended, the number of job IDs may be more than one (n>1). In step S5-002, the job controller2002temporarily stores the acquired job ID list, or job list, into the RAM203illustrated inFIG. 2.

In step S5-003, the job controller2002determines whether the stored job ID list is empty. If the job ID list is empty (No in step S5-003), the job controller2002returns to step S5-001. On the other hand, if the stored job ID list includes one or more IDs (Yes in step S5-003), the job controller2002proceeds to step S5-004. In step S5-004, the job controller2002determines whether there is a suspended job. Immediately after a normal print request, there is no suspended job yet (No in step S5-004). The job controller2002then proceeds to step S5-005.

In step S5-005, the job controller2002resets a job suspension flag stored in the RAM203. In step S5-006, the job controller2002sets 1 into an index i. In step S5-007, the job controller2002acquires a ticket of the ith job ID included in the temporarily stored job ID list. The MFP200issues a request for the ticket of the ith job ID to the cloud print server100based on the URL of the job ticket in the job list (3006). The cloud print server100in response sends the ticket of the designated job ID (3007). Like printer capabilities, the ticket is written in XML, with keywords common with the printer capabilities. The PIN code input from the item6001illustrated inFIG. 6is passed by using a privately defined keyword.

In step S5-008, the job controller2002determines whether the acquired ticket includes a valid PIN code which indicates that the job is one to be secure printed. For normal printing, the ticket includes an invalid PIN code of 0 (No in step S5-008). In such a case, the job controller2002proceeds to step S5-009without enabling the suspension flag to be described later. Unlike an invalid pin code “0,” a valid PIN code is a security code as illustrated inFIG. 7. It should be noted that the information for representing an invalid PIN code need not necessarily be “0.” Information that is included in the job ticket when the item “enable secure printing” is checked may be said to be a kind of a valid pin code.

Step S5-009is a subroutine for print processing. Step S5-009includes steps S5-024, S5-025, and S5-026. In step S5-024, the MFP200issues a download request to the cloud printer server100for the job data of the job ID (3008). Upon receiving the request, the cloud print server100sends the job data to the MFP200(3009). In step S5-025, the MFP200prints the received job data (3010). After the printing ends, the job controller2002proceeds to step S5-026. In step S5-026, the job controller2002requests the cloud print server100to delete the printed job (3011). This ends the subroutine for print processing. After the end of the subroutine, the job controller2002proceeds to step S5-011to add one to the index i. The job controller2002proceeds to step S5-012. Since the job is deleted in step S5-026, the deleted job will not be included in any job list subsequently acquired.

In step S5-012, the job controller2002determines whether the job ID list temporarily stored in step S5-002includes any unexamined ID. If the job ID list includes a plurality of job IDs, the job controller2002repeats steps S5-007to S5-011until all the job IDs are examined. If all the job IDs have been examined (No in step S5-012), the job controller2002returns to step S5-002. If there is only one job (n=1; No in step S5-012), the job controller2002returns to step S5-002to acquire a job list again. If no new print request has been made, then in step S5-002, the job controller2002acquires an empty job ID list. The job controller2002returns to step S5-001via step S5-003.

Now, suppose there is a job that includes a valid PIN code which indicates that the job is one to be secure printed. To perform secure printing, the user specifies a valid PIN code other than 0 from the item6001illustrated inFIG. 6(4001).FIG. 6illustrates an example where “1234” is input as the PIN code. Like3003illustrated inFIG. 3, the requested cloud print server100notifies the MFP200, the registered printer, of the submission of a job by XMPP (4002).

The subsequent processing is in part the same as the foregoing. After the detection of the job notification in step S5-001illustrated inFIG. 5(Yes in step S5-001), the job controller2002performs steps S5-002to S5-007. As a result, a fetch request for the job ID list is made (4003), the job ID list is sent back (4004), a ticket is requested (4005), and the ticket of the designated job is sent back (4006).

Next, the job controller2002proceeds to step S5-008. If “1234” is input as the PIN code to the item6001illustrated inFIG. 6, the acquired ticket includes the valid PIN code “1234” (Yes in step S5-008). The job controller2002then proceeds to step S5-010. In step S5-010, the job controller2002sets and enables the job suspension flag stored in the RAM203(4007). The job controller2002then performs steps S5-011and S5-012as described above, and returns to step S5-002. At this point in time, the suspension flag is enabled.

In step S5-002, the job controller2002acquires and temporarily stores the job ID list that includes at least the ID of the one suspended job unless the suspended job is deleted from the PDA terminal300. The job controller2002then proceeds up to step S5-004. Note that the job controller2002having performed steps S5-002to S5-012returns to step S5-002. More specifically, the job controller2002is configured to acquire the job list again after the information about the PIN code of each job included in the previous job list is examined, i.e., after certain time has lapsed since the acquisition of the previous job list. An exemplary embodiment implements secure printing without changing the specifications of the cloud print server100. Since the job list is acquired at regular intervals, the latest job status can be grasped and appropriate secure printing can be carried out at each point of time that the acquisition is performed.

For example, suppose that the cloud print server100generates three suspended jobs before a cancel instruction is given for one of the suspended jobs. The MFP200enables the suspension flag and acquires the job list again. The MFP200enters the processing of secure printing based on the suspension flag. One of the characteristics of an exemplary embodiment lies in that the MFP200here displays a screen for inputting a PIN code to be described later based on the latest job list, whereby the secure printing is performed according to the latest job status. Aside from the foregoing characteristic, the MFP200according to an exemplary embodiment does not store the PIN code of each job. Rather, the MFP200only stores the job suspension flag. Therefore, as another character, an amount of memory use is reduced. In other words, an exemplary embodiment effectively achieves both the characteristics at the same time.

In step S5-004, the job controller2002detects the job suspension flag set in step S5-010(Yes in step S5-004), and proceeds to step S5-013. In step S5-013, the job controller2002requests the UI2001illustrated inFIG. 10to display a screen for prompting PIN code input on the display208(4008).FIG. 8illustrates an example of the screen for prompting the PIN code input according to the present exemplary embodiment. In step S5-014, the job controller2002determines whether the user has operated the PANEL206of the MFP200to input a PIN code through the UI2001. If the PIN code is input (Yes in step S5-014), the job controller2002proceeds to step S5-015. If not (No in step S5-005), the job controller2002returns to step S5-005.FIG. 7illustrates an example of the screen for inputting the PIN code according to the present exemplary embodiment.

The processing of steps S5-015to step S5-017is similar to that of steps S5-005to S5-007. In step S5-018, the job controller2002compares the PIN code that is input according to the request and the PIN code that is included in the ticket of the jth job ID acquired in step S5-017. If the acquired ticket includes no valid PIN code (No in step S5-018), the job controller2002skips to step S5-021. In other words, the job controller2002controls the MFP200not to acquire the job from the cloud print server100or print the job. If the two PIN codes coincide with each other (Yes, and coinciding with the input PIN code in step S5-018), the job controller2002proceeds to step S5-019. In step S5-019, the job controller2002acquires the job from the cloud print server1in order to perform the processing for printing the jth job.

At the time of job acquisition, the job controller2002identifies the URL of the job data pertaining to the job to be acquired from within the job list, and acquires the job based on the identified URL of the job data. If the two PIN codes do not coincide with each other (Yes, but not coinciding with the input PIN code in step S5-018), the job controller2002proceeds to step S5-020. In step S5-020, the job controller2002sets the job suspension flag stored in the RAM203.

In step S5-021, the job controller2002adds one to the index j, and proceeds to step S5-022. In step S5-022, the job controller2002performs processing similar to that of step S5-012. More specifically, the job controller2002repeats steps S5-017to S5-021until all the job IDs have been examined by the determination processing of step S5-022. As a result, all jobs whose tickets include the same PIN code as the input PIN code are printed in step S5-019. If all the job IDs have been examined (Yes in step S5-022), the job controller2002proceeds to step S5-023. In step S5-023, the job controller2002discards the input PIN code since the input PIN code is no longer needed. The job controller2002returns to step S5-002.

As mentioned above, if another job is requested to be printed during job print processing or while a job is suspended, the IDs included in the fetched job ID list may increase. On the other hand, if a suspended job is cancelled from the PDA terminal300, the IDs included in the fetched job ID list may decrease. In the present exemplary embodiment, step S5-002is configured to be performed on a regular basis. This can resolve a discrepancy between the cloud print server100and the MFP200even if the number of IDs in the job ID list changes.FIG. 9illustrates an example where the job ID list acquired and temporarily stored in step S5-002decreases. The job ID list9001is an example of the temporarily stored job ID list with four suspended jobs. The job ID list9002illustrates an example of the temporarily stored job ID list where the job having an ID “263539286” has been cancelled.

With such a configuration, the MFP200according to the present exemplary embodiment can implement secure printing by cloud printing without changing the protocols of the cloud print server100that provides print services assumed in an exemplary embodiment. Since only job IDs are temporarily stored, secure printing can be carried out with less memory compared with the conventional techniques.

Other Embodiments

The first exemplary embodiment has been described with the MFP200as an example of the image forming apparatus. However, an exemplary embodiment is not limited to an MFP. A single function printer (SFP) without the SCANNER212illustrated inFIG. 2can achieve the same effects. The term “printer” refers to any one of such apparatuses.

In the first exemplary embodiment, step S5-008is configured to unconditionally acquire tickets. Such a configuration by itself can achieve the intended purpose. However, in view of the network traffic for ticket acquisition, it is desirable to provide a step for reducing the number of times of acquisition. For example, step S5-002may include comparing the previous job ID list temporarily stored and the job ID list just acquired, and storing the comparison result whether the two coincide with each other. The job controller2002then proceeds to step S5-006if the two job ID lists coincide with other immediately before step S5-005. If not, the job controller2002returns to step S-002. Such a configuration can reduce the network traffic.

In the first exemplary embodiment, step S5-018is configured so that if the acquired ticket includes no valid PIN code (No in step S5-018), the job controller2002skips to step S5-021. Thus, when a PIN code is input, the MFP200prints jobs that have the coincident PIN code. However, step S5-019may also be performed if no valid PIN code is included. Such a configuration can also achieve the intended purpose, whereas the print products may include ones that are not to be secure printed.

Aspects of the present invention can also be realized 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 embodiment (s), 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 embodiment(s). For this purpose, 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., computer-readable medium). In an example, a computer-readable storage medium may store a program that causes a printer to perform a method described herein. In another example, a central processing unit (CPU) may be configured to control at least one unit utilized in a method or apparatus described herein.

This application claims priority from Japanese Patent Application No. 2011-234199 filed Oct. 25, 2011, which is hereby incorporated by reference herein in its entirety.