Printing apparatus, non-transitory computer readable medium used for printing apparatus, and method of controlling printing apparatus

A printing apparatus includes a job receiver, a printing unit, a command receiver, a processor, and a memory. The printing apparatus is caused to determine whether the printing apparatus is in a secure mode when the command receiver receives a cancel command, perform a secure cancellation process when the command receiver receives the cancel command and the printing apparatus is in the secure mode, and perform a non-secure cancellation process when the command receiver receives the cancel command and the printing apparatus is not in the secure mode. The secure cancellation process includes analyzing a print job received by the job receiver and whose analysis is not finished, determining whether an analyzed print job is a secure print job or a normal print job, maintaining printing of the analyzed print job that is the secure print job, and cancelling the printing of the analyzed print job that is the normal print job.

CROSS REFERENCE TO RELATED APPLICATION

The present application claims priority from Japanese Patent Application No. 2013-059849 filed on Mar. 22, 2013, which is incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to a technique for canceling a printing operation.

BACKGROUND

There has been known a printing apparatus having a cancel key on its operation panel for operating a cancel command. One example is that the printing apparatus stops conveying print sheets and erases all pint data stored in the input buffer after receiving the cancel command.

SUMMARY

According to the above example, when the cancel command is received, the input buffer is cleared by erasing all the print data stored therein. Therefore, important data such as confidential data, which is a print job associated with a password, may be also erased.

The specification describes a technology which can accommodate respectively a user request that a secure (confidential) print job is not cancelled by a cancel command, and a user request that the printing operation is stopped as soon as possible by the cancel command even if the print jobs to be canceled include the secure print job.

According to the technology of the description, a printing apparatus includes a job receiver, a printing unit, a command receiver, a processor, and a memory storing instructions. The instructions that, when executed by the processor, cause the printing apparatus to analyze a print job received by the job receiver, cause the printing unit to print an image based on an analyzed print job that is received by the job receiver and whose analysis is finished, determine whether the printing apparatus is in a secure mode in which the printing unit prints the image after successful user certification when the command receiver receives a cancel command for cancelling printing of the print job, perform a secure cancellation process when the command receiver receives the cancel command and the printing apparatus is in the secure mode, and perform a non-secure cancellation process when the command receiver receives the cancel command and the printing apparatus is not in the secure mode. The secure cancellation process includes analyzing a print job that is received by the job receiver and whose analysis is not finished, determining whether an analyzed print job is a secure print job that is associated with a password or a normal print job that is not associated with a password in accordance with an analysis result, maintaining printing of the analyzed print job when the analyzed print job is the secure print job, and cancelling the printing of the analyzed print job when the analyzed print job is the normal print job. The non-secure cancellation process includes cancelling the printing of the print job that is received by the job receiver.

DETAILED DESCRIPTION

(1) Electric Configuration of Multifunction Apparatus

As illustrated inFIG. 1, a multifunction apparatus1is an example of a printing apparatus. The multifunction apparatus1includes a controller10, an operation device11, a printing device12, an image reading device13, a facsimile (fax) device14, and a transmission interface15.

The controller10includes a CPU10A, a ROM10B, and a RAM10C. The CPU10A executes various control programs stored in the ROM10B to control each part of the multifunction apparatus1. The ROM10B stores the control programs executed by the CPU10A and various data. The RAM10C is used as a main storing device when the CPU10A executes various processing. The CPU10A is an example of a processor and the RAM10C is an example of a memory.

The operation device11includes a liquid crystal display and various operation buttons. A user operates the operation device11. Accordingly, operations of secure printing are performed, a secure printing mode is set to be ON or OFF, and a cancel command is input to cancel or stop printing. The operation device11is an example of a secure mode setting command receiver and a cancel command receiver. When the secure printing mode is ON, the printing device12is in the secure mode in which the printing device12performs an image forming operation after successful user certification, for example, matching between a password associated with the print job that is to be printed and a password input by the user. When the secure printing mode is OFF, the printing device12is in a normal mode in which the printing device12performs the image forming operation without the user certification.

The cancel command includes a single job cancel command and a multiple jobs cancel command. Only one print job is cancelled in response to receiving of the single job cancel command, and print jobs are collectively cancelled in response to receiving of the multiple jobs cancel command. The operation buttons arranged in the operation device11includes a cancel button via which the cancel command is input. If the cancel button is pressed for a short time, the single job cancel command is input, and if the cancel button is pressed for a long time, the multiple jobs cancel command is input. Detailed operations regarding the cancel command will be described later.

In the printing device12, an image is printed on a sheet such as a print sheet with an electro photographic method or an ink jetting method. The image reading device13includes a light source that irradiates a draft with light and a linear image sensor and reads data of the draft and generates image data. The fax device14transmits fax data to and receives fax data from an external facsimile device via a telephone line according to a predetermined facsimile transmission protocol.

The transmission interface15includes a universal serial bus (USB) client interface15A and a network interface15B as transmission interfaces. The transmission interface15is an example of a job receiver.

The USB client interface15A is a hardware that connects the multifunction apparatus1and an external device such as a PC that operates as an USB host so as to communicate with each other via a USB cable. The network interface15B is a hardware that connects the multifunction apparatus1and an external device so as to communicate with each other via a transmission network such as a local area network (LAN) or an internet.

The CPU10A receives a print job from an external device via the transmission interface15and analyzes the received print data and generates print data. The CPU10A controls the printing device12to print an image based on the generated print data. The operation of controlling the printing device12to print the image is an example of a print process.

(2) Secure Printing

The multifunction apparatus1is configured to execute secure printing. With the secure printing, after a user transmits a print job from the external device to the multifunction apparatus1, a printing result is not seen by any other person while the user moves to the multifunction apparatus1to receive the printing result.

In executing the secure printing, a user transmits a print job from the external device to the multifunction apparatus1with setting a password to the print job. In the following description, a print job associated with a password is referred to as a secure print job, and a print job that is not associated with a password is referred to as a normal print job.

In receiving a secure print job, the multifunction apparatus1does not start performance for the secure print job right away and does not perform a print operation for the secure print job until a password that matches the password set to the secure print job is input. After a user transmits the secure print job, he/she moves to the multifunction apparatus1and operates the operation device11of the multifunction apparatus1to select a desired secure print job and input a password.

The controller10of the multifunction apparatus1determines whether the password input via the operation device11by the user matches the password set to the selected secure print job. If determining that the passwords match, the controller10of the multifunction apparatus1determines that authentication is successful and controls the printing device12to print the secure print job. If determining that the passwords do not match, the controller10determines that authentication is failed and does not perform a print operation for the secure print job.

(3) Storing Area Used for Printing Operation

FIG. 2illustrates a storing area used for a printing operation. The storing area is allocated in the RAM10C. The storing area allocated in the RAM10C includes at least an analysis waiting job storing area21, an analysis area22, and an analyzed job storing area23.

The analysis waiting job storing area21stores a print job that is received via the transmission interface15. The controller10of the multifunction apparatus1stores the print job received via the transmission interface15in the analysis waiting job storing area21.

The analysis area22is used for analyzing a print job. If determining that a print job is stored in the analysis waiting job storing area21, the controller10analyzes the print job using the analysis area22and generates print data.

The print jobs include various kinds of print jobs. Such various kinds of print jobs include, for example, a print job in which a print condition and image data that is represented by a bit map method are separately described, a print job in which a print condition and image data that is represented by a page description language are separately described, and a print job in which a print condition and image data are collectively described by a page description language.

Generally, analysis of a print job and generation of print data are not performed independently. A printing apparatus generally performs each of analysis of a print job and generation of print data as single processing, and therefore only the analysis cannot be selectively performed.

Generally, a capacity of the analysis area22that is necessary for analyzing a print job changes according to each print job or a kind of the print job.

The analyzed job storing area23stores print data that is generated via the analysis performed using the analysis area22. The analyzed job storing area23includes a normal job storing area23A and a secure job storing area23B.

When analyzing the print job stored in the analysis waiting job area21and generating print data, the controller10of the multifunction apparatus1determines whether the print job is a normal print job or a secure print job based on the analyzed result.

When determining that the print job is a normal print job, the controller10stores the generated print data in the normal job storing area23A as a normal print job. On the other hand, when determining that the print job is a secure print job, the controller10stores the generated print data in the secure job storing area23B as a secure print job.

The analysis waiting job storing area21and the analyzed job storing area23are allocated in the RAM10C when a power of the multifunction apparatus1is turned on, and they are maintained to be allocated in the RAM10C until the power is turned off.

On the other hand, the analysis area22is dynamically allocated in the RAM10C when generating print data, and after the print data is generated, the analysis area22is released to be freely used. The RAM10C also stores image data that is generated by the image reading device13and fax data that is received by the fax device14. Therefore, if a vacant capacity in the RAM10C is insufficient, the allocation of the analysis area22in the RAM10C may be failed.

(4) Cancel Command

As described before, the cancel command includes a single job cancel command and a multiple jobs cancel command.

(4-1) Single Job Cancel Command

When the single job cancel command is input, only one active print job is canceled and deleted. The active print job means a print job that is at a highest rank among following states State 1 to State 5. State 1 is a highest rank and State 5 is a lowest rank.

If print jobs are at a highest rank, one of the print jobs that is received first is defined as the active print job.

State 1: printing

State 2: waiting for printing

State 3: analyzing

State 4: waiting for analyzing

State 5: receiving

If one of the print job that is in a state of printing (State 1) and the print job that is in a state of waiting for printing (State 2) is an active print job, the following operation will be performed regardless of whether the secure mode is ON or OFF. If the active print job is a normal print job, the active print job is deleted. If the active print job is a secure print job, the active print job is not deleted. However, a user may want to cancel and delete the secure print job. Therefore, the controller10of the multifunction apparatus1informs the user to input the password that is set to the secure print job. The controller10determines whether the input password input via the operation device11matches the associated password. If determining that the passwords match, the controller10deletes the secure print job. If determining that the passwords do not match, the controller10does not delete the secure print job. If the active print job is a secure print job that is in a state of printing and a single job cancel command is received, the printing operation may be stopped.

(4-2) Multiple Jobs Cancel Command

In response to input of the multiple jobs cancel command, print jobs are to be collectively cancelled. For example, print jobs that are to be cancelled in response to input of the multiple jobs cancel command include following print jobs (A1) to (A4) excluding a secure print job in a state of waiting for printing that is stored in the secure job storing area23B.

If the print jobs that are to be cancelled are secure print jobs in a state of printing and the multiple jobs cancel command is received, the operation similar to a case in which the single job cancel command is input may be performed. In the following description, the secure print job in a state of printing is not set as a print job that is to be cancelled.

(A1) a print job that is stored in the analysis waiting job storing area21when receiving the multiple jobs cancel command

(A2) a print job that is stored in the analysis area22and in a state of being analyzed when receiving the multiple jobs cancel command

(A3) a normal print job that is stored in the normal job storing area23A when receiving the multiple jobs cancel command

The normal print job stored in the normal job storing area23A may be in a state of printing or in a state of print waiting state regardless of whether the secure mode is ON or OFF. In the multifunction apparatus1, the normal print job that is in a state of printing and the normal print job that is in a state of print waiting are both set as a print job to be canceled. If the print job that is in a state of printing is ordered to be cancelled, printing of pages that are subsequent to the page that is being printed is cancelled when receiving the multiple jobs cancel command.

(A4) a print job that is received during a period from a time when receiving the multiple jobs cancel command to a time when a following stopping cancellation condition is satisfied

The stopping cancellation condition may include following conditions (B1) and (B2). The controller10of the multifunction apparatus1determines that the stopping cancellation condition is satisfied when at least one of the conditions (B1) and (B2) is satisfied. If the stopping cancellation condition is satisfied, the print job is not cancelled.

(B1) When a subsequent print job is not received within five seconds from completion of receiving of the previous print job

As illustrated inFIG. 3, for example, if a print job J1is being received when receiving the multiple jobs cancel command (1), the print job J1that is being received corresponds to the previous print job. If receiving of a subsequent print job J2is started within five seconds from the completion of receiving of the previous print job J1, the print job J2also corresponds to an object print job that is to be cancelled. If receiving of a subsequent print job J3is started within five seconds from the completion of receiving of the print job J2, the print job J3also corresponds to an object print job that is to be cancelled.

In the example inFIG. 3, a period from the completion of receiving of the print job J3to the starting of receiving of a subsequent print job J4is longer than five seconds. In such a case, the print cancellation condition is satisfied when five seconds is elapsed after the completion of receiving of the print job J3, and accordingly, print jobs received after the print job J4do not correspond to object print jobs that are to be cancelled in response to the current cancel command.

If a print job is not being received when receiving the multiple jobs cancel command (2), it is determined whether the stopping cancellation condition is satisfied for the print job J1that is just received. In this case, the print job J1for which receiving is just completed is considered as the previous print job.

(B2) When the transmission interface via which a print job is received is changed

As described before, the transmission interface15includes the USB client interface15A and the network interface15B as the interface. InFIG. 3, the USB client interface15A is described as USB and the network interface15B is described as LAN.

For example, as illustrated inFIG. 3, when the multiple jobs cancel command (3) is received, the print job J5is being received via the USB, and receiving of a subsequent print job J6is started within five seconds from the completion of receiving of the print job J5. In such a case, the print job J6also corresponds to an object print job that is to be cancelled.

The receiving of a subsequent print job J7via LAN is started within five seconds from the completion of receiving of the print job J6. In such a case, the time period from the completion of receiving of the print job J6to starting of receiving of the print job J7is less than five seconds. However, the transmission interface via which the print job is received is changed from the USB to the LAN. Therefore, the stopping cancellation condition is satisfied when the transmission interface changes. Accordingly, print jobs received after the print job J7do not correspond to object print jobs that are to be cancelled in response to the current cancel command.

If a print job is not being received when receiving the multiple jobs cancel command (4), the print job J5that is just received is considered as the previous print job. In such a case, the print job J5is received via the USB, and if a print job J7subsequent to the print job J5is started to be received via the LAN, it is determined that the transmission interface changes.

The print cancellation process performed when receiving the single job cancel command is substantially same as the print cancellation process performed when receiving the multiple jobs cancel command excluding that the object print job to be cancelled is different. Therefore, the process performed in response to receiving the multiple jobs cancel command will be described.

(5) ON/OFF Setting of Secure Mode

An ON/OFF setting button of the operation device11is operated to set the secure mode of the multifunction apparatus1to be ON or OFF, for example. Based on a state of the secure mode that is ON or OFF, the controller10of the multifunction apparatus1performs different processes when receiving the multiple jobs cancel command.

(5-1) If Secure Mode is ON

When the secure mode is ON and the controller10of the multifunction apparatus1receives input of the multiple jobs cancel command, the controller10analyzes all of the print jobs that are in a state of waiting for analysis among the object print jobs to be cancelled. Among the analyzed print jobs, the controller10cancels the normal print jobs and does not cancel the secure print jobs.

Specifically, the print job (A3) is already analyzed and confirmed to be the normal print job. Therefore, the controller10deletes all the print jobs stored in the normal job storing area23A.

The print job (A2) is being analyzed, and the controller10continues analyzing it. If determining that the analyzed print job is a normal print job, the controller10deletes it from the analysis area22. If determining that the analyzed print job is a secure print job, the controller10stores it in the secure job storing area23B.

It is not sure whether each of the print jobs (A1) and (A4) is a secure print job or a normal print job when receiving the multiple jobs cancel command. Therefore, the controller10of the multifunction apparatus1analyzes each of the print jobs (A1) and (A4) and generates print data and determines whether each of the print jobs (A1) and (A4) is a secure print job or a normal print job based on the analysis result. The controller10deletes the print job if it is determined to be a normal print job, and the controller10stores the print job in the secure job storing area23B if it is determined to be a secure print job. The print job (A4) is stored in the analysis waiting job storing area21and thereafter analyzed.

(5-2) If Secure Mode is OFF

If the secure mode is OFF and the controller10of the multifunction apparatus1receives input of the multiple jobs cancel command, the controller10does not analyze the analysis waiting jobs and cancels printing of the object print jobs that are to be cancelled.

Specifically, the controller10does not analyze the print job (A1) and delete it from the RAM10C. The controller10stops analyzing the print job (A2) and deletes it from the analysis area22.

The print job (A3) is already confirmed to be a normal print job, and therefore, the controller10deletes the print job (A3) from the normal job storing area23A similar to the case in which the secure mode is ON.

The controller10does not store the print job (A4) in the analysis waiting job storing area21but reads and discards the print job (A4). The controller10may temporally store the print job (A4) in the analysis waiting job storing area21and delete it therefrom without analyzing it.

When the secure mode is OFF, the print jobs (A1), (A2) and (A4) are not analyzed and therefore, printing of the print jobs (A1), (A2) and (A4) is cancelled regardless of whether the print job is a secure print job or a normal print job.

(6) Print Cancellation Process when Receiving Multiple Jobs Cancel Command

The CPU10A starts a print cancellation process when receiving the multiple jobs cancel command that is input by a user via the operation device11. The transmission interface15receives a print job during performance of the print cancellation process. If receiving of a print job is completed during the performance of the print cancellation process, the print job is stored in the analysis waiting job storing area21during the performance of the print cancellation process.

As illustrated inFIG. 4, when the print cancellation process is started, the CPU10A determines whether the secure mode of the multifunction apparatus1is ON of OFF in S101. If the CPU10A determines that the secure mode is ON, the process proceeds to S103, and if the CPU10A determines that the secure mode is OFF, the process proceeds to S107. The processing of S101is an example of a mode determination process.

In S102, the CPU10A tries to allocate the analysis area22that is commonly used for analysis of the print jobs stored in the analysis waiting job storing area21. Specifically, the CPU10A tries to allocate the analysis area22of a predetermined capacity so as to analyze the print job that requires a large capacity of the analysis area. The analysis area22of the predetermined capacity may be determined based on the print history or may be set by a user.

If the print job is being analyzed when receiving the multiple jobs cancel command, the analysis area22is temporally released to be used freely after completion of the analysis. Thereafter, the CPU10A may try to allocate the analysis area22in S102. In such a case, the print job that is being analyzed is stored in the normal job storing area23A if it is determined to be a normal print job and the print job that is being analyzed is stored in the secure job storing area23B if it is determined to be a secure print job.

If the print job is being analyzed when receiving the multiple jobs cancel command and the capacity of the analysis area22that is used for the analysis is greater than the predetermined capacity, the analysis area22may be used for the area that will be allocated for analyzing the print jobs in the analysis waiting job storing area21.

In S103, the CPU10A determines whether the analysis area22is allocated. If determining that the analysis area22is allocated, the process proceeds to S104, and if determining that the analysis area22is not allocated, the process proceeds to S105. The processing of S102and S103is an example of a first allocation process. In S104, the CPU10A performs a first cancellation process. In S105, the CPU10A performs a second cancellation process. The processing of S102to S105is an example of a secure cancellation process. In S106, the CPU10A deletes all the normal print jobs stored in the normal job storing area23A.

In S107, among the object print jobs that are to be cancelled, the CPU10A cancels the print jobs for which analysis is not completed without analyzing the print jobs or before finishing the analysis. The processing of S107is an example of a non-secure cancellation process. The analysis of the print jobs whose analysis is not finished is interrupted. Canceling a print job means that the print job (A1), (A2) is deleted and the print job (A4) is read and discarded. After S107, the CPU10A deletes all the normal print jobs stored in the normal job storing area23A in S106.

(6-1) First Cancellation Process

As illustrated inFIG. 5, in the first cancellation process performed in S104, the CPU10A determines in S201whether any print job is completely received before the stopping cancellation condition is satisfied. Namely, the CPU10A determines whether receiving a print job (A1) or a print job (A4). As described before, the controller10of the multifunction apparatus1continues receiving pint jobs from external devices until the predetermined stopping cancellation condition is satisfied. Therefore, the processing of S202to S206will be repeatedly performed until the processing for the received print jobs is completed and the analysis waiting job storing area21stores no print job. The processing of S201will be specifically described.

As is described before, the controller10of the multifunction apparatus1continues analyzing the print job (A2) and if the print job (A2) is a normal print job, the controller10deletes the print job (A2), and if the print job (A2) is a secure print job, the controller10stores the print job (A2) in the secure job storing area23B. Therefore, at this time, the print job is not stored in the analysis area22.

If determining that the CPU10A receives a print job and the received print job is already stored in the analysis waiting job storing area21when receiving the cancel command, or if determining that the CPU10A receives a print job before the stopping cancellation condition is satisfied and the received print job is already stored in the analysis waiting job storing area21, the CPU10A determines that the print job is completely received before the stopping cancellation condition is satisfied.

On the other hand, if no print job is stored in the analysis waiting job storing area21and the print job is received before the stopping cancellation condition is satisfied and the received print job is not stored yet in the analysis waiting job storing area21, the CPU10A determines that no print job is completely received before the stopping cancellation condition is satisfied. If the analysis waiting job storing area21has an unoccupied area, the CPU10A sequentially stores in the analysis waiting job storing area21the print jobs that are received before the stopping cancellation condition is satisfied and are not stored in the analysis waiting job storing area21when receiving the cancel command.

If it is determined that the CPU10A receives a print job before the stopping cancellation condition is satisfied, the process proceeds to S202. If it is determined that the CPU10A does not receive a print job before the stopping cancellation condition is satisfied, the process proceeds to S207.

In S202, the CPU10A selects one of the print jobs that are received before the stopping cancellation condition is satisfied and stored in the analysis waiting job storing area21. The print job is selected sequentially from the one that is received first. The processing of S202is an example of a selection process.

In S203, the CPU10A moves the print job selected in S202to the analysis area22that is allocated in S102. The CPU10A analyzes the print job using the analysis area22and generates print data. The processing of analyzing the print job is an example of an analysis process. The processing of S203is an example of a first analysis process.

In S204, the CPU10A determines whether the print job that is selected in S202is a secure print job or a normal print job based on the analysis result obtained in S203. If determining that the print job is a secure print job, the process proceeds to S205, and if determining that the print job is a normal print job, the process proceeds to S206. In S205, the CPU10A moves the print data generated in S203to the secure job storing area23B as the secure print job. The processing of S205is an example of a first secure print job storing process.

In S206, the CPU10A deletes the print data generated in S203from the analysis area22. The processing of S206is an example of a deletion process.

In S207, the CPU10A determines whether the stopping cancellation condition is satisfied. If the CPU10A determines that the stopping cancellation condition is satisfied, the process returns to the print cancellation process, and if the CPU10A determines that the stopping cancellation condition is not satisfied, the process returns to S201and the processing is repeatedly performed.

(6-2) Second Cancellation Process

In a second stopping cancellation process performed in S105, the CPU10A waits until the stopping cancellation condition is satisfied in S301as illustrated inFIG. 6. In S301, if determining that the stopping cancellation condition is satisfied, the CPU10A holds in the secure job storing area23B the print jobs that are received before the stopping cancellation condition is satisfied and stored in the analysis waiting job storing area21. The CPU10A holds the print jobs in the secure job storing area23B without analyzing them. The processing of S301is an example of a holding process.

In S302, the CPU10A tries to allocate the analysis area22that is commonly used for the analysis of the unanalyzed print jobs that are stored in the secure job storing area23B and not analyzed yet. In such a case, the CPU10A tries to allocate the predetermined capacity of the analysis area22that is described before.

In S303, the CPU10A determines whether allocation of the analysis area22is successful. If the CPU10A determines that the allocation of the analysis area22having the predetermined capacity is successful, the process proceeds to S304, and if the CPU10A determines that the allocation of the analysis area22having the predetermined capacity is failed, the process returns to S302and the processing is repeatedly performed until the allocation of the analysis area22is successful. The processing of S302and S303is an example of a second allocation process.

In S304, the CPU10A selects one of the unanalyzed print jobs that are held in the secure job storing area23B and are not analyzed yet. The print job is selected sequentially from the one that is received first. The processing of S304is an example of a second selection process.

In S305, the CPU10A moves the print job that is selected in S304to the analysis area22that is allocated in S302. The CPU10A analyzes the analysis data corresponding to the selected print job with using the analysis area22and generates print data. The processing of S305is an example of a second analysis process.

In S306, the CPU10A determines whether the print job selected in S304is a secure print job or a normal print job based on the analysis result obtained in S305. If the CPU10A determines that the selected print job is a secure print job, the process proceeds to S307, and if the CPU10A determines that the selected print job is a normal print job, the process proceeds to S308.

In S307, the CPU10A moves the print data that is generated in S305to the secure print job storing area23B as the secure print job. The processing of S307is an example of a second secure print job storing process.

In S308, the CPU10A deletes the print data generated in S305from the analysis area22. The processing of S308is an example of a second deletion process.

In S309, the CPU10A determines whether an unanalyzed print job that is not analyzed yet is stored in the secure job storing area23B. If the CPU10A determines that an unanalyzed print job is not stored in the secure job storing area23B, the process returns to the print cancellation process. If the CPU10A determines that an unanalyzed print job is stored in the secure job storing area23B, the process returns to S304, and the processing is repeatedly performed.

In the multifunction apparatus1, if the secure mode is ON, the print job for which analysis is not completed is analyzed and it is determined whether the analyzed print job is a secure print job or a normal print job based on the analysis result. Therefore, the printing of the normal print job is cancelled without canceling the printing of the secure print job.

If the secure mode is not ON, the printing of the print job for which analysis is not completed is cancelled without waiting for the completion of the analysis or before completion of the analysis. Therefore, a user who inputs a cancel command is less likely to wait for a long time until the cancellation is completed.

Therefore, the controller10of the multifunction apparatus1performs operations according to both of a user's request that the secure print job is not canceled even with inputting of a cancel command and another user's request to cancel the print job as soon as possible.

Further, if determining that the object print job is a normal print job, the controller10of the multifunction apparatus1deletes the normal print job from the RAM10C and the printing of the normal print job is cancelled. On the other hand, if determining that the object print job is a secure print job, the controller10controls the RAM10C to hold the secure print job therein and the printing of the secure print job is not cancelled.

When canceling the printing of a plurality of print jobs collectively, the printing of the print job for which receiving is not completed at the time of receiving the cancel command is also cancelled.

Compared to a case in which the print job that is received during a period from the receiving of the cancel command to a time when the predetermined stopping cancellation condition is satisfied is deleted after being stored in the RAM10C, the processing efficiency is enhanced in the multifunction apparatus1.

If the analysis area22is not successfully allocated, the print job for which the analysis is not completely finished is held in the RAM10C in a state that the printing is unable to be performed. A secure print job may be included among the print jobs for which the analysis is not completed. Therefore, if the controller10of the multifunction apparatus1fails to allocate the analysis area22and the printing of the print jobs is canceled without performing analysis, it may be a troublesome for a user who does not want to cancel the secure print job.

If the controller10fails to allocate the analysis area22, the print job for which the analysis is not completed is stored in the RAM10C in a state that the printing is unable to be performed. Therefore, the secure print job may not be cancelled. Also, the printing of the print job for which the analysis is not completed is not performed.

The allocated analysis area22is commonly used for the analysis of a plurality of print jobs. Therefore, in response to the one cancel command, the process of allocating the analysis area22is performed once. This enhances the processing efficiency.

The controller10of the multifunction apparatus1analyzes the pint job for which the analysis is not completed due to the failure of the previous allocation of the analysis area22when the controller10successfully allocates the analysis area22. Accordingly, the secure print job may not be cancelled. In such a case, the analysis area22that is commonly used for the analysis of the print jobs stored in the secure job storing area23B is allocated. Therefore, the process of allocating the analysis area22is performed once. This enhances the processing efficiency.

When the cancel command receiver receives the cancel command, the processor may delete the normal print jobs that are already stored in the memory therefrom and hold the secure print jobs that are already stored in the memory thereto.

Since the normal print jobs that are already stored in the memory are deleted therefrom, printing of the normal print jobs that are already stored in the memory is canceled. Since the secure print jobs that are already stored in the memory are held therein, printing of the secure print jobs that are already stored in the memory is not cancelled.

In the above aspect, the analysis area22that is commonly used for the analysis of a plurality of print jobs is allocated. However, a capacity of the analysis area22required for the analysis changes according to the print job or a kind of the print job. The controller10of the multifunction apparatus1may allocate the analysis area22for every print job and release the analysis area22every time the analysis of one print job is finished.

(1) Print Cancellation Process when Receiving Multiple Jobs Cancel Command

Another print cancellation process will be described with reference toFIG. 7. The same symbols or numbers are applied to the substantially same process as described above and the substantially same processes will not be explained. In the following print cancellation process, steps S401and S402are performed instead of the steps S102to S105in the above print cancellation process.

In S401, the CPU10A executes a third cancellation process. In S402, the CPU10A executes a fourth cancellation process. The processing of S401and S302is an example of the secure cancellation process.

(2) Third Cancellation Process

The third cancellation process performed in S401will be described with reference toFIG. 8. The same numerals are applied to the substantially same processes as the above first cancellation process and the same processes will not be explained.

In S501, the CPU10A selects one of the print jobs for which the receiving is completed before the stopping cancellation condition is satisfied and that are stored in the analysis waiting job storing area21. The processing of S501is an example of a third selection process.

In S502, the CPU10A determines a capacity of the analysis area22that is required for the analysis based on the kind of the print job that is selected in S501. The processing of S502is an example of a capacity determination process.

In S503, the CPU10A tries to allocate the analysis area22having the capacity that is determined in S502.

In S504, the CPU10A determines whether the allocation of the analysis area22is successful in S503. If the CPU10A determines that the allocation of the analysis area22is failed, the process proceeds to S505. If the CPU10A determines the allocation of the analysis area22is successful, the process proceeds to S506. The processing of S503and S504is an example of a third allocation process.

In S505, the CPU10A controls the secure job storing area23B to hold the print job that is selected in S501. After the secure job storing area23B holds the print job, the process returns to S201and the processing is repeatedly performed. The processing of S505is an example of a holding process.

In S506, the CPU10A moves the print job selected in S501to the analysis area22that is allocated in S503. The CPU10A analyzes the print job with using the analysis area22and generates print data. The processing of S506is an example of a third analysis process.

In S507, the CPU10A determines whether the print job selected in S501is a secure print job or a normal print job based on the analysis result obtained in S506. If the CPU10A determines that the selected print job is a secure print job, the process proceeds to S508, and if the CPU10A determines that the selected print job is a normal print job, the process proceeds to S509.

In S508, the CPU10A moves the print data that is generated in S506to the secure job storing area23B as a secure print job. The processing of S508is an example of a third secure print job storing process.

In S509, the CPU10A deletes the print data generated in S506from the analysis area22. The processing of S509is an example of a third deletion process.

In S510, the CPU10A releases the analysis area22that is allocated in S503to be freely used. The processing of S510is an example of a first releasing process.

(3) Fourth Cancellation Process

A fourth cancellation process performed in S402will be described with reference toFIG. 9. In S601, the CPU10A selects one of the unanalyzed print jobs that are held in the secure job storing area23B and not analyzed yet. The processing of S601is an example of a fourth selection process.

In S602, the CPU10A determines a capacity of the analysis area that is required for the analysis based on a kind of the print job that is selected in S601. The processing of S602is an example of a second capacity determination process.

In S603, the CPU10A tries to allocate the analysis area22of the capacity determined at S602.

In S604, the CPU10A determines whether the allocation of the analysis area22in S603is successful. If the CPU10A determines the allocation of the analysis area22is successful, the process proceeds to S605, and if the CPU10A determines that the allocation of the analysis area22is failed, the process returns to S603and performs the processes repeatedly until the allocation of the analysis area22is successful. The processing of the S603and S604is an example of a fourth allocation process.

In S605, the CPU10A moves the print job that is selected in S601to the analysis area22that is allocated in S603. The CPU10A analyzes the print job with using the analysis area22and generate print data. The processing of S605is an example of a fourth analysis process.

In S606, the CPU10A determines whether the print job selected in S601is a secure print job or a normal print job based on the analysis result obtained in S605. If the CPU10A determines that the selected print job is a secure print job, the process proceeds to S607, and if the CPU10A determines that the selected print job is a normal print job, the process proceeds to S608.

In S607, the CPU10A moves the print data generated in S605to the secure job storing area23B as the secure print job. The processing of S607is an example of a fourth secure print job storing process.

In S608, the CPU10A deletes the print data generated in S605from the analysis area22. The processing of S608is an example of a fourth deletion process.

In S609, the CPU10A releases the analysis area22that is allocated in S603. The processing of S609is an example of a second releasing process.

In S610, the CPU10A determines whether the secure job storing area23B stores any unanalyzed print job. If the CPU10A determines that the secure job storing area23B stores an unanalyzed print job, the process proceeds to S601, and if the CPU10A determines that the secure job storing area23B stores no unanalyzed print job, the process returns to the print cancellation process.

The capacity of the analysis area22that is required for the analysis is determined for every print job and the analysis area22is allocated. The analysis area22for analyzing the print job that requires a large capacity of the analysis area may not be able to be allocated. Even in such a case, if the analysis area22for analyzing the print job that does not require a large capacity is successfully allocated, the analyzing of the print job that does not require such a large capacity of analysis area22is preformed first.

The capacity of the analysis area22that is required for the analysis is determined for every print job and the analysis area22is allocated. Therefore, if the capacity of the analysis area22required for the analysis is small, the area occupied by the analysis area22in the RAM is small and this enables the operations to be performed efficiently. One of the print jobs stored in the analysis waiting job storing area21for which a capacity of the analysis area required for analyzing the one of the print jobs is successfully allocated at this time is analyzed first. This improves operation efficiency.

The controller10of the multifunction apparatus1analyzes the print job that is held in the secure job storing area23B and for which analysis is not finished yet. Accordingly, the secure print job is not canceled.

The technology disclosed in the above description is not limited to the illustrative aspects described above with reference to the drawings. The following illustrative aspects may be included in the technical scope of the disclosed technology.

(1) In the above description, the cancel command includes the single job cancel command and the multiple jobs cancel command. The cancel command may include only one of the single job cancel command and the multiple jobs cancel command.

(2) In the above description, the print cancellation process when receiving the multiple jobs cancel command is described. The print cancellation process when receiving the single job cancellation process may be similar to the process in the above description. The secure mode of the multifunction apparatus1is turned ON, and if the active print job is not analyzed yet, that is, the active print job is a print job that is in a state of analyzing (State 3), waiting for analysis (State 4) or receiving (State 5), the print job is analyzed. If the active print job is a secure job, the print job is moved to the secure job storing area. If the active print job is a normal job, the print job is deleted. On the other hand, the secure mode is turned OFF, and if the active print job is not analyzed yet, the print job is deleted or read and discarded without being analyzed.

(3) In the above description, if the cancel command is input, the print job stored in the analysis waiting job storing area21is analyzed and print data is generated, and it is determined whether the print job is a secure print job or a normal print job based on the analysis result. However, the print data may not be generated and only the analysis is performed to determine whether the print job is a secure print job or a normal print job.

For example, for a print job in which a print condition and image data represented by a bit map are separately described or a print job in which a print condition and image data represented by a page description language are separately described, the analysis and the generation of print data may be performed independently. Such a print job may be only analyzed to determine whether the print job is a secure print job or a normal print job.

(4) In the above description, the predetermined stopping cancellation condition includes the conditions (B1) and (B2). However, the stopping cancellation condition is not necessarily limited thereto but may include any other conditions if necessary.

(5) In the above description, if the allocation of the analysis area22is failed, the controller10of the multifunction apparatus1controls the secure job storing area23B to hold the print jobs stored in the analysis waiting job storing area21. However, the secure job storing area23B may not hold the print jobs but the print jobs may be kept to be stored in the analysis waiting job storing area21. In such a case, the print job stored in the analysis waiting job storing area21may not be deleted.

However, if the print job stored in the analysis waiting job storing area21is maintained to be stored therein without being deleted, the printing of a normal print job may not be cancelled. Therefore, if the print job is maintained to be stored in the analysis waiting job storing area21, the printing may be suspended until the analysis area22is successfully allocated and the analysis is performed.

(6) In the above description, after the allocation of the analysis area22is failed and the secure print job storing area holds the print job, the print job held by the secure print job storing area is analyzed. In such analyzing, the analysis area22is allocated for each print job. However, in analyzing the print job held by the secure print job storing area, the analysis area22that is commonly used for analysis of a plurality of print jobs may be allocated and the analysis area22may be commonly used to analyze the print jobs.

(7) In the above description, a multifunction apparatus is used as the printing apparatus. However, the printing apparatus may be a printer having a single function or may be a facsimile device.

(8) In the above description, the CPU10A is used as the processor. However, the processor unit may be configured with a plurality of CPUs or may be configured with an ASIC or may be configured with a CPU and an ASIC.