Output apparatus

Abstract: There is provided an output apparatus for receiving code information and developing into a bit map and recording, comprising: a dcveloping circuit to develop the code information into image information of a bit pattern form; a recording device which can record the image information onto a recording medium and can record an image which is formed onto the recording medium while changing a dot density of the image; and a changing device to change the dot density of the recording means in correspondence to the code system designated by the code information. The printing dot density is automatically changed to the dot density corresponding to the print control program such as an emulation program or the like, so that the characters of different fonts such as English and Japanese can be automatically printed at the optimum printing dot densities.

Description: The present invention relates to printing apparatus. There are various application programs used by printers. In these programs, a special printer control code is generated through a host computer and the printing is executed by the printing apparatus. In such a printing apparatus, the printing by other control codes is realized by a control program, that is, an emulation program which enables the printing apparatus to print using a control code which is different from the inherent printer control code. Generally, since the emulation program is formed in correspondence with the recording dot density which is peculiar to the printing apparatus, the sizes or positions of output images differ from desired size or position in the application program depending on the difference of the recording dot densities of the printing apparatuses, so that there is a problem such that the normal printing cannot be executed. The Deskjet Professional Printer Owner's Manual, Hewlett Packard, Edition 4.1 May 1988 disclosed a printer which on command can provide different quality outputs and can use a variety of different fonts. European Patent Specification No. 0,198,255 discloses a dot printer which determines whether data stored in a buffer is high density data or not and controls printing of the data in accordance with the result of this determination. German Specification DE-A-2,625,432 discloses an ink jet printer in which a plurality of storage means containing different fonts can be scanned to obtain the required font. In accordance with one aspect of the present invention there is provided an output apparatus as set out in claim 1. In accordance with another aspect of the present invention there is provided an output method as set out in claim 7. In order that the present invention may be more readily understood an embodiment thereof will now be described by way of example and with reference to the accompanying drawings. Fig. 1 is a block diagram showing a schematic construction of a printer which is included by way of background information; Fig. 2 is a flowchart showing printing processes in the printer of Figure 1; Fig. 3 is a diagram showing a code system of the ISO code; Fig. 4 is a block diagram showing a schematic construction of a printer according to the present invention; and Fig. 5 is a flowchart showing printing processes in the printer of the embodiment of Figure 4. The printer of Figure 1 will be now described in detail hereinbelow with reference to the drawings. Fig. 1 is a block diagram showing a schematic construction of a printer 100. Reference numeral 101 denotes a host computer. The host computer 101 outputs a character code and various control codes to the printer 100 to cause the latter to print. The code which is output from the host computer 101 includes code information such as a character or the like, information to indicate the size (for example, a point number), type style, and the like thereof, and the like. The printer 100 comprises a controller 103 and 104 indicates a printing section which actually executes the printing operation. The printing section 104 can print at different dot densities under commands output from the controller 103. Reference numeral 111 denotes a CPU to control the whole printer 100. The CPU outputs various control signals onto a bus 120 in accordance with control programs (for instance, Fig. 2) stored in an ROM 112 and various kinds of data, thereby controlling each section, which will be explained hereinlater. Reference numeral 112 denotes the program ROM in which the control programs of the CPU 111, various kinds of data, and the like are stored. Reference numeral 113 denotes an RAM which is used as a work area of the CPU 111. Various kinds of data are temporarily stored into the RAM 113. The present printing dot density in the printing section 104 is stored by, for instance, dpi (the number of dots per inch) in a DDS (Dot Density) memory area. Reference numeral 114 denotes a host interface section to execute the input and output controls of various data between the host computer 101 and the printer 100. Reference numeral 115 indicates a page buffer to store input print data. The page buffer 115 is also used for a page edition, which will be explained hereinlater. Reference numeral 116 denotes a font ROM to store dot pattern information in correspondence to character codes and the like. Reference numeral 117 denotes a bit map memory. Image information of at least one page which was developed into a bit map pattern with reference to the font ROM 116 on the basis of the character codes or the like stored in the page buffer 115 is stored in the bit map memory 117. Reference numeral 119 indicates a printer interface section to control the interface between the printing section 104 and the CPU 111 or the like. Reference numeral 118 represents a clock generator to generate image clocks corresponding to the dot density in the printing section 104. The printer interface section 119 serially outputs print data to the printing section 104 synchronously with the image clocks. The printing section 104 corresponds to the recording section which actually carries out the recording. The mechanical components of the recording system are included in the recording section. The operation in the above construction will now be described. When print data is sent from the host computer 101, it is input through the host interface section 114 and the fact that the data has been input is informed to the CPU 111. Thus, each time the data is received, the CPU 111 transfers the data to the page buffer 115 where it is stored. In parallel with the above process, the commands or data stored in the page buffer 115 are sequentially read out. In accordance with the command, the kind of character and the font, the number of characters, the character pitch, and the like to be selected are interpreted, and the page edition is executed in an area 115a in the page buffer 115. The code data which was read out of the area 115 is developed into a bit map by referring to the pattern data in the font ROM 116 and is developed as a pattern into the bit map memory 117. When the print data of a predetermined amount, for instance, one page is developed into the bit pattern, the image clocks which are generated from the clock generator 118 are set on the basis of the present dot density stored in the DDS memory area and the printing dot density is designated in the printing section 104. The bit pattern data is output to the printing section 104 and the image information which was developed into a dot pattern is printed. When the dot density designating command is input to the printing section 104, the internal mode of the printing section 104 is set so as to change the printing dot density to the designated density. After that, the printing is performed at the designated printing dot density. The printing control is executed in a manner such that the CPU 11 outputs a control signal to the printing section 104 through the printer interface section 119 and a signal is input/output to/from the printing section 104. When a horizontal sync signal is received from the printing section 104, the print data is sent as video data to the printing section 104 synchronously with the image clocks which are generated from the clock generator 118. The print data is transferred from the bit map memory 117 to the printer interface section 119. The printer interface section 119 converts the parallel data into the serial data and the video data is formed. The fundamental outputting operation has been described above. The process of changing a dot density will now be described hereinbelow. As a general example, explanation will now be made with respect to the case where the printing is executed while changing the printing dot density in accordance with the English and Japanese character code systems. It is now assumed that the character code system of English is set to A and the character code system of Japanese is set to B. On the other hand, since the number of character fonts of the English character code system is small, the printing dot density is set to α (for instance, 300 dpi) and the printing is executed. In the case of the Japanese character code system, since the number of kinds of characters such as Chinese characters or the like is large, the printing dot density is set to β (for example, 240 dpi) and the printing is performed. There is a relation of α > β and such a relation is general in such a kind of printing apparatus which has already been known. Before the outputting operation to the printing section 104 mentioned above, the printing command or print data stored in the page buffer 115 is read out by the CPU 111. The page edition is executed in the page buffer 115a on the basis of the command. At this time, a check is made to see if the command to designate the character code system B, that is, the Japanese character code or the character code of Japanese exists in the relevant page or not. If the character code system B does not exist in the relevant page, an instruction is made to the printing section 104 so as to print at the printing dot density α. The character font, character pitch, and the like are selected so as to output a character at the character size designated by the command and at the dot density indicated and are developed into the bit map memory 117. On the other hand, if the command to designate the code system B of Japanese or the character code of Japanese exists, in order to print at the printing dot density β, the character font and character pitch are selected so as to output the character at the size designated by the command and at the dot density β and are developed into the bit map memory 117. Upon printing, as mentioned above, the printing dot density of the printing section 104 is switched to the dot density α or β and the printing is executed. Fig. 2 is a flowchart showing the printing processes in the printer of Figure 1. The control program to execute the printing processes is stored in the ROM 112. In Fig. 2, steps S1 to S7 show one step in the printing processes of one page. If those processes can be also performed even for the data in other page or the data in the same page, the processes in the above steps can be also executed in parallel. In step S1, the print data from the host computer 101 is received by the host interface section 114. In step S2, the data received in step S1 is stored into the page buffer 115. In step S3, the data in the page buffer 115 stored in step S2 is read out by the CPU 111 and the command or data is interpreted and the page edition is executed. After completion of the edition of one page, step S4 follows and a check is made to see if the command to designate the character code system B (of Japanese) or the character code exists in the page or not. If the character code system B does not exist, step S5 follows. If YES, step S8 follows. In step S5, in order to print at the dot density α, or in step S8, in order to print at the dot density β, the character dot data is developed into the bit map memory 117 so as to print at the size, character style, pitch, and font kind which were requested by the command from the host computer 101 and at each dot density. At the same time, the value in the DDS memory area is also updated into the latest dot density. In steps S6 and S9, the dot density is switched to the corresponding dot density α or β. Such a switching process of the dot density is accomplished by changing the clock rate of the clock generator 118 or by outputting the dot density information to the printing section 104. In step S7, the printing dot density is output to the printing section 104 and the printing is performed. As described above by discriminating the code system to be used on the basis of the printing command or print data or the like from the host computer 101, the English output and Japanese output can be automatically printed at different dot densities. A method of actually designating the character codes of English and Japanese will now be described. Fig. 3 is a diagram showing the code system of the command system ISO. In Fig. 3, the numerical values written in the upper stage denote values of upper three bits of the 7-bit code and the numerical values written at the left edge portion denote lower four bits of the 7-bit code. On the other hand, in the diagram, the block in the bold frame denotes the character code system for each code and a few kinds of character code systems such as USA, JIS, and the like are provided. The numerical values written outside the bold frame indicate codes which are used for commands. The switching among the character code systems is indicated by the data subsequent to an escape command "ESC". The subsequent code which continues after the data is interpreted as a character code system which was designated there. As code systems, for instance, ASCII, UK, JIS, and the like can be mentioned. In parallel with the above data, if the data indicative of the 2-byte code continues after the "ESC" command, it is assumed that a Chinese character has been designated. The subsequent data is interpreted as a 2-byte code and the character code system B of Chinese character is selected. As mentioned above, a check is made to see if the code system is set as a code system for English or Japanese, and the printing can be executed at the optimum printing dot density by the character code system which is included in the data from the host computer 101 in accordance with the designated code system for English or Japanese. In the above printer the printing dot density has been selected in dependence on English or Japanese and the printing is executed at the selected density. However, the dot density can be also switched in accordance with the occupation ratio in one page. Or, those factors can be also distinguished by an arbitrary code system irrespective of the special character code system of English or Japanese. In the previous description, the printing dot density has been recognized on a page unit basis. However, it can be also discriminated on a unit basis of one job or a few jobs. Although the explanation has been made for only the character codes, in addition to this, the printing dot density can be also switched and the printing is executed in accordance with the command system such as ISO, DIABLO, EBCDIC, shift JIS, or the like, the command system such as a VDM as a command system of the vector expression, the program of a page description language, or the like. Although the description has been made with respect to only the font of the dot construction, data can be also developed in the bit map memory by using vector outline fonts. For instance, in the case of a laser beam printer, the process of changing the dot density in the printing section can be realized by changing the period of image clocks, changing the scanning speed or scanning period of a laser beam, or changing the conveying speed (pitch) or the like of a recording paper. In the case of a serial printer or the like, the dot density change can be realized by changing the scanning pitch (speed) of a serial head and the conveying pitch of a recording paper. As described above there is an advantage such that by automatically switching the printing dot density and printing in accordance with the command system or character code system in the print data, the printing can be performed at the necessary optimum printing dot density in correspondence to the characteristics of each character without the aid of an operator. On the other hand, the printing can be executed at the optimum dot density by using the character font of the conventional printing apparatus of a fixed printing dot density without changing the character font. As described above there is an advantage such that the dot density upon recording can be changed to the optimum density in correspondence to the code system for recording. A preferred embodiment of the present invention will now be described in detail hereinbelow with reference to the drawings. [Description of the Printer (Figs. 4 and 5)] Fig. 4 is a block diagram showing a schematic construction of the printer 100, in which the same parts and components as those shown in Fig. 1 are designated by the same reference numerals. Reference numeral 101 denotes a host computer for outputting character codes and various control codes to the printer 100 in the embodiment and instructing printing. The code which is output from the host computer 101 includes the code information of character or the like, information to indicate the size (for instance, the point number), type style, and the like. A construction of the printer 100 will be described hereinbelow. Reference numeral 103 denotes the controller of the printer 100 and 104 indicates the printing section which actually executes the printing operation. The printing dot density can be changed by a command which is output from the controller 103 and the printing can be performed at different dot densities. Reference numeral 111 indicates the CPU which controls the whole printer 100. The CPU 111 outputs various control signals onto the bus 120 and controls each section, which will be explained hereinafter, in accordance with the control programs or various data stored in the ROM 112. Reference numeral 112 denotes the program ROM in which the control programs of the CPU 111 and various kinds of data and the like are stored. Reference numeral 113 indicates the RAM which is used as a work area of the CPU 111. The RAM 113 temporarily stores various data. The present printing dot density in the printing section 104 is stored in the DDS (Dot Density) memory area as a value of, for instance, dpi (the number of dots per inch). Reference numeral 114 indicates the host interface section to execute the input/output control of various data between the host computer 101 and the printer 100. Reference numeral 115 represents the page buffer to store the input print data. The page buffer 115 is also used for a page edition, which will be explained later. Reference numeral 116 indicates the font ROM to store dot pattern information corresponding to the character codes and the like. Reference numeral 117 denotes the bit map memory. The image information of at least one page which was developed into a bit map pattern with reference to the font ROM 116 on the basis of the character codes or the like stored in the page buffer 115 is stored in the bit map memory 117. Reference numeral 119 denotes the printer interface section which controls the interface between the printing section 104 and the controller 103. Reference numeral 118 denotes the clock generator which generates image clocks in correspondence to the dot density in the printing section 104. The printer interface section 119 serially outputs the print data to the printing section 104 synchronously with the image clocks. The printing section 104 corresponds to the recording section to actually execute the recording by the printer 100. A mechanism section and the like of the recording system are included in the recording section. Different dot densities can be set by an instruction from the controller 103 and the recording can be executed. Reference numeral 121 denotes an input section. The operator can instruct through the inputting section 121 whether the program in the ROM 112 is executed or either one of the emulation programs A and B is selected and executed. Reference numeral 122 denotes a built-in ROM in which the emulation program B is stored; 123 indicates a detachable external connecting memory which is connected to the controller 103 by a connector or the like and in which the emulation program A is stored; and 120 the system bus to connect each section mentioned above as shown in the diagram and to transmit an address signal, a data signal, and various control signals. The operation of the above construction will now be described. When print data is sent from the host computer 101, it is input through the host interface section 114. The fact that the data has been input is informed to the CPU 111. Due to this, each time the data is received, the CPU 111 transfers and stores the data into the page buffer 115. In parallel with the above processes, the commands or data stored in the page buffer 115 are sequentially read out, the kind of character and the font, the number of characters, the size of character, the interval, and the like to be selected are interpreted in accordance with the command, and the page edition is executed in the area 115a in the page buffer 115 by a predetermined format. The code data stored in the area 115a is developed into a bit map with reference to the pattern data in the font ROM 116 on the basis of the information of the printing position, pitch, type style, size, and the like. The bit map is developed as a bit map pattern into the bit map memory 117. When the print data of a predetermined amount, for instance, one page is developed into a bit pattern, the clock generator 118 sets the image clocks on the basis of the present dot density stored in the DDS memory area and designates the printing dot density into the printing section 104. A print start instruction and a vertical sync signal are output to the printing section 104. When the vertical sync signal is input, the printing section 104 generates a horizontal sync signal by the printing mechanism in the printing section 104 and outputs to the printer interface section 119. The printer interface section 119 reads out the bit image data from the bit map memory 117 synchronously with the horizontal sync signal and converts into the serial signal and outputs as the video signal to the printing section 104. The printing section 104 receives the video signal and prints by scanning, for instance, a laser beam or the like. In the case where the control program stored in the ROM 112 or either one of the emulation programs A and B was selected, the above-described printing operation is controlled in accordance with the selected emulation program. When a dot density designation command is input, the printing section 104 sets the internal conditions of the printing section 104 so as to change the printing dot density to the designated dot density. After that, the printing is executed at the designated printing dot density. The fundamental printing operation has been described above. The process of changing the dot density as a feature of this embodiment will now be described hereinbelow. In the embodiment, it is now assumed that the emulation programs A and B are connected and both of the emulation programs differ from the command systems stored in the ROM 112. When a power source is turned on or a reset command is input from the inputting section 121, the CPU 111 initializes the system on the basis of the program in the ROM 112. At this time, it is recognized that the emulation program has been connected by referring to the ID written in a special address of the emulation program A (in the case where the auxiliary memory is connected) through the system bus 120. When the execution of the emulation program A is indicated from the inputting section 121, on the basis of the ID of the emulation program A, the printing dot density is read and a dot density changing command is output to the printing section 104 so as to change the printing dot density to the designated dot density through the printer interface section 118. At the same time, the clock rate of the clock generator 119 is changed so as to output the image clocks corresponding to the printing dot density in the printing section 104. After that, the control is shifted from the program in the ROM 112 to the emulation program A123 and the printing process is executed. If information to indicate the printing dot density does not exist in the emulation program, a table storing the printing dot density corresponding to the emulation program is previously stored in the ROM 112 and the printing dot density is determined by reference to the table. On the other hand, in the case where the emulation program A is not connected to the outside or the execution of the emulation program B was instructed from the inputting section 121, the printing dot density corresponding to the emulation program is also similarly changed. Fig. 5 is a flowchart showing the printing process in the embodiment. The control program to execute the printing process is stored in the ROM 112. The printing process is started by turning on the power source of the apparatus, inputting a reset command from the inputting section 121, or the like. First, in step S1, a check is made to see if the execution of the emulation program has been instructed by the inputting section 121 or not. If NO, step S2 follows and the control program stored in the ROM 112 is executed. If the execution of the emulation program has been instructed, step S3 follows and a check is made to see if the execution of the auxiliary memory 123 (emulation program A) has been instructed from the inputting section 121 or not. If the execution of the emulation program B122 has been instructed, step S4 follows and the ID of the emulation program B (built-in ROM) is read. If the execution of the emulation program A in the auxiliary memory 123 has been instructed in step S3, step S5 follows and a check is made to see if the auxiliary memory is connected or not. If NO, step S2 follows and the control program in the ROM 112 is executed. Under the control of the control program, processes to display the absence of the auxiliary memory are executed. If the auxiliary memory is connected in step S5, step S6 follows and the ID of the emulation program A123 in the auxiliary memory is input. Then, step S7 follows and a check is made to see if the printing dot density of the emulation program A or B has been designated or not on the basis of the ID information which was read in step S4 or S5. If the printing dot density has been designated, step S8 follows and the dot density is read and stored into the DDS memory area in the RAM 113. If the information to indicate the dot density does not exist in the emulation program, step S9 follows and the printing dot density is determined with reference to the table (not shown) stored in the ROM 112. When the printing dot density is determined, step S10 follows and the dot density information is output to the printing section 104 through the printer interface section 119 on the basis of the dot density information stored in the DDS memory area in the RAM 113. Due to this, the printing dot density of the printing section 104 is changed to the indicated value. Then, step S11 follows and an instruction signal to change the clock rate is output to the clock generator 118. Thus, the image clocks according to the printing dot density which was set in the printing section 104 are supplied to the printer interface section 119. The subsequent printing processes are executed synchronously with the image clocks. In step S12, the emulation program indicated is executed and the processing routine is finished. Since the printing is performed at the printing dot density corresponding to the emulation program which is executed, there is an advantage such that the printing processes can be also executed by using the emulation program of a different printing dot density. In the above embodiment, all of the emulation programs have been executed from the inputting section 121. However, it is also possible to construct in a manner such that the priorities are provided for the auxiliary memories and when the auxiliary memory is connected, its emulation program is executed. Although the embodiment has been described with respect to the case of the emulation programs, the invention is not limited to such a case but even in the case of the control program corresponding to other command system, it can be also similarly executed. As described above, according to the embodiment, by recognizing the external or internal emulation programs or the like and automatically switching the printing dot density to the densities designated by the programs, the optimum printing dot densities can be set and the printing can be executed without the aid of the operator for the control programs corresponding to various emulation programs or other command systems. Thus, all of the emulation programs or the like which cannot be executed because of the difference of the dot density in the printing section can be used. As described above, according to the invention, since the recording dot density can be automatically changed in correspondence to the optimum recording dot density suitable for a selected control program such as an emulation program or the like, there is an advantage such that the disenable state of the program execution or the incorrect recording due to the difference of the recording dot density can be avoided.

Claims: Output apparatus comprising: means (114) for receiving from an external apparatus input data which includes character data and control codes; output data generating means (103) for generating in response to a stored control program (112) output data in the form of a bit map; print means (104) for printing the output data; and control means (CPU 111) for controlling the output data generating means and the print means; and characterised in that the apparatus includes: at least one additional control program (B) for generating bit map data from input data which at least one additional control program is different from the first mentioned control program; means (121) for selecting between said first mentioned control program and the or each additional control program; and in that the control means is operative in response to the selected control program to change the output resolution of the print means in accordance with the selected program if the selected program designates an output resolution. Apparatus according to claim 1, wherein the apparatus includes means for connection to external storage means, the external storage means storing an additional control program. Apparatus according to either of claims 1 or 2, in combination with external storage means (123) connectable to the apparatus and storing a control program. Apparatus according to any one of the preceding claims and comprising management storage means (113) for storing a plurality of output resolutions in correspondence with the plurality of control programs, and wherein the designated output resolution is set by reference to the management storage means. Apparatus according to any one of the preceding claims wherein the printer in a layer printer, and wherein the output resolution of the printer is charged by changing the scanning speed or scanning period of the layer beam. Apparatus according to any one of Claims 1 to 4, wherein the apparatus in a serial printer having a scanning head and the output resolution is charged by changing the scanning pitch or speed of scanning head and the conveying pitch of the recording medium. A method of printing in response to input data which includes character data and control codes, the method comprising generating in response to a stored control program output data in the form of a bit map from the input data, and printing the output data, the steps of generating and printing the output data being under the control of control means responsive to the control program; and characterised in that the output data is generated by selecting between the first mentioned control program and at least one additional control program for generating bit map data from input data which at least one additional control program is different from the first mentioned control program, the control means changing the resolution of the printing in accordance with the selected control program of this designates an output resolution A method according to claim 7, wherein the control means discriminates whether or not an external storage means contain an additional control program is converted or not. A method according to claim 7 or Claim 8 wherein the print means is a layer printer and the output resolution is changed by changing the period of image clocks, or the scanning speed or scanning period of a lazer beam, or by changing the conveying speed of a recording medium. A method according to other claim 7 or claim 8, wherein the printing in by a serial printer, and the resolution is changed by changing the scanning speed of pitch of the head of the serial printer and the conveying pitch of the recording medium.

Inventors: MURATA MASAHIKO, MURATA, MASAHIKO
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1990
Main classification: G06K15
IPC codes: G06K15