Image forming system including terminal device that substitutes object data in print data with hash value if the hash value accords with another hash value, and image forming apparatus that substitutes hash value in print data with object data, and image forming method

An image forming system includes an image forming apparatus and a terminal device. The terminal device converts a document into first print data, generates a second hash value corresponding to second object data in first print data, generates second print data, when the second hash value accords with the first hash value in a first storage device, by substituting the second object data in the first print data with the first hash value, and transmits the second print data to the image forming apparatus. The image forming apparatus substitutes, upon receipt of the second print data, the first hash value included in the second print data with the first object data corresponding to the first hash value and stored in the second storage device, generates second bitmap data by analyzing the second print data subjected to the substitution, and causes an image forming device to execute a printing operation.

INCORPORATION BY REFERENCE

This application claims priority to Japanese Patent Application No. 2021-092369 filed on Jun. 1, 2021, the entire contents of which are incorporated by reference herein.

BACKGROUND

The present disclosure relates to an image forming system and an image forming method, and in particular to a technique to perform printing with high efficiency.

An image forming system is known in which, when a terminal device such as a personal computer (PC) transmits an instruction to an image forming apparatus located on a network, the image forming apparatus executes a printing operation. In the existing image forming systems, when a user designates a document to be printed with the terminal device, the terminal device converts the designated document into print data described in a page description language (PDL) that can be analyzed by the image forming apparatus, and transmits such print data to the image forming apparatus, via the network.

The image forming apparatus unfolds the print data transmitted from the terminal device and converts it into bitmap data (raster image data), and executes the image forming operation (printing operation) on the basis of the bitmap data.

In relation to such an image forming system, a technique is known that includes storing the bitmap data generated by the image forming apparatus by unfolding the print data transmitted from the terminal device, in association with a hash value generated from the bitmap data, and executing, when the hash value that accords with the hash value stored as above is subsequently transmitted from the terminal device, the printing operation on the basis of the bitmap data stored in association with the hash value.

The mentioned technique eliminates the need to generate the bitmap data, when the same document is to be again printed, thereby simplifying the printing operation.

SUMMARY

The disclosure proposes further improvement of the foregoing techniques.

In an aspect, the disclosure provides an image forming system including an image forming apparatus and a terminal device. The terminal device includes a first communication device, a first storage device, and a first control device. The first communication device makes communication with the image forming apparatus. The first storage device stores therein a first hash value corresponding to first object data stored in the image forming apparatus. The first control device includes a processor, and acts as a print controller, when the processor executes a control program. The print controller converts a document to be printed into first print data that can be analyzed by the image forming apparatus, and generates a second hash value corresponding to second object data included in the first print data. When the second hash value accords with the first hash value, the print controller generates second print data by substituting the second object data in the first print data with the first hash value, and transmits the second print data to the image forming apparatus via the first communication device. When the second hash value discords with the first hash value, the print controller transmits the first print data to the image forming apparatus via the first communication device. The image forming apparatus includes a second communication device, a second storage device, an image forming device, and a second control device. The second communication device makes communication with the terminal device. The second storage device stores therein the first object data in association with the first hash value. The image forming device executes a printing operation by forming an image on a recording medium. The second control device includes a processor, and acts as a controller, when the processor executes a control program. The controller generates first bitmap data by analyzing the first print data, upon receipt of the first print data transmitted from the terminal device, via the second communication device, and causes the image forming device to execute the printing operation on a basis of the first bitmap data. Upon receipt of the second print data transmitted from the terminal device, via the second communication device, the controller substitutes the first hash value included in the second print data with the first object data corresponding to the first hash value and stored in the second storage device, generates second bitmap data by analyzing the second print data in which the substitution has been done, and causes the image forming device to execute the printing operation on a basis of the second bitmap data.

In another aspect, the disclosure provides an image forming method executed by an image forming system including a terminal device including a first communication device that makes communication with an image forming apparatus, and a first storage device, and the image forming apparatus including a second communication device that makes communication with the terminal device, a second storage device, and an image forming device that executes a printing operation by forming an image on a recording medium. The image forming method includes steps executed by the terminal device, including a step of storing a first hash value corresponding to first object data stored in the image forming apparatus, in the first storage device, a step of converting a document to be printed into first print data that can be analyzed by the image forming apparatus, and generating a second hash value corresponding to second object data included in the first print data, a step of generating, when the second hash value accords with the first hash value, second print data by substituting the second object data in the first print data with the first hash value, and transmitting the second print data to the image forming apparatus via the first communication device, and a step of transmitting the first print data to the image forming apparatus via the first communication device, when the second hash value discords with the first hash value. The image forming method also includes steps executed by the image forming apparatus, including a step of storing the first object data in the second storage device in association with the first hash value, a step of generating first bitmap data by analyzing the first print data, upon receipt of the first print data transmitted from the terminal device, via the second communication device, and causing the image forming device to execute the printing operation on a basis of the first bitmap data, and a step of substituting, upon receipt of the second print data transmitted from the terminal device, via the second communication device, the first hash value included in the second print data with the first object data corresponding to the first hash value and stored in the second storage device, generating second bitmap data by analyzing the second print data in which the substitution has been done, and causing the image forming device to execute the printing operation on a basis of the second bitmap data.

DETAILED DESCRIPTION

Hereafter, an image forming system and an image forming method according to an embodiment of the disclosure will be described, with reference to the drawings.FIG.1illustrates a general configuration of the image forming system11according to the embodiment of the disclosure.

The image forming system11includes an image forming apparatus1and a terminal device2, located on a network such as the internet. The image forming apparatus1is a multifunction peripheral having a plurality of functions, such as copying, printing, scanning, and facsimile transmission.

The terminal device2is, for example, a PC. The terminal device2includes a control device21, an operation device22, a display device23, a communication device24, and a storage device25. The mentioned components can transmit and receive data and signals, to and from each other, via a communication bus.

The operation device22includes a keyboard, a mouse, and so forth. The user can input a command or a character to the control device21through the operation device22, or operate a pointer on the screen of the display device23. The operation device22receives the input of the user's instruction according to the operation performed by the user on the operation device22. The display device23includes, for example, a liquid crystal display (LCD). The display device23displays a response from the control device21, or a retrieved data.

The communication device24is a communication interface that transmits and receives various types of data to and from external devices inside a local area or on the internet, such as the image forming apparatus1.

The storage device25is a large-capacity storage device such as a hard disk drive (HDD) and a solid-state drive (SSD). The storage device25contains various control programs. In the terminal device2, a printer driver250is installed in the form of a program. The printer driver250is stored in the storage device25. The storage device25includes a hash value storage device251, which will be subsequently described.

The control device21includes a processor, a random-access memory (RAM), a read-only memory (ROM), and an exclusive hardware circuit. The processor is, for example, a central processing unit (CPU), an application specific integrated circuit (ASIC), or a micro processing unit (MPU).

The control device21acts as a controller210, when the processor operates according to a control program stored in the storage device25. The control device21also acts as a print controller211, when the processor operates according to the printer driver250stored in the storage device25. Here, the controller210may be constituted in the form of a hardware circuit, instead of being realized by the operation of the control device21according to the control program. This also applies to other embodiments, unless otherwise specifically noted.

The controller210serves to control the overall operation of the terminal device2. The controller210is connected to the operation device22, the display device23, the communication device24, and the storage device25, and controls the operation of the mentioned components.

The print controller211converts the document to be printed into print data that can be analyzed by the image forming apparatus1, and transmits the print data acquired through the conversion to the image forming apparatus1, via the communication device24. Thus, the print controller211requests the image forming apparatus1to print the document.

FIG.2illustrates an example of the document to be printed. As shown inFIG.2, the document51represents an image including a plurality of objects J1to J3. The object J1represents a logo mark, the object J2represents character strings, and the object J3represents an illustration. For example, when the user inputs an instruction to print the document51through the operation device22, the print controller211converts the document51into a description by page description language (PDL), thereby generating the print data, and transmits the print data thus generated to the image forming apparatus1via the communication device24. Through such an operation, the print controller211requests the image forming apparatus1to print the document51.

FIG.3is a schematic drawing showing the conversion of the objects J1to J3included in the document51, into the description by PDL. The print data52represents the data converted from the document51into the description by PDL. The print data52includes object data D1to D3. The object data D1to D3are the data converted from the objects J1to J3into the description by PDL, respectively.

FIG.4is a functional block diagram showing an essential internal configuration of the image forming apparatus1. The image forming apparatus1includes a control device10, a document feeding device6, a document reading device5, an image forming device12, a fixing device13, a paper feeding device14, an operation device47, a network interface (I/F)91, and a storage device7.

The document feeding device6is openably connected to the upper face of the document reading device5, for example via a hinge. The document feeding device6serves as a document retention cover, when the document reading device5reads a source document placed on the platen glass. The document feeding device6is configured as an automatic document feeder (ADF). The document feeding device6includes a document tray, and delivers the source documents placed thereon one by one, to the document reading device5.

To perform the document reading operation, the image forming apparatus1operates as follows. The document reading device5optically reads the image on the source document delivered from the document feeding device6to the document reading device5, or placed on the platen glass, and generates image data. The image data generated by the document reading device5is stored, for example, in an image memory.

To perform the image forming operation, the image forming apparatus1operates as follows. The image forming device12forms a toner image on a recording sheet, serving as a recording medium, and delivered from the paper feeding device14, on the basis of the image data generated through the document reading operation, the image data stored in the image memory, or image data received from a computer connected via a network.

The fixing device13heats and presses the recording sheet on which the toner image has been formed by the image forming device12, to thereby fix the toner image on the recording sheet. The recording sheet that has undergone the fixing process is delivered to an output tray. The paper feeding device14includes a paper cassette.

The operation device47includes hard keys for inputting various instructions. The operation device47receives instructions from the user to execute the functions and operations that the image forming apparatus1is configured to perform. The operation device47includes the display device473for displaying, for example, an operation guide for the user. The operation device47receives, through the touch panel provided on the display device473, the user's instruction based on the touch operation performed by the user on the operation screen displayed on the display device473.

The display device473includes, for example, an LCD. The display device473includes the touch panel. When the user touches a button or a key displayed on the screen, the touch panel detects the instruction corresponding to the touched position.

The network I/F91is a communication interface that transmits and receives various types of data to and from external devices inside a local area, or on the internet. For example, the network I/F91receives the print data transmitted from the terminal device2, which is an example of the external devices.

The storage device7is a large-capacity storage device such as a HDD and a SSD. The storage device7contains various control programs. The storage device7includes a hash value storage section70, an object data storage section71, and an object property information storage section72. The hash value storage section70, the object data storage section71, and the object property information storage section72will be subsequently described.

The control device10includes a processor, a RAM, a ROM, and an exclusive hardware circuit. The processor is, for example, a CPU, an ASIC, or an MPU.

The control device10acts as a controller100, when the processor operates according to a control program stored in the storage device7. Here, the controller1001may be constituted in the form of a hardware circuit, instead of being realized by the operation of the control device10according to the control program. This also applies to other embodiments, unless otherwise specifically noted.

The controller100serves to control the overall operation of the image forming apparatus1. The controller100is connected to the document feeding device6, the document reading device5, the image forming device12, the fixing device13, the paper feeding device14, the operation device47, the network I/F91, and the storage device7, and controls the operation of the mentioned components. For example, the controller100analyzes the print data transmitted from the terminal device2thereby generating bitmap data, and causes the image forming device12to perform the printing operation based on the bitmap generated as above.

For example, upon receipt of the print data52shown inFIG.3, transmitted from the terminal device2, the controller100analyzes the object data D1to D3included in the print data52, thereby generating the bitmap data, and causes the image forming device12to execute the printing operation based on the bitmap data generated as above.

The controller100generates a hash value from the object data included in the print data transmitted from the terminal device2, and assigns an ID number N to the hash value, when the generated hash value is new. The controller100then registers the generated hash value in the hash value storage section70, in association with the ID number N.

For example, the controller100generates the hash value represented by hexadecimal of 32 digits from the object data, using a predetermined hash function. In other words, the controller100generates the hash value corresponding to the object data.FIG.5illustrates the hash values respectively corresponding to the object data D1to D3of the print data52. The controller100generates the hash values H1to H3from the object data D1to D3respectively, using the hash function.

The controller100stores the object data corresponding to the hash value in the object data storage section71, in association with the ID number N for identifying the hash value. Here, the data amount of the object data is not small, and therefore the controller100sets an upper limit to the total data amount or total number of pieces, to the object data to be stored in the object data storage section71.

The controller100stores the object data in the object data storage section71, or deletes the object data therefrom, according to storage priority R specified on the basis of a predetermined condition. The storage priority R will be subsequently described in further detail.

The controller100stores property information of the object data corresponding to the hash value in the object property information storage section72, in association with the ID number N for identifying the hash value, with respect each of the ID numbers N.FIG.6illustrates an example of data structure stored in the object property information storage section72. The property information stored in the object property information storage section72includes the number of times of use (use for the printing) of the object data, the data amount, use frequency, a data ratio, the storage priority R, and a storage flag F. In the object property information storage section72, data groups each including the ID number N of the object data, and the property information related to each ID number N, are stored.

The use frequency represents the ratio to the total number of times of use. The data ratio represents the ratio to the total data amount. The storage priority R represents the average value of the use frequency and the data ratio. The storage flag F indicates whether the object data may be stored in the object data storage section71.

When the storage flag F is “1”, the controller100stores the corresponding object data in the object data storage section71, but does not store the object data therein, when the storage flag F is “0”. In this embodiment, the controller100sets the ratio for assigning “1” to the storage flag F, to 50% of all of the data. More specifically, the controller100assigns the storage flag F “1” to the upper six pieces of data (50% of the total of 12 pieces), in terms of the storage priority R.

Accordingly, when the property information of the objects shown inFIG.6is stored in the object property information storage section72, the controller100stores the object data corresponding to the hash values having the ID number N of “0002”, “0004” to “0006”, “0010”, and “0011”, in the object data storage section71.

Here, although the controller100sets the number of pieces of data to which the storage flag F “1” is to be assigned, on the basis of a relative value with respect to the total value (in this case, 50% of the total) in this embodiment, the controller100may determine the number of pieces of data to which the storage flag F “1” is to be assigned, on the basis of an absolute value. In other words, the controller100may determine in advance the number of pieces of data to which the storage flag F “1” is to be assigned.

The controller100transmits the hash value corresponding to the object data stored in the object data storage section71, to the terminal device2via the network I/F91.

Upon receipt of the hash value transmitted from the image forming apparatus1, via the communication device24, the print controller211of the terminal device2updates the information stored in the hash value storage device251, with the received hash value. Therefore, the terminal device2can be made aware of the object data stored in the image forming apparatus1.

FIG.7illustrates how the hash values H11to H16respectively corresponding to the six pieces of object data, currently stored in the object data storage section71, are transmitted from the image forming apparatus1to the terminal device2.

The printer driver250provided in the terminal device2has a function called “print cache”, for utilizing the object data stored in the image forming apparatus1(object data storage section71). The print controller211validates or invalidates the print cache function, according to the instruction from the user inputted through the operation device22.

Referring now to a flowchart shown inFIG.8, a print data generation process, to be performed by the terminal device2when the user's instruction to print the document is inputted, will be described hereunder.

When the user inputs the instruction to print the document, for example through the operation device22of the terminal device2, the print controller211converts the document to be printed into the description by PDL, thereby generating the print data (step S1). Further, the print controller211decides whether the print cache function is valid (step S2).

Upon deciding that the print cache function is valid (YES at step S2), the print controller211detects the object data included in the print data (step S3). For example, the storage device25of the terminal device2contains the same hash function as that utilized by the image forming apparatus1, and the print controller211generates the hash value for the detected object data, using that hash function (step S4). In other words, the print controller211generates, using the hash function, the hash value having a smaller data amount than the object data, with respect to the object data that has been detected.

For example, when the document51shown inFIG.3is to be printed, the print controller211generates the print data52including the object data D1to D3, and generates the hash values H1to H3shown inFIG.5, as the hash values respectively corresponding to the object data D1to D3.

Then the print controller211looks up the hash value storage device251, and decides whether the hash value stored in the hash value storage device251is included in the hash values generated at step S4(step S5).

When the hash value stored in the hash value storage device251is included in the generated hash values (YES at step S5), it can be assumed that the object data corresponding to the hash value in the hash value storage device251is stored in the image forming apparatus1. Accordingly, the print controller211substitutes the object data in the print data with the hash value (step S6), and transmits the print data in which the substitution has been done to the image forming apparatus1, via the communication device24(step S7). After step S7, the print controller211finishes the print data generation process.

For example, when the hash value H1corresponding to the object data D1as shown inFIG.5is stored in the hash value storage device251, it can be assumed that the object data D1is stored in the image forming apparatus1. Therefore, the print controller211(terminal device2) transmits the hash value H1, smaller in data amount than the object data D1, to the image forming apparatus1, instead of transmitting the object data D1.

FIG.9illustrates the print data52A, obtained by substituting the object data D1included in the print data52with the hash value H1. The print controller211substitutes the object data D1with data D_H1, by adding a predetermined operator OP to the hash value H1, to enable the image forming apparatus1to identify that the hash value H1represents the hash value. In this example, the operator OP “hash value” is added.

In contrast, upon deciding at step S5that the hash value stored in the hash value storage device251is not included in the generated hash values (NO at step S5), the print controller211transmits the print data generated at step S1as it is, to the image forming apparatus1via the communication device24(step S7). After step S7, the print controller211finishes the print data generation process.

Upon deciding at step S2that the print cache function is not valid (NO at step S2), the print controller211transmits the print data generated at step S1as it is, to the image forming apparatus1via the communication device24(step S7). After step S7, the print controller211finishes the print data generation process.

Referring now to flowcharts shown inFIG.10AandFIG.10B, an information updating process, to be performed by the image forming apparatus1upon receipt of the print data transmitted from the terminal device2, will be described hereunder.

Upon receipt of the print data transmitted from the terminal device2, via the network I/F91, the controller100of the image forming apparatus1decides whether the received print data includes the hash value (step S11).

For example, when the print data52A shown inFIG.9is received, the controller100decides that the print data includes the hash values. However, when the print data52shown inFIG.3is received, the controller100decides that the print data does not include the hash value.

Upon deciding that the print data includes the hash value (YES at S11), the controller100retrieves the object data corresponding to the hash value included in the print data, from the object data storage section71(step S12), and substitutes the hash value in the print data with the retrieved object data (step S13). Thus, the image forming apparatus1can acquire the print data52shown inFIG.3, although the print data52A shown inFIG.9is received.

The controller100analyzes the print data acquired as above, thereby generating the bitmap data (step S14), and causes the image forming device12to execute the printing operation based on the generated bitmap data (step S15). Thus, the image forming apparatus1can produce the printed material representing the document51shown inFIG.2, although the print data52A shown inFIG.9is received.

In contrast, upon deciding at step S11that the print data does not include the hash value (NO at S11), the controller100analyzes the received print data itself, thereby generating the bitmap data (step S14), and causes the image forming device12to execute the printing operation based on the bitmap data generated as above (step S15).

After step S15, the controller100detects the object data included in the print data (step S21), and generates the hash value corresponding to the detected object data, using the predetermined hash function (step S22). For example, the controller100generates the hash values H1to H3respectively corresponding to the object data D1to D3, as shown inFIG.5.

The controller100decides whether the hash values generated as above include an unregistered hash value, not stored in the hash value storage section70yet (step S23). Upon deciding that an unregistered hash value is included (YES at step S23), the controller100assigns an ID number N for identifying the hash value, and registers the hash value in the hash value storage section70in association with the ID number N. At the same time, the controller100adds the property information of the object data corresponding to the hash value to the object property information storage section72, and registers the data amount (step S24). After step S24, the controller100proceeds to step S25.

In contrast, upon deciding at step S23that an unregistered hash value is not included in the generated hash values (NO at step S23), the controller100skips the operation of step S24, and proceeds to step S25.

The controller100counts up the item “number of times of use” stored in the object property information storage section72, with respect to the hash value generated at step S22(step S25).

The controller100calculates the use frequency on the basis of the number of times of use of the object data, and the data ratio on the basis of the data amount, thereby updating the items “use frequency” and “data ratio” stored in the object property information storage section72(step S26). Further, the controller100calculates the storage priority R on the basis of the use frequency and the data ratio of the object data, and updates the item “storage priority R” stored in the object property information storage section72(step S27). The controller100determines the object data to be stored in the object data storage section71, on the basis of the storage priority R, and assigns the storage flag F “1” to the object data to be stored, and the storage flag F “0” to the remaining object data (step S28).

The controller100then decides whether there has been a change in the storage flag F (step S29). Upon deciding that there has been a change in the storage flag F (YES at step S29), the controller100stores the object data in the object data storage section71or deletes therefrom, on the basis of the storage flag F (step S30). Accordingly, the object data of a lower storage priority R is deleted from the object data storage section71, and the object data of a higher storage priority R is stored in the object data storage section71.

The controller100transmits the hash value corresponding to the object data stored in the object data storage section71(i.e., hash value corresponding to the ID number N to which the storage flag F “1” is assigned), to the terminal device2via the network I/F91(step S31). After step S31, the controller100finishes the information updating process. The transmission of the hash value is performed as shown inFIG.7.

In contrast, upon deciding at step S29that there has not been a change in the storage flag F (NO at step S29), the controller100finishes the information updating process, since the object data to be kept in the object data storage section71remains the same.

Now, with the foregoing known technique, the bitmap data representing the entire document has to be stored as it is, in other words a large amount of data has to be stored. Such an operation is unpractical. Besides, the printing operation can only be simplified with respect to the same document.

With the arrangement according to the foregoing embodiment, in contrast, the terminal device2transmits the hash value, smaller in data amount than the object data, to the image forming apparatus1, instead of transmitting the object data as it is, thus to request the image forming apparatus1to execute the printing. Therefore, the transmission efficiency from the terminal device2to the image forming apparatus1can be improved, and the printing speed can be improved.

In addition, unlike the foregoing known technique, the document data is substituted with the hash value, not for the document as a whole, but with respect to each of the objects constituting the document, which are smaller than the entire document. Accordingly, the image forming apparatus1is exempted from storing the data representing the entire document as the hash value. Therefore, in the case of executing the printing on the basis of the data having a reduced data amount owing to the use of the hash value, the data amount necessary for the printing operation can further be reduced, and the storage region can also be saved.

Further, the object data to be stored in the object data storage section71is limited to those of a higher storage priority R, and therefore the storage region can be more efficiently utilized.

The disclosure may be modified in various manners, without limitation to the configuration according to the foregoing embodiments. Although the image forming apparatus in the image forming system according to the disclosure is exemplified by the multifunction peripheral in the foregoing embodiment, the disclosure may be applied to a different type of image forming apparatus, having the copying or printing function.

The configurations and processings according to the foregoing embodiments, described with reference toFIG.1toFIG.10B, are merely exemplary and in no way intended to limit the disclosure to those configurations and processings.