Printer having scroll print buffer and printing method

Abstract: A printer for printing by a print head having a plurality of recording elements arranged, comprises a scan unit for scanning the print head in a different direction from the direction of arrangement of the recording elements, a memory for storing print data, a write unit for writing the print data into the memory, and a read unit for reading the print data written in the memory in synchronism with the scan of the print head by the scan means for supplying the print data to the print head. The memory has continuous addresses relative to the arrangement of the print data corresponding to the direction of arrangement of the recording elements.

Description: BACKGROUND OF THE INVENTION Field of the Invention The present invention relates to a serial printer, and more particularly to a printer having a scroll print buffer and a printing method. Still further particularly, the present invention relates to a serial printer which uses a print head having a plurality of ink jet nozzle and permits printing of two or more lines per scan of the print head or permits mounting of print heads of different nozzle structures with respect to a print color, and a printing method thereby. Related Background Art A serial printer has been widely used as a compact and inexpensive printer. Particularly, an ink jet printer among the serial printer has made a great advancement as a silent and high speed printer and improvement of various characteristics has been made. For example, as to a print speed, an improvement of speed was attained by speeding up a scan velocity of a carriage which carries a head. In a low cost personal computer, because of provision of a color graphic environment, a low cost and high grade color printer has been desired. In this field, again, the ink jet printer has been attracting an interest as a preferable printer. A prior art color printer is more expensive than a monochromatic printer because of the necessity of provision of three or four color print heads. Further, since the color printer optimizes the print grade and the processing time for the color printing, the monochromatic printing by the color printer is inferior in the print grade and the print speed to that by the monochromatic printer. A printer which exchanges the monochromatic print head and the color print head to print out a desired image with a high efficiency has been proposed. By using the monochromatic print head, a high image density is attained and the print speed is improved although the color print is not attained. However, since the arrangement of the recording elements (nozzles) is different between the monochromatic print head and the color print head, a print buffer compatible to the both heads is desired. On the other hand, in the serial printer, a technique to form one line (band) by a plurality of scans (hereinafter referred to as a fine mode) may be used to make banding less prominent. A sheet feed distance (sub-scan distance) therefor may be 1/2, 1/3 or 1/4 of a head width. A print buffer which is compatible to the fine mode is desired. However, in the serial printer, a loss time necessarily occurs before and after a print period by a carriage scan due to the acceleration and deceleration of the carriage. As a result, the improvement of the print speed by speeding up the scan speed of the carriage has reached its limit. EP-A-0574199 discloses the features of the preamble of the independent claims and describes a method and apparatus for converting image data from row to column format and a printer incorporating the same. Figure 6(c) shows a memory map of a first buffer of double-buffered SRAM and the number of memory areas in the recording element array direction is equal to the number of recording elements and the organisation of the buffer memory is dependent upon the number of recording elements. Japanese Published Patent Application Number 02301452 describes a shift register for use in a printing apparatus to permit the timed control of the generation of print time impulses for driving an impact dot printer in accordance with print data stored within the memory. European Patent Application Number EP-A-0310217 describes a circuit for driving a dot matrix printer in which image data to be printed is read from a source memory and selectively written into a print buffer in a manner such that print data to be printed simultaneously by individual print elements located in positions horizontally offset from one another may conveniently read the appropriate data for printing from the print buffer despite such print data not being located at the same horizontal position in the source image to be printed. Japanese Published Patent Application Number 58195359 describes a print buffer management circuit in which data to be printed is continuously alternately written into the buffer and readout of the buffer in the order of continuous addresses. It is an object of the present invention to provide a printer having a print buffer applicable independently of a structure of recording elements of a print head and a printing method thereby. In one aspect, the present invention provides a printer as set out in claim 1. In another aspect, the present invention provides a printing method as set out in claim 22. An embodiment of the present invention provides a printer capable of reading print data from any location in a print buffer and a printing method thereby. An embodiment of the present invention provides a printer which permits an improvement of a print speed and a printing method thereby. An embodiment of the present invention provides a printer which is compatible to monochromatic printing and color printing and a printing method thereby. In an embodiment, when a print head having a large number of recording elements to allow printing of two or more lines at a time is to be used, data is shifted by a bit shift function when the data is transferred from an edit buffer to a print buffer to allow setting of any carriage return pitch and to be compatible to superposition of the edit buffer. An embodiment of the present invention improves the print speed by using a print head capable of simultaneous printing of two lines. Further, it provides an inexpensive color printer by using a four-color built-in color head and increases the number of black nozzles than the number of nozzles of, other color to prevent the reduction of the print speed at the monochromatic printing. Further, the monochromatic head and the color head are accommodated in pluggable cartridges so that one printer may be compatible to the high speed monochromatic printing and the color printing. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 shows a block diagram of a configuration of major circuits of a printer. Fig. 2 shows a configuration of an edit buffer. Fig. 3 shows a relation between the edit buffer and a print area. Fig. 4 shows a block diagram of a circuit configuration of a bit shift circuit. Fig. 5 shows a first data conversion of the bit shift circuit, Fig. 6 shows second data conversion of the bit shift circuit, Fig. 7 shows a shift method of one vertical column of data of the edit buffer, Fig. 8 shows a configuration of a printer buffer, Fig. 9 shows a configuration of the print buffer after one band of printing, Figs. 10A and 10B show a relation between the print data and a print direction, Fig. 11 shows a timing chart of a drive sequence of the print head, Figs. 12A and 12B show a relation between an arrangement of nozzles of the print head and an arrangement of print dots, Fig. 13 shows a data structure of the print buffer and a read address, Fig. 14 shows a block diagram of an address generation circuit, Figs. 15A and 15B show a timing chart of an operation of the address generation circuit, Fig. 16 shows a timing chart of a drive sequence of the print head in a fine mode, Figs. 17A and 17B show a relation between an arrangement of the nozzles of the print head and an arrangement of the print dots in the finer mode, Fig. 18 shows a data structure of the print buffer and a read address in the fine mode, Fig. 19 shows a flow chart of a controller program, Fig. 20 shows a flow chart of an operation of an engine program, Fig. 21 shows a structure of a color head, Fig. 22 shows a timing chart of a drive sequence of the color head, Figs. 23A and 23B show a relation between an arrangement of the nozzles of the color head and an arrangement of the print dots, Fig. 24 shows a data structure of the print buffer and a read address, Fig. 25 shows a block diagram of an address generation circuit, Fig. 26 shows a timing chart of an operation of the address generation circuit, Fig. 27 shows a block diagram of a circuit configuration of a printer control IC, and Figs. 28A to 28C show an operation in the fine mode. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention is now explained in detail in conjunction with the accompanying drawings. [Embodiment 1] Fig. 1 shows a block diagram of major parts of a printer control circuit in accordance with the present invention. In Fig. 1, numeral 1 denotes a CPU, numeral 2 denotes a ROM, numeral 3 denotes a parallel interface, numeral 4 denotes a printer control IC, numeral 5 denotes a RAM and numeral 6 denotes a print head. The CPU 1 control the overall printer and comprises a processor for executing a program as well as a timer function and input/output ports. The program executed by the CPU 1 is classified to a controller program for decoding data and commands transferred from a host system to generate image data to be printed and an engine program for controlling a printer mechanism such as a print head to record on a print sheet. The ROM 2 stores the program to be executed by the CPU 1 and font data. The parallel interface 3 is connected to the host system such as a computer and receives the print data and commands. The printer control IC 4 controls the parallel interface 3, the RAM 5 and the print head 6 in accordance with the command from the CPU 1. The RAM 5 is a dynamic RAM having a 16-bit bus width and used to store the received data and the image data. The print head 6 is an ink jet head having 128 ink jet nozzles arranged longitudinally at a 1/360 inch pitch and it discharges ink droplets while it is horizontally scanned to record on a print sheet. In Fig. 1, the data received by the parallel interface 3 is temporarily stored in a receive register in the printer control IC 4 and then stored in a receive buffer area defined in the RAM 5. When the data in the receive register of the printer control IC is transferred to the receive buffer, the reception of the next data is ready. The data is received byte by byte. Since the data is written into the receive buffer while the CPU 1 reads the ROM 2, the transfer of the received data is conducted without sacrificing the processing speed of the CPU 1. Since the CPU 1 frequently reads the ROM 2 to execute the program, the data received by the parallel interface 3 is immediately stored in the receive buffer. Thus, the high speed data reception is attained. Since a portion of the RAM 5 is used as the receive buffer, the cost increase due to the provision of the receive buffer does not occur. The controller program executed by the CPU 1 checks whether the data is stored in the receive buffer, and if it is stored, it analyzes the received data. If the received data is a character code, it reads bit image data of the received character code from the font data area of the ROM 2 and develops it into the edit buffer area defined in the RAM 5. When the controller program prepares the edit buffer comprising one line of bit image data, it delivers it to the engine program. The engine program transfers the data of the edit buffer to the print buffer defined in the RAM 5 to print out in accordance with the data of the print buffer. Referring to Fig. 27, detail of the printer control IC 4 is explained. A parallel interface controller 11 controls the parallel interface 3 to receive the data and stores the received data in the receive buffer. A receive buffer controller 12 transfers the received data stored in the receive register to the receive buffer in the RAM 5. The transfer of the data to the RAM 5 is conducted in accordance with the control of a RAM controller 13. The access to the RAM 5 by the CPU 1 is conducted through a CPU interface 14. The data developed into the edit buffer by the CPU 1 is H-V converted by an H-V converter 15 and transferred to the print buffer. When the data of the edit buffer is edited before it is transferred to the print buffer, a bit shift circuit 16 to be described later is used. When one scan (one line) of data is ready in the print buffer, a print buffer controller 17 to be described later reads the data from the print buffer and supplies it to the head 6 through a head data controller 18. Various timings to the head 6 are generated by a head timing controller 19. Fig. 2 shows a configuration of the edit buffer. A height of the edit buffer is 64-dots height and the data in the buffer is arranged longitudinally. Thus, a longitudinal column comprises 8 bytes. The number of dots corresponding to a print width of the printer is set laterally. For example, when the print width corresponds to a size A4 sheet, the number of lateral dots is approximately 2900 dots. Fig. 3 shows a relation between the edit buffer and the print area. In Fig. 3, E1, E2 and E3 denote edit buffers and numeral 9 denotes a height of the print area which can be printed by one scan of the print head 6. Since the normal height of the edit buffer is 64 dots while that of the print head is 128 dots, the print head can print two or more lines of the edit buffer in one scan. However, since a carriage return pitch of a conventional host computer is not 64 dots, it is not possible to make the 128-dot print data by simply longitudinally arranging two 64-dot height edit buffers. For example, in Fig. 3, since the carriage return pitch is 60-dots, 4-dot overlap occurs between edit buffers. Accordingly, it is necessary to shift the second line edit buffer by 4 bits when it is printed. In the overlap area of the edit buffers, it is necessary to print the logical OR function of the two edit buffers. Since the conventional host computer allows any setting of the carriage return pitch, the overlap of the edit buffers should also be set to any value. In the printer of the present embodiment, a bit shift circuit 16 for shifting the data of the edit buffer before it is written into the print buffer is built in the printer control IC 4. Fig. 4 shows a circuit configuration of the bit shift circuit 16. In Fig. 4, ID0-15 denote input data from the data bus of the CPU 1, IMD0-15 denotes input data from the data bus of the RAM 5, and OMD0-15 denote output data to the data bus of the RAM 5. Numeral 21 denotes a register for setting a shift amount, numeral 22 denotes a latch for temporarily saving the data written from the CPU 1 through the data bus, numeral 23 denotes a shifter for shifting the written data, numeral 24b denotes a pattern generator for generating a mask pattern to be applied to the shift data, numerals 25 and 26 denote AND circuits for masking the shift data, numeral 27 denotes a register for saving the shifted-out data, numeral 28 denotes a latch for temporarily saving the data read from the RAM 5 and numeral 29 denotes an OR circuit for logically ORing the shift data and the data read from the RAM 5. Fig. 5 and 6 show data conversion conducted by the bit shift circuit when the data is transferred from the edit buffer to the print buffer. Fig. 5 shows the data converted at the first data transfer and Fig. 6 shows the data converted at the subsequent second data transfer. In Fig. 5, numeral 31 denotes 16-bit data P written by the CPU 1 and saved by the latch 23, numeral 32 denotes data shifted by the shifter 23, numeral 33 denotes data masked by the AND circuit 25, numeral 34 denotes data masked by the AND circuit 26, numeral 35 denotes data saved by the register 27 and numeral 37 denotes data merged by the OR circuit 29. Numeral 36 denotes 16-bit data X written by the RAM 5 and saved by the latch 28. Fig. 6 is similar to Fig. 5. Numeral 41 denotes 16-bit data Q written by the CPU 1 and saved by the latch 23, numeral 42 denotes data shifted by the shifter 23, numeral 43 denotes data masked by the AND circuit 25, numeral 44 denotes data masked by the AND circuit 26, numeral 45 denotes data saved by the register 27 and numeral 47 denotes data merged by the OR circuit 29. Numeral 46 denotes 16-bit data Y written by the RAM 5 and saved by the latch 28. Referring to Figs. 4 and 5, an operation of the bit shift circuit is explained. The CPU 1 sets a shift amount corresponding to the carriage return pitch to a shift amount register 21 and then transfers the data from the edit buffer to the print buffer. Since the data bus width of the CPU 1 is 16 bits, the data is transferred from the edit buffer to the print buffer 16 bits at a time. When the CPU 1 writes data in the print buffer area of the RAM 5, the written data 31 is inputted to the shifter 23 through the latch 22. The latch 22 saves the data 31 until the writing of the data is completed. The shifter 23 is a combination of selectors and outputs data of any shift amount set by the content of the shift amount register 21. Thus, the shifter 23 does not require a shift time as it is required in a circuit using a shift register. In Fig. 5, since the shift amount is set to 4, the input data P15-P0 is shifted down by 4 bits and the shifted-out data P3-P0 is returned upward to form data 32. The AND circuit 25 makes the bits sent out by the shifter to '0' to output data 33. The AND circuit 26 mask the bits other than those sent out by the shifter to 707 to output data 34. Data 35 of all-zero is initially set in the register 27. The data outputted by the AND circuit 25 and the data 35 outputted by the register 27 are inputted to the OR circuit 29. When the CPU 1 starts to write the data into the print buffer area of the RAM 5, the data 36 is read from an address of the print buffer to which the data is to be written, in parallel to the write operation and it is inputted to the OR circuit 29 through the latch 28. The latch 28 saves the data 36 until the writing of the data is completed. The OR circuit 29 outputs the data 37 which is the logical OR function of the data 35 and the data 36. The data 37 is written into the print buffer. The reading of the data 36 from the print buffer and the writing of the data 37 into the print buffer are conducted as a read modify write cycle to the RAM 5 and one read modify write cycle is executed per write cycle of the CPU 1. By the read modify write cycle, the data P15-P0 written by the CPU 1 is shifted and P15-P4 is written into the print buffer. In writing the data, the data is logically ORed with the data X15-X0 originally present in the print buffer. When the writing is completed, the data P3-P0 outputted by the AND circuit 26 is saved in the register 27. Referring to Fig. 6, the next writing of the data into the print buffer is explained. The data conversion in Fig. 6 is identical to that of Fig. 5. The data Q15-Q0 written by the CPU 1 is shifted, and Q15-Q4 and P3-P0 which was shifted out and not written in the previous writing are written into the print buffer. In writing the data, the data is logically ORed with the data Y15-Y0 originally present in the print buffer. The above operation is repeated to transfer the data in the edit buffer to the print buffer while it is sequentially shifted. Fig. 7 shows a method for transferring one longitudinal column of data of the edit buffer to the print buffer. In Fig. 7, numerals 51, 52, 53 and 54 denote data in the edit buffer, numeral 55 denotes zero data, and numerals 56, 57, 58, 59 and 60 denote data in the print buffer. The CPU 1 sets the shift amount n to the printer control IC 4 and writes the data 51 of the edit buffer into the print buffer 56. The bit shift circuit of the printer control IC 4 shifts the data 51 by n bits and writes it into the print buffer 56 to OR it with the original data of the print buffer 56. The CPU 1 sequentially writes the data 52, 53 and 54 of the edit buffer into the print buffers 57, 58 and 59 and finally write the zero data 55 into the print buffer 60 to transfer the remaining n bits of the data 54 to the print buffer. Thus, one longitudinal column of the edit buffer, that is, the 60-dot data is transferred to the print buffer. This operation is repeated by the number of horizontal dots so that one line of data of the edit buffer is transferred to the print buffer. In this manner, the data in the edit buffer may be shifted by any amount by transferring the data of the edit buffer to the print buffer so that any carriage return pitch may be set. By logically ORing with the original data in the print buffer, the data in the overlap area of the edit buffers may be ORed and any number of edit buffers may be overlapped. By the use of the dedicated bit shift circuit to shift the data, a shift time is not required, and by the use of the read modify write to overlap the data, a loss time by the shift and overlap of the data does not occur. Further, since the edit buffer and the print buffer are continuous in their longitudinal addresses, a high speed transfer method such as a block transfer command and a DMA function built-in the CPU may be used in the data transfer. Referring to Fig. 8, a configuration of the print buffer and an address arrangement thereof which are characteristic of the present embodiment are explained. In Fig. 8, each numbered frame denotes one byte of data and a numeral therein denotes an address. In the print buffer, the bit data is arranged longitudinally (along the array of nozzles) and the addresses are continuous longitudinally. The address starts from 0 which is conveniently assigned and in actual it may start with any value. A 40-byte height is secured for the print buffer. Since the print head has 128 nozzles, a height required for one scan is 16 bytes. Accordingly, it has a capacity of 2.5 scans. A feature in the present embodiment is that the longitudinal addresses of the capacity corresponding to multiple scans are continuous, for example, 0-39, 40-79,... In Fig. 8, numeral 61 denotes a print area to be printed in the first head scan and numeral 62 denotes a print area to be printed in the second head scan. Since the area of more than two head scans is secured as the capacity of the print head, the print data of the area to be printed in the next head scan can be prepared during the head scan and a wait time of the printer operation for preparing the print data is prevented. In Fig. 8, the width of the print buffer is 3000 dots but in actual, it may be set to any value in accordance with the width of the print sheet. In Fig. 8, the width is 40 bytes but it may be set to any value within the capacity secured as the print buffer in the RAM. Fig. 9 shows a configuration of the print buffer after the first head scan and after the area 61 in Fig. 8 has been released. The print data to be printed in the third and subsequent head scans is written into the released area. More particularly, of the released area 61, the addresses 0-15 are not used and the addresses 120000-120015 are newly used. In this manner, by making the print buffer helically continuous, the addresses of the print buffer are always continuous longitudinally independently from the print area to be printed by the head as shown in Figs. 8 and 9. It appears as if it is scrolled. The continuity is maintained until one page of printing is completed. The configuration of the print buffer is determined by the print width and the buffer capacity and it is independent from the head structure. Thus, the configuration of the print buffer may be determined independently from the number of nozzles of the print head and a method for managing the print buffer is simplified when a plurality of print heads of different nozzle structures are used. Since the longitudinal addresses in the print buffer are continuous, any position in the print buffer may be set as the print area and the freedom in determining the print position is enhanced. For example, in the present embodiment, the head having 128 nozzles is described. In this case, the area of the print buffer used in one scan of print is 16 bytes longitudinally (areas 61 and 62). When a head having 64 nozzles is used, one half of the area 61 is used for one scan of print, and when a head having 256 nozzles, the areas 61 and 62 are used for one scan of print. In this manner, the print buffer may be readily managed independently from the nozzle structure. The management of the print buffer in the fine mode recording is now explained. The fine mode recording means a recording method to record a high grade image by completing the recording of one band (the width of the recording head) complementarily by a plurality of scans by using different areas of the recording head in order to reduce the banding of the serial scan. Referring to Figs. 28A, 28B and 28C, a concept of the fine mode recording method is explained. To facilitate the comprehension, it is assumed that the number of nozzles of the head is 8. In the fine mode, the recording is made in a plurality of zig-zag passes as shown in Figs. 28A, 28B and 28C. For example, in a 2-pass system, a sheet feed amount is set to one half of the head width and the record data in one scan is reduced (or thinned) to one half (zig-zag or checker pattern and complementary zig-zag or reverse checker pattern) to complete the recording in two scans. Figs. 28A, 28B and 28C illustrate how the recording in a predetermined area is completed when the zig-zag pattern and the complementary zig-zag pattern are used, for a multi-head having 8 nozzles. In the first scan, the zig-zag pattern (hatched dots) is recorded by using the lower four nozzles (see Fig. 28A). Then, in the second scan, the sheet is fed by 4 pixels (one half of the head length) and the complementary zig-zag pattern (white dots) is recorded (Fig. 28B). In the third scan, the sheet is again fed by 4 pixels (one half of the head length) and the zig-zag pattern is recorded again (Fig. 28C). In this manner, the sheet feed by 4 pixels and the recording of the zig-zag pattern and the complementary zig-zag pattern are effected alternately to complete the record area of 4 pixels for each scan. Thus, by completing the recording by two different types of nozzles in the same area, a high grade image without density irregurality is attained. In the monochrome cartridge, the 128 nozzles are divided into four so that 32 nozzles are used. In a color mode of a color cartridge to be described later, 24 nozzles for each of four colors are divided into three so that 32 nozzles are used. In a monochrome mode, the 64 black nozzles are divided into two so that 32 nozzles are used. In this manner, in the fine mode recording, one line of data is read a plurality of times and it is read serially from different longitudinal positions (along the array of nozzles). By using the print buffer of the present embodiment having the longitudinally continuous addresses, the read position (address) may be set to any position and the management of the print buffer in the fine mode recording is facilitated. Detail of the transfer of the print data to the print buffer, the readout of the print data from the print buffer and the release of the print buffer will be described hereinlater. Figs. 10A and 10B show a relation between the print data and the print direction. In Figs. 10A and 10B, numerals 71, 72, 73 and 74 denotes print areas printed by the print head in one scan, a hatched area indicates an area in which the print data is actually present, and an arrow indicates the print direction. Normally, as shown in Fig. 10A, the head is returned while the sheet is fed after the area 71 has been printed and the area 71 is printed. On the other hand, Fig. 10B shows a blank raster near the bottom end in the print area, that is, the presence of a dot line not printed in the print area. In Fig. 10B, the dot 120 and subsequent dots of the area 73 are blank raster. Thus, the printer prints only 120 dots from the top and then prints the area 74 while the print head is moved reversely after the sheet feed. By using the reverse printing, the return time of the head is not required and the print time is shortened. In the reverse printing, the print shift may be larger than that of the single direction printing but no practical problem arises for the blank raster because the print shift is not prominent. In this printing method, the printing is not always made 128 dots at a time but the print position changes in accordance with the print data. In the print buffer configuration shown in Figs. 8 and 9, the printing may be made from any position in the print buffer so that no extra load by the change of the print position is imposed. Fig. 11 shows a timing chart of a drive sequence of the print head in the present embodiment. In Fig. 11, the print head is driven in time division fashion so that the 128 nozzles are driven 16 nozzles at a time. Adjacent nozzles are driven at different timings and the nozzles driven simultaneously appear at every 16 dots. By the time division drive, a peak current required to drive the print head may be reduced and a load to a power supply may be reduced. Further, by driving the adjacent nozzles at different timings, a vibration of the ink in the head due to the discharge of the ink droplets is reduced and the discharge characteristic of the ink of the head is improved. However, since the serial printer is driven while the print head is moved relative to the record sheet, the shift in the drive timing appears as the shift of dot position on the record sheet. In the drive method as shown in Fig. 11, the dot string is formed in sawtooth shape by the time difference due to the time division. Accordingly, when the print head is driven in the time division fashion, some measures is required to prevent the print shift due to the time difference of the drive timing. Referring to Figs. 12A and 12B, a method for preventing the print shift due to the time division drive in the present embodiment is explained. Fig. 12A shows a nozzle array of first to twentieth nozzles from the top of the print head. The print head is mounted on the carriage with an inclination of 3.58 degrees relative to a vertical line on the record sheet. Namely, the print head has the inclination of one horizontal dot for every 16 vertical dots. The carriage is scanned horizontally relative to the record sheet. Fig. 12B shows the dot array formed on the record sheet by the drive sequence of Fig. 11 under this condition. Since the shift of the drive timing due to the time division drive is compensated by the inclination of the head, the dots of the first to sixteenth nozzles are arranged vertically and no print shift occurs. Since the seventeenth dot and the subsequent dots are vertically arranged with one-dot shift to the right, they form dots of the right adjacent column and no print shift occurs. Accordingly, the dots of the adjacent column are formed at every 16 nozzles and 8 columns of stepwise dot strings are formed on the record sheet. The print buffer control circuit 17 built in the printer control IC is now explained. The print buffer control circuit 17 reads the print data from the print buffer in the RAM 5 and transfers it to the print head. An address array of the print buffer read by the print buffer control circuit 17 is shown in Fig. 13. In Fig. 13, each rectangle having a formula written therein indicates one-byte print data and the formula in the rectangle indicate an address. In Fig. 3, K denotes a start address and KH denotes a horizontal offset. The address of the print buffer is incremented by one vertically and by KH horizontally. In Fig. 13, the address of the print buffer is shown only for the first two columns and others are omitted except the top line. Since the dot string printed by the print head in one drive is stepwise as shown in Fig. 12B, when the data is to be transferred from the print buffer to the print head, the print buffer should also be read stepwise as shown by a meshed area in Fig. 13. Fig. 14 shows a block diagram of the address generation circuit in the print buffer control circuit. In Fig. 14, numeral 81 denotes an address register, numeral 82 denotes a horizontal offset register, numeral 83 denotes a buffer (or shunt) register, numeral 84 denotes a selector, numeral 85 denotes a mask circuit, numeral 86 denotes an inversion/non-inversion circuit, numeral 87 denotes an adder, numeral 88 denotes a carry control circuit and numeral 89 denotes a stepwise pattern register. A data signal D0-15 transfers the data written by the CPU 1. The address register 81 and the horizontal offset register 82 are connected to the data signal DO-15, the address register 81 stores the start address and the horizontal offset register 82 stores the horizontal offset. The setting of the start address and the horizontal offset is controlled by the CPU 1. The output signal PBA0-18 of the address register 81 is supplied to the address signal ADDRESS of the RAM 5 through the output buffer. The buffer register 83 temporarily buffers the output of the address register 81 and supplies it to the signal LA0-18. The selector 84 selects one of PBA0-18 and LA0-18 and outputs it to the signal SA0-18. The mask circuit 85 controls the mask of the output of the horizontal offset register 82. The output of the mask circuit 85 is 0 in the masked state and the output of the horizontal offset register 82 is outputted as it is when unmasked. The inversion/non-inversion circuit 86 controls the inversion and the non-inversion of the output of the mask circuit 85. The adder 87 adds the output of the selector 84 and the output of the inversion/non-inversion circuit 86 and outputs the sum to the signal NPA0-88. The carry control circuit 88 controls the carry input signal of the adder 87. The signal NPA0-18 is inputted to the address register 81 and used to reestablish the address. The stepwise pattern register 89 is connected to the data signal DO-15 and stores the stepwise pattern of the print head. The stepwise pattern indicates the shape of the dot string formed by one drive of the print head. Figs. 15A and 15B show timing charts of an operation of the print buffer control circuit. An operation of the address generation circuit shown in Fig. 14 is explained in conjunction with Figs. 15A and 15B. First, the operation for the forward printing, that is, when the carriage is scanned from the left to the right relative to the record sheet is explained. In Fig. 15A, CLK denotes a clock signal for synchronously driving the address generation circuit. Each portion of the address generation circuit changes in synchronism with the rise of CLK. The content of the address register 81 is preset to K and the content of the horizontal offset register is preset to KH. When the print buffer control circuit starts to read the print buffer, the signal PBA0-18 is outputted to the address signal ADDRESS of the RAM 5 and the read pulse is outputted to the read signal READ-. As a result, the print data is read from the start address K and it is transferred to the print head. At the first read, the start address K is bufferred in the buffer register 83 and the signal LA0-18 is changed to K. Since the selector 84 selects the signal PBA0-18, the signal SA0-18 is equal to PBA0-18. The mask circuit 85 is in the mask state and the output is 0. Since the inversion/non-inversion circuit 86 is in the non-inversion state, the output of the mask circuit 85 is outputted as it is. Since the carry control circuit 88 has set the carry, it has the same effect as adding one to the adder 87. In Fig. 15, the signal with the add value is the sum of the output of the inversion/non-inversion circuit 86 and the output of the carry control circuit 88. The sum of the signal SA0-18 and the above sum is outputted to the signal NPA0-18. Since the add value is +1, NPA0-18 is K+1 and it is fed back to the address register 81. As a result, the content of the address register 81 is set to K+1 at the next clock and the print data is read from the address K+1 and transferred to the print head. By the setting of the stepwise pattern register 89,. the mask circuit 85 is set to the non-mask state and the output is KH. Since the carry control circuit 88 has set the carry, the sum is +1+KH and NPA0-18 is K+2+KH. Since it is fed back to the address register 81, the print data is read from the address K+2+KH at the next clock and transferred to the print head. Similarly, the content of the address register 11 is sequentially incremented and the addresses of the print buffer are read stepwise from K to K+15+7KH. Total of 16 bytes of print data are transferred to the print head. At the last clock, the selector 84 selects the signal LA0-18 so that the signal SA0-18 is K which has been saved in the buffer register 83. The mask circuit 85 is in the non-mask state and outputs the content KH of the horizontal offset register 82, and the carry control circuit 88 resets the carry so that the sum is KH. Thus, the signal NPA0-18 is K+KH. It is set to the address register 81 at the last clock. As shown in Fig. 13, the address K+KH indicates the print data which is right adjacent to the address K and the content of the address register 81 is automatically set to the right adjacent address after the print data for one drive of print head has been transferred. As a result, the CPU 1 need not reestablish the address during the scan of the carriage except the setting of the start address before the scan of the carriage. An operation in the reverse printing is now explained. In Fig. 15B, in the reverse printing, like in the forward printing, the addresses of the print buffer are read stepwise from K to K+15+7KH and the 16-byte print data is transferred to the print head. At the last clock, the inversion/non-inversion circuit 86 is in the inversion state and the carry control circuit 88 sets the carry so that the sum is -KH. As a result, after the transfer of the print data, the content of the address register 81 is set to K-KH which indicates the address which is left adjacent to the address K. Since the print buffer control circuit automatically reads the data in the print buffer, the CPU 1 need not involve in the reading of the print buffer during the scan of the carriage except the setting of the start address before the scan, and the load to the CPU 1 is reduced. Since the reading of the print buffer is conducted while the CPU 1 reads the ROM 2, the print buffer may be read without lowering the throughput of the CPU 1. The horizontal address change of the print buffer is set to the horizontal offset register. For example, in the print buffer shown in Fig. 8, 40 is set to the horizontal offset register. Thus, the vertical continuous address amount, that is, the size of the print buffer may be set to any value. The fine mode is now explained. The dot pitch in the normal mode is 1/360 inch for both horizontal and vertical while the horizontal dot pitch in the fine mode is set to 1/720 inch. Fig. 16 shows a timing chart of a drive sequence of the print head in the fine mode. The 128 nozzles are divisionally driven in 16 runs. In the second run, the nozzles spaced by 8 dots from the nozzles in the first run are driven. A relation between the nozzle array of the print head and the dot array formed on the record sheet is shown in Figs. 17A and 17B. Fig. 17A shows the nozzle array of the first to twentieth nozzles from the top of the print head and the print head is mounted on the carriage with the inclination of 3.58 degrees relative to the vertical line on the record sheet. Namely, the print head is inclined at one horizontal dot for every 16 vertical dots. The carriage is scanned horizontally relative to the record sheet. Fig. 17B shows the dot array formed on the record sheet by the drive sequence of Fig. 16 under this condition. Since the shift of the drive timing due to the time division drive is compensated by the inclination of the head, the dots of the first to eighth nozzles are arranged vertically and no print shift occurs. Since the dots of the ninth nozzle and the subsequent nozzles are arranged vertically with 1/720 inch shift to the right, they form the dots of the right adjacent column and no print shift occurs. As shown in Fig. 16, since the nozzles spaced by 8 dots are not driven simultaneously, a slight shift occurs but it does not raise a practical problem. The dots at the 17th nozzle and the subsequent nozzles are arranged vertically with the space of 1/360 inch to the right. Accordingly, when the entire print head is viewed, 16 dot columns are formed stepwise in one drive. Fig. 18 shows an address array of the print buffer read by the print buffer control circuit in the fine mode. In Fig. 18, each rectangle having a formula written therein indicates one-byte print data and the formula in the rectangle indicates the address. In Fig. 18, K denotes a start address and KH denotes a horizontal offset. The address of the print buffer is incremented by one vertically and by KH horizontally. In Fig. 18, the address of the print buffer is shown only for the first two columns and the subsequent addresses are omitted. Since the dot string printed by the print head in one drive is stepwise as shown in Figs. 17A and 17B, when the data is transferred from the print buffer to the print head, it is necessary that the print buffer is also read stepwise as shown by a meshed area in Fig. 18. For the reading of the print buffer in the fine mode, the print buffer control circuit shown in Fig. 14 may be used. Namely, by setting the mask circuit 85 to the non-mask state by setting the stepwise pattern register 89 so that the output is KH, the address of the print buffer is read downwardly and rightwardly as shown by the meshed area in Fig. 18. Fig. 19 shows a flow chart of the control program. In a step S1, whether the received data is in the receive buffer or not is checked, and if it is, it is read in a step S2. In a step S3, whether one line of data has been inputted or not is determined, and if it has not been inputted, the process returns to the step S1. If it has been inputted, whether a vacant edit buffer is present or not is determined in a step S4, and if it is, the edit buffer is prepared in a step S5, and it is delivered to the engine program in a step S6. Fig. 20 shows a flow chart of the engine program. In a step S11, whether the edit buffer is ready not is determined, and if it is ready, the process proceeds to a step S15. If it is not ready, the process proceeds to a step S12. In the step S12, whether there is an enough vacant space for the transfer of the edit buffer (for example, 16 longitudinal bytes) is present in the print buffer or not is determined, and there is no such space, the process proceeds to a step S15. If there is a space, the data of the edit buffer is transferred to the print buffer in a step S13 and the edit buffer having the data transferred out is released in a step S14. In a step S15, whether the print data of 128-bit height has been accumulated in the print buffer or not and whether there is a bilaterally printable blank raster or not are determined. If not, the process returns to the step S11. If it is, the printing is made in a step S16 and the print buffer area for which the printing has been made is released in a step S17. The released print buffer area is helically coupled to the bottom of the vacant area of the print buffer as described above. The present embodiment attains the bit shift function by the means for setting the shift amount, the means for inputting the data, the means for shifting the input data by the amount set by the shift amount setting means, the means for saving the shifted out data, the means for merging the input data with the previously saved data, the means for reading the data from the memory, the means for modifying the read data by the merged data and the means for writing the modified data into the memory. Further, the buffer function is attained by storing the print data and by the memory having the continuous addresses to the longitudinal array of the print data in the buffer. Further, the head drive function is attained by the means for driving the print head in the time division fashion. Further, the print buffer control function is attained by the means for setting the start address, the means for setting the address offsets, the means for incrementing the start address and adding it to the address offset to generate the transfer address, the means for determining whether to add the address offset or not in the generation of the transfer address, the means for determining the number of times of transfer, the means for adding or subtracting the address offset to or from the start address, the means for reading the data from the transfer address and the means for outputting the read data. In accordance with the present embodiment, when the print head having a large number of dots to allow the printing of two or more lines at a time is used, the data is shifted by the bit shift function when the data is transferred from the edit buffer to the print buffer so that any amount of carriage return pitch may be set and the overlap of the edit buffer is attained. By making the addresses of the print buffer longitudinally continuous, the data transfer from the edit buffer to the print buffer or from the print buffer to the print head is facilitated and the print buffer configuration may be set independently from the number of dots of the head and the management of the print buffer is facilitated. Further, any position in the print buffer may be set as the. print area and the freedom in setting the print position is enhanced. Further, by distributedly driving the print head in the time division fashion, the drive characteristic of the print head is improved and by inclining the head, the print shift due to the time division drive is prevented. Since the print buffer control circuit automatically reads the data in the print buffer and transfers it to the print head, the CPU 1 need not be involved in the reading of the print buffer during the scan of the carriage and the load of the CPU 1 is reduced. Since the print buffer control circuit reads the print buffer stepwise in accordance with the dot array shape, the CPU 1 need not consider the dot array shape in preparing the print buffer and the increase of the load of the CPU 1 is prevented. [Embodiment 2] A second embodiment of the present invention is now explained. Major parts of the printer control circuit in the present invention is identical to that of Fig. 1 and comprises the CPU 1, the ROM 2, the interface 3, the printer control IC 4, the RAM 5 and the print head 6. Fig. 21 shows a dot structure of the print head in the present embodiment. The print head has 136 nozzles arranged in column, which are, from the top to the bottom, 24 yellow dots, 24 magenta dots, 24 cyan dots and 64 black dots with an 8-dot gap between different colors. Fig. 22 shows a timing chart of a drive sequence of the print head in the present embodiment. In Fig. 22, the print head is time-division driven so that the 136 nozzles are driven in 16 runs. The adjacent nozzles are driven at different timings and the nozzles simultaneously driven appears at every 16th dot. A peak of the current required to drive the print head is reduced by the time-division drive to reduce a load to the power supply. Further, by driving the adjacent nozzles at different timings, the vibration of the ink in the head due to the discharge of the ink droplets is reduced and the ink discharge characteristic of the head is improved. In the present embodiment, the method for preventing the print shift by the time-division drive is to compensate the shift by the time division drive by inclining the head as described in conjunction with Figs. 12A and 12B. When viewed as the entire print head, as shown in Figs. 23A and 23B, the adjacent columns dots are formed at every 16th nozzle and ten stepwise dot columns are formed on the record sheet by one drive of the print head. Fig. 24 shows a data structure of the print buffer in the present embodiment. In Fig. 24, yellow, magenta, cyan and black colors have independent print buffers. In each print buffer, the print data is arranged longitudinally and the addresses are continuous longitudinally. A start address of the print buffer for each color is Y, M, C or K and a horizontal offset is YH, MH, CH or KH. Since the print head prints the stepwise dot column, when data is to be transferred from the print buffer to the print head, the meshed area of Fig. 24, that is, the 3-byte data at the addresses Y. Y+1 and Y+2+YH, the 3-byte data at the addresses M, M+1 and M+2+MH, the 3-byte data at the addresses C, C+1 and C+2+CH and the 8-byte data at the addresses K to K+7+3KH are read. In the present embodiment, longitudinal 8 bytes are allocated to the yellow, magenta and cyan, longitudinal 20 bytes are allocated to the black and 3000 dots are allocated laterally for the print buffer. Fig. 25 shows a block diagram of an address generation unit of a printer buffer control circuit built in the printer control IC 4 in the present embodiment. In Fig. 25, numerals 101a to 101d denote address registers, numerals 102a to 102d denote horizontal offset registers, numeral 103 denotes a selector, numeral 104 denotes a buffer (or shunt) register, numerals 105 and 106 denote selectors, numeral 107 denotes a mask circuit, numeral 108 denotes an inversion/non-inversion circuit, numeral 109 denotes an adder, numeral 110 denotes a carry control circuit and numeral 111 denotes a stepwise pattern register. The functions of the address registers 101a to 101d, the horizontal offset registers 102a to 102d, the buffer register 104, the selector 105, the mask circuit 107, the inversion/non-inversion circuit 108, the adder 109, the carry control circuit 110 and the stepwise pattern register 111 are same as those in Fig. 14, and as the print buffer is extended to four colors, the address registers 101a to 101d and the horizontal offset registers 102a to 102d are extended to four sets and the selectors 103 and 106 are provided. Fig. 26 shows a timing chart of an operation of the address generation circuit of Fig. 25 for the forward printing. The operation of the address generation circuit shown in Fig. 25 is now explained with reference to Fig. 26. In Fig. 26, CLK denotes a clock signal for synchronously operating the address generation circuit. Each unit of the address generation circuit changes in synchronism with the rise of CLK. The address registers 101a to 101d are preset to K, Y, M and C, respectively, and the horizontal offset registers 102a to 102d are preset to KH, YH, MH and CH, respectively. The stepwise pattern register 111 is set once per 16 dots or two bytes of print data. When the printer control IC 4 starts to read the print buffer, the content Y of the address register 101b is first selected by the selector 103 and outputted to the signal PBA0-18. The signal PBA0-18 is outputted to the address signal ADDRESS of the RAM 5 and a read pulse is outputted to the read signal READ-. Thus, the print data is read from the start address Y and transferred to the print head 6. At the reading, the start address Y is stored in the buffer register 104 and the signals LA0-18 is set to Y. Since the selector 105 selects the signal PBA0-18, the signal SA0-18 is equal to the signal PBA0-18. The selector 16 selects the content YH of the horizontal offset register 102b but since the mask circuit is in the masked state, the output is 0. Since the inversion/non-inversion circuit 108 is in the non-inversion state, the output 0 of the mask circuit 107 is outputted as it is. Since the carry generation circuit 110 sets a carry, it has the same effect as that 1 is added to the adder 109. In Fig. 26, the signal with an add value represents a sum of the output of the inversion/non-inversion circuit 108 and the output of the carry control circuit 110. A sum of the signal SA0-18 and the add value is outputted to the signal NPA0-18. Since the add value is +1, the content of NPA0-18 is Y+1 which is fed back to the address register 101b. As a result, the content of the address register 101b is set to Y+1 at the next clock and the print data is read from the address Y+1 and transferred to the print head 4. The mask circuit 107 is set to the masked state by the setting of the stepwise pattern register 111 so that it outputs the content YH of the horizontal offset register 102b. Thus, the add value is +1+YH and the content of the address register 101b is set to Y+2+YH at the next clock. Accordingly, for the yellow print buffer, the print data read from the three bytes at the addresses Y, Y+1 and Y+2+YH is transferred to the print head. When the address Y+2+YH is read, the selector 105 selects the signal LA0-18 so that the signal SA0-18 assumes the content Y saved in the buffer register 104. The mask circuit 15 is set to the non-masked state to output YH and the carry control circuit 110 resets the carry so that the add value is set to YH. As a result, NPA0-18 is Y+YH which is set to the address register 101b. Similarly, the magenta, cyan and black print data are sequentially read. For the black, the 8-byte print data is transferred to the print head. Each time the transfer of each color print data is completed, the contents of the address registers 101a to 101d are set to the right adjacent address in each print buffer. Thus, the CPU 1 need not set the address during the scan of the carriage once it sets the start address prior to the scan of the carriage. In the reverse print mode, the contents of the address registers 101a to 101d may be set to the left adjacent address by using the inversion/non-inversion circuit 108. In the printer of the present embodiment, since the print head having the yellow, magenta, cyan and black nozzles arranged in line i used, the color printing is attained with an inexpensive construction. Since the print buffer independently controls the addresses of the print buffers of the respective colors, the CPU 1 may separately generate the print buffers of the respective colors in spite of the fact that the data transfer to the print head need be transferred in combination with the print data of the respective colors. Since the print buffer control circuit has the function of reading the print buffer in accordance with the stepwise dot array shape formed by the print head, the CPU 1 may generate the print data in the print buffer without knowing the dot array shape and the load to the CPU 1 is reduced. In the printer of the present embodiment, the same process as that of the Embodiment 1 may be attained by using only the black print buffer so that a monochrome head may be used. By using a cartridge print head and making either one of the color head and the monochrome head mountable, an optimum control may be attained for a color printer and a monochrome printer. By assigning an identification number to each of the heads and discriminating the type of head at the printer, the control of the printer may be automatically changed depending on the type of printer mounted. The present invention is particularly suitable for use in an ink jet recording head and recording apparatus wherein thermal energy generated by an electrothermal transducer, a laser beam or the like is used to cause a change of state of the ink to eject or discharge the ink. This is because the high density of the picture elements and the high resolution of the recording are possible. The ink jet recording apparatus may be used as an output terminal of an information processing apparatus such as a computer or the like, as a copying apparatus combined with an image reader or the like, or as a facsimile machine having information sending and receiving functions. In accordance with the present invention, since the addresses of the print buffer are always continuous longitudinally, the data transfer from the edit buffer to the print buffer or from the print buffer to the print head is facilitated and the construction of the print buffer may be designed independently from the number of dots of the head so that the management of the print buffer is facilitated. Further, any position in the print buffer may be set as the print area and the freedom to set the print position is enhanced. Further, when the print head which permit the printing of two or more lines at a time is used, any carriage return pitch may be set and the overlapping of the edit buffers is permitted by the bit shift function by shifting the data when the data is transferred from the edit buffer to the print buffer. As used herein the terms 'H-V' and 'H-V converter mean horizontal-to-vertical and horizontal-to-vertical converter, respectively.

Claims: A printer for printing on a recording medium using a print head (16) having an array of recording elements, the printer comprising: scan means for scanning said print head in a scan direction different from the recording element array direction; memory means (5) comprising a plurality of memory areas representable as a two dimensional memory matrix consisting of lines of memory areas extending in first and second directions with consecutive memory areas in a line in the first direction having consecutive addresses and consecutive memory areas in a line in the second direction having addresses offset by a number corresponding to the number of memory areas in a line in the first direction; write means (1,4) for writing the print data to be printed in a scan of the recording medium into the memory means such that print data to be printed at successive locations on the print medium in a direction different from the scan direction are stored in memory areas having successive addresses in a line in the first direction and print data to be printed by a recording element at successive locations on the recording medium in the scan direction are stored in successive memory areas in a line in the second direction; and read means (1,4) for reading the print data to be printed in a scan of the recording medium from said memory means for supply to said print head; said printer being characterised in that : the number of memory areas in each of said lines in the first direction, and therefore the offset of the addresses of successive memory areas in the second direction, is greater than the number of recording elements of the printhead to be used for printing; and the read means is arranged to read the print data from the memory means such that the number of memory areas read in the first direction varies in dependence upon the number of recording elements of the printhead to be used for printing. A printer according to claim 1 wherein said read means (1,4) comprises means (1) for setting a start address, means (1) for setting an address offset, means (87, 88) for incrementing the start address to generate a transfer address, means (84) for determining a number of times of transfer, means (84, 87) for adding or subtracting, depending on the scan direction, the offset address to or from the start address when the addresses have been generated by the number of times of transfer and means (1) for reading the print data from said memory in accordance with the transfer address. A printer according to claim 2, wherein said read means (1, 4) further includes means (85) for setting whether to add the address offset or not when the transfer address is generated, and said transfer address generation means (87, 88) is arranged to increment the start address and to add the address offset thereto to generate the transfer address. A printer according to claim 1, 2 or 3 wherein said memory means (5) has at least twice the number of memory areas as the number of recording elements in the first direction. A printer according to claim 1 wherein said memory means (5) has a plurality of memory regions each comprising a plurality of memory areas representable as a two dimensional memory matrix consisting of lines of memory areas extending in first and second directions with consecutive memory areas in a line in the first direction having consecutive addresses and consecutive memory areas in a line in the second direction having addresses offset by a number corresponding to the number of memory areas in a line in the first direction; said write means (1,4) is arranged to write the print data to be printed in a scan of the recording medium into the plurality of regions of the memory means such that, for each memory region, print data to be printed at successive locations on the print medium in a direction different from the scan direction is stored in memory areas having successive addresses in a line in the first direction and print data to be printed by a recording element at successive locations on the recording medium in the scan direction is stored in successive memory areas in a line in the second direction; and wherein the read means (1,4) is arranged to read the print data written into each memory region from said memory means for supply to said print head, the printer further includes means for retrieving data defining the number of recording elements per group of recording elements, which groups correspond to respective ones of the memory regions, the offset of addresses of memory areas in the second direction in each memory region is greater than the number of recording elements in the corresponding group, and the read means is arranged to read the print data from each memory region such that the number of memory areas read in the first direction in each memory region varies in dependance upon said data defining the number of recording elements per group of recording elements. A printer according to claim 5 wherein said read means (1, 4) includes means (1) for setting a plurality of start addresses, means (1) for setting a plurality of address offsets, means (1) for selecting one of the start addresses, means (1) for selecting the address offset corresponding to the selected start address, means (1) for determining the order of selection of the start address and the address offset, means (109, 110) for incrementing the selected start address to generate a transfer address, means (84) for determining a number of times of transfer, means (105, 109) for adding or subtracting, depending on the scan direction, the offset address to or from the start address when the addresses have been generated by the number of times of transfer and means (1) for reading the print data from said memory means (5) in accordance with the transfer address. A printer according to claim 6, wherein said read means (1, 4) further includes means (107) for setting whether to add the address offset or not when the transfer address is generated, and said transfer address generation means (109, 110) is arranged to increment the selected start address and to add the selected address offset thereto to generate the transfer address. A printer according to claim 6 or 7, comprising a printer head having its recording elements grouped into a plurality of groups for recording different colors. A printer according to claim 8, wherein the region of said memory means (5) are associated with the groups of recording elements of said print head. A printer according to claim 9, wherein each of the regions of said memory means (5) has at least two times as many areas as the number of recording elements of the corresponding group in the first direction. A printer according to any preceding claim, further comprising: set means (1) for setting a shift amount of the print data; shift means (23) for shifting the input print data by the amount set by said set means (1); save means (27) for saving the print data overflown by the shift of said shift means (23); combine means (29) for combining the print data saved in said save means (27) with the next input print data shifted by said shift means (23); modify means (29) for modifying the data read from said memory means (5) with the combined data combined by said combine means (29); and wherein said write means (1, 4) is arranged to write the data modified by said modify means (29) into said memory means. A printer according to any one of the preceding claims, wherein said write means (1,4) is arranged to write new print data into an area of said memory means (5) where print data read out by said read means (1, 4) was written. A printer according to claim 12, wherein said write means is arranged to write new print data, representing pixels to be recorded adjacent, in said direction different from the scan direction, to pixels represented by print data previously written into said memory area, into memory areas having successive addresses to said previously written print data. A printer according to any one of claims 1 to 13, comprising drive means for driving said print head in time division fashion. A printer according to claim 14, further comprising a plurality of mode set means (1) for driving said print head in the time division fashion in a plurality of manners and for determining whether to add the address offset or not at the generation of the transfer address and means for setting the add mode of the address offset to comply with the time division drive manner of said print head. A printer according to any one of the preceding claims, further comprising means for mounting a plurality of types of print heads and means for determining the type of the mounted print head, and means for changing the content of the print data to be transferred to said print head in accordance with the type of the mounted print head. A printer according to any one of the preceding claims, comprising a print head arranged to discharge ink. A printer according to any one of the preceding claims, further comprising feed means for feeding a record medium to be recorded by said print head. A copy apparatus comprising a printer according to any one of claims 1 to 18 . A facsimile apparatus comprising a printer according to any one of claims 1 to 18. A computer terminal comprising a printer according to any one of claims 1 to 18. A printing method for printing on a recording medium by scanning a print head (16) having an array of recording elements in a scan direction different from the recording element array direction using a scan means, the method comprising the steps of: providing memory means (5) comprising a plurality of memory areas representable as a two dimensional memory matrix consisting of lines of memory areas extending in first and second directions with consecutive memory areas in a line in the first direction having consecutive addresses and consecutive memory areas in a line in the second direction having addresses offset by a number corresponding to the number of memory areas in a line in the first direction; writing the print data to be printed in a scan of the recording medium into the memory means (5) such that print data to be printed at successive locations on the print medium in a direction different from the scan direction is stored in memory areas having successive addresses in a line in the first direction and print data to be printed by a recording element at successive locations on the recording medium in the scan direction is stored in successive memory areas in a line in the second direction; and reading print data from said memory means for supply to said print head, characterised in that : the offset of addresses of memory areas in the second direction, is greater than the number of recording elements of the printhead to be used for printing; and the reading step is performed such that the number of memory areas read in the first direction varies in dependence upon the number of recording elements of the printhead to be used for printing. A printing method according to claim 22, wherein said memory means (5) has at least twice as many memory areas in the first direction as the number of said recording elements. A printing method according to claim 23, further comprising the step of releasing the area of said memory means (5) in which the print data read in said reading step has been stored and coupling the released area to a vacant area of said memory means (5). A printing method according to claims 22, 23 or 24, wherein said writing step writes new print data into a memory area from which print data is read in said reading step. A printing method according to claim 25, wherein said writing step writes new print data representing pixels to be recorded adjacent, in said direction different from the scan direction, to pixels represented by print data previously written into said memory area, into memory areas having successive addresses to said previously written print data. A printing method according to any one of claims 22 to 26 wherein said print head discharges ink.

Inventors: NAKATA KAZUHIRO, NAKATA, KAZUHIRO, NAKATA, KAZUHIRO, C/O CANON K.K.
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1995
Main classification: G06K15
IPC codes: B41J3, G06K15, B41J2, G06F3, H04N1, G06F12, B41J5