Printer control system for controlling movement of print head between successive lines of print

Abstract: The present invention relates to a printer control system of the type which comprises, means for receiving sets of print data, each set representing a line of characters to be printed, printing means for performing printing operations in order to print each line of characters on a print medium in accordance with the corresponding set of print data, print data analysing means for analysing each set of data so as to generate print instructions for the printing means, and moving means for moving the printing means a predetermined amount relative to the print medium between successive printing operations in order to print successive lines of characters. According to the invention the printer control system is characterised in that the print data analysing means detects, in any set of print data, data representing a character which is too large to be printed in one printing operation, and the moving means is responsive to the detection of such large character data to move the printing means relative to the print medium a selected distance less than the predetermined distance in order for the printing means to be able to complete the printing of the larger character by an additional printing operation before starting to print the next line of characters.

Description: This invention relates to a printer control system for controlling the movement of the print head of a printer between successive lines of print in order to provide for printing of extra large characters. In the prior art are dot matrix printers such as the IBM Personal Computer Graphics Printer and the IBM Proprinter (IBM is a Registered Trade Mark of International Business Machines Corporation) having a print head with a vertical column of 8 print wires or pins. As each wire is fired or activated, a dot will be printed on the print medium being printed. Other similar printers may have a different number of print wires. As will be explained in greater detail below, a common deficiency among many of these printers is the absence of a reverse indexing feature. This means that the platen is only rotatable in one direction during printing in order to position the paper for printing successive lines of print. With only 8 pins in the print head and with many characters being more than 8 dots in height, multiple passes are required for printing larger characters, or characters having a portion extending below the area covered in one print pass. Consider the lower case "j" in Fig. 1 of the accompanying drawings. All but one dot is printed on the first pass of the print heads. Then the platen is rotated 8 dot positions and a second pass of the print head is made with the top wire on the print head activated or fired for printing the last dot to complete the character. The above arrangement is fairly straightforward and no real problems are encountered for printing a single character. During each print head pass, all portions of all characters encompassed by the 8 dots will be printed for a given print line. That is, it may only take one print head pass to print all characters on a print line, or it may take multiple passes to complete some or all of the characters on a print line. This is irrespective of whether some or all of the characters have portions extending above or below a printing base line. A base line is a line, usually imaginary, upon which the majority of characters will sit. A print line will encompass all characters between two successive carriage return codes in the print data stream. With many printers allowing a line spacing of as little as a fraction of a dot spacing, the absence of a reverse indexing capability can present a major problem. Line spacing is the distance between the top of one line and the top of the next line. Refer next to Fig. 2 for an appreciation of this problem. The lower case "j", exists on one print line and since its dot pattern descends to the ninth row, it will require a second pass of the print head to be completely printed. If the line spacing is specified to be 4 dot spacings, printing of the next print line at the specified line spacing is impossible without reverse indexing. This is because the platen has already been rotated an amount equivalent to 8 dots to complete the "j", and this is 4 more dots than the line spacing. US-A-4 521 123 discloses a printer control system including printing means for printing sets of data in print lines in successive main printing operations. The control system detects data representing a character which is too large to be printed in one printing operation and moves the printing means by a fixed amount so that an additional printing operation is performed to print the portions of the large character which have not been printed in the main printing operation. The object of the present invention is to provide an improved printer control system which enables extra large characters to be printed without having to move the print head of the printer relative to the print medium in the direction opposite to the normal. The present invention relates to a printer control system of the type which comprises means for receiving sets of print data, each set representing a line of characters to be printed, printing means for performing printing operations in order to print each line of characters on a print medium in accordance with the corresponding set of print data, print data analysing means for analysing each set of data so as to generate print instructions for the printing means and for detecting, in any set of print data, data representing any characters which are too large to be printed in one printing operation, and moving means for moving the printing means a predetermined distance relative to the print medium between successive printing operations in order to print successive lines of characters. According to the invention the printer control system is characterised in that the moving means is responsive to the detection of such large character data to move the printing means relative to the print medium a selected variable distance less than the predetermined distance and depending on the size of the largest of the large characters in order for the printing means to be able to complete the printing of the large characters by an additional printing operation before starting to print the next line of characters. The advantages of this arrangement are that printing with very narrow line spacing is efficiently managed, and the need for reverse indexing capabilities is greatly reduced. In order that the invention may be more readily understood an embodiment will now be described with reference to the accompanying drawings, in which: Fig. 1 illustrates prior art full print head height indexing to complete printing of a character on a print line, Fig. 2 illustrates a prior art problem of a subsequent print line being located above a previously indexed position, Fig. 3 illustrates platen indexing in accordance with the invention only to the extent necessary to complete printing of a character on a line, a Fig. 4 is a flow chart illustrating the operations performed to cause indexing as illustrated in Fig. 3. For a clearer understanding of the invention, reference is first made to Fig. 3. On the first or current pass of the print head, as with Fig. 1, all but one of the dots for "j" are printed. In order to print the extra dot, an additional printing operation is necessary. For this additional printing operation, rather than index the platen through a distance equal to the full height of the head or 8 dots as with the prior art of Fig. 1, the platen is only indexed through a distance equivalent to the vertical spacing between adjacent lines of data. With this amount of indexing, there must be a shifting of the remainder of the dot pattern to be printed from the top of the print head as in Fig. 1, to the bottom of the print head before the additional printing operation can take place. Refer to the subsequent pass #2 in Fig. 3. Thereafter, if indexing for the next print line is to be the same as in Fig. 1, this can readily be accomplished since there has been no overshooting of the next print line. The amount of indexing increment for completing the "j" on the second pass is subtracted from the specified line spacing, and the platen is indexed the remaining amount. Refer to the head position for the next line in Fig. 3. By indexing in the above described manner, the chances that the print head will be unable to print the next line at the proper location will be minimised. Set out below is an illustration of a routine that may be incorporated into a program that is responsible for controlling the printer to the extent of specifying the specific dot placements on the page to create the likeness of a particular character. This routine is in programming design language from which both source code and machine code are derivable. Refer next to the flow chart of Fig. 4 in conjunction with the above programming design language routine. Defined are the operations performed by the printer control program to minimise the potential of the print head not being able to print a subsequent line at an appropriate location. While the first or current print head pass is made along a line to be printed, a determination is made as to the maximum number of vertical dots needed to print all characters in the line. This determination is indicated by block 10. If the maximum is 8 dots or less as indicated by block 12, all the print data will be printed on one pass. In this case, as indicated by block 11, when the printing has been completed the platen is rotated by the specified line spacing amount and printing continues for the next print line. If the maximum is more than 8 dots, at least a second printing pass is required. The amount of required platen rotation is calculated by subtracting 8 from the maximum as indicated by block 13. Eight dots are subtracted since 8 dots have already been printed on the first pass. The result is the minimum number of dot positions that the platen must be rotated in order to be able to print the remaining dots in an additional printing operation. The platen is then rotated this minimum number of dot positions as indicated by block 14. Then for every column of dots printed on the second pass, the data is shifted to the bottommost pins on the print head as indicated by block 16 for the additional printing operation. The shift amount is calculated by subtracting the platen rotation amount from 8 as indicated by block 15. Finally, after all the characters in the line have been completely printed, the platen is indexed to the proper position to start the next line. The amount of platen indexing is the specified line spacing minus the amount of indexing which has clearly taken place for the subsequent pass or passes as indicated by block 17. It is to be appreciated that for full 8 dot subsequent passes, shifting is unnecessary and printing can be handled in a normal manner. In summary, a unique method of managing multi-pass printing in a narrow line spacing environment is provided in order to efficiently handle a wide range of printing desires and reduce the need for expensive reverse indexing capabilities. On any subsequent pass for printing a line, the platen is indexed only to the extent necessary for the print head to complete the printing of all the characters in the line.

Claims: A printer control system comprising means for receiving sets of print data, each set representing a line of characters to be printed, printing means for performing printing operations in order to print each line of characters on a print medium in accordance with the corresponding set of print data, print data analysing means for analysing each set of data so as to generate print instructions for said printing means and for detecting, in any set of print data, data representing any characters which are too large to be printed in one printing operation, and moving means for moving said printing means a predetermined distance relative to said print medium between successive printing operations in order to print successive lines of characters, characterised in that said moving means is responsive to the detection of such large character data to move said printing means relative to said print medium a selected variable distance less than said predetermined distance and depending on the size of the largest of said large character in order for the printing means to be able to complete the printing of the large characters by an additional printing operation before starting to print the next line of characters. A printer control system as claimed in claim 1 characterised in that said moving means moves said printing means relative to said print medium through a distance determined by subtracting said selected distance from said predetermined distance in order to move said printing means into the correct position for performing the next printing operation after performing said additional printing operation.

Inventors: MALCOLM JERRY WALTER, MALCOLM, JERRY WALTER
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1987
Main classification: B41J2
IPC codes: B41J2