APPARATUS AND METHOD FOR DISPLAYING DOT MATRIX CHARACTERS IN ENHANCED FORM

Abstract: The present invention relates to apparatus, for displaying dot matrix characters, formed from selected binary data ele­ ments each representing either a dot or a blank, of the type which comprises storage means (16, 72) for storing sets of binary data elements, each set defining the shape of a respec­ tive character, logic means (73) for performing logical opera­ tions on each set of stored binary elements to generate associ­ ated additional binary data elements which can be used to enhance the rezpective character selectively, and display means (14, 75) for displaying each character using the associ­ ated stored binary data elements and associated additional binary data elements in order to display the character in an enhanced form (Figures 3, 7). Apparatus in accordance with the invention is characte­ rised in that the display means uses the generated additional binary data elements together with the stored binary data elements to increase the density of at least one of the vertical, diagonal and horizontal linear components of the character being displayed along the linear direction thereof. According to a preferred embodiment of the invention the display means uses the generated additional binary data ele­ ments together with the stored binary data elements to in­ crease the thickness of at least one of the vertical, diagonal and horizontal linear components of the character being dis­ played in a direction generally orthogonal to the linear direc­ tion thereof. The invention also relates to a method of displaying dot matrix characters in an enhanced form using apparatus as above.

Description: The present invention relates to apparatus and a method for displaying dot matrix characters using stored sets of binary data elements, each representing either a dot or a blank, together with additional binary data elements generated by performing logical operations on the stored data elements in order to display each character in an enhanced form. EP-A-159895 describes apparatus and a method for displaying characters which have been enhanced to only a limited extent. In a dot matrix display apparatus, for example a dot matrix printer, each character is formed from a matrix of dots and blanks which together define the character. On close examination, the dots are arranged in a matrix of positions and are typically arranged in horizontal rows and vertical columns that are adjacent, parallel, and evenly spaced. The intersections of the rows and columns determine the locations of the dots and blanks, and the dots may overlap, depending upon the spacing between matrix intersections and the dot diameter. Each dot or blank is represented in the apparatus by a binary data element with a binary 1 typically representing a dot and a binary 0 representing a blank. Data representing at least one entire character set is usually stored in the apparatus, and it includes numerals, upper and lower case letters, punctuation, and other commonly used symbols. Depending upon the type of apparatus displaying the character, the quality of the character and the speed of displaying may usually be selected as desired, within the capabilities of the display apparatus and associated data processing apparatus or computer. Each type of display apparatus, such as a dot matrix printer, electrostatic printer, ink jet printer, cathode-ray tube, etc., has unique physical constraints imposed by its mechanical or electrical capabilities. This usually affects the dot-to-dot spacing between locations in the matrix, as well as the speed at which the dots may be displayed. The associated data processing apparatus typically stores the sets of binary data elements defining the shape of the respective characters, performs any necessary logical operations on the stored data to provide the desired density or thickness of the displayed character, and governs the physical operations of the print (or other display apparatus). It is desirable for a dot matrix printer to print characters in more than one density and thickness. It is also desirable to print at a high speed to provide a high volume output, with a relatively low quality printed character being acceptable, and to alternatively print a relatively high quality character, with a low print speed being acceptable. Printing at a high speed with a low quality printed character is commonly performed when a large volume of output is required, as in a data processing environment. A high speed of printing may be achieved by printing only a comparatively small number of the binary character data elements for each character spaced by about one dot width, resulting in the printing of characters of a lower print quality. On the other hand, high quality printed characters are preferred in a word processing environment or office environment, as well as the ability to selectively enlarge or enhance all or some of the characters. A higher quality character may be achieved by printing a relatively high number of the binary data elements for each character and spacing them by less than one dot width so that they overlap. Lower print speed and volume of output may result, but this is likely to meet the output demands of such an environment. To print characters of different print qualities, it is necessary to provide data for each type of character quality. It is known to store a single set of binary data elements representing each character in a single print quality, and to duplicate by rote this basic data to obtain additional binary data elements for printing a character supposedly having a higher quality. This resulted in "stair-step" diagonals and seriously degraded the quality of the character and its legibility. These poor quality characters necessitated some type of smoothing operation if the stair-stepping effect was to be reduced, but these operations are usually very complex and expensive. Related problems include a destruction of the symmetry of both individual characters and groupings of characters to make words or phrases. For instance, the spacing between the linear components of a character may be degraded, and the base line for a character set may be lost, or widened to an unacceptable degree. More specifically, some printers that provided characters of "improved" quality would print overlapping characters by using the same stored data to print the same character a second time one-half dot to the right. A second option was to print the same character a second time one-half dot below the first character. A third option was to combine both of the above methods and print the character still another time to the right and down, thus printing four overlapping dots for each binary data element representing the stored character. The first option increased the density of the horizontal lines and added thickness to the vertical lines. The second option increased the density of the vertical lines and added thickness to the horizontal lines. The third option increased the density and added thickness to both the horizontal and the vertical lines. However, none of the options uniformly increased the density or thickness of the diagonal lines. Indeed, these options caused unsightly stair-stepping and in most cases aggravated the discontinuity of the diagonal lines. Thus, these options do not provide a satisfactory solution because of distortion, non-uniform increases in density, and the distracting stair-step effect. An alternative to simply duplicating the stored data to enhance a single character is to store all of the binary data representing the multiplicity of sets of all improved quality characters. However, the associated increases in the amount of data storage are usually prohibitive in size and cost. Low cost printers that employ inexpensive and relatively simple data processing components do not include the capabilities to store additional sets of enhanced characters, or process the complex algorithms which have been necessary in the past to enhance a character and smooth it to maintain its legibility. The object of the present invention is to provide an improved apparatus and method for displaying dot matrix characters in an enhanced form. From US 4129860, the closest prior art document, there is known a printing apparatus including a storage means, logic means and display means as set out in the precharacterising portion of claim 1. US 4081799, EP 0132415 and EP 014406 disclose other prior art printing or display apparatus. The present invention provides an apparatus and a method for printing or displaying dot matrix characters as defined in the appended claims. The present invention is characterised in that said logic means comprises means for defining a reference matrix formed from a subset of said set of stored binary data elements, means for adding predetermined blank binary data elements to said defined reference matrix between the binary data elements of said set of stored binary data elements to form an expanded reference matrix, and comparison means for comparing selected portions of said expanded reference matrix including the additional blank binary data elements with corresponding selected portions of a predetermined matrix and converting selected additional blank binary data elements to dots when said reference matrix matches said predetermined matrix in order to generate additional binary data elements for use in increasing the density of at least one of the vertical, horizontal or diagonal components of the character to be displayed. The invention also relates to a method of displaying dot matrix characters in an enhanced form using apparatus as above. The term diagonal as used herein refers to any line that is not either horizontal or vertical. Similarly, while reference is made to horizontal rows and vertical columns as a matter of convenience, the direction or designation of a line of binary data elements may be changed as necessary or desirable to suit a particular application. The invention is applicable to any data supplied, whether it represents characters, graphics, line drawings, geometrical shapes, etc., since the binary data is considered as a collection of lines. Apparatus according to the present invention displays selectively enhanced dot matrix characters using binary data elements. Sets of binary data elements are stored, and each set defines the shape of a respective character. Logical operations are performed on a set of the stored binary data elements to generate additional binary data elements which can be used to enhance the character either by thickening it, or defining it more densely, or both, in at least one of the vertical, diagonal, and horizontal directions. The additional binary data elements are used together with the stored binary data elements to display characters in which the linear components may be selectively thickened in a direction orthogonal to their linear direction and selectively made more dense along their length. Depending upon the nature of the character to be displayed, the data representing the stored character may be processed to selectively thicken and make more dense less than all of the vertical, horizontal, and diagonal linear components that together form the dot matrix character. 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 is a schematic diagram illustrating a dot matrix printer of the type with which apparatus and a method in accordance with the present invention can be used, Fig. 2 is a schematic diagram illustrating the impacting end of a typical 7-wire print head as may be used in the printer of Fig. 1 Fig. 3 is a schematic diagram illustrating the movement of the print head of Fig. 2 to print a lower quality dot matrix character as illustrated. Fig. 4 illustrates the character of Fig. 3 with the identical character printed a second time one-half dot to the right, as was done in the prior art. Fig. 5 illustrates the character of Fig. 3 with the identical character printed a second time one-half dot below, as was done in the prior art. Fig. 6 illustrates the character of Fig. 3 with the identical character printed one-half dot below, one-half dot to the right, and again to the right and down, as was done in the prior art, Fig. 7 illustrates a character enhanced according to the present invention. Fig. 8 illustrates diagrammatically a set of stored binary data elements defining the character of Fig. 7 with the data in the vertical and diagonal directions being of a lower density and the data in the horizontal direction being of a higher density. Figure 9 illustrates diagrammatically a reference matrix used to enhance a character according to the present invention. The ten matrix positions A-J defined by the intersections of the rows and columns correspond to the stored binary data elements defining the shape of the character. The horizontal rows are each vertically spaced by one dot width and the vertical columns are each spaced by one-half dot width. Figs. 10, 11 and 12 illustrate diagrammatically reference matrices with additional binary data elements added at locations between the locations of the already stored binary data elements. The matrix positions A-J defined by the intersections of the rows and columns correspond to the stored binary data elements defining the shape of a character. The unlabelled matrix positions correspond to the added binary data elements. The horizontal rows are vertically spaced by one-half dot width and the vertical columns are spaced by one-quarter dot width. Figs. 13-15 illustrate how the base line is maintained for a dot matrix character enhanced according to the present invention. Fig. 16 is a flow chart representing the logical operations performed in accordance with the invention to enhance characters. Fig. 17 illustrates an alternative enhanced character. Fig. 18 illustrates diagrammatically apparatus for displaying enhanced dot matrix characters according to the present invention. An embodiment of the invention will now be described as applied to a printer of the type illustrated diagrammatically in Fig. 1, although it is to be understood that the invention can be implemented in other dot matrix display devices, such as those referred to above. A dot matrix printer typically includes a platen 1 over which a print medium 2 is moved by means of two tractor devices 3, 4. The print medium may be, for example, a continuous web of paper having holes 7 parallel to the edges thereof. Each tractor device includes a wheel or belt 5 provided with protruding pins 6 on its outer surface. The pins 6 engage the holes 7 formed in the web to provide a positive drive. The two tractor wheels 5 are mounted on a common shaft 8 which may be rotated as required by a motor 9 to advance the medium over the platen. The motor 9 is typically controlled by a print medium controller (not illustrated). The printer includes a traversing print head 11 which is mounted on a support 12 extending over the platen 1 so that the medium 2 passes between the platen and the print head 11. The print head 11 can be moved along support 12 by motor 13 by way of a belt or a rotating threaded shaft. The combined movement of the paper and movement of the print head allows the print head to reach almost any point on the surface of the medium 2. The impacting portion of the print head 11, as illustrated in Fig. 2, is formed in part with a column of seven printing elements 14 arranged in a 1 by 7 vertically oriented matrix and supported in a body portion 15. The elements 14 are typically wires which can be selectively moved axially by, for example, an electromagnet. Each wire is individually linked to an electromagnet so that it may be individually moved axially as necessary or desirable in timed relation with the movement of the print head 11. The printing wires press an inked ribbon onto the medium 2 to perform the printing operation. As the print head 11 traverses the width of the paper along the length of the support 12, the data defining the characters is provided to the electromagnets controlling the printing wires in a coordinated, time sequence to move them axially as the print head passes through the positions at which each character is to be printed. The dotted lines 19 - 21 in Fig. 3 help illustrate, respectively, the horizontal, vertical and diagonal linear components of the character. All characters may be defined by such components, with the diagonal component being any linear component that is not horizontal or vertical. These component lines 19-21 are not displayed when the character is printed. For the purposes of this description, a full diagonal line is one that falls midway between a horizontal line and a vertical line, i.e. at about a 45° angle. A half diagonal line is one that falls midway between a full diagonal line and either a horizontal line or a vertical line, i.e. about 22-1/2° displaced from either the horizontal line or the vertical line. Referring still to Fig. 3, as the print head moves literally, as shown by arrow 18, individual wires in the print head are moved axially at appropriate times to print dots in columns that define the adjacent vertical features of each character. As the print head 11 moves from left to right the elements 14 are selectively operated to print the complete left vertical feature of each character first, then to print the succeeding vertical features column by column, and finally to print the least right vertical feature. This description refers to processing the data and printing the characters from left to right, but it is to be understood that the data may be processed in a different order and the characters may be printed from right to left. The size and position of each character and the distance between adjacent dots in the horizontal direction are controlled by varying the speed of movement of the head in relation to the timing of the operation of the printing elements. The spacing of the dots in the vertical direction corresponds to the spacing of the printing elements 14. Specifically, as the print head 11 reaches the position of column 1 for the character "letter Z" as illustrated in Fig. 3, print wires 1, 6 and 7 are moved axially to strike the ribbon against the print medium, printing the three dots for column 1, and are then retracted. As the print head approaches the position of column 2, print wires 1, 5, and 7 are moved, and this operation continues as the print head moves through the positions of columns 1 to 5 to print the entire character as illustrated. In a practical embodiment of the invention, each of the printing elements 14 in the print head 11 prints a circular dot which has a diameter of about 1/60 inch, and the spacing between the centres of adjacent elements is substantially equal to the diameter of each dot so that, in the vertical direction, adjacent printed dots will just touch. To print a character of a lower quality at a high speed, the speed of movement of the print head 11 across the print medium 2 and the frequency of operation of the printing elements 14 are coordinated so that adjacent columns of dots in the horizontal direction have a spacing of 1/60 inch between centres. Such a character is illustrated in Fig. 3. To print characters, it is necessary to store or have otherwise available sets of binary data elements, with each set defining the shape of a respective character. The binary data elements are processed as necessary to print the dots defining the character. Fig. 8 illustrates the logical ones and logical zeros stored in storage device 16 that represent the binary data elements defining the shape of the letter Z. There are nine vertical columns and seven horizontal rows defining each character with the nine vertical columns being designated by the odd numbers 1, 3, 5, 7, 9, 11, 13, 15 and 17. The even numbers 2, 4, 6, 8, 10, 12, 14 and 16 represent the columns of blank binary data elements that are added to enhance the character, as described later herein, but they are not a part of the stored binary data elements. Each character is defined with a relatively high density in the horizontal direction and a relatively low density in the vertical and diagonal directions. The data from the storage device 16 is read out column-by-column, and processed as necessary, and the processed data from each column is used to sequentially control the column of printing elements 14 in the print head 11 as it moves across the printing medium. When a binary 1 is stored in a data storage location, the corresponding printing element is operated to imprint a dot on the printing medium, and when a binary 0 is stored the printing element is not operated. To print a data processing or lower quality character every column of data is considered, but consecutive dots in a row are eliminated and not printed. Far example, for the character shown in Fig. 3, which has a relatively low print density in the horizontal, vertical, and diagonal directions, the data elements in vertical columns 3, 7, 11 and 15 of the storage device 16 are not used. Thus, for this example, the data elements in the columns designated by an asterisk at the top are deleted and only the data elements in the remaining odd numbered columns 1, 5, 9, 13 and 17 are used to print the character. As noted earlier, the character is made up of horizontal, vertical, and diagonal components, as illustrated in Fig. 3. According to the present invention, each character is enhanced by increasing the width of a linear component in a direction generally orthogonal to its length. The density of each of the linear components is increased to darken the appearance of the character by printing dots between the dots of the character printed at a relatively low quality, as illustrated in Fig. 3. Fig. 4 illustrated a prior art arrangement in which the data used to print the character of Fig. 3 is used to print the character a second time in a position displaced to the right of the first printing of the character by a distance equal to half the width of a dot. This increases the density of the horizontal linear components of the character and adds thickness to the vertical linear components of the character. However, it does not increase the density of the diagonal or vertical linear components, nor does it thicken the horizontal or diagonal linear components. Moreover, it aggravates the stair-stepping problem and highlights the lack of uniform density and thickness of the diagonal linear components. Fig. 5 illustrates another prior art arrangement in which the data used to print the character of Fig. 3 is used to print the character a second time in a position displaced below the first printing of the character by a distance equal to half the width of a dot. This increases the density of the vertical components of the character and adds thickness to the horizontal components of the character. However, it does not increase the density of the horizontal or diagonal components, nor does it increase the thickness of the vertical or diagonal components. Further, as before, it aggravates the stair-stepping problem and again highlights the lack of uniform density and thickness of the diagonal linear components. Fig. 6 illustrates a further prior art arrangement which combines the operations illustrated in Figs. 4 and 5 and further uses the data used to print the character of Fig. 3 to print the character a fourth time in a position displaced to the right and down from the first printing of the character by distances equal to half the width of a dot. This increases the density and thickness the horizontal and vertical components, but still aggravates the stair-step problem of the diagonal components and highlights the lack of uniform density and thickness of the diagonal components. In none of the instances illustrated in Figs. 4 - 6 are the stored binary data elements logically processed to generate additional binary data elements to enhance the character. Fig. 7 illustrates the character of Fig. 3 fully enhanced according to the present invention. The density is uniformly increased for each of the horizontal, vertical, and diagonal components of the character. Similarly, each of the linear components is uniformly thickened by increasing the width of the component in a direction generally orthogonal to its length. The data for printing such a character is a combination of the stored binary data elements and additional binary data elements derived therefrom. While a specific embodiment of the invention is described in connection with a seven wire print head for printing a typical 5 column by 7 row character, it is to be understood that different print mechanisms and characters could alternatively be used with the invention. Depending upon the physical limitations of each printer as to size and speed, it may be necessary for the print head to make multiple passes, or move at lower translational speeds, to print an enhanced character. As noted earlier, the print head is controlled by binary data elements which control the operation of the individual print wires as the print head moves across the print medium. These binary data elements are logically processed as necessary to define a matrix of binary data elements to print the desired character. Beginning with the binary data elements as stored in memory 16, which would result in a character having a relatively high density in the horizontal direction and a relatively low density in the vertical and diagonal directions being printed, logical operations are performed on the stored binary data elements to generate additional binary data elements. The additional binary data elements are assumed to be blanks, and selected ones are converted to dots. The additional binary data elements are then combined with stored binary data elements to be used to print the character in an enhanced state with the linear components thereof being thickened and made more dense as desirable. In performing the logical operations to generate the additional binary data elements, a reference matrix, such as illustrated in Fig. 9, is defined which substantially comprises a subset of the set of the binary data elements stored in the storage device 16. The horizontal rows of the reference matrix are spaced by 1 dot width and the vertical columns are spaced by one-half dot width. The intersections, labelled A-J, represent the ten stored binary data elements needed for the present invention. Blank binary data elements are then added to the reference matrix at locations horizontally, vertically and diagonally between the locations of adjacent stored binary data elements, as illustrated in Figs. 10-12. The horizontal rows are spaced by one-half dot width and the vertical columns are spaced by one-fourth dot width. To determine whether each additional binary data element is to be converted to a dot, the reference matrix with the additional binary data elements is compared with a predetermined matrix, and to the extent that the reference matrix with the additional binary data elements matches the predetermined matrix, the additional binary data elements are converted to dots. The data is then printed out. A. First Pass Printing This embodiment requires two passes of the print head to print the enhanced character. The first pass prints a portion of the dots, and the paper is incremented vertically by one-half dot, and then the second pass prints the remainder of the dots. The first pass prints a character with the vertical and diagonal components thickened and the density increased for the horizontal components, as is illustrated in Fig. 4. The first pass utilises selected stored binary data elements from the storage device 16, with one logical operation. Printing one column at a time, the preceding vertical column of stored binary data elements from memory device 16 is logically ORed with the current vertical column of stored binary data elements and the resulting data is printed out. This is the equivalent of printing the character normally, as in Fig. 1, and then printing the character again one-half dot to the right, as in Fig. 4. This first pass is typically printed at one-half the normal print head speed so that the dots can be printed to overlap by one-half dot. The logical operation of ORing together adjacent columns is represented as follows: Ca(i) = 0 where i = Even column numbers MATRIX 1 Ca(i) = C(i) + C(i-2) where i = Odd column numbers MATRIX 2 where Ca(i) = Column of binary data elements to be printed C(i) = Column of stored binary data elements. As noted earlier, since the first pass utilises only stored binary data elements, those positions representing additional binary elements, i,e. the binary data elements contained in the even numbered columns, are all deemed to be blanks and are represented by logical zeros. It is assumed that the two adjacent columns on the left and right boundaries of the matrix of stored binary data elements are columns of logical zeros representing blanks. B. Second Pass Printing The second pass required to print the character utilises data that is derived from the stored binary data elements. It is also printed at half speed with a column spacing of one-half dot width. Fig. 9 illustrates diagrammatically a sample reference matrix that substantially comprises a subset of the set of stored binary data elements. The intersections of the rows and columns define twelve matrix positions, but only the ten matrix positions labeled A-J are necessary to practise the present invention. Figs. 10, 11 and 12 illustrate diagrammatically the reference matrix of Fig. 9 with additional binary data elements added at locations between adjacent stored binary data elements, as represented by the unlabelled intersections. A row has been added between each of the existing rows and a column has been added between each of the existing columns. The spacing between each of the original rows and added rows is one-half dot width, and the spacing between each of the original columns and added columns is one-fourth dot width. Thus, the size of the reference matrix does not change, but the density of the data has been increased vertically, horizontally, and diagonally. The intersections of the added columns with the existing rows and added rows, and the added rows with the existing columns and added columns, represent the additional blank binary data elements which may later be converted to dots. Different stored binary data elements are used at the various positions in the reference matrix as the reference matrix is defined for different groups of the stored binary data elements. Since the reference matrix is defined for different groups of the stored binary data elements representing the stored character, some positions in the reference matrix may be outside the bounds of the stored binary data and, thus, represent binary data elements that form a portion of the vertical blank space between characters or the horizontal blank space between lines. Positions in the reference matrix representing these binary data elements outside the area defined by the stored binary data elements are designated as blanks, specifically the two columns to the left and two columns to the right of the stored binary data. To increase the density for the half diagonal lines, the status of the additional blank binary data elements is determined by comparing the reference matrix including the additional blank binary data elements with a predetermined matrix represented by the following: Cb(i) = A·D· B · C + A · D ·B·C MATRIX 3 where i = Even column numbers Cb(i) = Column of processed binary data elements. This expression is illustrated in Fig. 11 and states, using Boolean logic, that an additional blank binary data element is converted to a dot (binary 1) if the data elements in positions A and D are dots and the data elements in positions B and C are blanks (binary 0), or if the data elements in positions A and D are blanks and the data elements in positions B and C are dots. Otherwise, it remains a blank, unless another predetermined matrix causes it to be converted to a dot. Applying this predetermined matrix to the reference matrix including the additional blank binary data elements for the upper right portion of the data in Fig. 8, since positions A and B contain blanks, the data element in position X remains a blank. This predetermined matrix is applied for each additional blank binary data element in each column, and may be done by processing an entire column of binary data elements simultaneously, or in parallel. To increase the density for the full diagonal and vertical lines, and using the odd numbered columns, the status (logical 1 or logical 0) of each additional blank binary data element in the odd numbered columns is derived using the reference matrix illustrated in Fig. 10 in which X represents the additional binary data element whose status is being derived. The predetermined matrix is represented by the following: Cc(i) = B·D+ B · D ((A·F)·( G + C )·( E + J )+(C·E)·( A + I )· ( H + F)) where Cc(i) = Columns of processed binary data elements. The second pass also adds thickness to the horizontal lines of the character printing after the paper has been vertically advanced by one-half dot width. A blank binary data element is recognised as being part of a horizontal line if a data element representing a dot is stored in either of the horizontally adjacent positions. Thus, if there is a dot on either side of the dot in question, it is deemed part of a horizontal line. Referring to Fig. 12, the logical operation to recognise a dot as being part of a horizontal line is represented by the following: Horizontal line = B·(A+E) The dots that are part of the horizontal line are always printed in the odd columns since the requisite data is already stored with the horizontal lines having a higher density. Thus, the two preceding matrices may be combined to define a reference matrix represented as follows: Cd(i) = B·(A+E+D)+ B · D ·((A·F)·( G + C )·( E + J )+(C·E)·( A + I )·( H + F )) MATRIX 4 where i = Odd column numbers Cd(i) = Columns of processed binary data elements This matrix will increase the density for the diagonal and vertical lines and thicken the horizontal lines. To thicken the horizontal lines during the second pass, all of the additional binary data elements are printed again one-half dot position to the right. This is done in two steps. First, the previous odd column of binary data elements is logically ORed with the current odd column of binary data elements. Second, the previous even column of binary data elements is logically ORed with the current even column of binary data elements. Such a reference matrix is represented as follows: Ce(i) = Cb(i) + Cb(i-2) MATRIX 5 where i = even column numbers Ce(i) = Cd(i) + Cd(i-2) where i = Odd column numbers Ce(i) = Columns of processed binary data elements. When thickness is added to a character by converting the additional binary data elements to dots at each intersection of a horizontal line and a half diagonal line, more binary data elements may be converted to dots than are necessary. This increases the density of the linear components beyond that desired and, depending upon the mechanical and electrical characteristics of the printer, it may not be possible to print the overlapping dots at the spacing indicated. Thus, undesired consecutive dots are eliminated by comparing the reference matrix including the additional blnak binary data elements with a predetermined matrix represented by the following: Cf(i) = Ce(i) . Cf(i-1) MATRIX 6 where Cf(i) = Columns of binary data elements to be printed The bottom row of dots forming a character is referred to as the base line and is the lowermost horizontal line of the character. See dotted line 30 in Fig. 13. Since all of the horizontal lines of a character enhanced according to the present invention are thickened downwardly, those characters having a horizontal line feature extending along the base line are extended below the base line by half a dot, as illustrated by a comparison of the dotted line 30 of Fig. 13 with the dotted line 32 in Fig. 14. To maintain the same base line for all enhanced characters, all vertical and diagonal line features that extend to the base line are extended downwards by half a dot, as illustrated in Fig. 15 by adding the dots 34-37. To extend these line features each column forming the feature is logically ANDed with a hypothetical row of logical 1's (dots) immediately below the stored binary data elements as represented in memory device 16. Fig. 16 is a flow chart representing the logical operations performed in accordance with the invention to print enhanced characters that are thickened and have an increased density. Each character is derived from the binary data elements stored in memory device 16. At step 40 the sequencing parameter which causes the program to treat each column of binary data elements C(i) is set to its initial value. At step 41 the pass being made is determined as either the first pass, which uses only the stored binary data elements, or the second pass, which uses additional binary data elements that are derived from the stored binary data elements. For the first pass, the type of column is determined as either an even column, representing additional binary data elements (all of which are assumed to be blanks on the first pass) or an add column, representing stored binary data elements. The columns of the reference matrix including the additional blank binary data elements are then compared with Matrices 1-2 at steps 43 and 44 to determine which binary data elements are to be printed, as indicated at step 45. Returning to step 41 for the second pass, at step 50 a row of binary data elements representing dots is assumed to be immediately below each character feature extending to the line as represented by the stored binary data elements to provide the new base line 32 for the enhanced character as illustrated in Figs. 14 and 15. At step 51 the type of column is determined as being even or odd. The columns of the reference matrix including the additional blank binary data elements are then compared with matrices 3-6 to determine whether or not each additional binary data element should be converted to a dot or remain a blank, as represented by steps 52-55. This process is repeated on a column-by-column basis for each pass, as determined by a counting loop designated at steps 60-62. When all R columns have been printed, the routine ends. The character of Fig. 17 has a relatively high density in the horizontal, vertical and diagonal directions, with the vertical and diagonal linear components being thickened but not the horizontal linear components. Thus, using the same sets of stored binary data elements which define characters having a relatively high density in the horizontal direction and a relatively low density in the vertical and diagonal directions (i.e., as in Fig. 8), such a character may be printed by following the logical operations described in the flow chart of Fig. 16, but by eliminating step 50 of assuming a row of dots under the stored data and logically ANDing the assumed row with each calculated column of dots, and by modifying the predetermined Matrix 4 to be represented as follows: Cg(i) = B·D+ B · D ·((A·F)·( G + C )·( E + J )+(C·E)·( A + I )·( H + F )) MATRIX 4A where i = Odd column numbers Cg(i) = Column of processed binary data elements. (Same as Cc(i)) Other variations may be printed by modifying the various predetermined matrices or eliminating certain ones. Figure 18 illustrates diagrammatically apparatus for printing enhanced dot matrix characters that may be selectively thickened or selectively made more dense in accordance with the present invention. The circuitry includes a control unit 71, a character data storage means 72, a logic unit 73, a print medium controller 74 connected to the tractor motor 9, a print head movement controller 76 attached to the print head motor 13, and a print head actuator 75 connected to the print head 15 to control the actuation of each of the individual print wires 14. The sets of binary data elements are stored in the character data storage means 72, which includes a plurality of storage devices 16, as illustrated in Fig. 8. Binary data representing either a dot or a blank in a matrix of positions arranged in horizontal rows and vertical columns is stored in each of the storage devices 16, and together the stored data represents a character. The logic unit 73 includes means for performing logical operations on the selected sets of binary data elements representing the various characters. It may, among other things, address the appropriate data representing the desired character, read out the data representing the desired character, define a reference matrix for each character, expand the reference matrix by adding blank binary data elements, compare selected portions of the expanded reference matrix with a predetermined matrix, and convert to dots those additional binary data elements that match the predetermined matrix. As instructed by the control unit, this will result in characters which are selectively thickened and made more dense as desired by the operator of the printer. The control unit 71 includes means governing the data processing and mechanical functions of the printer, coordinates their respective operations, and may further communicate with a host computer. Management of the data processing may include control of the character data storage means 72 and the logic unit 73. Control of the mechanical operation of the printer may include control of the print medium or paper, print head movement, and the actuation of the wires in the print head. The print medium controller 74 provides signals to the motor 9 to control the movement of the print medium 2 over the platen and past the print head. The print head movement controller 76 provides signals to the print head motor 13 to control the translational movement of the print head across the print medium 2. The print head actuator 75 provides signals to actuate the individual printing elements 14 of the print head 11 under control of signals from the control unit 71 and in accordance with the data signals from the data storage unit 72 and from logic unit 73. The control unit 71 typically coordinates the flow of data to the print head actuator with the physical movement of the print head. While the invention has been described with respect to a specific dot matrix printer, it is to be understood that it may be used in connection with any device that will display a dot matrix character. Reference is made to co-pending EP 0207789 having the same priority date and similar description and which discloses a printing or display apparatus adapted to provide enlarged characters.

Claims: Apparatus for printing or displaying dot matrix characters, formed from selected binary data elements each representing either a dot or a blank, comprising storage means (16,72) for storing sets of binary data elements, each set defining the shape of a respective character, logic means (73) for performing logical operations on each set of stored binary data elements to generate associated additional binary data elements which can be used to enhance the respective character selectively as set out below, and display means (14,75) for displaying each character using the associated stored binary data elements and associated additional binary data elements in order to display each character in an enhanced form, said display means using said generated additional binary data elements together with said stored binary data elements to increase the density of at least one of the vertical, diagonal and horizontal linear components of the character being displayed along the linear direction thereof, characterised in that said logic means (73) comprises means for defining a reference matrix formed from a subset of said set of stored binary data elements, means for adding predetermined blank binary data elements to said defined reference matrix between the binary data elements of said set of stored binary data elements to form an expanded reference matrix, and comparison means for comparing selected portions of said expanded reference matrix including the additional blank binary data elements with corresponding selected portions of a predetermined matrix and converting selected additional blank binary data elements to dots when said reference matrix matches said predetermined matrix in order to generate additional binary data elements for use in increasing the density of at least one of the vertical, horizontal or diagonal components of the character to be displayed. Apparatus as claimed in claim 1, in which each stored set of binary data elements defines the shape of a respective character which has a relatively high density in the horizontal direction and a relatively low density in the vertical and diagonal directions, wherein said display means uses said generated additional binary data elements to increase the density of at least one of said vertical and linear components of the character being displayed and to maintain the relatively high density of the horizontal components thereof. Apparatus as claimed in claim 1 or 2 wherein said display means uses said generated additional data elements to increase the density of the half diagonal linear components of the character being displayed. Apparatus as claimed in claim 1, 2 or 3 wherein said display means uses said generated additional data elements to thicken the character being displayed in the horizontal direction and to increase the density of the diagonal and vertical linear components of said character. Apparatus as claimed in any one of the preceding claims wherein said display means uses said generated additional data elements to eliminate selected consecutive dots in the horizontal direction at the intersection of each half diagonal and a horizontal line in the character being displayed. Apparatus as claimed in any one of the preceding claims wherein said display means uses said generated additional data elements to extend downwardly from the vertical and diagonal components of the character being displayed that lie on the base line of the character so as to extend the character being displayed one half dot below said base line. Apparatus as claimed in any one of the preceding claims wherein said display means uses said generated additional data elements to add dots to the lower edge of the character being displayed so as to thicken downwardly said character being displayed. Apparatus as claimed in any one of the preceding claims wherein said display means uses said generated additional binary data elements together with said stored binary data elements to increase the thickness of at least one of said vertical, diagonal and horizontal linear components of the characters being displayed in a direction generally diagonal to the linear direction thereof. A method of displaying dot matrix characters, formed from selected binary data elements each representing either a dot or a blank, comprising storing sets of binary data elements, each set defining the shape of a respective character, performing logical operations on each set of stored binary data elements to generate associated additional binary data elements which can be used to enhance the respective character selectively as set out below, and displaying each character using the associated stored binary data elements and associated additional binary data elements in order to display each character in an enhanced form, wherein said generated additional binary data elements together with said stored binary data elements are used to increase the density of at least one of the vertical, diagonal and horizontal linear components of each character being displayed along the linear direction thereof characterised in that the step of performing logical operations comprises defining a reference matrix formed from a subset of said set of stored binary data elements, adding predetermined blank binary data elements to said defined reference matrix between the binary data elements of said set of stored binary data elements to form an expanded reference matrix, and comparing selected portions of said expanded reference matrix including the additional blank binary data elements with corresponding selected portions of a predetermined matrix and converting selected additional blank binary data elements to dots when said reference matrix matches said predetermined matrix so as to generate additional binary data elements for use in increasing the density of at least one of the vertical, horizontal or diagonal components of the character to be displayed. A method as claimed in claim 9, in which each stored set of binary data elements defines the shape of respective character which has a relatively high density in the horizontal direction and a relatively low density in the vertical and diagonal directions, wherein said generated additional binary data elements are used to increase the density of at least one of said vertical and linear components of each character being displayed and to maintain the relatively high density of the horizontal components thereof. A method as claimed in claim 9 or 10 wherein, in displaying each character, said generated additional data elements are used to increase the density of the half diagonal linear components of the character being displayed. A method as claimed in claim 9, 10 or 11 wherein, in displaying each character, said generated additional data elements are used to thicken the character being displayed in the horizontal direction and to increase the density of the diagonal and vertical linear components of said character. A method as claimed in any one of the preceding claims 9 to 12 wherein, in displaying each character, said generated additional data elements are used to eliminate selected consecutive dots in the horizontal direction at the intersection of each half diagonal and a horizontal line in the character being displayed. A method as claimed in any one of the preceding claims 9 to 13 wherein, in displaying each character, said generated additional data elements are used to extend downwardly from the vertical and diagonal components of the character being displayed that lie on the base line of the character so as to extend the character being displayed one half dot below said base line. A method as claimed in any one of the preceding claims 9 to 14 wherein, in displaying each character, said generated additional data elements are used to add dots to the lower edge of the character being displayed so as to thicken downwardly said character being displayed. A method as claimed in any one of the preceding claims 9 to 15 wherein, in displaying each character, said generated additional data elements together with said stored data elements are used to increase the thickness of at least one of the vertical diagonal and horizontal linear components of the character being displayed in a direction generally orthogonal to the linear direction thereof.

Inventors: ALEXANDER, RANDALL WAYNE, TROUPES, DEMETRIOS
Applicants: LEXMARK INTERNATIONAL, INC.
Application year: 1986
Main classification: G06K15
IPC codes: G06F3, G09G5, G06K15, B41J2