Image forming apparatus and image forming method

JP7917316B2Active Publication Date: 2026-09-08SHARP KK
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2022085878
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-05-26
Publication Date
2026-09-08
Estimated Expiration
2042-05-26

AI Technical Summary

Benefits of technology

【0013】 本開示による画像形成装置において、ジョブ制御部は、メモリにジョブデータを格納する際に、ウィルスチェックが無効に設定されている場合あるいは不要な場合は部分データとして格納するが、有効に設定されている場合はファイルとして格納し、ウィルスチェック部がファイルとして格納されたジョブデータを対象にウィルスチェックを行い、ジョブデータにコンピュータウィルスが埋め込まれていないと判定した場合に、印刷部にジョブデータに基づく印刷を行わせるので、ファイルのみがチェックの対象となるウィルスチェックソフトを用いる場合に、できるだけ印刷処理の無駄な遅延を抑えることができる。 本開示による画像形成方法も同様の作用効果を奏する。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007917316000001
    Figure 0007917316000001
  • Figure 0007917316000002
    Figure 0007917316000002
  • Figure 0007917316000003
    Figure 0007917316000003
Patent Text Reader

Abstract

To suppress a wasteful delay of printing processing as much as possible when using virus checking software in which only a file is a target of checking.SOLUTION: An image formation apparatus comprises: a data input / output unit which receives job data related to a printing job; a job control unit which stores job data as partial data so as to sequentially perform printing from a received portion when virus checking is set to be invalid or when virus checking is unnecessary in a case of storing job data in a memory, but stores the job data as a lump file when the virus checking is set to be valid; a data analysis unit which generates data for image formation by analyzing the job data; and a virus checking unit which performs virus checking on the job data stored as the lump file. The job control unit causes a printing unit to perform printing based on the job data when the virus checking unit determines that a computer virus is not embedded in the job data.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[[Technical Field]]

[0001] The present disclosure relates to an image forming apparatus and an image forming method, and more particularly to an image forming apparatus having a virus check function and an image forming method. [[Background Art]]

[0002] In an image forming apparatus, job data (data related to a print job to be executed) received from a device such as an external information processing apparatus is sequentially stored in a memory buffer, while data analysis is performed sequentially from the head to generate, for example, secondary data for rendering, and rendering is performed using the secondary data. Then, sequential image formation (printing) is performed using the rendered data (tertiary data). That is, before the received job data is saved as one integrated file, printing is executed using sequentially stored partial data (hereinafter referred to as partial data in this specification). In this way, it is common practice to perform printing while suppressing the delay time from when job data is transmitted from the information processing apparatus to when printing starts. Hereinafter, a mode in which printing is sequentially performed from the received portion before all job data is received is referred to as a sequential processing mode in this specification.

[0003] On the other hand, many virus check programs can only perform virus checking on data stored in a predetermined format as files managed on an operating system (OS) of an information processing device. Data in formats other than files are not assumed to be targets of virus checking, and there is a limitation that correct results cannot be obtained. This is because a computer virus is a type of program, and program code executed by a computer (also referred to as a processor) on an operating system is stored as a file.

[0004] A computer virus is a computer program designed to perform malicious actions. A common method used by antivirus software to detect computer viruses is to compare the file being checked with a database containing program code (also called signature code) related to the specific actions of known viruses. This database is also called a virus pattern file or virus definition file. A virus pattern file is a database created by extracting all or part of the signature code from known computer viruses and registering them. Creating and updating virus pattern files requires specialized knowledge and considerable effort. Therefore, antivirus software is currently provided by only a limited number of people.

[0005] Job data contains code that controls the processes performed by the image forming apparatus's processor regarding printing, such as generating secondary data for rendering and rendering itself. In that it defines the processes the processor executes, it shares some similarities with computer programs. This job data may be stored as a file on an external device, and as such, it may be infected with a computer virus. In other words, it cannot be ruled out that some of the job data may contain embedded computer virus program code. When the operating system receives this job data and the processor performs rendering, the embedded computer virus program code may be executed. If the virus program code is executed, it may result in malicious actions that are not intended, such as the computer virus infecting other files, or data being stolen or destroyed.

[0006] In this regard, from a security standpoint, image forming apparatuses equipped with a virus checking function that check files received from external sources for viruses are known (see, for example, Patent Document 1). If the virus check determines that the file is infected with a virus, the job data stored in the storage device is discarded.

[0007] However, depending on conditions such as file size, virus checks can take a long time. On the other hand, if the virus check for the data related to the second page of the job data cannot be completed and printing cannot be started within the wait time between the completion of printing the first page of the job data and the start of printing the second page, a so-called jam will occur. Therefore, the invention of Patent Document 1 determines whether the job data printing process and the virus check process can be executed simultaneously for each page. If it is determined that the virus check process can be completed during the printing process, the job data printing process and the virus check process are executed simultaneously to suppress the decrease in printing performance. On the other hand, if it is determined that the virus check process cannot be completed within the wait time if the virus check process and printing process are executed simultaneously, printing of the page is started after waiting for the virus check to be completed. In this way, the downtime of the printing process due to the virus check process is minimized. [Prior art documents] [Patent Documents]

[0008] [Patent Document 1] Japanese Patent Publication No. 2020-203419 [Overview of the project] [Problems that the invention aims to solve]

[0009] From a security standpoint, virus checks in image forming machines should be performed immediately after job data received from an external device is saved as a file in the image forming machine. Security is ensured by deleting job data found to contain a computer virus before any processing using that job data takes place, or by prohibiting access to that job data. However, as mentioned earlier, many antivirus software programs have a limitation: when attempting to perform a virus scan using them, the received job data must be saved as a file, and then the virus pattern must be matched against that file. Patent Document 1 does not mention anything about the case where such limited virus checking software is executed in an image forming apparatus.

[0010] The sequential processing mode minimizes delays before printing begins by printing the received portions of the job data sequentially, rather than receiving all of it. However, when attempting to perform a virus check, the check cannot be executed until all the job data has been received and saved to a file. This disclosure was made in consideration of the circumstances described above, and aims to provide a method for minimizing unnecessary delays in the printing process when using antivirus software that checks only files. [Means for solving the problem]

[0011] This disclosure provides an image forming apparatus comprising: a virus check setting unit that accepts a setting on whether or not to perform a virus check; a data input / output unit that receives job data related to a print job; a memory that stores the received job data; a job control unit that, when storing the job data in the memory, stores the data as partial data so as to print sequentially from the received portion if the virus check is disabled or unnecessary, but stores it as a single file if the virus check is enabled; a data analysis unit that analyzes the job data and generates image forming data; a printing unit that performs printing using the data; and a virus check unit that performs a virus check on the job data stored as a single file, wherein the job control unit causes the printing unit to perform printing based on the job data when the virus check unit determines that no computer virus is embedded in the job data.

[0012] Furthermore, from a different perspective, this disclosure provides an image forming method comprising: a control unit that controls the execution of a print job in an image forming apparatus, which receives a user setting on whether or not to perform a virus check; a control unit that receives job data related to a print job from an external device; a control unit that stores the received job data in memory, which stores the data as partial data so as to print sequentially from the received portion if the virus check is disabled or unnecessary, but stores it as a single file if the virus check is enabled; a control unit that analyzes the job data to generate image forming data; a control unit that performs a virus check on the job data stored as a single file; and a control unit that determines that no computer virus is embedded in the job data, which performs printing based on the job data using the printing unit. [Effects of the Invention]

[0013] In the image forming apparatus according to this disclosure, when the job control unit stores job data in memory, if virus checking is disabled or unnecessary, it stores the data as partial data. However, if it is enabled, it stores the data as a file. The virus checking unit then performs a virus check on the job data stored as a file. If it determines that no computer viruses are embedded in the job data, it has the printing unit perform printing based on the job data. Therefore, when using virus checking software that only checks files, unnecessary delays in the printing process can be minimized. The image formation method described herein also produces similar effects. [Brief explanation of the drawing]

[0014] [Figure 1] This embodiment is a block diagram showing an example of the configuration of an image forming apparatus. [Figure 2] This embodiment is an explanatory diagram showing an example of a data pattern of job data received by an image forming apparatus. [Figure 3] Figure 1 is a flowchart showing an example of the process related to receiving print data, which is performed by the job control unit of the image forming apparatus. [Figure 4] Figure 3 is a flowchart detailing the file saving process. [Figure 5] Figure 3 is a flowchart detailing the virus check process. [Modes for carrying out the invention]

[0015] The following description will further elaborate on this disclosure with reference to the drawings. The following description is illustrative in all respects and should not be construed as limiting the disclosure. (Embodiment 1) Figure 1 is a block diagram showing an example of the configuration of an image forming apparatus in this embodiment. As shown in Fig. 1, the image forming apparatus 100 is connected to a PC (Personal Computer) 102, which is an external device, via communication. The image forming apparatus 100 can receive job data from the external device. The image forming apparatus 100 includes a control unit 19, a printing unit 30, and an operation unit 50. The image forming apparatus 100 may also include a document reading unit 40.

[0016] The control unit 19 is mainly configured with a processor and a memory as hardware resources, and includes a data input / output unit 11, a job control unit 13, a virus check unit 17, a memory 21, a data analysis unit 23, and an image generation unit 25. The data input / output unit 11 includes a communication circuit that receives job data from the external PC 102. The data input / output unit 11 also allows a USB (Universal Serial Bus) memory (not shown in Fig. 1) to be attached thereto, and includes an interface circuit that receives job data transferred from the attached USB memory. The data input / output unit 11 may further include an interface circuit that receives image data of a document read by the document reading unit 40. In addition, the image forming apparatus 100 stores internal data such as counter data, setting value data, and job execution history data in the memory 21, and includes an interface circuit that receives job data when the internal data is printed and output by the printing unit 30. Without being limited thereto, the data input / output unit 11 is an interface circuit that receives job data transmitted from an external device, and also receives printing data generated by the image forming apparatus 100 such as the arbitrary document reading unit 40.

[0017] The job control unit 13 controls the image forming apparatus 100 to execute processing related to printing of the received job data. The job control unit 13 includes a received data processing unit 15. The virus check unit 17 is a function realized by the processor associated with the control unit 19 executing processing of virus check software provided as a program module. The received data processing unit 15 performs processing related to the received job data.

[0018] The memory 21 is composed of a plurality of memory devices, and includes a buffer memory 21B and a spool memory 21S. The buffer memory 21B is formed of a RAM capable of high-speed reading and writing, stores received job data, and is used for printing in a sequential processing mode in which the stored job data is sequentially transferred to a data analysis unit 23 from the head thereof. The spool memory 21S has a slower reading and writing speed than the buffer memory 21B but has a larger storage capacity, and can store job data as a single file. The spool memory 21S performs reading and writing faster than the printing processing speed of a printing unit 30. In this embodiment, the spool memory 21S is configured by an HDD (Hard Disk Drive).

[0019] The spool memory 21S is a memory that temporarily stores received job data as a file in order to absorb the difference between the reception processing speed of job data transmitted from the PC 102 and the printing processing speed by the printing unit 30. By storing the received job data as a file in the spool memory 21S, a virus check can be performed on the job data stored as a file in the spool memory 21S, and printing processing can be executed on job data for which it is determined that no computer virus code is embedded. On the other hand, job data determined to have a computer virus code embedded therein can be deleted before data analysis to ensure security.

[0020] The data analysis unit 23 analyzes received job data and generates secondary data for rendering. Job data analysis is realized by a processor associated with the control unit 19 executing a data analysis process provided as a program module. The image generation unit 25 performs rendering using the secondary data to generate bitmap data (tertiary data) for each color of Y (yellow), M (magenta), C (cyan), and K (black). Rendering is realized by a processor associated with the control unit 19 executing a rendering process provided as a program module.

[0021] The printing unit 30 creates a visible image based on tertiary data and prints it onto a printing sheet. The printing method is not limited and may be, for example, an electrophotographic method, an inkjet method, or a method using sublimation dye ink. The optional document reading unit 40 reads the image of the document using an image sensor and generates image data corresponding to the document. The operation unit 50 accepts settings from the user. The operation unit 50 includes a virus check setting unit 51. The virus check setting unit 51 accepts settings from the user regarding whether or not to perform a virus check on the job data.

[0022] In sequential processing mode, when the receiving data processing unit 15 receives job data from an external device, it passes that job data to the data analysis unit 23 via the buffer memory 21B. If the data analysis unit 23 receives new job data while analyzing existing job data, it performs spool reception as described below. However, this is only if "Spool reception of print data" is enabled in the various settings of the image forming apparatus 100. To prevent a timeout error, the receiving data processing unit 15 spools the newly received job data into the spool memory 21S in the background.

[0023] However, if the host sending the job data requires an immediate response, spool reception will not be performed in order to prioritize that communication. Examples of situations requiring an immediate response include printing using the RAW port setting, which is a network printing protocol, and when bidirectional communication with the host is enabled, as well as printing via a USB interface. If the analysis of the previous job data is completed while spool reception is in progress, the received data processing unit 15 will start analyzing the job data that has been spooled and stored in the spool memory 21S. If spool reception has not finished, it will continue spool reception while analyzing the job data stored in the spool memory 21S. This type of processing is also included in the sequential processing mode.

[0024] On the other hand, depending on the type and settings of the job data, the job data may be saved as a file in spool memory 21S before printing. This process of saving the job data as a file before printing is called file save mode. An example of job data that operates in file save mode is printing PDF (Portable Document Format). If the virus check function is enabled, printing will be performed in file save mode regardless of the type or settings of the job data. Furthermore, for print jobs that do not require virus checking, such as data generated within the image forming apparatus, virus checking of the job data will not be performed.

[0025] (Embodiment 2) When receiving job data over a network, typically one print job is sent in one session, and file saving is completed when the session ends. However, sometimes the session may not end even after one print job has been sent. For example, in the case of printing via a USB interface, the session is forcibly terminated and file saving is completed due to an input / output timeout. If multiple jobs are received within the same session (within the timeout period), processing all jobs as a single file will result in a delay before printing begins. Furthermore, the file size may become excessively large, potentially exceeding the maximum allowable file size, preventing further data reception or file saving.

[0026] Furthermore, in printing that receives job data from the core server host, if RAW port settings are used and bidirectional communication is enabled, the host may perform the following communication control: During the transmission of job data, the host sends a specific bidirectional communication command to maintain the session and waits for a Ready response from the image forming apparatus 100. If the image forming apparatus 100 returns a Ready response, the rest of the data is sent; however, if it does not return a Ready response, the rest of the data is not sent. If the image forming apparatus 100 is operated in file save mode, it times out without returning a Ready response and unilaterally completes file saving. In this case, because it does not return a response command to the host, the rest of the data is not sent, and printing is not possible.

[0027] In this embodiment, the received data processing unit 15 monitors whether the received job data contains bidirectional communication commands or UEL (Universal Exit Language) commands that instruct printing to a new sheet of paper (and therefore, the end of printing on the current sheet). If there is data indicating the end of a job, such as a bidirectional communication command or a UEL command, the unit splits the data up to that point into a file and saves it. The unit then returns a Ready response to the bidirectional communication command and processes the files sequentially as they are saved. This enables the processing of responses to bidirectional communication commands.

[0028] (Embodiment 3) Depending on the print port settings and printing method, job data with banners or job control commands attached may be received. One example is when the Line Printer Daemon Protocol (LPD), a network printing protocol, is configured to print banners. Another example is a specific type of direct printing where a file is sent to the image forming apparatus 100 without using a printer driver, and the image forming apparatus 100 performs printing according to the file format. If extraneous data is added before or after a file that is to be scanned for viruses, the virus scan will not function properly and will not yield accurate results.

[0029] In this embodiment, the receiving data processing unit 15 enables the virus check to be performed by ignoring any extra data attached before or after the file format of the job data assumed by the virus check unit 17. The introductory data attached before the job data is called a header, and the data attached after the job data is called a footer. An example of a header is a banner for LPD printing. Another example is a PJL (Printer Job Language) command that instructs various settings for the print job that the image forming apparatus 100 should execute. The UEL command was described in Embodiment 2, but in fact the UEL command is one of many PJL commands. An example of a footer is a UEL command. If at least one of the header and footer is attached, the receiving data processing unit 15 detects its position and passes its position information (start offset and end offset of the virus check) to the virus check unit 17.

[0030] Alternatively, if the virus check unit 17 determines that it cannot perform a virus check while ignoring the start / end offsets, it creates a separate virus check file by removing the header and footer from the job data stored in the spool memory 21S. This file is then passed to the virus check unit 17 for virus checking. If a computer virus is detected, the original job data is deleted along with the virus check file. The print job associated with that job data is then canceled.

[0031] ≪Patterns of job data to be received≫ Figure 2 is an explanatory diagram showing examples of data patterns for job data received by the image forming apparatus. Seven patterns, (A) to (G), are shown in Figure 2. The part that matches the file data format assumed by the virus check unit 17 is indicated as "Detection Target". The left side of "Detection Target" shows an example of a header added before the job data, and the right side shows an example of a footer added after the job data.

[0032] (A) shows a pattern in which job data is sent from an external device without any footer or header being added to the job data. (B) to (F) show patterns in which the header and footer described in Embodiment 3 are added to the job data. (B) shows a pattern in which job control commands are attached to the job data as a header and sent from an external device. A specific example of a job control command is a PJL command. The start and end of a PJL command are identified by a sequence of specific character codes, thereby distinguishing the header from the job data body that is being detected. The same applies to the footer.

[0033] (C) shows a pattern in which job control commands are added as a header and UEL commands as a footer to the job data and sent from an external device. (D) shows a pattern in which headers and footers are added multiple times and sent from an external device. (E) shows a pattern in which a banner is attached to the job data as a header and sent from an external device. (F) shows a pattern in which a banner and job control commands are added as headers to the job data and sent from an external device. (G) shows an example of a bidirectional communication command as described in Embodiment 2. The host waits for a response (status command) from the image forming apparatus 100 to the job control command sent from the external host device, and then sends the subsequent data. If the image forming apparatus 100 does not return a status command, the subsequent data is not sent.

[0034] Flowchart The contents described in Embodiments 1 to 3 above will now be explained using a flowchart from the perspective of the processing flow performed by the job control unit. Figures 3 to 5 are flowcharts illustrating examples of processes performed by the job control unit of the image forming apparatus shown in Figure 1. Figure 3 shows an example of processing related to the receipt of print data, Figure 4 shows details of the file saving process shown in Figure 3, and Figure 5 shows details of the virus check process shown in Figure 3. As shown in Figure 3, when the received data processing unit 15 receives job data, it determines whether or not the job data was sent from an external device (step S11). If it is received from an external device, it determines that there is a possibility that computer virus code is embedded in it and performs the following processing.

[0035] First, the received data processing unit 15 determines whether or not the job data should be printed in file save mode (step S13). For example, in the case of PDF printing (Yes in step S13), it should be printed in file save mode. If printing should be performed in file save mode, the received job data should be saved as a file before proceeding with the printing process (step S15). The receiving data processing unit 15 then opens a file to store the received job data as a file in spool memory (step S17). It then determines whether or not to perform printing in file save mode (step S19), and if it performs printing-related processing in file save mode (Yes in step S19), it executes the file save process (step S21) and terminates the process. Details of the file saving process are shown in Figure 4.

[0036] If the determination in step S19 indicates that the file save mode is set to off (No. in step S19), the job control unit 13 will perform printing of the received job data in sequential processing mode using the buffer memory 16B (step S31). Here, the job data received in sequential processing mode using buffer memory 16B is partial data, and its data format is a proprietary format suitable for sequentially storing the data in buffer memory and performing data analysis from the beginning. It is not a file format that can be managed as a single independent file in the OS file system. In other words, it is not a data format that can be scanned for viruses by antivirus software. The OS is installed in the control unit 19, and the various programs that run in the control unit 19 are based on that OS. The antivirus software is also based on that OS. The antivirus software is designed to scan data in file formats that the OS can manage, and cannot process partial data, which is in a proprietary data format. In sequential printing mode, the job control unit 13 sequentially performs data analysis processing by the data analysis unit 23 from the beginning of the job data stored in the buffer memory to generate secondary data (step S31). Then, it renders the generated secondary data and performs printing (step S33).

[0037] On the other hand, if the determination in step S13 above determines that the job should not be printed in file save mode (No in step S13), the received data processing unit 15 makes the following determination: whether the setting received by the virus check setting unit 51 is a setting that the job data should be virus checked (step S35). If it is set to perform a virus check (Yes in step S35), it sets the job to be printed in file save mode (step S37). Then, the process proceeds to step S17 above and the spool file is opened.

[0038] On the other hand, if the determination in step S35 above does not indicate that a virus check is to be performed, the received data processing unit 15 proceeds to step S23, which will be described later. Furthermore, in the determination in step S11 described above, if the job data to be received is not received from an external device but is generated internally within the image forming apparatus 100, the received data processing unit 15 proceeds to step S23.

[0039] In step S23, the receiving data processing unit 15 checks whether it is set to perform spool reception (step S23). If it is set to perform spool reception, it determines whether the print job related to the previously received job data is in the process of being processed and whether the received job data does not require an immediate response (step S25). If it receives job data that does not require an immediate response and is being processed by the previous print job (Yes in step S25), the receiving data processing unit 15 sets the file save mode to off and controls the system to store the received data in the spool memory 21S (step S27). Then, it proceeds to step S17 described above and opens the spool file. If the setting in step S23 described above is to not perform spool reception (No. in step S23), the received data processing unit 15 proceeds to step S31 described above and prints in sequential processing mode. Furthermore, if, in step S25, the previous print job is not being processed, or if job data requiring an immediate response is received (No. in step S25), the received data processing unit 15 proceeds to step S31 and prints in sequential processing mode.

[0040] Next, we will describe the details of the file saving process shown in step S21 of Figure 3. When the received data processing unit 15 receives incoming job data, it sequentially stores the received job data in the spool memory 21S (step S41 shown in Figure 4). Then, it performs the following determination. First, it is determined whether the reception of job data has ended due to the session ending or a timeout (step S43). If the reception of job data has ended (Yes in step S43), the process proceeds to step S51, which will be described later.

[0041] If no session termination or timeout has occurred (No in step S43), the next step is to determine whether a break in the print jobs within the same session has been detected (step S45). If a break in the print jobs has been detected (Yes in step S45), the process proceeds to step S51, which will be described later. If no print job delimiter is detected (No in step S45), the next step is to determine whether a command that triggers file saving, such as a banner or UEL, has been detected (step S47). If a command that triggers file saving is detected (Yes in step S47), the process proceeds to step S51, which will be described later.

[0042] If no command or other trigger for file saving is detected (No. in step S47), the system then determines whether or not a bidirectional communication command has been received (step S49). If no bidirectional communication command has been received (No. in step S49), the process returns to step S41 and continues to receive job data. On the other hand, if a bidirectional communication command is received (Yes in step S49), the process proceeds to step S51.

[0043] In step S51, the job control unit 13 determines that it has finished storing the received job data into the spool memory 21S and closes the file (step S51). This is the counterpart to the file open process shown in step S17 of Figure 3. By closing the file in S51, it is saved as a single, independent file within the OS file system. In other words, it becomes a file format that can be scanned by antivirus software. Next, the job control unit 13 determines whether or not it is configured to perform a virus check on the received job data (step S53). If it is configured to perform a virus check (Yes in step S53), it executes the virus check process (step S55) and terminates the process. Details of the virus check process will be described later. On the other hand, if the system is not configured to perform a virus check (No. in step S53), the job control unit 13 performs data analysis on the job data stored as a file in the spool memory 21S to generate secondary data (step S57). Then, it renders the generated secondary data and prints it (step S59), and the process ends.

[0044] Next, we will describe the details of the virus check process shown in step S55 of Figure 4. The job control unit 13 checks whether banners or job control commands have been added to the job data stored as a file in the spool memory 21S (step S61). If banners or job control commands are attached (Yes in step S63), it is determined whether or not a virus check can be performed while ignoring the attached banners or job control commands (step S65). If a virus check can be performed while ignoring banners and job control commands, the job control unit 13 provides the virus check unit 17 with the following information in addition to the file to be checked for viruses: information indicating the offset to start the virus check, i.e., the position of the header, and information indicating the offset to end the virus check, i.e., the position of the footer (step S67). Then, the process proceeds to step S71, which will be described later.

[0045] On the other hand, if the determination in step S65 indicates that a virus check cannot be performed by ignoring the added banners and job control commands (No. in step S65), the job control unit 13 generates a file from which the added banners and job control commands have been removed. The generated file for virus checking is then provided to the virus checking unit 17 (step S69). The virus checking unit 17 is then instructed to perform a virus check on the target file (step S71). When the virus check unit 17 performs a virus check in response to that instruction, the job control unit 13 refers to the result.

[0046] If the result indicates that the job data contains embedded computer virus code (Yes in step S73), the job control unit 13 deletes the file containing the job data. If a file for virus checking has been generated, that is also deleted. The user is then notified that printing of the job data is not possible because a computer virus has been detected (step S75). The process is then terminated. If the result of the determination in step S73 indicates that no computer virus code is embedded (No in step S73), the job control unit 13 performs data analysis on the job data stored as a file in the spool memory 21S to generate secondary data (step S77). Then, it renders the generated secondary data and prints it (step S79), and the process ends. The above describes the processing flow executed by the job control unit 13 in this embodiment.

[0047] As stated above, (i) The image forming apparatus according to the present disclosure comprises: a virus check setting unit that accepts a setting on whether or not to perform a virus check; a data input / output unit that receives job data relating to a print job; a memory that stores the received job data; a job control unit that, when storing the job data in the memory, stores the data as partial data so as to print sequentially from the received portion if the virus check is disabled or unnecessary, but stores it as a single file if the virus check is enabled; a data analysis unit that analyzes the job data and generates image forming data; a printing unit that performs printing using the data; and a virus check unit that performs a virus check on the job data stored as a single file, wherein the job control unit causes the printing unit to perform printing based on the job data when the virus check unit determines that no computer virus is embedded in the job data.

[0048] In this disclosure, virus checking determines whether or not a target file contains program code of a computer virus that performs malicious actions. One specific checking method is pattern matching, which compares the target file with a database containing registered program code (signature code) related to specific actions found in known viruses. Furthermore, external devices may provide job data stored as files. Specific examples of such devices include information processing devices such as PCs, smartphones, cloud servers, and print servers. Alternatively, storage devices such as USB memory sticks and NAS (Network Access Drives) that can store and transfer files may also be used. The PC in the aforementioned embodiment is an example of such an external device.

[0049] Furthermore, a print job is a set of information that instructs the image forming apparatus on the printing process it should perform. Job data includes information indicating the settings for the print job and information indicating the content to be printed (e.g., page description language). Job data is a file, but job data received from an external device may have headers such as commands and banners related to the print job added before it, and footers such as UEL commands that instruct printing to a new sheet of paper (and therefore the end of printing on the current sheet) added after it. The data input / output unit receives job data when it is sent from an external device. Specific examples of this include a communication circuit that receives job data from an external device via communication, and an input / output circuit that receives job data from a storage device such as a directly connected USB memory. Furthermore, it may also receive image data read by an image forming apparatus. Furthermore, memory is used to store job data. However, it may store not only job data but also various other types of data, such as program data. Specific examples of such memory include RAM (Random Access Memory) as a buffer memory for temporarily storing job data, and HDD or SSD (Solid State Disk) as spool memory. Buffer memory is used for storing job data when partial data is stored and sequential printing is performed from the received portions, while spool memory is used when job data is stored as a single file. Furthermore, the job control unit controls the execution of print jobs. One specific example of this is a configuration in which the processor executes a control program stored in memory to realize the function of a job control unit.

[0050] The data analysis unit analyzes the received job data to generate data for image formation. Specific examples of image formation data include, for instance, intermediate data generated from the job data and used for rendering. Furthermore, the printing section forms images using rendered data. Specific examples of this include systems that form images using an electrophotographic photoreceptor, systems that form images using an inkjet nozzle, and systems that form images by thermal transfer using sublimation dye ink.

[0051] Furthermore, the virus checking unit causes the processor of the image forming apparatus to perform the virus checking process. One specific example of this is a configuration in which a virus checking program is provided by a provider of virus checking software, incorporated as a program module, and executed by the processor. The virus checking unit in the above-described embodiment corresponds to this configuration. Virus checks are unnecessary when it is considered unlikely that computer virus code could be embedded. Examples include data generated within an image forming apparatus and not stored as a file. Even job data received from external devices may not require virus checks if it is determined that it will not be stored as a file.

[0052] Furthermore, preferred embodiments of this disclosure will be described. (ii) The job control unit may delete job data that it has determined to contain computer virus code as a result of a virus check without generating the image forming data. In this configuration, if it is determined that the received job data contains embedded computer virus code, the data analysis unit 23 deletes the job data before executing any processing based on that job data, so that the processor does not execute the embedded computer virus code. In this way, security can be ensured.

[0053] (iii) The image formation data may be secondary data generated for rendering. In this embodiment, the received job data is deleted before intermediate secondary data for rendering is generated from the job data, so that the processor does not execute any computer virus code embedded in the job data.

[0054] (iv) The data input / output unit receives job data when it is sent from an external device via communication, and if it receives multiple print jobs within the same session, it stores the received print jobs as files for each data indicating the boundary of each print job, the virus check unit performs a virus check on each file, and the job control unit may print job data that, as a result of the virus check, is determined not to contain any embedded computer virus code. In this configuration, if a single session, which is a series of communications from the start to the end of data access, includes multiple print jobs, when data indicating the boundary between print jobs is found, the job data received up to that point is stored as a single file and a virus check is performed. Therefore, there is no need to delay the start of the virus check until the session ends, and unnecessary delays in the printing process can be suppressed.

[0055] (v) If a command related to the control of a print job is attached either before or after the received job data, the data input / output unit may pass information to the virus check unit to ignore the attached command or to delete the attached command and pass it to the virus check unit. According to this embodiment, even if control commands are attached to at least one of the received job data, the virus check unit can perform a virus check as if it conforms to the file format it expects.

[0056] (vi) One aspect of the present disclosure includes an image forming method comprising: a control unit that controls the execution of a print job in an image forming apparatus, the steps of: receiving a user setting on whether or not to perform a virus check; receiving job data relating to a print job from an external device; storing the received job data in memory, and if the virus check is disabled or unnecessary, storing it as partial data so as to be printed sequentially from the received portion, but if it is enabled, storing it as a single file; analyzing the job data to generate image forming data; performing a virus check on the job data stored as a single file; and, if it is determined that no computer virus is embedded in the job data, performing printing based on the job data using a printing unit.

[0057] The aspects of this disclosure include combinations of any of the aspects described above. In addition to the embodiments described above, various modifications of this disclosure are possible. These modifications should not be construed as being outside the scope of this disclosure. This disclosure should include the meaning of equivalence to the claims and all variations within that scope. [Explanation of Symbols]

[0058] 11: Data Input / Output Unit, 13: Job Control Unit, 15: Received Data Processing Unit, 17: Virus Check Unit, 19: Control Unit, 21: Memory, 21B: Buffer Memory, 21S: Spool Memory, 23: Data Analysis Unit, 25: Image Generation Unit, 30: Printing Unit, 40: Document Reading Unit, 50: Operation Unit, 51: Virus Check Setting Unit 100: Image forming device, 102: PC

Claims

1. A virus check settings section that accepts settings on whether or not to perform a virus check, A data input / output unit that receives job data related to print jobs sent via communication from external devices, Memory for storing received job data, When storing job data in the memory, if the virus check is disabled or unnecessary, the data is stored as partial data so that it is printed sequentially from the received portion; however, if it is enabled, the job control unit stores the data in a file format that is an independent unit in the OS file system and can be managed by the file system. A data analysis unit that analyzes the aforementioned job data and generates data for image formation, The printing unit uses that data to perform printing, The system includes a virus check unit that performs the virus check on the job data stored as the aforementioned file, When the data input / output unit receives job data for multiple print jobs within the same session, the job control unit, upon detecting data indicating the boundary between each print job, stores the job data received up to that boundary as a file. The data indicating the end of the print job includes a bidirectional communication command in which the external device waits for a Ready response returned via the data input / output unit. When the job control unit receives the bidirectional communication command, it stores the job data received up to the boundary indicated by the bidirectional communication command as the file and returns the Ready response via the data input / output unit. The virus checking unit sequentially performs a virus check on each file as it is stored, The image forming apparatus, wherein the job control unit causes the printing unit to perform printing based on the job data when the virus check unit determines that no computer virus is embedded in the job data.

2. The image forming apparatus according to claim 1, wherein the job control unit deletes job data that has been determined to contain computer virus code as a result of the virus check without generating the image forming data.

3. The image forming apparatus according to claim 1 or 2, wherein the image forming data is secondary data generated for rendering processing.

4. The image forming apparatus according to claim 1 or 2, wherein if a command related to the control of a print job is attached either before or after the received job data, the data input / output unit provides information to ignore the attached command and perform the virus check, or deletes the attached command and passes it to the virus check unit.

5. The control unit that controls the execution of print jobs in the image forming apparatus, A step to accept user settings regarding whether or not to perform a virus check, The steps include receiving job data related to a print job, which is sent via communication from an external device, When storing the received job data in memory, if the virus check is disabled or unnecessary, the data is stored as partial data so that it can be printed sequentially from the received portion; however, if it is enabled, the data is stored in a file format that is an independent unit in the OS file system and can be managed by the file system. The steps include: analyzing the aforementioned job data to generate data for image formation; A virus check step is performed on the job data stored in the memory in the aforementioned file format, sequentially checking each file for virus data as storage is completed, If the virus check step determines that no computer virus is embedded in the job data, the printing step involves using the printing unit to perform printing based on the job data. Equipped with, In the storage step, if the control unit receives job data related to multiple print jobs within the same session, when data indicating a boundary between print jobs is detected, the control unit stores the job data received up to that boundary as the file. The data indicating the end of the print job includes a bidirectional communication command in which the external device waits for a Ready response from the image forming apparatus. Image forming method wherein, upon receiving the bidirectional communication command, the control unit stores the job data received up to the boundary indicated by the bidirectional communication command as the file and returns the Ready response to the external device.

Citation Information

Patent Citations

  • Output controller, output control method, and storage medium stored with computer readable program

    JP2000311071A

  • Printing controller, method of controlling printing, and printing system

    JP2004001408A

  • Image formation device and its control program

    JP2005271510A

  • Image formation system, image formation device, and image formation program

    JP2013003965A

  • Image processing apparatus and program

    JP2019168764A