Bar codes are formed by printing a series of parallel bars. Numbers, letters or other characters and information are represented by a predetermined number of bars and spaces between bars. The number of bars, the width of the bars, and the spacing between the bars are arranged to convey the desired information. The quality of a bar code is directly affected by the accuracy with which the bar code is printed. A bar code printed with significant dimensional inaccuracies may not convey the desired information when it is scanned.
Embodiments of the present invention were developed in an effort to improve the accuracy with which a bar code is printed using an inkjet printer. Some embodiments of the invention, therefore, will be described with reference to inkjet printing. Embodiments of the invention, however, are not limited to use in inkjet printing. Rather, embodiments of the invention may be used in any application or environment which might benefit from these new bar code printing techniques. The exemplary embodiments shown in the figures and described below illustrate but do not limit the invention. Other forms, details, and embodiments may be made and implemented. Hence, the following description should not be construed to limit the scope of the invention, which is defined in the claims that follow the description.
Printhead 12 may include a series of stationary printheads that span the width of print media 22. Alternatively, printhead 12 may include a single printhead that scans back and forth on carriage 16 across the width of media 22. Other printhead configurations are possible. For example, if bar codes are printed on a comparatively narrow media strip 22, such as might be the case for printing bar code labels, then printhead 12 may include a single stationary printhead. Carriage 16 positions printhead 12 relative to media 22 and media transport 18 positions media 22 relative to printhead 12. For a scanning type printhead 12, carriage 16 is a movable carriage that includes a drive mechanism to carry printhead 12 back and forth across media 22. A movable carriage 16, for example, may include a holder for printhead 12, a guide along which the holder moves, a drive motor, and a belt and pulley system that moves the holder along the guide. Media transport 18 advances print media 22 lengthwise past printhead 12. For a stationary printhead 12, media transport 18 may advance media 22 continuously past printhead 12. For a scanning printhead 12, media transport 18 may advance media 22 incrementally past printhead 12, stopping as each swath is printed and then advancing media 22 for printing the next swath.
Ink supply 14 supplies ink to printhead 12 through ink reservoir 24. Ink supply 14, reservoir 24 and printhead 12 may be housed together in a single print cartridge 26, as indicated by the dashed line in
Controller 20 receives print data from a computer or other host device 28 and processes that data into printer control information and image data. Controller 20 controls the movement of carriage 16 and media transport 18. As noted above, controller 20 is electrically connected to printhead 12 to energize the firing resistors to eject ink drops on to media 22. By coordinating the relative position of printhead 12 and media 22 with the ejection of ink drops, controller 20 produces the desired image on media 22 according to the print data received from host device 28.
The relationship between the print resolution and the width of a bar 32 may be defined according to Equation no. 1:
Bar Width=Dot Size+((Number of Dots−1)×Print Resolution) Eq. 1
where Dot Size is the nominal diameter of each dot and Number of Dots is the number of dots to be printed across the width of the bar. For example, using a 70 micron diameter dot printed at a default Print Resolution of 600 dpi typical of many inkjet printers, a 10 mil (254 micron) bar 32 could be approximated by printing five dots or six dots across the width of bar 32. If five dots are printed, as shown in
Bar Width=70 microns+((5−1 dots)×600 dpi)=238 microns
If six dots are printed, as shown in
Bar Width=70 microns+((6−1 dots)×600 dpi)=280 microns
Rather than approximating the desired bar width by printing at a default print resolution, as described above, the print resolution may be varied to achieve the desired bar width. The print resolution needed to achieve the desired bar width is derived from Equation no. 1, according to Equation no. 2 as follows:
Print Resolution=(Bar Width−Dot Size)+(Number of Dots−1) Eq. 2
Using the same example described above, the Print Resolution needed to more accurately print a 254 micron bar using five 70 micron diameter dots, as shown in
Print Resolution=(254 microns−70 microns)+(5−1 dots)=552 dpi
The Print Resolution needed to more accurately print a 254 micron bar using six 70 micron diameter dots, as shown in
Print Resolution=(254 microns−70 microns)+(6−1 dots)=690 dpi.
For a printer that uses a stationary printhead, the print resolution needed to achieve the desired bar width may be obtained by adjusting the frequency at which ink drops are ejected on to the print media or by adjusting the speed at which the media is advanced past the printhead, or both. For example, a Print Resolution of 552 dpi such as that shown in
Additional accuracy may be achieved across the bar code by adjusting the timing of the firing pulse for the first dot in a succeeding bar to correctly position that dot based on the position of the last dot in the preceding bar. For example, and referring to
Last Dot Position=First Dot Position+(Number of Dots−1)×(Print Resolution).
The position of the center of the first dot in the succeeding bar 32B may then be computed based on the position of the center of the last dot in the preceding bar 32A as follows:
First Dot Position=Last Dot Position+Bar Spacing+Dot Size
where Bar Spacing is the distance between the preceding and succeeding bars 32A and 32B. The timing of the firing pulse that ejects the drop for the first dot in the succeeding bar is adjusted to position the first dot at the desired location. The processes described above may be repeated for each bar in the bar code to help achieve greater dimensional accuracy across the full width of the bar code.
The flow chart of
Print Resolution=(Bar Width−Dot Size)+(Number of Dots−1)
where Bar Width is a desired width of the bar, Dot Size is a nominal diameter on the print media of each dot and Number of Dots is the number of dots to be printed across the width of the bar (step 54) and the spacing between ink dots is adjusted by adjusting the frequency with which ink drops are ejected by the inkjet printer or adjusting the speed at which print media is advanced past the printhead, or both, to achieve the computed Print Resolution (step 56).
The flow chart of
Print Resolution=(Bar Width−Dot Size)+(Number of Dots−1)
where Bar Width is a desired width of the bar, Dot Size is the nominal diameter on the print media of each dot and Number of Dots is the number of dots to be printed across the width of the bar (step 58) and then the spacing between ink dots on the print media is adjusted to achieve the computed Print Resolution (step 60). If this is not the last bar in the bar code (step 62), then the position of the first dot in the next bar is computed according to the equation
First Dot Position=Last Dot Position+Bar Spacing+Dot Size
where Last Dot Position is the position of the center of the last dot in the preceding bar, Bar Spacing is the distance between the two bars and Dot Size is the nominal diameter on the print media of each dot (step 64), the timing of the firing pulse that ejects the drop for the First Dot Position in the bar is adjusted to position the first dot at the desired location (step 66) and then the method returns to step 58. When the last bar is reached (step 62), the image data for the bar code, including the data generated in steps 58, 60, 64 and 66, is subjected to any further processing necessary to prepare the bar code for printing (step 68) and the bar code is printed (step 70).
In another embodiment, the desired bar width is achieved by adjusting the spacing between only the first two dots in the bar, or the last two dots in the bar, or both, rather than adjusting the print resolution across the full width of bar 32. Where printing a bar 32 at a default print resolution will result in a bar 32 that is wider than desired, such as the 280 micron wide bar 32 shown in
The flow chart of
Error=Desired Width−Default Width Eq. 3
where the Default Width is computed according to Equation no. 1 above (Bar Width=Dot Size+((Number of Dots−1)×Print Resolution). If the Desired Width is greater than the Default Width (step 74), then firing the first dot in the bar is advanced (step 76) or firing the last dot in the bar is delayed (step 78) in an amount equal to the computed Error. If advancing the first dot or delaying the last dot would cause excessive white space between two dots, then firing the first dot may be advanced and firing the last dot delayed in a combined amount equal to the computed Error.
If the Desired Width is less than the Default Width (step 80), then firing the first dot in the bar is delayed (step 82) or firing the last dot in the bar is advanced (step 84) in an amount equal to the computed Error. If delaying the first dot or advancing the last dot would exceed the printer's maximum firing frequency, then firing the first dot may be delayed and firing the last dot advanced in a combined amount equal to the computed Error.
While it is expected that the programming used to implement the methods illustrated in
As noted at the beginning of this Description, the exemplary embodiments shown in the figures and described above illustrate but do not limit the invention. Other forms, details, and embodiments may be made and implemented. Therefore, the foregoing description should not be construed to limit the scope of the invention, which is defined in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
4901093 | Ruggiero et al. | Feb 1990 | A |
5890818 | Sansone | Apr 1999 | A |
6533378 | Ishikawa | Mar 2003 | B2 |
20020167678 | Shiraishi | Nov 2002 | A1 |
Number | Date | Country |
---|---|---|
63230345 | Sep 1988 | JP |
02279360 | Nov 1990 | JP |
2000203098 | Jul 2000 | JP |
Number | Date | Country | |
---|---|---|---|
20060125903 A1 | Jun 2006 | US |