Abstract:
An image forming apparatus modifies received drawing data so as to reduce usage of an image forming agent such as toner or ink, then generates bit-mapped data from the modified drawing data and forms an image from the bit-mapped data. The modification may be made as a gray-scale correction similar to the gray-scale correction normally used to compensate for dot gain. The image forming apparatus analyzes the received data to determine the name of the application program or other processing means that generated the data, and performs the modification only if the data were generated by particular processing means, such as an application program that generates slides for an overhead projector. This scheme enables appropriate modifications to be made, even if the drawing data have already been modified by the processing means, and enables unnecessary modifications to be avoided.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to an image forming apparatus and method.  
         [0003]     2. Description of the Related Art  
         [0004]     Many conventional printers, copiers, facsimile machines, and so on employ an electrophotographic printing apparatus having a photosensitive drum. The surface of the drum is uniformly charged, then exposed to light in accordance with printing data to form a latent electrostatic image. The latent image is developed by application of toner particles, which are then transferred to paper and fused by heat and pressure to form a printed image.  
         [0005]     A problem with this type of image forming apparatus is that printed images with, for example, large solid black areas consume excessive amounts of toner, making the printing process expensive. A similar problem occurs in printing apparatus that ejects drops of ink onto paper: images with large printed areas are expensive to print because they consume much ink. Natural or photographic color images, in which the entire surface of the paper may be covered with various colors of toner or ink, are particularly expensive to print.  
         [0006]     The cost of printing such images can be reduced by decimating the printing data, that is, by selectively masking some of the bits in the final bit-mapped form of the printing data. If the selective masking process is carried out by software, however, considerable processing time is required and the printing speed is slowed accordingly.  
         [0007]     Furthermore, decimation may lead to discontinuities and other unwanted results. Japanese Unexamined Patent Application Publication No. 2000-301768 discloses a hardware method of decimation that avoids the delays of software decimation and also avoids unwanted discontinuities in the printed output.  
         [0008]     To complicate the problem, the image may be formed on overhead projector (OHP) film instead of paper. To sharpen the image projected by the overhead projector, application programs that generate OHP images may process the image data so as to increase the density of, for example, background areas and reduce the density of, for example, text displayed on the background. As a result, different areas require different degrees of decimation, but it is difficult for either hardware or software to distinguish between the different types of areas. If the decimation process is omitted for OHP images, however, dense background areas can make these images very expensive to print.  
         [0009]     More generally, whenever an image is processed in a particular way to improve the quality of the image, the improvement tends to interfere with subsequent decimation processing carried out to reduce the cost of printing the image. If an attempt is made to compensate for the effects of image processing, the decimation process becomes complex and inefficient.  
       SUMMARY OF THE INVENTION  
       [0010]     An object of the present invention is to provide an efficient way to reduce the cost of forming images.  
         [0011]     A more specific object is to provide an efficient way to reduce the cost of forming images generated by particular application programs, such as programs that generate OHP images.  
         [0012]     The invention forms an image from printing data including image drawing data, by the following method. First, image printing data are analyzed to identify the processing means by which the image drawing data were generated. If the image drawing data were generated by particular processing means, the image drawing data are modified to reduce usage of a consumable image forming agent such as toner or ink, and an image is formed according to the modified image drawing data.  
         [0013]     The invention also provides image forming apparatus employing the invented method. The apparatus includes at least a data analyzer, a data modifier, and an image forming unit.  
         [0014]     Because the invented method modifies image drawing data instead of bit-mapped data generated from the image drawing data, the modifications require neither time-consuming software decimation operations, nor extra hardware.  
         [0015]     Because the modification is made only for drawing data generated by particular application programs, unnecessary modifications can be avoided, and appropriate modifications can be carried out on different types of drawing data. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]     In the attached drawings:  
         [0017]      FIG. 1  is a block diagram of a printing control system in a first embodiment of the present invention;  
         [0018]      FIG. 2  illustrates the structure of printing data in the first embodiment;  
         [0019]      FIG. 3  illustrates a gray-scale correction applied during normal printing in the first embodiment;  
         [0020]      FIG. 4  illustrates a gray-scale correction applied during economical printing in the first embodiment;  
         [0021]      FIG. 5  is a flowchart illustrating the operation of the printing control system in the first embodiment;  
         [0022]      FIG. 6  illustrates a control table used in the first embodiment;  
         [0023]      FIG. 7  illustrates the structure of the printing job information command in the first embodiment;  
         [0024]      FIG. 8  illustrates an application determination subroutine used in the first embodiment;  
         [0025]      FIG. 9  illustrates a gray-scale correction subroutine used in the first embodiment;  
         [0026]      FIG. 10  illustrates the relationship between input and output values for a normal gray-scale correction in the first embodiment;  
         [0027]      FIG. 11  illustrates part of an input-output table for the normal gray-scale correction in the first embodiment;  
         [0028]      FIG. 12  illustrates a normal gray-scale correction in the first embodiment;  
         [0029]      FIG. 13  illustrates the relationship between the input and output values for an economical gray-scale correction in the first embodiment;  
         [0030]      FIG. 14  illustrates part of an input-output table for the economical gray-scale correction in the first embodiment;  
         [0031]      FIG. 15  illustrates an economical gray-scale correction in the first embodiment;  
         [0032]      FIG. 16  illustrates an image resulting from normal gray-scale correction in the first embodiment;  
         [0033]      FIG. 17  illustrates an image resulting from economical gray-scale correction in the first embodiment;  
         [0034]      FIG. 18  is a block diagram of a printing control system in a second embodiment of the present invention;  
         [0035]      FIGS. 19A and 19B  illustrate bit-mapped data in the second embodiment;  
         [0036]      FIGS. 20 and 21  constitute a flowchart illustrating the operation of the printing control system in the second embodiment; and  
         [0037]      FIG. 22  shows examples of bit-mapped data in the second embodiment. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0038]     Embodiments of the invention will now be described with reference to the attached drawings, in which like elements are indicated by like reference characters.  
         [0039]     Referring to  FIG. 1 , in a first embodiment of the invention, printing data are generated in a host apparatus  10  such as a computer, sent to a printing apparatus  30 , and printed by the printing apparatus  30 . The host apparatus  10  and printing apparatus  30  constitute a printing control system.  
         [0040]     The host apparatus  10  comprises a program memory  11 , a central processing unit (CPU)  12 , a random access memory  13 , and a transmitting interface  14 . The program memory  11  stores programs that are executed by the CPU  12 . Among the stored programs are at least one application program  11   a  that generates application data, and at least one driver program  11   b  that generates printing data from the application data.  
         [0041]     The printing apparatus  30  comprises a program read-only memory (ROM)  31 , a receiving interface  32 , a CPU  33 , a random access memory  34 , and a printing unit  35 . The printing apparatus  30  operates in two modes: a normal mode and an economical mode or toner-saving mode.  
         [0042]     The program ROM  31  stores control programs that are executed by the CPU  33  to control all of the modules in the printing unit  35  and perform other processing. Among the programs stored in the program ROM  31  are a data analysis program  31   a  that analyzes printing data a command at a time, a data modification program  31   b  that modifies the printing data to reduce the amount of toner consumed, and an identification program  31   c  that identifies the type of application program that generated the printing data. The program ROM  31  also stores data tables, including a table of normal gray-scale correction values  31   d  that are used for gray-scale correction in the normal mode, and a table of economical gray-scale correction values  31   e  used in the economical mode to reduce the amount of toner consumed.  
         [0043]     The receiving interface  32  receives the printing data from the host apparatus  10 . The memory  34  comprises a receiving buffer  34   a  that stores the received printing data and a page buffer  34   b  that stores bit-mapped data generated from the printing data after analysis of the data. The printing unit  35  produces printed output of the image formed according to the bit-mapped data. The printing unit  35  is an electrophotographic color printing unit employing the standard quartet of colors: cyan (C), magenta (M), yellow (Y), and black (K).  
         [0044]     The combination of the data analysis program  31   a , the identification program  31   c , the CPU  33 , and the memory  34  constitutes a data analyzer; the combination of the data modification program  31   b , the tables of gray-scale correction values  31   d ,  31   e , the CPU  33 , and the memory  34  constitutes a data modifier; the combination of the data analysis program  31   a , the CPU  33 , the memory  34 , and the printing unit  35  constitutes an image forming unit.  
         [0045]     Referring to  FIG. 2 , the printing data  40  for a printing job comprise four types of commands: a printing job information command  41  that gives various information about the printing data, text drawing commands  42  that describe text drawing procedures, graphics drawing commands  43  that describe graphics drawing procedures, and natural image drawing commands  43  that describe natural image drawing procedures. The printing job information command  41  is placed at the head of the printing data  40 ; the text drawing commands  42 , graphics drawing commands  43 , and natural image drawing commands  43  may occur in any order after the printing job information command.  
         [0046]     The printing job information command  41  specifies, among other things, the processing means that generated the drawing commands. More specifically, the printing information includes the name of the application program  11   a  that created application data from which the printing data  40  were generated. This program name will be referred to below as the application name.  
         [0047]     Many of the drawing commands  42 ,  43 ,  44  include gray-scale values. In monochrome printing, the gray-scale values specify black, white, and various intermediate levels of gray. In color printing, separate gray-scale values are also specified for each of three primary colors, which can be combined to print a wide gamut of colors. In the present embodiment, the gray-scale values given in the printing data  40  are modified by the data modification program  31   b.    
         [0048]     One reason for modifying the gray-scale values is to compensate for dot gain, which arises from interference between adjacent dots. The interference occurs because while the ideal dot shape of the printing apparatus  30  is square, the actual dot shape is round. As a result, mutually adjacent dots interfere with one another and the gray scale tends to saturate at the high-density end.  
         [0049]     Dot gain and the normal method of compensating for it are illustrated in  FIG. 3 . The horizontal axis indicates the gray level specified in the printing data; this gray level will be referred to as the input value. The vertical axis indicates the gray level perceived in the printed output; this level will be referred to as the output value. The dot gain is the amount by which output value exceeds the input value, generally expressed as a percent ratio. (If the output value is less than the input value, the dot gain is negative, but this does not occur in  FIG. 3 .) Curve L 1  indicates the dot gain resulting from normal printing without compensation; dotted line L 2  indicates the ideal input-output characteristic, which would be obtained if there were no interference between adjacent printed dots; curve L 3  indicates the gray-scale correction applied during normal printing to make the actual output match the ideal output. This gray-scale correction is applied to each color of the CMYK quartet (cyan, magenta, yellow, and black), thereby maintaining tonality from the darkest to the lightest end of the gray scale across the entire gamut of output colors.  
         [0050]     In the present invention, when the printing apparatus operates in the economical mode, a different gray-scale correction is applied to conserve toner. This correction is illustrated in  FIG. 4 . L 1  and L 2  have the same meaning as in  FIG. 3 ; dotted line L 4  indicates the input-output characteristic desired for economical printing; curve L 5  indicates the gray-scale correction applied to obtain the desired characteristic L 4 . As can be seen from a comparison of  FIGS. 3 and 4 , the economical gray-scale correction values are smaller than the normal gray-scale correction values. The output values during economical printing are therefore smaller than the ideal normal printing output values, so the printed colors are lighter and toner is conserved, but a continuous tonality is still maintained for all gray levels and all hues.  
         [0051]     By using the gray-scale correction in  FIG. 4 , the present invention can conserve toner without the need for additional software or hardware modules, and can operate on the printing data  40  one command at a time, color by color. The operation of two versions of the first embodiment will now be described.  
         [0052]     In both versions, first the driver program  11   b  in the host apparatus  10  generates printing data  40  according to application data created by the application program  11   a . The printing data  40  are stored in the random access memory  13 , then read out by the transmitting interface  14  and transferred to the printing apparatus  30 .  
         [0053]     In the printing apparatus  30 , the receiving interface  32  receives the printing data  40  from the host apparatus  10  and stores the data in the receiving buffer  34   a . Then the CPU  33  executes the data analysis program  31   a  to analyze the printing job information command  41  in the printing data  40  stored in the receiving buffer  34   a  and obtain the name of the application program that output the application data from which the printing data  40  were generated.  
         [0054]     Next, the CPU  33  executes the identification program  31   c  to determine how the printing data  40  were generated. More specifically, the identification program  31   c  compares the application name with a list of the names of application programs known to generate images to be displayed by a particular type of output device other than the printing apparatus  30 , e.g., by an overhead projector. These application programs will be referred to below as ‘particular application programs’ or ‘particular applications’, and their names will be referred to as ‘particular application names’.  
         [0055]     In a first version of the first embodiment, if the application name that was obtained from the printing job information command  41  is a particular application name, the CPU  33  executes the data modification program  31   b  to read, modify, and rewrite the printing data  40  stored in the receiving buffer  34   a , operating according to the table of economical gray-scale correction values  31   e , so as to reduce the amount of toner consumed. If the application name that was obtained from the printing job information command  41  is not a particular application name, the data modification program  31   b  is executed using the table of normal gray-scale correction values  31   d  to read, modify, and rewrite the printing data  40  stored in the receiving buffer  34   a ; this modification also reduces the amount of toner consumed, insofar as curve L 3  lies below the dotted line L 2  in  FIG. 3 .  
         [0056]     In a second version of the first embodiment, if the application name that was obtained from the printing job information command  41  is a particular application name, the CPU  33  executes the data modification program  31   b  to read, modify, and rewrite the printing data  40  stored in the receiving buffer  34   a , operating according to either the table of normal gray-scale correction values  31   d  or the table of economical gray-scale correction values  31   e , depending on whether the normal printing mode or the economical printing mode has been selected. If the application name that was obtained from the printing job information command  41  is not a particular application name, the data modification program  31   b  is not executed, and the gray levels in the printing data  40  are used as is, without a gray-scale correction.  
         [0057]     Next, the CPU  33  continues to execute the data analysis program  31   a  to read and analyze the rest of the printing data  40  in the receiving buffer  34   a , generates bit-mapped data, stores the generated bit-mapped data in the page buffer  34   b , and deletes the analyzed printing data  40  from the receiving buffer  34   a . If the printing data  40  in the receiving buffer  34   a  have been modified by the data modification program  31   b , the CPU  33  reads and analyzes the modified printing data.  
         [0058]     After the bit-mapped data for one page have been generated, the CPU  33  executes an image-forming program (not shown in the drawings) to perform printing by reading the bit-mapped data from the page buffer  34   b  and sending the bit-mapped data to the printing unit  35 .  
         [0059]     The above printing procedure is summarized for the second version of the first embodiment in the flowchart in  FIG. 5 .  
         [0060]     In step S 1 , an application program in the host apparatus  10  generates printing data  40 .  
         [0061]     In step S 2 , the printing data  40  are stored in the random access memory  13  in the host apparatus  10 .  
         [0062]     In step S 3 , the transmitting interface  14  transfers the printing data  40  to the printing apparatus  30 .  
         [0063]     In step S 4 , the receiving interface  32  in the printing apparatus  30  receives the printing data  40 .  
         [0064]     In step S 5 , the printing data  40  are stored in the receiving buffer  34   a  in the printing apparatus  30 .  
         [0065]     In step S 6 , the data analysis program  31   a  is executed and the name of the application program that generated the data is obtained.  
         [0066]     In step S 7 , the identification program  31   c  is executed to decide whether the printing data  40  were generated by a particular application.  
         [0067]     If the printing data  40  were generated by a particular application then the printing data  40  are modified in step S 8 , and the modified printing data  40  are written back into the receiving buffer  34   a  in step S 9 .  
         [0068]     In step S 10 , bit-mapped data are generated from the printing data  40  now stored in the receiving buffer  34   a.    
         [0069]     In step S 11 , the bit-mapped data are stored in the page buffer  34   b.    
         [0070]     In step S 12 , the printing data  40  are deleted from the receiving buffer  34   a.    
         [0071]     In step S 13 , the bit-mapped data are sent to the printing unit  35  and the corresponding image is printed.  
         [0072]     Next, the operation of the identification program  31   c  will be described in more detail. Referring to  FIG. 6 , the identification program  31   c  includes a control table of particular application names. This control table, which is stored in the identification program  31   c  in the program ROM  31  is a numbered list of application names (application name 1, application name 2, . . . , application name n, . . . , application name N), which are stored as character strings with corresponding control numbers 1, 2, . . . , n, . . . , N, constituting control data.  
         [0073]      FIG. 7  illustrates the printing job information command  41  in the printing data  40 . The printing job information command  41  includes identifying character strings such as ‘%%’, ‘TITLE’, and ‘END’ for identification, and a character string giving an application name, indicated in the drawing as ‘application name n’.  
         [0074]     When the identification program  31   c  is executed, the CPU  33  reads the particular application names from the control table and compares them one by one with the application name in the printing job information command  41  until a match is found, or until the list of particular application names is exhausted.  
         [0075]     More specifically, a control parameter is initialized to ‘1’ at the beginning of the identification program  31   c . If the control table in the identification program  31   c  includes a particular application name listed with a control number equal to the control parameter value, this particular application name is read and checked against the application name that was read from the printing job information command  41  by comparing their character strings. If they match, the process ends with a decision that the application name in the printing job information command  41  is a particular application name; otherwise, the control parameter value is incremented and the above process is repeated. If at some point the control table does not include any application name listed with a control number equal to the control parameter, the process ends with a decision that the application name in the printing job information command  41  is not a particular application name.  
         [0076]     These operations are executed as a subroutine summarized in the flowchart in  FIG. 8 .  
         [0077]     In step S 21 , the control parameter is initialized to ‘1’.  
         [0078]     In step S 22 , the control parameter value is used as an index to access the control table.  
         [0079]     In step S 23 , whether the control table includes a particular application name listed with a control number equal to the control parameter value is determined. If it does, the process proceeds to step S 24 ; otherwise, the process ends without returning a particular application name.  
         [0080]     In step S 24 , the particular application name found in the control table is compared with the application name that was read from the printing job information command  41 .  
         [0081]     In step S 25 , whether the two application names match is determined. If they do, the process ends and returns the particular application name found in the control table. Otherwise, the process proceeds to step S 26 .  
         [0082]     In step S 26 , the control parameter is incremented and the process returns to step S 22 .  
         [0083]     As noted above, the gray-scale correction is carried out on printing data a command at a time. To facilitate execution of the data modification program  31   b , however, the gray-scale correction values may be read from the program ROM  31  into the memory  34 . The table of normal gray-scale correction values  31   d  is read at the beginning of a normal printing job; the table of economical gray-scale correction values  31   e  is read at the beginning of an economical printing job. As the job is executed, the data modification program  31   b  replaces the gray-scale values in each drawing command in the printing data  40  with corresponding values in the table read from the program ROM  31 .  
         [0084]     The operation of the data modification program  31   b  for one command is shown in subroutine form in the flowchart in  FIG. 9 .  
         [0085]     In step S 31 , the relevant table of gray-scale correction values is obtained from the program ROM  31  and copied into the random access memory  34 . As noted above, this step is executed at the beginning of a printing job; normally, it is executed only for the first printing command in the printing job. It is also possible to set a pointer in the random access memory  34 , pointing to the table in the program memory  31 , instead of copying the entire table into the memory  34 .  
         [0086]     In step S 32 , an input gray-scale value is obtained from the command in the printing data  40 .  
         [0087]     In step S 33 , the output gray-scale value corresponding to the input gray-scale value is obtained from the table, and the input gray-scale value is replaced with the output gray-scale value in the command.  
         [0088]     In step S 34 , a decision is made as to whether all gray-scale values in the command have been modified in this way. If they have, the process ends; otherwise, the process returns to step S 32  to modify the next gray-scale value in the command.  
         [0089]     Next, the normal gray-scale correction will be described in more detail. For the normal gray-scale correction, output values are determined corresponding to input values according to the curve shown in  FIG. 10 . The input values (horizontal axis) and output values (vertical axis) are stored in the table of normal gray-scale correction values  31   d  in the program ROM  31  in the form schematically shown in  FIG. 11 . In the input/output table, the items in the first column are input values expressed in percent, and the items in the second column are output values (also expressed in percent) corresponding to the input values. Input value 70% corresponds to output value 60%, for example.  
         [0090]      FIG. 12  shows a sample image generated in the host apparatus  10  in the red-green-blue (RGB) format with gray-scale values of 10% (red), 10% (green), and 20% (blue). The RGB image is converted to a cyan-magenta-yellow-black (CMYK) image with gray-scale values of 70% (cyan), 70% (magenta), 60% (yellow), and 20% (black) by the data analysis program  31   a . The data modification program  31   b  operates on these CMYK values (70%, 70%, 60%, and 20%) as input values and converts them to the corresponding output values (60%, 60%, 45%, and 10%) to compensate for dot gain.  
         [0091]     Next, an example of the economical gray-scale correction will be described. This example reduces toner consumption by 40%.  
         [0092]     For the economical gray-scale correction, output values are determined corresponding to input values as shown in  FIG. 13 , in which the horizontal axis indicates input values and the vertical axis indicates output values. These values are stored in the table of economical gray-scale correction values  31   e  in the program ROM  31  in the form shown schematically in  FIG. 14 . The items in the first column are input values expressed in percent; the items in the second column are the corresponding output values, also expressed in percent. Input value 70% corresponds to output value 35%, for example.  
         [0093]     Referring to  FIG. 15 , the same RGB sample image as in  FIG. 12 , with gray-scale values of 10% (red), 10% (green), and 20% (blue), is converted by the data analysis program to a CMYK image with gray-scale values of 70% (cyan), 70% (magenta), 60% (yellow), and 20% (black). The converted values (70%, 70%, 60%, and 20%) are input to the data modification program as input gray-scale values, converted to the corresponding output values (35%, 35%, 25%, and 5%) and output, whereby the dot gain is reduced and the image density is also reduced.  
         [0094]     Next, referring to  FIGS. 16 and 17 , exemplary results of printing with the normal gray-scale correction and the economical printing gray-scale correction will be described. In these examples, image density is reduced by separate adjustment of the density of text, the background area AR 1 , and drawing areas AR 2  and AR 3 . The density of each toner color is also adjusted separately, to reduce the amount of toner consumed.  
         [0095]     The normal gray-scale correction, shown in  FIG. 16 , produces CMYK output values of 0% (cyan), 0% (magenta), 100% (yellow), and 10% (black) for text; output values of 60% (cyan), 60% (magenta), 45% (yellow), and 10% (black) for the background area AR 1 ; output values of 0% (cyan), 100% (magenta), 100% (yellow), and 0% (black) for drawing area AR 2 ; and output values of 100% (cyan), 100% (magenta), 0% (yellow), and 0% (black) for drawing area AR 3 . The economical gray-scale correction, shown in  FIG. 17 , produces CMYK output values 0% (cyan), 0% (magenta), 60% (yellow), and 0% (black) may for text; output values of 35% (cyan), 35% (magenta), 25% (yellow), and 5% (black) for the background area AR 1 ; output values of 0% (cyan), 60% (magenta), 60% (yellow), and 0% (black) for drawing area AR 2 ; and output values of 60% (cyan), 60% (magenta), 0% (yellow), and 0% (black) for drawing area AR 3 . For each color in each area, the economical output values are at least 40% less than the normal output values.  
         [0096]     As described above, this embodiment modifies the printing data  40  to reduce the gray scale values, uses the normal gray-scale correction values  31   d  for normal printing, and switches to the economical gray-scale correction values  31   e  for economical printing, thereby reducing consumption of each color of toner.  
         [0097]     In the first version of the first embodiment, the economical gray-scale correction values are used to compensate for the known tendency of particular application programs to generate large high-density image areas, the normal gray-scale correction being applied to printing data created by other application programs.  
         [0098]     In the second version of the first embodiment, the gray-scale correction is carried out only in printing jobs generated by these particular application programs. Skipping the gray-scale correction for other printing jobs improves the efficiency and printing speed of the printing apparatus  30 .  
         [0099]     In both versions, the economical gray-scale correction values are applied only to printing data generated by the particular application programs.  
         [0100]     Other versions of the first embodiment are also possible. For example, different degrees of economical printing may be selectable.  
         [0101]     A second embodiment of the invention will be described below.  
         [0102]     Referring to  FIG. 18 , in addition to a data analysis program  31   a , a data modification program  31   b , an identification program  31   c , a table of normal gray-scale correction values  31   d , and a table of economical gray-scale correction values  31   e , the program ROM  31  in the second embodiment stores a data quantity assessment program  31   f  that determines the amount of image data in bit-mapped data.  
         [0103]     The amount of image data in bit-mapped data is the number of bits that specify printed dots. Referring to  FIGS. 19A and 19B , bit-mapped data comprise bits with values of one (1) and zero (0), which are generated from the data resulting from the analysis of the printing data  40 . The amount of image data in the bit-mapped data is the number of bits with values of one (1). For example, the amount of image data in the bit-mapped data shown in  FIG. 19B  is six, corresponding to the six dots in the image in  FIG. 19A .  
         [0104]     The printing apparatus  30  forms dots from the ‘1’ bits in bit-mapped data, and thereby consumes toner (the recording agent). The amount of toner consumed increases in proportion to the amount of image data in the bit-mapped data.  
         [0105]     The operation of the printing control system in the second embodiment will be described with reference to the flowchart in  FIGS. 20 and 21 .  
         [0106]     In the host apparatus  10 , the driver program  11   b  generates the printing data  40  according to application data created by the application program  11   a . The printing data  40  are stored in the random access memory  13 , read from the random access memory  13  by the transmitting interface  14 , and then transferred to the printing apparatus  30 .  
         [0107]     In the printing apparatus  30 , the receiving interface  32  stores the printing data  40  received from the host apparatus  10  in the receiving buffer  34   a . The CPU  33  analyzes the printing job information command  41  of the printing data  40  in the receiving buffer  34   a  by executing the data analysis program  31   a  and obtains the name of the application program that generated the printing data  40 .  
         [0108]     Next, the CPU  33  uses the identification program  31   c  to determine whether the application name obtained from the printing job information command  41  is a particular application name, thereby determining whether the application is a particular application or not. As in the first embodiment, a particular application is an application that generates printing data  40  intended for output by a device other than the printing apparatus  30 , such as an overhead projector.  
         [0109]     If the application name obtained from the printing job information command  41  is a particular application name, the data analysis program reads the printing data  40  from the receiving buffer  34   a , analyzes the drawing commands, generates bit-mapped data, and stores the bit-mapped data in the page buffer  34   b . Then the CPU  33  executes the data quantity assessment program  31   f  to obtain the amount of image data in the bit-mapped data stored in the page buffer  34   b , and decides whether the amount of image data is larger than a predetermined threshold.  
         [0110]     If the amount of image data in the bit-mapped data is larger than the predetermined threshold, the CPU  33  deletes the bit-mapped data from the page buffer  34   b , and executes the data modification program  31   b  to modify the printing data  40  in the receiving buffer  34   a  so as to reduce the amount of toner consumed. Next, the CPU  33  reads the modified printing data  40  from the receiving buffer  34   a , analyzes it, generates corresponding bit-mapped data, stores the bit-mapped data in the page buffer  34   b , and deletes the modified printing data  40  from the receiving buffer  34   a . The CPU  33  then reads the bit-mapped data from the page buffer  34   b  and transfers the bit-mapped data to the printing unit  35 , by which printing is performed.  
         [0111]     If the application name obtained from the printing job information command  41  is not a particular application name, the data analysis program  31   a  generates bit-mapped data from the original printing data  40 , stores the bit-mapped data in the page buffer  34   b , and deletes the original printing data  40  from the receiving buffer  34   a . The CPU  33  then transfers the bit-mapped data from the page buffer  34   b  to the printing unit  35  to be printed.  
         [0112]     The predetermined threshold may be any value up to the amount of image data in all ‘1’ bit-mapped data, which produces solid printing of all four of the CMYK colors (cyan, magenta, yellow, and black).  
         [0113]     The operations of the printing control system in the second embodiment are summarized in the flowchart shown in  FIGS. 20 and 21 .  
         [0114]     In step S 41 , an application program in the host apparatus  10  generates printing data  40 .  
         [0115]     In step S 42 , the printing data  40  are stored in the random access memory  13 .  
         [0116]     In step S 43 , the transmitting interface  14  transfers the printing data  40  to the printing apparatus  30 .  
         [0117]     In step S 44 , the receiving interface  32  in the printing apparatus  30  receives the printing data  40 .  
         [0118]     In step S 45 , the printing data  40  are stored in the receiving buffer  34   a.    
         [0119]     In step S 46 , the name of the application program that generated the printing data  40  is obtained from the printing job information command  41 .  
         [0120]     In step S 47 , this application name is compared with the particular application names listed in the identification program  31   c  to decide whether the printing data  40  were generated by one of the particular application programs. If so, the process proceeds to step S 48 ; otherwise, the process proceeds to step S 55  in  FIG. 21 .  
         [0121]     In step S 48 , bit-mapped data are generated from the b 20 .  
         [0122]     In step S 49 , the bit-mapped data are stored in the page buffer  34   b.    
         [0123]     In step S 50 , the data quantity assessment program  31   f  is executed to obtain the amount of image data in the bit-mapped data.  
         [0124]     In step S 51  in  FIG. 21 , whether the amount of image data in the bit-mapped data exceeds the predetermined threshold value is determined. If it does, the process proceeds to step S 52 ; otherwise, the process proceeds to step S 57 .  
         [0125]     In step S 52 , the bit-mapped data are deleted from the receiving buffer  34   a.    
         [0126]     In step S 53 , the data modification program  31   b  is executed to modify the printing data  40 .  
         [0127]     In step S 54 , the printing data  40  in the receiving buffer  34   a  are replaced with the modified printing data.  
         [0128]     In step S 55 , new bit-mapped data are generated from the modified printing data.  
         [0129]     In step S 56 , the new bit-mapped data are stored in the page buffer  34   b.    
         [0130]     In step S 57 , the printing data are deleted from the receiving buffer  34   a.    
         [0131]     In step S 58 , the bit-mapped data stored in the page buffer  34   b  are transferred to the printing unit  35  and printing is performed.  
         [0132]     Next, the operation of comparing the amount of image data in bit-mapped data with the predetermined threshold will be described with reference to  FIG. 22 .  
         [0133]     In this embodiment, as in the first embodiment, the printing apparatus  30  ( FIG. 18 ) outputs four-color (CMYK) images. For simplicity, a hypothetical page having five rows and four columns of dots with the bit-mapped cyan data, the bit-mapped magenta data, the bit-mapped yellow data, and the bit-mapped black data shown in  FIG. 22  will be discussed. The amount of image data is twenty in the cyan and magenta bit maps and eight in the yellow and black bit maps; the total amount of image data in the printed output is therefore fifty-six. The maximum possible amount of image data, which occurs when all bits in all of the bit maps are ‘1’, is eighty. If the threshold value is forty, then the amount of image data (56) exceeds the threshold value, and a gray-scale correction is applied to reduce the amount of toner consumed.  
         [0134]     As described above, since this embodiment reduces gray-scale values only when the application is a particular application and the amount of image data exceeds a predetermined threshold value, the gray-scale correction is not applied unnecessarily. If an OHP printing job includes many pages of sparse black text on a white background and just a few pages with full-color natural images or a solid background, for example, the gray-scale correction can be confined to the full-color pages; other pages can be printed without performing a gray-scale correction, making the printing process more efficient and improving the printing speed.  
         [0135]     In a variation of the second embodiment, the economical gray-scale correction is applied when the printing data were generated by a particular application program and the amount of image data exceeds the predetermined threshold, and the normal gray-scale correction is applied in other cases.  
         [0136]     Although the embodiments described above store the programs that identify the application program, assess the amount of image data on each page, and execute the gray-scale correction in the program ROM  31  and has these programs executed by the CPU  33  in the printing apparatus  30 , these programs may also be stored in the host apparatus  10  and executed by its CPU  12 , or stored in and executed by another computer not shown in the drawings.  
         [0137]     Although the second embodiment determines the need for modification of the printing data  40  from the amount of image data in the bit-mapped data, it is also possible to make this decision by calculating the amount of image data from the printing data  40 .  
         [0138]     Those skilled in the art will recognize that further variations are possible within the scope of the invention, which is defined in the appended claims.