Print control apparatus, print control method, information processing apparatus, information processing method, and storage medium storing control program

Abstract: A print control apparatus for causing a printer unit to print data input from an information processing apparatus includes an analysis unit and a control unit. The analysis unit analyzes test data on the basis of print setting information. The control unit stores the analysis result obtained by the analysis unit in a memory. A print control method, a storage medium, an information processing apparatus, and an information processing method are also disclosed.

Description: BACKGROUND OF THE INVENTION Field of the Invention The present invention relates to a print control apparatus for causing a printer unit to print data input from an information processing apparatus, a print control method, and a storage medium storing control programs used in the print control apparatus. The present invention also relates to an information processing apparatus for outputting data to a plurality of print control apparatuses via a network, an information processing method, and a storage medium storing control programs used in the information processing apparatus. Related Background Art As conventional printers, an image printer, a page printer, and the like are known. The image printer receives image data from an external unit such as a host computer and performs a print operation. The page printer receives print data written in a page-description language or the like, and performs a print operation after rasterizing (rendering) the data into a bit image on the basis of the language data. Print settings in printers of this type vary depending on the features and characteristics of the printers. A user performs setting for each print data as needed. In a conventional printer, it is difficult for the user to find an optimal setting for a particular document to be printed, and hence it takes time to perform an operation for the setting. When a plurality of printers are set in a network, in particular, the user cannot determine which printer is the optimal one to print a particular document. Such a problem is associated with control done by a host computer, and the performance of each printer cannot be known unless a print operation is actually performed. In addition, when print data are to be distributed and printed, optimal distributed print processing of the print data cannot often be performed. European Patent Specification no. EP-A-0575169 discloses an information processing apparatus which has an acquiring unit for acquiring resource information from a printer so as to determine a ratio between rasterization by the apparatus and the printer. The present invention has been made to solve the above problems, and has as a concern to automatically set an optimal print environment for print data in a print control apparatus without making the user recognize it. It is another concern of the present invention to automatically select an optimal print control apparatus for print data without making the user recognize it. According to an aspect of the present invention, there is provided an information processing apparatus as set out in claim 1. According to a further aspect of the present invention, there is provided a print control apparatus as set out in claim 9. According to a further aspect of the present invention, there is provided an information processing system as set out in claim 16. According to another aspect of the present invention, there is provided a print control method as set out in claim 17. According to a further aspect of the present invention, there is provided a storage medium as set out in claim 32. According to a further aspect of the present invention, there is provided an electrical signal as set out in claim 33. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram for explaining the arrangement of a printer system according to the first embodiment of the present invention; Fig. 2 is a flow chart showing a control program for print processing in the printer in Fig. 1; Fig. 3 is a flow chart showing a control program for optimization setting processing in the printer in Fig. 1; Fig. 4 is a block diagram showing the arrangement of a print system according to the second embodiment of the present invention; Fig. 5 is a flow chart showing a control program for printer switching processing in a host computer in Fig. 4; Fig. 6 is a flow chart showing a control program for printer selection processing in the host computer connected to a network in Fig. 4; Fig. 7 is a flow chart showing a control program for printer selection processing in the host computer connected to the network in Fig. 4; Fig. 8 is a view showing an example of the memory map of a storage medium used in the printer; and Fig. 9 is a view showing an example of the memory map of a storage medium used in the host computer. Preferred embodiments of the present invention will be described in detail below by way of example and with reference to the accompanying drawings. [First Embodiment] Fig. 1 is a block diagram for explaining the arrangement of a printer system according to a first embodiment of the present invention. The printer system is constituted by a printer 120 (403, 406) and a host computer 100 (401, 404). Referring to Fig. 1, the host computer 100 (401, 404) supplies print data (PDL) or the like to the printer 120 (403, 406). Bidirectional interface units 110 and 121 control data transfer between the printer 120 and the host computer 100. A CPU 104 controls components connected to a bus 111 on the basis of a data processing program, a print control program (print driver), and the like (shown in the flow charts of Figs. 5 to 7 (to be described later)) stored in a ROM 106, a RAM 105 and the like. A keyboard controller 107 processes keyboard input data from a keyboard (not shown). A display controller 108 controls a display operation of a display (not shown). A memory controller 109 controls memory access to a hard disk (HD), an extended RAM, and the like (none of which are shown). In the printer 120 (403, 406), a CPU 126 performs various control operations in accordance with control programs and data stored in a ROM 128 via a bus 132 and indicated by the flow charts of Figs. 2 and 3 to be described later, thereby controlling the overall operation of the printer 120 (403, 406). In addition, in the various control operations, the CPU 126 stores data and the like in a RAM 127. A printer unit (printer engine) 131 prints an image on a recording medium by using a laser printer. An operation panel 122 is used to set print setting items and the like. A memory controller 129 controls access to an extended memory 130 (flash memory or the like). An engine interface 123 transfers image data such as a bit map developed in the RAM 127 to the printer engine 131. Note that the RAM 127 is used as a reception buffer area for storing PDL data or the like received from the host computer 100, an intermediate buffer area for storing intermediate data obtained by converting PDL data, an image buffer area for storing image data obtained by converting intermediate data, and the like. Fig. 2 is a flow chart showing a control program in the printer 120 in Fig. 1. This program is stored in the ROM 128 and executed by the CPU 126. Note that "(1)" to "(7)" in Fig. 2 indicate steps. Assume that when a print environment for determining print processing conditions is set by a user through the operation unit or in accordance with a command from the host computer, the print environment is stored and managed as a set file in the extended memory 130. The host computer 100 causes the printer 120 to process a test sample without outputting a paper discharge control command. Information such as specification data, print setting items, or performance data (to be described later) is transferred to the host computer 100 via the bidirectional interface units 110 and 121. When print data is received from the host computer 100 via a printer driver, test processing is started. First of all, it is checked in step (1) whether printer profile data has been stored in the extended memory 130. If YES in step (1), the test is completed. If NO in step (1), the flow advances to step (2) to load a test file (or test files) from the ROM 106 or the like. In this case, a test file (test data) includes test data consisting of only text data, test data consisting of only image data, and test data consisting of both text data and image data. In addition, a test file includes complicated test data which demands much time for rasterization, and test data which does not demand much time for rasterization. In step (3), the printer is placed in an initial setting state. In step (4), only analysis of the file loaded in step (2) is executed without outputting the file to the printer engine 131 to generate profile data (to be described later), and the generated profile data is transferred to the host computer 100. In step (5), the profile data is stored in the extended memory 130. In addition, in step (4), the time required to analyze the test data to rasterize it is obtained by looking up a table in the ROM 128 in which the rasterize time required for each drawing command in the test data is stored. In step (6), it is checked whether setting other than the initial setting has been performed. If YES in step (6), the processing in steps (3) to (5) is executed for every print setting. More specifically, profile data for color mode 8-bit setting, profile data for color mode 24-bit setting, profile data for high-quality (600 dpi) mode setting, or profile data for low-quality (300 dpi) mode setting is generated. If NO in step (6), it is checked in step (7) whether testing of all test files is completed. If NO in step (7), the processing in steps (2) to (6) is performed for all the test files. In this case, it suffices if each test file contains a predetermined unit data amount such as one or a plurality of pages. In this embodiment, for example, profile data includes the following items. Profile data includes the type of printed matter data (print data), specification data, print setting items, performance data obtained by the above test processing, and the like. For example, the specification data includes a bit map data amount "memory size (xxxx bytes - xxx bytes <xxxx bytes < xxxx bytes + xxx bytes), bit map data count (xxx data - xx data <xxx data < xxx data + xx data)" and a character string size "character count (xxx characters - xx characters < xxx characters < xxx characters + xx characters), memory size (xxxx bytes - xxx bytes < xxxx bytes < xxxx bytes + xxx bytes), font type count (xxx types - xx types < xxx types < xxx types + xx types), logic drawing instruction count (xxx instructions - xx instructions < xxx instructions < xxx instructions + xx instructions), file size (xxxx bytes - xxx bytes < xxxx bytes < xxxx bytes + xxx bytes)". The print setting items include, for example, color mode 8-bit/24-bit setting, font replacement ON/OFF, bit map mode ON/OFF, low-resolution mode ON/OFF, and high-quality mode ON/OFF (dither processing or the like). Also, the performance data includes, for example, a rasterize (rendering) time, a paper discharge time in the printer engine, and the time required to release the host computer. Note that the paper discharge time is a fixed value in each printer engine, and this data is stored in the ROM 128 in advance. Fig. 3 is a flow chart showing a control program for an optimization setting procedure in the printer 120 in Fig. 1. This program is stored in the ROM 128 and executed under the control of the CPU 126. Note that "(1)" to "(7)" in Fig. 3 indicate steps. First of all, it is checked in step (1) whether printer profile data is stored in, e.g., the extended memory 130. If NO in step (1), test processing is performed in step (7) on the basis of test data from the host computer 100 in accordance with the procedure shown in Fig. 2 to generate profile data. If YES in step (1), the profile data is loaded from the extended memory 130 in step (2). In step (3), for example, one-page data of print data received from the host computer is compared with corresponding specification data of the profile data. In step (4), it is checked whether comparison of all specification data is completed. If NO in step (4), the flow returns to step (3). If YES in step (4), it is checked in step (5) whether comparison of all profile data is completed. If NO in step (5), the flow returns to step (2). If YES in step (5), the same print setting items as those in the profile data including the matched specification data are set in the printer in step (6), and the processing is completed. With this processing, optimal print setting items for print data can be automatically set without making the user recognize it. [Second Embodiment] The second embodiment of the present invention will be described next. Fig. 4 is a block diagram for explaining the arrangement of a print system according to the second embodiment of the present invention. In this print system, a printer 402 is connected to a host computer 401 in a network 400. The system further includes a computer 404 connected to a plurality of network printers, e.g., printers 403 and 406, via the network 400, a database 405, and the like. The correspondence between the means of this embodiment and the means of the second and third aspects of the present invention and their functions will be described below with reference to, e.g., Figs. 4 and 1. Note that each of the printers 402, 403, and 406 has the same communication function as that of the printer 120 in Fig. 1, and each of the host computers 401 and 404 has the same communication function as that of the host computer 100 in Fig. 1. Fig. 5 is a flow chart showing a control program for printer switching processing in the print system in Fig. 4. The control program for executing this processing is executed under the control of a CPU (the CPU 104 in Fig. 1) in the host computer 401. Note that "(1)" to "(7)" in Fig. 5 indicate steps. For example, this control program is stored in the ROM 106 in Fig. 1 in advance. Information for each printer is ensured while the load on the host computer is small. In step (2), print data is compared with the test data loaded from the ROM 106 in step (1) to extract test data similar to the print data, thereby performing classification. In step (3), it is checked whether all test data are completed. If NO in step (3), the flow returns to step (1). If YES in step (3), the host computer 401 checks in step (4) whether profile data as the test result obtained in the first embodiment is stored in all the printers 403 and 406 in the network 400. If it is determined that there is a printer in which profile data is not stored, test processing similar to the one in the first embodiment is performed in step (6). In step (7), the profile data is retained in the extended memory 130 and stored in the RAM 105. The flow then advances to step (8) and the subsequent steps. If it is determined in step (4) that the profile data is stored in the printers, the profile data is up-loaded into the RAM 105 in step (5). In step (8), the specification data of each of the profile data obtained in steps (5) and (7) is compared with the test data obtained in step (2). In step (9), it is checked whether checking of the profile data for all the printers is completed. If NO in step (9), the flow returns to step (4). If YES in step (9), a printer having the best performance data among profile data having specification data matching the test data obtained in step (2) is selected, and a print operation is executed in step (10). [Third Embodiment] The third embodiment of the present invention will be described next. The third embodiment has the same arrangement as that of the second embodiment in Fig. 4. Figs. 6 and 7 are flow charts showing a control program for printer selection processing performed by a computer 404 connected to the network shown in Fig. 4. This control program is stored in, e.g., a ROM 106 and is executed by a CPU 104. Note that "(1)" to "(13)" in Figs. 6 and 7 indicate steps. First of all, it is checked in step (1) whether the profile data for each printer, which has been analyzed by the test processing in the first embodiment of the present invention, is stored in a RAM 105 of the computer 404. If NO in step (1), all the printers in the network are searched to check whether the profile data for all the printers are stored in the computer 404 in step (2). If YES in step (2), the profile data are up-loaded via the network in step (3). In step (5), the obtained profile data are stored in the internal memory (e.g., the RAM 105) of the computer 404. If it is determined step (2) that no profile data is present in the network, test processing is performed in the same manner as in the first embodiment in step (4) to generate profile data and store it in an extended memory 130. In addition, the profile data is up-loaded and stored in the internal memory (e.g., the RAM 105) of the computer 404 in step (5). It is then checked in step (6) whether the same processing has been performed for all the printers. If NO in step (6), the flow returns to step (1) to perform the processing in steps (1) to (5) for all the printers, thereby preparing profile data for all the printers in the network. In step (7), test data is loaded from the ROM 106. In step (8), matching between print data corresponding to the first page and the test data is performed to select test data which is most similar to the print data. In step (9), profile data having specification data matching the test data selected in step (8) are selected, and one of the selected profile data which has the best performance data is determined, thereby selecting a printer having the determined profile data. In step (10), it is checked whether collation for all the printers is completed. If NO in step (10), the flow returns to step (9). If YES in step (10), print setting items for the profile data are set in the selected printer for the page. In step (12), it is checked whether collation is completed for each page of print data. If NO in step (12), the flow advances to step (13) to load the data of the next page. The processing in steps (8) to (12) is then repeated. If YES in step (12), the processing is completed. With this processing, an optimal printer for the print data of each page is selected, and optimal print setting items can be automatically set in each printer. Therefore, print data can be distributed and processed by optimal printers in units of pages. A storage medium like the ROM 128 used in the print control apparatus of this embodiment will be described next with reference to the memory map in Fig. 8. A storage medium is used to store control programs for analyzing test data on the basis of print setting information, and storing the analysis result in a memory. As shown in Fig. 8, it suffices if such a storage medium stores at least the program codes of an "analysis module" and a "control module". In this case, the "analysis module" indicates a program code for analyzing test data on the basis of print setting information. The "control module" indicates a program code for storing the analysis result obtained by the analysis module in the memory. A storage medium such as the ROM 106 used in the information processing apparatus of this embodiment will be described next with reference to the memory map of Fig. 9. A storage medium is used to store control programs for obtaining analysis results of test data from a plurality of print control apparatuses, comparing each analysis result with data to be output, and selecting one of the print control apparatuses which is the optimal apparatus for printing the data to be output. As shown in Fig. 9, it suffices if such a storage medium stores at least the program codes of an "obtainment module" and a "control module". In this case, the "obtainment module" is a program code for obtaining test data analysis results from a plurality of print control apparatuses via the network. The "control module" is a program code for comparing each analysis result obtained by the obtainment module with the data to be output, and selecting one of a plurality of print control apparatuses which is the optimal apparatus for printing the data to be output. As storage media, in addition to the ROM 128 and the ROM 106 in this embodiment, a floppy disk, an optical disk, a magnetooptic disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, and the like which are detachably loaded in a print control apparatus and an information processing apparatus can be used.

Claims: An information processing apparatus for communicating with a plurality of print control apparatuses and comprising output means (110) for outputting output data to the print control apparatuses via a network, characterised by obtainment means (104: Fig. 2. S4) for obtaining, from each of the plurality of print control apparatuses, profile data generated by executing analysis on preceding data, the profile data including print setting information; and control means (104: Fig. 5, S10) for selecting one of the plurality of print control apparatuses as an optimal print control apparatus for printing the output data on the basis of the profile data obtained by said obtainment means and the output data. Apparatus according to claim 1, wherein the preceding data comprises test data. Apparatus according to claim 2, said control means are adapted to select a print control apparatus on the basis of profile data which includes performance data which has been obtained by analyzing the test data. Apparatus according to claim 3, wherein the performance data includes rasterize times obtained by analyzing the test data in the plurality of print control apparatuses. Apparatus according to claim 3 or claim 4, wherein the performance data includes a count of drawing instructions in the test data. Apparatus according to any preceding claim, wherein said control means is adapted to compare each analysis result obtained by said obtainment means with the data to be output in units of pages. Apparatus according to any preceding claim, wherein said control means is adapted to set a print environment for the selected print control apparatus on the basis of the print setting information included in the analysis result. Apparatus according to any preceding claim, wherein said control means is adapted to compare the test data with the data to be output and to compare matched test data with each analysis result obtained by said obtainment means, when selecting the optimal print control apparatus. A print control apparatus for causing a printer unit to print data input from an information processing apparatus as claimed in any one of claims 1 to 8, and characterised by : control means (126, 128) for analysing data received from said information processing apparatus on the basis of print setting information which sets the operational mode of the printer unit; said control means being adapted to store the analysis result obtained by said analysis means in a memory (130). A print control apparatus according to claim 9, wherein said control means is adapted to respond to the test data in such a manner that no paper discharge instruction is sent to an associated printer unit. A print control apparatus according to claim 9 or claim 10, wherein said control means is adapted to analyse the test data to generate the time required by the control means to rasterise the test data. A print control apparatus according to any one of claims 9 to 11, wherein the control means is adapted to generate a count of any logic drawing instructions in the test data. A print control apparatus according to any one of claims 9 to 12, wherein the apparatus stores a plurality of sets of print setting information and said control means is adapted to analyse the test data for each set of print setting information. A print control apparatus according to any one of claims 9 to 13, wherein the print setting information comprises information for setting the printer unit into respective high or low quality modes. A print control apparatus according to any one of claims 9 to 14, wherein said control means is adapted to compare the analysis result with data to be printed input from said information processing apparatus, and to set print setting information in accordance with the result of this comparison. An information processing system comprising information processing apparatus according to any one of claims 1 to 8 in combination with a print control apparatus according to any one of claims 9 to 15. A method of controlling an information processing apparatus which communicates with a plurality of print control apparatuses, comprising: outputting output data to the print control apparatuses via a network, and characterised by obtaining, from each of the plurality of print control apparatuses, profile data generated by executing analysis on preceding data, the profile data including print setting information; and utilising control means to select one of the plurality of print control apparatuses as an optimal print control apparatus for printing the output data on the basis of the profile data obtained by said obtainment means and the output data. A method according to claim 17, wherein the preceding data comprises test data. A method according to claim 18, said control means select a print control apparatus on the basis of profile data which includes performance data which has been obtained by analyzing the test data. A method according to claim 19, wherein the performance data includes rasterize times obtained by analyzing the test data in the plurality of print control apparatuses. A method according to claim 19 or claim 20, wherein the performance data includes a count of drawing instructions in the test data. A method according to any one of claims 17 to 21, wherein said control means compares each analysis result obtained by said obtainment means with the data to be output in units of pages. A method according to any one of claims 17 to 22, wherein said control means sets a print environment for the selected print control apparatus on the basis of the print setting information included in the analysis result. A method according to any one of claims 17 to 23, wherein said control means compares the test data with the data to be output and to compare matched test data with each analysis result obtained by said obtainment means, when selecting the optimal print control apparatus. A method according to any one of claims 17 to 24, wherein each printer unit analyses data received from said information processing apparatus on the basis of print setting information which sets the operational mode of the printer unit, and stores the analysis result obtained by said analysis means in a memory (130). A method according to claim 25, wherein no paper discharge instruction is sent to an associated printer unit during analysis. A method according to claim 25 or claim 26, wherein the test data is analysed to generate the time required to rasterise the test data. A method according to any one of claims 25 to 27, wherein each printer unit generates a count of any logic drawing instructions in the test data. A method according to any one of claims 25 to 28, wherein each printer unit stores a plurality of sets of print setting information and analyses the test data for each set of print setting information. A method according to any one of claims 25 to 29, wherein the print setting information comprises information for setting the printer unit into respective high or low quality modes. A method according to any one of claims 25 to 30, wherein each printer unit compares the analysis result with data to be printed input from said information processing apparatus, and sets print setting information in accordance with the result of this comparison. A storage medium storing processor implementable instructions for controlling a processor to carry out the method of any one of claims 17 to 31. An electrical signal carrying processor implementable instructions for controlling a processor to carry out the method of any one of claims 17 to 31.

Inventors: KISHIDA AKIRA, KISHIDA, AKIRA, Kishida, Akira, c/o Canon K.K.
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1996
Main classification: G06F3
IPC codes: G06F3, B41J29