WO2005069760A2 - Graphical printing system and method using text triggers - Google Patents

Graphical printing system and method using text triggers Download PDF

Info

Publication number
WO2005069760A2
WO2005069760A2 PCT/US2004/035966 US2004035966W WO2005069760A2 WO 2005069760 A2 WO2005069760 A2 WO 2005069760A2 US 2004035966 W US2004035966 W US 2004035966W WO 2005069760 A2 WO2005069760 A2 WO 2005069760A2
Authority
WO
WIPO (PCT)
Prior art keywords
trigger
byte
output
graphic
surround
Prior art date
Application number
PCT/US2004/035966
Other languages
French (fr)
Other versions
WO2005069760A3 (en
Inventor
Terrence J. Campbell
John E. Tarbotton
Original Assignee
Axiohm Transaction Solutions, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Axiohm Transaction Solutions, Inc. filed Critical Axiohm Transaction Solutions, Inc.
Priority to CA002551742A priority Critical patent/CA2551742A1/en
Publication of WO2005069760A2 publication Critical patent/WO2005069760A2/en
Publication of WO2005069760A3 publication Critical patent/WO2005069760A3/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G5/00Receipt-giving machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/021Adaptations for printing on specific media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1806Receiving job control commands
    • G06K15/1807Receiving job control commands relating to the print image preparation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0082Architecture adapted for a particular function

Definitions

  • This invention relates generally to the field of point of sale printing systems, and more particularly to a method for adding special effects to a legacy printing application on a point of sale printer.
  • the mandatory costs include replacing a POS printer with a new one that features color and graphics functions. Ignoring for the moment the installation and configuration fixed costs which go along with the purchase price, an application upgrade necessary to use the new features is usually a prohibitive expense. Changing out the application, or getting custom modifications done, is the major factor that prevents the enhancement proposition from being viable. But if a solution that can coexist with an unchanged "legacy" retail application were possible, then optional costs would be minimized and the new functionality would become viable. Desired solutions would also allow offsetting these costs by targeting the new printing effects for marketing and advertising purposes. [005] The principal choice in fixed costs is which printer to purchase.
  • Axiohm POS printers have offered several graphics commands that can also be set as configuration options. These graphics remain intact across printer power cycles, indicating that they are stored in non-volatile memory. These configurable graphics features can be downloaded and saved prior to installation. If the desired graphic effects are of a static nature, then all that is needed for implementation is a one-time configuration of these graphics at installation time. Very infrequent changes may also be adequately served in such printers by periodically performing off-line reconfiguration and graphics down-loads of different logos into non-volatile memory.
  • a set of new printing functions are implemented as defining commands to make it possible to add graphic effects to a printout of a POS printer. These functions are based on a method of designating usually cyclically re-occurring byte strings, usually text in receipts, to act as triggers to launch the graphics function. These functions include optionally eliminating some text, adding graphic surrounds about designated lines, changing the color of designated lines, and inserting logos between or merging logos with text. Such usage need not make any changes to existing store lane checkout applications. Configuring new custom commands in POS printers permits defining byte string triggers occurring in receipt text that are used to trigger adding graphics to the receipt output.
  • a method for adding at least one special effect to a legacy printing application on a point of sale (POS) printer includes the steps of (a) identifying at least one predetermined legacy byte string to act as a trigger for adding the at least one special effect to a printed receipt produced by the POS printer; (b) determining when a first string match occurs in an input stream for the POS printer with the at least one predetermined legacy byte string; and (c) adding the at least one special effect to the printed receipt.
  • an article of manufacture includes a computer usable medium having computer readable program code means embodied therein for adding at least one special effect to a legacy printing application on a point of sale (POS) printer, wherein the computer readable program code means in the article of manufacture includes computer readable program code means for causing a computer to identify at least one predetermined legacy byte string to act as a trigger for adding the at least one special effect to a printed receipt produced by the POS printer; computer readable program code means for causing a computer to determine when a first string match occurs in an input stream for the POS printer with the at least one predetermined legacy byte string; and computer readable program code means for causing a computer to add the at least one special effect to the printed receipt.
  • POS point of sale
  • Fig. 1 shows the steps for creating legacy triggers according to an embodiment of the present invention
  • Fig. 2 shows a high level flow chart of an embodiment of the method of the present invention
  • Fig. 3 shows an initialization step according to an embodiment of the method of the present invention
  • Fig. 4 shows a flow chart for processing a legacy text trigger according to an embodiment of the present invention
  • Fig. 5 shows details of a step in the flow chart of Fig. 4
  • Figs. 6-15 show details of the steps in the flow chart of Figs. 5A-5B
  • Fig. 16 shows details of a step in the flow chart of Fig. 2
  • Figs. 17-25 show details of the steps in the flow chart of Fig. 16
  • Fig. 26A shows a store receipt printed under a legacy application
  • Fig. 26B shows the store receipt of Fig. 26A with some enhancements of the present invention applied to the receipt.
  • the present invention involves the production of special effects, such as graphics and logos, onto the output media of a computer output device.
  • the output media is commonly a receipt dispensed by a point-of-sale printer at a consumer checkout line, but may comprise other types of media, such as coupons, distributed from promotional kiosks or other retail venues.
  • the printer receives an input stream consisting of text print data and commands plus command parameters.
  • a legacy application by definition, will not have sophisticated graphics commands.
  • Legacy application receipts have a basic format and certain text strings that the host application always produces.
  • the present invention contemplates the use of these text strings as trigger points for the addition of the graphical effects.
  • the invention includes two additions to the conventional POS repertoire of print functions: (1) a string match in the input stream that triggers applying a surround graphic around some legacy text, which method requires a transforming of a surround graphic into a logo suitable for merging, and (2) a string match in the input stream that triggers insertion of a graphic logo.
  • the word “trigger” is used to denote the occurrence of a byte string in the input stream which causes certain actions on the input stream and to the printout. These caused actions are termed “triggered.” Because printer commands and print data are mixed in the input stream fed to the printer, a trigger is really a user configured definition of a new command that will be invoked by the byte string.
  • the word “legacy” is used to denote a printer input stream generator from the host application that is not aware of any of a printer's new commands.
  • Legacy triggers provide the ability to enhance print data and to print logos without the need to change existing applications. Triggers are predefined to look for matching text patterns in the printed receipt and either to enhance the printed data or insert a logo.
  • the basic format for a store receipt includes the following information: store identifier, date, list of purchased items, sub total, tax, total cost, savings total, and an ending message.
  • a retail application of the invention would provide for the setting of string constants for the items that stay the same from receipt to receipt. These items that stay the same from receipt to receipt then become candidates to be used as triggers. These items are determined for each retail entity or store chain as necessary.
  • a "logo” is a symbol indicating ownership or source; as used in the POS field, this has been broadened to any graphic ranging from store identifiers to general coupons.
  • a logo is a self-contained shape of picture elements (pixels), which in the 2-color thermal case is formed by each pixel being either off, of primary color, or of secondary color.
  • the term “logo” is not intended to include a “surround,” which takes a grid of adjacent text character cells and performs a visual merge (Boolean OR) of a mathematically specified shape into the character cells. Before surrounding, the existing character content is assumed to be mostly blank cells with some character string in the middle, thus giving a printed result of some text surrounded by a graphic shape.
  • the steps for creating legacy triggers include clearing all logo and surround graphic space, e.g., erasing flash memory (step 200), erasing trigger block (step 202); resetting the printer (step 204); defining and downloading the logos to be used (step 206); defining the surround graphics and assigning each one a logo ID, with each defined surround graphic taking one logo ID space (step 208); defining the triggers, surround data areas, linked graphics ID's, either logo or surround, and saving the definitions as triggered commands (step 210); resetting the printer (step 212); defining other configuration settings, such as logos to be used at the top and bottom of a receipt and as a watermark (step 214); and again resetting the printer, which creates the triggered commands as part of initialization (step 216).
  • logo and surround graphic space e.g., erasing flash memory (step 200), erasing trigger block (step 202); resetting the printer (step 204); defining and downloading the logos to be
  • the procedure for defining a standard trigger is: (a) Define Trigger Mode, Type, Justification, and Color Properties, (b) Define Trigger String Property, (c) Define Auxiliary Trigger String Property if required, and (d) Save the Trigger properties definitions.
  • the procedure for defining a surround type trigger is: (a) Define Surround Shape Logo, (b) Define Legacy Trigger Mode, Type, Justification, and Color Properties, (c) Define Trigger String Property, (d) Define Trigger Surround Area Property, and (e) Save the Trigger properties definitions.
  • Figs. 26A-26B show the difference between a legacy receipt 260 (Fig. 26A) and one enhanced by several triggers, receipt 262 (Fig. 26B).
  • Figs. 2 - 25 The processes and structures germane to the present invention are set forth in and fully explained by the flow charts designated by Figs. 2 - 25.
  • the process starts in step 10 when either the power is turned on or a reset signal is applied to the transaction printer.
  • the text trigger attributes are initialized in step 12.
  • the logo ID is retrieved from non-volatile memory, as is the trigger type, trigger mode, replace/non-replace flags, trigger string, auxiliary trigger string, surround graphics, and logo graphics as shown in Fig. 3.
  • the main idle loop is shown as step 14.
  • step 16 the system checks to see if data is in the receive buffer, and if not, control passes to the main idle loop in step 14.
  • step 18 If data is in the receive buffer, the legacy text trigger is processed in step 18, with the results passed to step 20 via subroutine B, which is explained in detail below.
  • the system checks in step 20 to see if data was processed during step 18 resulting in printable text data, and if so, the printable text data is processed in step 24, after which system control reverts to the main idle loop in step 14. If no data was processed in step 18, the data in the receive buffer in step 16 must be printer commands, so the printer commands are processed in step 22, after which control reverts to the main idle loop in step 14.
  • Step 28 shows the initial settings for this subroutine, with the "trigger found” set to False.
  • step 30 the data in the receive buffer found in step 16 (Fig. 2) is examined. If a trigger string has been found, the trigger is processed in step 32 (subroutine Bl), after which the "trigger found” is set to False in step 34 and control is passed back to the main routine in step 44. If no trigger string is found in step 30, the next character is obtained from the receive buffer in step 36. In step 38, the character obtained in step 36 is examined to see if it is part of a trigger string, and if not, control passes back to the main routine in step 44.
  • step 40 checks in step 40 to see if all the characters in the trigger string have been found, and if not, control passes back to the main routine in step 44. Once all the characters in the trigger string are found, the "trigger found" flag is set to True in step 42, after which control passes back to the main routine in step 44.
  • subroutine Bl is shown.
  • the trigger string identified in step 30 (Fig. 4) is checked to see what mode and type the trigger string is.
  • various lower level subroutines are called by the system. At this point in the description, it is helpful to describe various terms used in the drawings.
  • Conditional surround graphics are surround graphics that occur only when a certain condition is met. In the present invention, that condition is met when a defined trigger string is received by the POS printer.
  • “Surround graphics” are such figures as ovals, rectangles, circles, squares, and ellipses that surround text to highlight the text.
  • the present invention in addition to adding surround graphics upon the occurrence of the defined trigger string, permits replacing crude graphics that already exist in a POS application, such as asterisks that draw a box around a portion of the receipt, with one of the above mentioned figures.
  • Conditional surround graphics are handled in the present invention by specifying modes, trigger types, and behavior for the surround operations.
  • a trigger is the byte string used to initiate insertion of a surround shape or logo graphic into the printout. It must be unique to ensure that the surround isn't inserted at unexpected locations on the receipt, and it should be as short as possible to minimize impact on print speed.
  • the word "circle” is used to indicate the text lines in the receipt that remain after the application of a surround graphic, which may result in several lines of text appearing inside the surround graphic.
  • the format of the expected print data i.e., the mode, is the key to the definition of a trigger.
  • the other parameters are defined as related to the expected receipt format.
  • replace means omit the line above and the line below the circled line.
  • mode 01 it means omit the line above the circled line.
  • Mode 01 pre-surround the line(s), surround the line(s). This mode removes the line above the line that contains the conditional surround graphic trigger string. This mode also permits cropping data from either end of the line(s) surrounded, including the line that contains the trigger string.
  • Mode 02 pre-surround the line(s), surround the line(s), post-surround the line(s). This mode removes the line above the line that contains the conditional surround graphic trigger string, and removes the line(s) that immediately follows the last line that is surrounded. This mode also permits cropping data from either end of the line(s) surrounded, including the line that contains the trigger string.
  • Mode 03 surround the line(s), post-surround the line(s). This mode removes the line that immediately follows the last line that is surrounded. Other text cannot be cropped in this mode.
  • Mode 04 surround line(s). The purpose of this mode is not to remove any text via cropping.
  • Mode 11 inserts a logo that can be left, center, or right justified.
  • Mode 13 overlays a logo that can be left or right justified.
  • trigger types are preferably defined for use in the POS printer commands.
  • Trigger type 01 the trigger is on the line above the line(s) to be surrounded. This type applies if the trigger is on the line immediately preceding the line(s) to be surrounded with a graphic. The line with the trigger text is not surrounded. This trigger type is available only with modes that crop a pre-surround line.
  • Trigger type 02 the trigger is on the first line to be surrounded. This trigger type is available only for modes that do not crop a pre-surround line.
  • Trigger type 03 the trigger is the character attribute for the surrounded text.
  • the trigger in this case is not a text string, but rather any text with the predefined attributes selected for triggering.
  • This trigger type is only available for modes that do not crop a pre- surround line.
  • Trigger type 04 the frigger is unable to be specified with only one line. This trigger type therefore depends on an auxiliary trigger sfring that has to be on the line immediately following the primary trigger string. This trigger type is only available for modes that do not crop a pre-surround line.
  • Table 1 shows mode and trigger details and examples for conditional surround graphics
  • Table 2 shows details and examples for conditional logo graphics.
  • Fig. 6 shows the preferred steps in processing the trigger string when the trigger string is Mode 1, Trigger Type 1.
  • the systems checks to see if the trigger string is found in step 61, after which the system checks in step 62 to see if the line above the trigger string should be replaced. If so, in step 63, any characters plotted on the line above are erased. After step 63, or if the line above the trigger sfring does not need to be replaced, the predefined surround graphics for the raster builder are set up in step 64.
  • the system checks to see if the end of line condition has been reached in step 65, and if not, control returns to Subroutine Bl (Fig. 5) in step 69.
  • step 66 the system checks to see if the line should be changed to the secondary color in step 66. If so, the raster energy buffer for the secondary color is adjusted in step 67; otherwise, the line is processed in step 68 and an extra line is inserted for the bottom of the surround. Control then passes back to Subroutine Bl (Fig. 5) in step 69.
  • Fig. 7 shows the preferred steps in processing the trigger string when the trigger string is Mode 1, Trigger Type 4.
  • the system checks in step 70 to see if the primary trigger string was found, and if not, control returns to Subroutine Bl (Fig. 5) at step 79. If the primary trigger string was found in step 70, the system checks for an end of line condition in step 71, and until the end of line condition is found, control returns to Subroutine Bl (Fig. 5) at step 79. Once an end of line condition is found in step 71, data is stored in step 72 until it is determined if an auxiliary trigger exists. Then, in step 73, the system checks to see if an auxiliary trigger string is found, and if not, control returns to Subroutine Bl (Fig.
  • step 79 If the auxiliary trigger string is found in step 73, the predefined surround graphics for the raster printer are set up in step 74, after which the system checks to see if the line above the primary trigger string needs to be replaced, and if so, any characters plotted on the line above the primary trigger string are erased in step 76 before the system moves on to step 77. Otherwise, the print lines are processed in step 77, after which control returns to Subroutine Bl (Fig. 5) at step 79.
  • Fig. 8 shows the preferred steps in processing the trigger string when the trigger string is Mode 2, Trigger Type 1.
  • the system checks in step 80 to see if a trigger string was found. If not, control returns to Subroutine Bl (Fig. 5) at step 89. If a trigger string was found in step 80, the system checks in step 81 to see if the line above the trigger string needs to be replaced. If so, any characters plotted on the line above the trigger string are removed in step 82. Then, the predefined surround graphics for the raster builder are set up in step 83, after which the system checks to see if the end of line condition has been reached in step 84. If not, control returns to Subroutine Bl (Fig. 5) at step 89.
  • step 85 the system checks to see if the line should be changed to the secondary color in step 85, and if so, the raster energy buffer is adjusted for the secondary color. Otherwise, the print line is processed in step 87, after which the system checks to see if the line below the last line to be surrounded should be replaced in step 88a, and if not, control returns to Subroutine Bl (Fig. 5) at step 89. If the line below the last line to be surrounded should be replaced, space characters are substituted for any printable characters in step 88b.
  • Fig. 9 shows the preferred steps in processing the frigger string when the trigger string is Mode 2, Trigger Type 4.
  • the system checks in step 90 to see if a primary trigger string was found. If not, control returns to Subroutine Bl (Fig. 5) at step 99. If a primary trigger string was found in step 90, the system checks in step 91 to see if an end of line condition exists, and if not, control returns to Subroutine Bl (Fig. 5) at step 99. If the end of the line has been reached, the data is stored in step 92 until an auxiliary frigger string is found. The system checks in step 93 to see if the auxiliary trigger string is found, and if not, control returns to Subroutine Bl (Fig. 5) at step 99.
  • step 94 the predefined surround graphics for the raster printer are setup in step 94.
  • the system checks in step 95 to see if the line above the primary trigger string should be replaced, and if so, any characters plotted for the line above the primary trigger string are erased in step 96. Otherwise, the print lines are processed in step 97.
  • the system checks in step 98a to see if the line below the last line to be surrounded should be replaced, and if not, control returns to Subroutine Bl (Fig. 5) at step 99. If so, space characters are substituted for any printable characters in step 98b, after which control returns to Subroutine Bl (Fig. 5) at step 99.
  • Fig. 10 shows the preferred steps in processing the trigger string when the frigger string is Mode 3, Trigger Type 2.
  • the system checks in step 100 to see if a frigger string was found. If not, control returns to Subroutine Bl (Fig. 5) at step 109. If a trigger string was found in step 100, the predefined surround graphics for the raster builder are set up in step 101. Then, in step 102, a blank line is inserted above the data to be circled.
  • the system checks in step 103 to see if an end of line condition exists, and if not, control returns to Subroutine Bl (Fig. 5) at step 109.
  • step 104 the system checks in step 104 to see if the line should be changed to the secondary color, and if so, the raster energy buffer is adjusted in step 105 for secondary color printing.
  • the print line is processed in step 106, after which the system checks in step 107 to see if the line below the last line to be surrounded should be replaced, and if so, space characters are substituted for any printable characters in step 108. Control then returns to Subroutine Bl (Fig. 5) at step 109.
  • Fig. 11 shows the preferred steps in processing the trigger string when the trigger string is Mode 3, Trigger Type 3.
  • the system checks in step 110 to see if an attribute trigger was found. If not, control returns to Subroutine Bl (Fig. 5) at step 119. If an attribute trigger was found, the predefined surround graphics for the raster printer are set up in step 111. In step 112, a line is inserted above the data to be circled, after which the system checks in step 113 for an end of line condition. If no end of line condition is found, control returns to Subroutine Bl (Fig. 5) at step 119.
  • step 114 the system checks in step 114 to see if the line should be changed to the secondary color, and if so, the raster energy buffer is adjusted in step 115 for secondary color printing, after which the print line is processed in step 116 and a blank line is inserted below the print line. Control then returns to Subroutine Bl (Fig. 5) at step 119.
  • Fig. 12 shows the preferred steps in processing the trigger sfring when the trigger string is Mode 4, Trigger Type 2.
  • the system checks in step 120 to see if a frigger string was found. If not, control returns to Subroutine Bl (Fig. 5) at step 129. If a trigger string was found in step 120, the predefined surround graphics for the printer raster are set up in step 121. A line is inserted above the data to be circled in step 122. then the system checks in step 123 to see if an end of line condition exists, and if not, control returns to Subroutine Bl (Fig. 5) at step 129.
  • step 124 the system checks in step 124 to see if the line should be changed to the secondary color, and if so, the raster energy buffer is adjusted in step 125 for secondary color printing.
  • the line is then processed in step 126, after which control returns to Subroutine Bl (Fig. 5) at step 129.
  • Fig. 13 shows the preferred steps in processing the trigger string when the trigger string is Mode 4, Trigger Type 3.
  • the system checks in step 130 to see if a frigger attribute was found. If not, control returns to Subroutine Bl (Fig. 5) at step 139. If a frigger attribute was found in step 130, the predefined surround graphics are set up for the raster printer in step 131. Then, a line is inserted in step 132 above the data to be circled.
  • the system checks in step 133 to see if an end of line condition is found, and if not, control returns to Subroutine Bl (Fig. 5) at step 139. If so, the system checks in step 134 to see if the line should be changed to the secondary color. If so, the raster energy buffer is adjusted in step 135 for secondary color printing. The line is then processed in step 136, after which control returns to Subroutine Bl (Fig. 5) at step 139.
  • Fig. 14 shows the preferred steps in processing the trigger string when the trigger string is Mode 11, Trigger Type 1. If a frigger string is not found in step 140, control returns to Subroutine Bl (Fig. 5) at step 149. After a trigger sfring is found, the system checks in step 141 to see if an end of line condition exists. If not, control returns to Subroutine Bl (Fig. 5) at step 149. Otherwise, a predefined logo is inserted in step 142, after which control returns to Subroutine Bl (Fig. 5) at step 149.
  • Fig. 15 shows the preferred steps in processing the trigger string when the trigger sfring is Mode 13, Trigger Type 1. If a trigger sfring is not found in step 150, control returns to Subroutine Bl (Fig. 5) at step 159. After a frigger string is found, the system checks in step 151 to see if an end of line condition exists. If not, control returns to Subroutine Bl (Fig. 5) at step 159. Otherwise, a predefined logo is merged in step 152, after which control returns to Subroutine Bl (Fig. 5) at step 159.
  • Fig. 16 and associated Figs. 17-25 show the detailed steps for processing the printer commands from step 22 (Fig. 2) according to an embodiment of the invention.
  • the following command defines a text trigger, where a trigger is the byte sfring used to initiate insertion of a surround shape or graphic. It must be unique to ensure that the surround isn't inserted at unexpected locations on the receipt and it should be as short as possible to minimize impact on print speed.
  • the sfring used by the text trigger must be defined immediately after this command is defined. Up to 256 friggers can be defined. This command defines the major properties of a legacy frigger.
  • 11. Inserts a logo that can be left, center, or right justified. 13. Overlays a logo that can be left or right justified, c, r 00-11 are the color and the replacement/non-replacement of the trigger text.
  • Mode defines the meaning of the t parameter. For modes 1-4 (surround modes), t determines the type of trigger to use. For modes 11 and 13, t determines the justification. 2. Modes 11 and 13 always use Trigger Type 1. 3. Mode 13 replaces the margin message function. The two functions can't be used together. 4. Replace. In non-replace mode, the frigger is included with the printed data. In replace mode, the trigger is not included with the printed data. In general, the trigger is not included with the printed data. 5. Mode determines what lines are replaced, i.e., omitted. In mode 1 the line above the surround line is replaced. In mode 2 the line above and the line below the surround line are replaced. In mode 3 the line below the surround line is replaced.
  • the next command defines the text string used by the Define Legacy Trigger Properties command and may immediately follow that command. All commands that need a text frigger property use this command to define the trigger string.
  • the next command creates a triggered action command and stores in flash the string information previously set with a Define Legacy Trigger Properties command and others. It should be used after a consistent set of property definitions for a trigger. Flash status (ID 72) can be used to ensure the trigger was successfully saved, else there is either insufficient room or some problem with trigger property values. The printer goes busy while writing to flash memory, so a small delay (100 ms) should be inserted after issuing this command. All legacy trigger properties (even ones not used by current legacy mode and type) are set to null initial values. The next legacy triggered command definition starts with a clean slate, so all property setting must be done.
  • a trigger block containing 256 entries is allocated the first time a frigger command is created. All subsequent trigger definitions use this trigger block as well. There is only one active block at a time. Prior to defining a new trigger, User Status Command (ID 97 06 00) can be used to ensure sufficient entries in the block. If there are not enough entries the block should be erased, so that a subsequent trigger definition command initiates allocation of an empty block. The next command is used to erase all entries in the trigger block.
  • the next command defines a surround type and gives it a Logo ID.
  • the surround is printed in the active color at the time of definition.
  • the command should be preceded by a set color command (IB 72 n).
  • the number of print lines to surround should match the parameter in the Define Legacy Surround Data Area Property command, explained next below. It takes time to define the shape and write it to flash memory, so a delay of 1-3 seconds should be inserted after the command.
  • the next command specifies the text area to enhance with the surround shape.
  • the number of print lines to surround should match the parameter in the Define Legacy Surround Area command, explained immediately above.
  • Text on a line not included in the surround area is either printed or not printed depending on the state of the replace/no-replace flag in the trigger definition.
  • the data to be surrounded should be centered.
  • the data to be surrounded on a line should have a few blank spaces before and after it to accommodate the shape.
  • the next command causes a complete line to be printed in color.
  • the Define Legacy Trigger Sfring Property command follows this command and defines the line to be printed in the 2nd paper color.
  • the second color is typically either red or blue, depending on the thermal paper used.
  • Monochrome is black.
  • the next command is used to erase all definitions in a trigger block.
  • all defined triggered commands may be erased, after which the new and updated friggered commands can be created. This command is used prior to creating triggers when there would be conflict within active frigger block. If there is not enough space in the block to fit the new triggers, the Erase Legacy Trigger Block command must be used, followed by defining all the triggers.
  • Use the User Status command (ID 97 06 00) to determine if sufficient trigger space is available. If few triggers are defined and they are frequently updated, this is a good command to use because it maximizes use of flash memory and minimizes the need to re-download logos and re-define surround shapes.
  • Erase Legacy Trigger Block command should be used because it requires less trigger management. [079] Erase All Legacy Trigger Commands (Figs. 16, 24) ASCII US ETX SYN CAN Hexadecimal IF 03 16 18 Decimal 31 03 22 24
  • the next command enables or disables legacy features.
  • the features to enable or disable are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be disabled/enabled is specified by the On/Off Mask. Whether the feature should be disabled/enabled immediately or be delayed until after the next knife cut is specified by setting the appropriate bit in the Delay Mask. This applies to run time only and is not saved in NVRAM.
  • the next command enable or disables legacy features.
  • the features to enable or disable are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be disabled/enabled is specified by the On/Off Mask. Whether the feature should be disabled/enabled immediately or be delayed until after the next knife cut is specified by setting the appropriate bit in the Delay Mask. Saved in NVRAM.
  • the next command creates a trigger to disable a legacy feature for a specified number of knife cuts on matching the specified text in a data stream.
  • the features to suspend are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be suspended immediately or be delayed until after the next knife cut is specified by setting the appropriate bit in the Delay Mask.
  • a trigger must be specified via the IF 03 16 11 command. This trigger must be stored by the IF 03 16 13 command.
  • the next command creates a trigger to enable a legacy feature upon matching the specified text in a data stream.
  • the features to enable are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be enabled immediately or be delayed till after the next knife cut is specified by setting the appropriate bit in the Delay Mask.
  • a trigger must be specified via the IF 03 16 11 command. This trigger must be stored by the IF 03 16 13 command.
  • the next command creates a frigger to enable a legacy feature upon matching the specified text in a data sfream.
  • the features to enable are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be enabled immediately or be delayed till after the next knife cut is specified by setting the appropriate bit in the Delay Mask.
  • a trigger must be specified via the IF 03 16 11 command. This trigger must be stored by the IF 03 16 13 command.
  • the Data Stream Substitution Feature is an extension to the trigger command. However, it is not processed with the other triggers. This feature intercepts calls to the communications buffer, tests the data sfream and makes substitutions as specified.
  • the trigger commands are used to program the substitution sequences.
  • the data is stored with the triggers and as such takes up trigger locations and is erased by the erase trigger commands.
  • Four of the trigger commands are enhanced for this purpose: Setup Legacy Trigger (If 03 16 10). Defines the number of bytes to strip from the data stream. Set Trigger String (If 03 16 11). Defines the key to look for in the data stream. Set Aux Trigger String (If 03 16 12). Defines the data to insert in the data stream. Store Legacy Trigger (If 03 16 13). Saves the trigger and replacement data.
  • the next command defines the resultant data stream.
  • strip lengths of zero cause infinite loops. Use strip length of 1 and put back the sfripped character. Commands that download graphics data are excluded from processing, and therefore cannot be included in either the test key or the substitution sequence.
  • These commands include the following: 0x11 Raster Graphics OxlB 0x2A Set Bit Image Mode Ox IB 0x2E Advanced Raster Graphics OxlB 0x42 Bmp Graphics OxlB 0x4B Single Density Graphics OxlB 0x59 Double Density Graphics Ox 1 D 0x2A Define Logo OxlD 0x83 Color Raster Graphics Ox ID 0x84 Download Logo Image [104] The next command sets a specific speed for an operation, allowing the user more control of the print environment. The speed is maintained as long as it is less than the speed automatically set by power management. A parameter of zero (0) restores the normal max speed.
  • the command can be used in two different ways: (1) If inserted in the receipt data stream, it causes all following text and graphics to be printed at the target speed. It remains in effect until turned off or the printer is reset. Recognition of the command to turn off the target speed occurs prior to the printing of all previous data so the printer returns to normal speed sooner than expected. (2) If inserted prior to downloading a logo file, the logo file is automatically printed at the target speed. The command is in effect only for the logo downloaded immediately after issuing the command.
  • Print Logo Information ID 9C 00 00 Prints details concerning all active logos. The print count of surround shapes stored as logos is not maintained so the print count should be ignored.
  • Such applications are often described as providing "hooks" for their users, e.g., retail stores, to insert custom text into a standard format. It is therefore important that more than just the ASCII text range (20-7F- hex) be available for declaration as match strings.
  • the maximum length of a match string is an arbitrary value, determined by the length of likely trigger words and the prevalent printing media being used. In a POS receipt case, where a maximum line is 40-60 characters, with the upper number arising from printers that offer compressed fonts, a value of 24 generously exceeds all likely usage. This number can be increased or even eliminated with commensurate increases in memory usage and implementation complexity. Both the length of the trigger strings and the total number active at any time influence the performance of the printer.
  • the following features of the invention are all derived from the ability to trigger off of legacy text: (a) delaying for a fixed number of bytes the normal processing of input stream bytes; (b) delaying for a variable number of bytes, which number is determined by the presence of several carriage returns (CR) and or line feed (LF) characters, the processing of input stream bytes; (c) defining a byte string of less than or equal to maximum length to be stored in nonvolatile storage; (d) managing non- volatile storage for holding up to a fixed number of defined byte strings; (e) ordering the fixed number of byte strings into fast response memory, e.g., RAM or flash memory, for quickest execution of a match does not match function; (f) checking if a subset of the delayed input byte string matches any one of a stored list of strings; (g) acting on a match occurrence by inserting a defined part of the delayed input string into a stored logo; (h) acting on a match occurrence by merging a defined part of the

Abstract

A set of new printing functions are implemented as defining commands (206) to make it possible to add graphic effects to a printout of a POS printer, These functions are based on a method of designating usually cyclically re-occurring byte strings, usually text in receipts, to act as triggers to launch the graphics function (208). These functions include optionally eliminating some text, adding graphic surrounds about designated lines, changing the color of designated lines, and inserting logos between or merging logos with text. Such usage need not make any changes to existing store lane checkout applications. Configuring new custom commands (214) in POS printers permits defining byte string triggers occurring in receipt text that are used to trigger adding graphics to the receipt output.

Description

GRAPHICAL PRINTING SYSTEM AND METHOD USING TEXT TRIGGERS
CROSS-REFERENCE TO RELATED APPLICATIONS
[001] This application claims priority from U.S. Application Serial No. 10/756,092 filed on 01/13/2004 entitled GRAPHICAL PRINTING SYSTEM AND METHOD USING TEXT TRIGGERS, incorporated herein by reference, which claims priority from U.S. Provisional Application Serial No. 60/439,725 filed 01/13/2003.
FIELD OF THE INVENTION
[002] This invention relates generally to the field of point of sale printing systems, and more particularly to a method for adding special effects to a legacy printing application on a point of sale printer.
BACKGROUND OF THE INVENTION
[003] There are a significant number of store PC terminals and Point Of Sale (POS) printers installed today. New features of currently available printers, such as those from Axiohm Transaction Solutions, Inc. ("Axiohm") of Ithaca, New York, have made it possible to invoke color and graphics functions to enhance the appearance of receipts. Such functionality of course requires some way to issue the new commands for invoking the color and graphics functions. But in calculating a return on total investment for such enhancements, marketplace reality often dictates doing without such functionality.
[004] In finding a cost effective way to achieve enhanced receipts, there are both mandatory fixed costs and optional costs. The mandatory costs include replacing a POS printer with a new one that features color and graphics functions. Ignoring for the moment the installation and configuration fixed costs which go along with the purchase price, an application upgrade necessary to use the new features is usually a prohibitive expense. Changing out the application, or getting custom modifications done, is the major factor that prevents the enhancement proposition from being viable. But if a solution that can coexist with an unchanged "legacy" retail application were possible, then optional costs would be minimized and the new functionality would become viable. Desired solutions would also allow offsetting these costs by targeting the new printing effects for marketing and advertising purposes. [005] The principal choice in fixed costs is which printer to purchase. There are at least some candidates, as Axiohm POS printers have offered several graphics commands that can also be set as configuration options. These graphics remain intact across printer power cycles, indicating that they are stored in non-volatile memory. These configurable graphics features can be downloaded and saved prior to installation. If the desired graphic effects are of a static nature, then all that is needed for implementation is a one-time configuration of these graphics at installation time. Very infrequent changes may also be adequately served in such printers by periodically performing off-line reconfiguration and graphics down-loads of different logos into non-volatile memory.
[006] On the other hand, if in addition to the static graphics, which are quite similar to preprinted receipt paper, the ability to change the appearance of certain items on each receipt is also desired, then new functionality is required. What is needed in the industry is a method that can use the repetitive format of POS receipts and somehow tie selected data to desired effects which uses the new color and graphics capabilities of the printer. The desired outcome is to bridge the visual gap between a legacy receipt and the appearance of a new receipt produced by an application making full use of the graphics command set of POS printers. But in this case, the application producing the receipt is not to be changed, so the problem is how to provide for changeable graphics based on knowledge about a "legacy" application's receipts. An answer to this problem is described in this disclosure.
[007] There are related problems in achieving the goal of inserting graphics into a receipt. One related problem has to do with the art of receipt design, which must be considered when figuring the enhancement total cost, but which is not relevant to the body of this disclosμre. What is relevant is that sufficient flexibility in the method is required to realize the above design decisions made about effects that should be achieved, such as, for example, where to insert graphical surrounds of standard receipt text. This flexibility poses a need for maximum flexibility, thus requiring a number of new printer functions rather than one or two canned effects.
[008] Note that the most difficult case of the enhancement problem has been defined with the legacy host application remaining inviolate. If we ease the restriction and modify the application, then some of the invented functions might not be used in particular receipt formats. The approach depends on a trade-off between the cost of each application modification versus the cost to configure the printer. Furthermore, the easiest case is that of an entirely new application that has updated its text printing by using the new color and graphics functions, in which case it may no longer be necessary to use the method functions of the present invention for any of the desired graphics effects. However, the method functions of the present invention can themselves be useful to new applications as well, just as many POS printer additions have been in the past.
[009] If a new application is created for the printer, the entire command set, including color and graphics commands, is available. Hence different POS printer modes can be set, text attributes mapped differently, new logos brought down, and logo roles changed, i.e., which logo will be a header, which will be a watermark, which is used for side margins, and which will be a trailer. Additional application downloaded logos could be printed at the end of a receipt. Enhancements for security can be invoked, for instance, by serializing the margin logo. A new application could even choose to serialize a coupon logo. But even with all these current POS printing features, the mechanized production of the body content of a receipt can be difficult to enhance graphically. Therefore, automatic graphics insertion done by the printer can be useful irrespective of the age of the application.
[010] Another problem that must be addressed is the reluctance of application writers to depend on new functions that are only available on select printers because of the risk of marketability for an application based on only one printer or printer manufacturer line. If an application chooses to use a least common denominator strategy for printer functions, then any new features can be invoked only if they are available as configuration settings. New applications would need to structure their receipts to best take advantage of the configurable features, yet not be dependent on them.
SUMMARY OF THE INVENTION
[011] Briefly stated, a set of new printing functions are implemented as defining commands to make it possible to add graphic effects to a printout of a POS printer. These functions are based on a method of designating usually cyclically re-occurring byte strings, usually text in receipts, to act as triggers to launch the graphics function. These functions include optionally eliminating some text, adding graphic surrounds about designated lines, changing the color of designated lines, and inserting logos between or merging logos with text. Such usage need not make any changes to existing store lane checkout applications. Configuring new custom commands in POS printers permits defining byte string triggers occurring in receipt text that are used to trigger adding graphics to the receipt output. [012] According to an embodiment of the invention, a method for adding at least one special effect to a legacy printing application on a point of sale (POS) printer includes the steps of (a) identifying at least one predetermined legacy byte string to act as a trigger for adding the at least one special effect to a printed receipt produced by the POS printer; (b) determining when a first string match occurs in an input stream for the POS printer with the at least one predetermined legacy byte string; and (c) adding the at least one special effect to the printed receipt.
[013] According to an embodiment of the invention, an article of manufacture includes a computer usable medium having computer readable program code means embodied therein for adding at least one special effect to a legacy printing application on a point of sale (POS) printer, wherein the computer readable program code means in the article of manufacture includes computer readable program code means for causing a computer to identify at least one predetermined legacy byte string to act as a trigger for adding the at least one special effect to a printed receipt produced by the POS printer; computer readable program code means for causing a computer to determine when a first string match occurs in an input stream for the POS printer with the at least one predetermined legacy byte string; and computer readable program code means for causing a computer to add the at least one special effect to the printed receipt.
BRIEF DESCRIPTION OF THE DRAWINGS
[014] Fig. 1 shows the steps for creating legacy triggers according to an embodiment of the present invention; Fig. 2 shows a high level flow chart of an embodiment of the method of the present invention; Fig. 3 shows an initialization step according to an embodiment of the method of the present invention; Fig. 4 shows a flow chart for processing a legacy text trigger according to an embodiment of the present invention Fig. 5 shows details of a step in the flow chart of Fig. 4; Figs. 6-15 show details of the steps in the flow chart of Figs. 5A-5B Fig. 16 shows details of a step in the flow chart of Fig. 2; Figs. 17-25 show details of the steps in the flow chart of Fig. 16; Fig. 26A shows a store receipt printed under a legacy application; and Fig. 26B shows the store receipt of Fig. 26A with some enhancements of the present invention applied to the receipt.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
[015] The present invention is described for the hardest case of an inviolate host application, since it is not as difficult to determine how the functions can be used to minimize the modifications to an existing application or decrease the development cost of a new application.
[016] The present invention involves the production of special effects, such as graphics and logos, onto the output media of a computer output device. The output media is commonly a receipt dispensed by a point-of-sale printer at a consumer checkout line, but may comprise other types of media, such as coupons, distributed from promotional kiosks or other retail venues. From the printer perspective, the printer receives an input stream consisting of text print data and commands plus command parameters. A legacy application, by definition, will not have sophisticated graphics commands. Legacy application receipts have a basic format and certain text strings that the host application always produces. The present invention contemplates the use of these text strings as trigger points for the addition of the graphical effects.
[017] The invention includes two additions to the conventional POS repertoire of print functions: (1) a string match in the input stream that triggers applying a surround graphic around some legacy text, which method requires a transforming of a surround graphic into a logo suitable for merging, and (2) a string match in the input stream that triggers insertion of a graphic logo.
[018] These additions are described as methods for implementation in POS printer firmware, but may be used in virtually any computer output device which can be programmed accordingly. Note that the equivalent actions can be coded into a host printer driver, which then transforms the printer input stream that the application generates into one that needs only a primitive capability from the printer, i.e., the ability to print a raster dot row. Another option is for the driver to use a less featured printer model and only implement the disclosed functions by using the commands that are available and reverting to raster dot row printing for the effects that cannot be conjured from the commands available in a less featured printer. [019] In this application, the word "trigger" is used to denote the occurrence of a byte string in the input stream which causes certain actions on the input stream and to the printout. These caused actions are termed "triggered." Because printer commands and print data are mixed in the input stream fed to the printer, a trigger is really a user configured definition of a new command that will be invoked by the byte string. The word "legacy" is used to denote a printer input stream generator from the host application that is not aware of any of a printer's new commands.
[020] Legacy triggers provide the ability to enhance print data and to print logos without the need to change existing applications. Triggers are predefined to look for matching text patterns in the printed receipt and either to enhance the printed data or insert a logo. For instance, the basic format for a store receipt includes the following information: store identifier, date, list of purchased items, sub total, tax, total cost, savings total, and an ending message. A retail application of the invention would provide for the setting of string constants for the items that stay the same from receipt to receipt. These items that stay the same from receipt to receipt then become candidates to be used as triggers. These items are determined for each retail entity or store chain as necessary.
[021] A "logo" is a symbol indicating ownership or source; as used in the POS field, this has been broadened to any graphic ranging from store identifiers to general coupons. A logo is a self-contained shape of picture elements (pixels), which in the 2-color thermal case is formed by each pixel being either off, of primary color, or of secondary color. The term "logo" is not intended to include a "surround," which takes a grid of adjacent text character cells and performs a visual merge (Boolean OR) of a mathematically specified shape into the character cells. Before surrounding, the existing character content is assumed to be mostly blank cells with some character string in the middle, thus giving a printed result of some text surrounded by a graphic shape.
[022] The difference between inserting and merging is that insertion suspends regular printing, performs additional printing of the inserted object using additional paper, and then resumes regular printing. The latter term, merging, is performed by a visual color additive function of both the original print and the merge object just before sending the combined data signal to the print mechanism. This results in an appearance of an original which has been overlaid with the merge object. This object by itself usually has a faint appearance, such as would a logo being designed for use as a watermark. [023] Referring to Fig. 1, the steps for creating legacy triggers include clearing all logo and surround graphic space, e.g., erasing flash memory (step 200), erasing trigger block (step 202); resetting the printer (step 204); defining and downloading the logos to be used (step 206); defining the surround graphics and assigning each one a logo ID, with each defined surround graphic taking one logo ID space (step 208); defining the triggers, surround data areas, linked graphics ID's, either logo or surround, and saving the definitions as triggered commands (step 210); resetting the printer (step 212); defining other configuration settings, such as logos to be used at the top and bottom of a receipt and as a watermark (step 214); and again resetting the printer, which creates the triggered commands as part of initialization (step 216).
[024] According to an embodiment of the invention, the procedure for defining a standard trigger is: (a) Define Trigger Mode, Type, Justification, and Color Properties, (b) Define Trigger String Property, (c) Define Auxiliary Trigger String Property if required, and (d) Save the Trigger properties definitions.
[025] The procedure for defining a surround type trigger is: (a) Define Surround Shape Logo, (b) Define Legacy Trigger Mode, Type, Justification, and Color Properties, (c) Define Trigger String Property, (d) Define Trigger Surround Area Property, and (e) Save the Trigger properties definitions.
[026] The definition for the surround shape frequently occurs independent of the other steps. The other steps should occur in the order listed.
[027] As can be seen from the above, a number of commands need to be given to the printer to prepare for a complete trigger definition, which is an implementation choice. It is entirely possible to implement the invention so that all trigger properties are set via one multi- parameter command, or at the opposite end of the spectrum, to have individual commands with one parameter for each property. Note that with these configuring commands it is the saving of a trigger definition that sets up the new "friggered" command mechanics, putting all the actions together. [028] Figs. 26A-26B show the difference between a legacy receipt 260 (Fig. 26A) and one enhanced by several triggers, receipt 262 (Fig. 26B). The "al" name of the store in receipt 260, shown at 264, has been replaced in enhanced receipt 262 by a logo 266 for "Al Grocery." The original prices in receipt 260, shown generally at 268, now have sfrikethroughs in receipt 262, shown generally at 270. Finally, the text at 272 in receipt 260 has been replaced with a similar string with a freehand ellipse applied as shown at 274 of receipt 262. The legacy text used as triggers are "al", which is replaced with the Al logo, "ORIG. PRICE" which friggered the sfrikethroughs in the column of figures, and "*A1 SAVINGS *" which is replaced with single high and wide bold-faced text with a freehand ellipse surround graphic around it.
[029] The processes and structures germane to the present invention are set forth in and fully explained by the flow charts designated by Figs. 2 - 25. Referring to Fig. 2, the process starts in step 10 when either the power is turned on or a reset signal is applied to the transaction printer. The text trigger attributes are initialized in step 12. For example, the logo ID is retrieved from non-volatile memory, as is the trigger type, trigger mode, replace/non-replace flags, trigger string, auxiliary trigger string, surround graphics, and logo graphics as shown in Fig. 3. The main idle loop is shown as step 14. In step 16, the system checks to see if data is in the receive buffer, and if not, control passes to the main idle loop in step 14. If data is in the receive buffer, the legacy text trigger is processed in step 18, with the results passed to step 20 via subroutine B, which is explained in detail below. The system checks in step 20 to see if data was processed during step 18 resulting in printable text data, and if so, the printable text data is processed in step 24, after which system control reverts to the main idle loop in step 14. If no data was processed in step 18, the data in the receive buffer in step 16 must be printer commands, so the printer commands are processed in step 22, after which control reverts to the main idle loop in step 14.
[030] Referring to Fig. 4, subroutine B for processing the legacy text trigger (Fig. 2) is explained in more detail. Step 28 shows the initial settings for this subroutine, with the "trigger found" set to False. In step 30, the data in the receive buffer found in step 16 (Fig. 2) is examined. If a trigger string has been found, the trigger is processed in step 32 (subroutine Bl), after which the "trigger found" is set to False in step 34 and control is passed back to the main routine in step 44. If no trigger string is found in step 30, the next character is obtained from the receive buffer in step 36. In step 38, the character obtained in step 36 is examined to see if it is part of a trigger string, and if not, control passes back to the main routine in step 44. If it is part of a trigger string, the system checks in step 40 to see if all the characters in the trigger string have been found, and if not, control passes back to the main routine in step 44. Once all the characters in the trigger string are found, the "trigger found" flag is set to True in step 42, after which control passes back to the main routine in step 44.
[031] Referring to Fig. 5, subroutine Bl is shown. In the level of subroutine Bl shown in Fig. 5, the trigger string identified in step 30 (Fig. 4) is checked to see what mode and type the trigger string is. Depending on the mode and type, various lower level subroutines are called by the system. At this point in the description, it is helpful to describe various terms used in the drawings.
[032] Conditional surround graphics are surround graphics that occur only when a certain condition is met. In the present invention, that condition is met when a defined trigger string is received by the POS printer. "Surround graphics" are such figures as ovals, rectangles, circles, squares, and ellipses that surround text to highlight the text. The present invention, in addition to adding surround graphics upon the occurrence of the defined trigger string, permits replacing crude graphics that already exist in a POS application, such as asterisks that draw a box around a portion of the receipt, with one of the above mentioned figures. Conditional surround graphics are handled in the present invention by specifying modes, trigger types, and behavior for the surround operations.
[033] A trigger is the byte string used to initiate insertion of a surround shape or logo graphic into the printout. It must be unique to ensure that the surround isn't inserted at unexpected locations on the receipt, and it should be as short as possible to minimize impact on print speed.
[034] In the defining commands, the word "circle" is used to indicate the text lines in the receipt that remain after the application of a surround graphic, which may result in several lines of text appearing inside the surround graphic.
[035] The format of the expected print data, i.e., the mode, is the key to the definition of a trigger. The other parameters are defined as related to the expected receipt format. As an example, in mode 02, replace means omit the line above and the line below the circled line. In mode 01 it means omit the line above the circled line.
[036] The following modes are preferably defined for use in the POS printer commands. [037] Mode 01 : pre-surround the line(s), surround the line(s). This mode removes the line above the line that contains the conditional surround graphic trigger string. This mode also permits cropping data from either end of the line(s) surrounded, including the line that contains the trigger string.
[038] Mode 02: pre-surround the line(s), surround the line(s), post-surround the line(s). This mode removes the line above the line that contains the conditional surround graphic trigger string, and removes the line(s) that immediately follows the last line that is surrounded. This mode also permits cropping data from either end of the line(s) surrounded, including the line that contains the trigger string.
[039] Mode 03: surround the line(s), post-surround the line(s). This mode removes the line that immediately follows the last line that is surrounded. Other text cannot be cropped in this mode.
[040] Mode 04: surround line(s). The purpose of this mode is not to remove any text via cropping.
[041] Mode 11 : inserts a logo that can be left, center, or right justified.
[042] Mode 13: overlays a logo that can be left or right justified.
[043] The following trigger types are preferably defined for use in the POS printer commands.
[044] Trigger type 01 : the trigger is on the line above the line(s) to be surrounded. This type applies if the trigger is on the line immediately preceding the line(s) to be surrounded with a graphic. The line with the trigger text is not surrounded. This trigger type is available only with modes that crop a pre-surround line.
[045] Trigger type 02: the trigger is on the first line to be surrounded. This trigger type is available only for modes that do not crop a pre-surround line.
[046] Trigger type 03: the trigger is the character attribute for the surrounded text. The trigger in this case is not a text string, but rather any text with the predefined attributes selected for triggering. This trigger type is only available for modes that do not crop a pre- surround line. [047] Trigger type 04: the frigger is unable to be specified with only one line. This trigger type therefore depends on an auxiliary trigger sfring that has to be on the line immediately following the primary trigger string. This trigger type is only available for modes that do not crop a pre-surround line.
[048] Table 1 shows mode and trigger details and examples for conditional surround graphics
Figure imgf000013_0001
Table 1
[049] Table 2 shows details and examples for conditional logo graphics.
Figure imgf000013_0002
Figure imgf000014_0001
Table 2
[050] Referring once again to the figures, Fig. 6 shows the preferred steps in processing the trigger string when the trigger string is Mode 1, Trigger Type 1. The systems checks to see if the trigger string is found in step 61, after which the system checks in step 62 to see if the line above the trigger string should be replaced. If so, in step 63, any characters plotted on the line above are erased. After step 63, or if the line above the trigger sfring does not need to be replaced, the predefined surround graphics for the raster builder are set up in step 64. The system checks to see if the end of line condition has been reached in step 65, and if not, control returns to Subroutine Bl (Fig. 5) in step 69. If the end of line condition has been reached, the system checks to see if the line should be changed to the secondary color in step 66. If so, the raster energy buffer for the secondary color is adjusted in step 67; otherwise, the line is processed in step 68 and an extra line is inserted for the bottom of the surround. Control then passes back to Subroutine Bl (Fig. 5) in step 69.
[051] Fig. 7 shows the preferred steps in processing the trigger string when the trigger string is Mode 1, Trigger Type 4. The system checks in step 70 to see if the primary trigger string was found, and if not, control returns to Subroutine Bl (Fig. 5) at step 79. If the primary trigger string was found in step 70, the system checks for an end of line condition in step 71, and until the end of line condition is found, control returns to Subroutine Bl (Fig. 5) at step 79. Once an end of line condition is found in step 71, data is stored in step 72 until it is determined if an auxiliary trigger exists. Then, in step 73, the system checks to see if an auxiliary trigger string is found, and if not, control returns to Subroutine Bl (Fig. 5) at step 79. If the auxiliary trigger string is found in step 73, the predefined surround graphics for the raster printer are set up in step 74, after which the system checks to see if the line above the primary trigger string needs to be replaced, and if so, any characters plotted on the line above the primary trigger string are erased in step 76 before the system moves on to step 77. Otherwise, the print lines are processed in step 77, after which control returns to Subroutine Bl (Fig. 5) at step 79.
[052] Fig. 8 shows the preferred steps in processing the trigger string when the trigger string is Mode 2, Trigger Type 1. The system checks in step 80 to see if a trigger string was found. If not, control returns to Subroutine Bl (Fig. 5) at step 89. If a trigger string was found in step 80, the system checks in step 81 to see if the line above the trigger string needs to be replaced. If so, any characters plotted on the line above the trigger string are removed in step 82. Then, the predefined surround graphics for the raster builder are set up in step 83, after which the system checks to see if the end of line condition has been reached in step 84. If not, control returns to Subroutine Bl (Fig. 5) at step 89. If the end of line condition has been reached, the system checks to see if the line should be changed to the secondary color in step 85, and if so, the raster energy buffer is adjusted for the secondary color. Otherwise, the print line is processed in step 87, after which the system checks to see if the line below the last line to be surrounded should be replaced in step 88a, and if not, control returns to Subroutine Bl (Fig. 5) at step 89. If the line below the last line to be surrounded should be replaced, space characters are substituted for any printable characters in step 88b.
[053] Fig. 9 shows the preferred steps in processing the frigger string when the trigger string is Mode 2, Trigger Type 4. The system checks in step 90 to see if a primary trigger string was found. If not, control returns to Subroutine Bl (Fig. 5) at step 99. If a primary trigger string was found in step 90, the system checks in step 91 to see if an end of line condition exists, and if not, control returns to Subroutine Bl (Fig. 5) at step 99. If the end of the line has been reached, the data is stored in step 92 until an auxiliary frigger string is found. The system checks in step 93 to see if the auxiliary trigger string is found, and if not, control returns to Subroutine Bl (Fig. 5) at step 99. Otherwise, the predefined surround graphics for the raster printer are setup in step 94. The system then checks in step 95 to see if the line above the primary trigger string should be replaced, and if so, any characters plotted for the line above the primary trigger string are erased in step 96. Otherwise, the print lines are processed in step 97. The system checks in step 98a to see if the line below the last line to be surrounded should be replaced, and if not, control returns to Subroutine Bl (Fig. 5) at step 99. If so, space characters are substituted for any printable characters in step 98b, after which control returns to Subroutine Bl (Fig. 5) at step 99.
[054] Fig. 10 shows the preferred steps in processing the trigger string when the frigger string is Mode 3, Trigger Type 2. The system checks in step 100 to see if a frigger string was found. If not, control returns to Subroutine Bl (Fig. 5) at step 109. If a trigger string was found in step 100, the predefined surround graphics for the raster builder are set up in step 101. Then, in step 102, a blank line is inserted above the data to be circled. The system checks in step 103 to see if an end of line condition exists, and if not, control returns to Subroutine Bl (Fig. 5) at step 109. Otherwise, the system checks in step 104 to see if the line should be changed to the secondary color, and if so, the raster energy buffer is adjusted in step 105 for secondary color printing. The print line is processed in step 106, after which the system checks in step 107 to see if the line below the last line to be surrounded should be replaced, and if so, space characters are substituted for any printable characters in step 108. Control then returns to Subroutine Bl (Fig. 5) at step 109.
[055] Fig. 11 shows the preferred steps in processing the trigger string when the trigger string is Mode 3, Trigger Type 3. The system checks in step 110 to see if an attribute trigger was found. If not, control returns to Subroutine Bl (Fig. 5) at step 119. If an attribute trigger was found, the predefined surround graphics for the raster printer are set up in step 111. In step 112, a line is inserted above the data to be circled, after which the system checks in step 113 for an end of line condition. If no end of line condition is found, control returns to Subroutine Bl (Fig. 5) at step 119. Otherwise, the system checks in step 114 to see if the line should be changed to the secondary color, and if so, the raster energy buffer is adjusted in step 115 for secondary color printing, after which the print line is processed in step 116 and a blank line is inserted below the print line. Control then returns to Subroutine Bl (Fig. 5) at step 119.
[056] Fig. 12 shows the preferred steps in processing the trigger sfring when the trigger string is Mode 4, Trigger Type 2. The system checks in step 120 to see if a frigger string was found. If not, control returns to Subroutine Bl (Fig. 5) at step 129. If a trigger string was found in step 120, the predefined surround graphics for the printer raster are set up in step 121. A line is inserted above the data to be circled in step 122. then the system checks in step 123 to see if an end of line condition exists, and if not, control returns to Subroutine Bl (Fig. 5) at step 129. Otherwise, the system checks in step 124 to see if the line should be changed to the secondary color, and if so, the raster energy buffer is adjusted in step 125 for secondary color printing. The line is then processed in step 126, after which control returns to Subroutine Bl (Fig. 5) at step 129.
[057] Fig. 13 shows the preferred steps in processing the trigger string when the trigger string is Mode 4, Trigger Type 3. The system checks in step 130 to see if a frigger attribute was found. If not, control returns to Subroutine Bl (Fig. 5) at step 139. If a frigger attribute was found in step 130, the predefined surround graphics are set up for the raster printer in step 131. Then, a line is inserted in step 132 above the data to be circled. The system checks in step 133 to see if an end of line condition is found, and if not, control returns to Subroutine Bl (Fig. 5) at step 139. If so, the system checks in step 134 to see if the line should be changed to the secondary color. If so, the raster energy buffer is adjusted in step 135 for secondary color printing. The line is then processed in step 136, after which control returns to Subroutine Bl (Fig. 5) at step 139.
[058] Fig. 14 shows the preferred steps in processing the trigger string when the trigger string is Mode 11, Trigger Type 1. If a frigger string is not found in step 140, control returns to Subroutine Bl (Fig. 5) at step 149. After a trigger sfring is found, the system checks in step 141 to see if an end of line condition exists. If not, control returns to Subroutine Bl (Fig. 5) at step 149. Otherwise, a predefined logo is inserted in step 142, after which control returns to Subroutine Bl (Fig. 5) at step 149.
[059] Fig. 15 shows the preferred steps in processing the trigger string when the trigger sfring is Mode 13, Trigger Type 1. If a trigger sfring is not found in step 150, control returns to Subroutine Bl (Fig. 5) at step 159. After a frigger string is found, the system checks in step 151 to see if an end of line condition exists. If not, control returns to Subroutine Bl (Fig. 5) at step 159. Otherwise, a predefined logo is merged in step 152, after which control returns to Subroutine Bl (Fig. 5) at step 159.
[060] Fig. 16 and associated Figs. 17-25 show the detailed steps for processing the printer commands from step 22 (Fig. 2) according to an embodiment of the invention.
[061] The following command defines a text trigger, where a trigger is the byte sfring used to initiate insertion of a surround shape or graphic. It must be unique to ensure that the surround isn't inserted at unexpected locations on the receipt and it should be as short as possible to minimize impact on print speed. The sfring used by the text trigger must be defined immediately after this command is defined. Up to 256 friggers can be defined. This command defines the major properties of a legacy frigger.
[062] Define Legacy Trigger Properties (Figs. 16, 17) ASCII US ETX SYN DLE Hexadecimal IF 03 16 10 f t m c r Values (Hex) f = 00-FF and is the Logo ID t = 01, 02, 03, 04 and is the trigger type. This applies to modes 1-4. 01. Trigger string is on the line above the line to be circled (recommended method). 02. Trigger string is on the line containing the data to be circled. 03. Trigger is a character attribute for all contiguous characters to be circled. 04. Trigger is a combination of trigger types 1 and 2. t = 01, 02, 03 is the justification which applies to mode 11. 00. Left 01. Right 02. Center t = 01, 03 is the justification which applies to mode 13. 00. Left 01. Right m = 01 - 04, 11, 13 is the mode, which is the format of the printed data before enhancement is applied. 01. Pre-surround line, surround line(s). 02. Pre-surround line, surround line(s), post-surround line. 03. Surround line, post-surround line. 04. Surround line(s). 11. Inserts a logo that can be left, center, or right justified. 13. Overlays a logo that can be left or right justified, c, r = 00-11 are the color and the replacement/non-replacement of the trigger text. 00. Monochrome, non-replace. 01. Monochrome, replace. 10. 2nd Color, non-replace. 11. 2nd Color, replace.
[063] Related information: 1. Mode defines the meaning of the t parameter. For modes 1-4 (surround modes), t determines the type of trigger to use. For modes 11 and 13, t determines the justification. 2. Modes 11 and 13 always use Trigger Type 1. 3. Mode 13 replaces the margin message function. The two functions can't be used together. 4. Replace. In non-replace mode, the frigger is included with the printed data. In replace mode, the trigger is not included with the printed data. In general, the trigger is not included with the printed data. 5. Mode determines what lines are replaced, i.e., omitted. In mode 1 the line above the surround line is replaced. In mode 2 the line above and the line below the surround line are replaced. In mode 3 the line below the surround line is replaced. In mode 4 no lines are replaced. 6. In non-replace mode 4, the frigger is printed in color if a color property is specified. 7. There is a practical limit to the number of lines that can be surrounded. The limit is a function of the width of the line and the surround type used. 8. Only one surround can be applied at a time. Triggers defined within the surround area are ignored. 9. Nested triggers aren't supported. 10. Triggers that are subsets of other triggers should be avoided. 11. Multiple triggers can use the same logo ID. 12. The printer is busy when writing trigger to flash memory. Delay a minimum of 100 ms after sending this command. 13. Note that the auxiliary frigger string is not replaceable. 14. All text on all lines that contains part of the surround graphic is printed in color if the color bit is set in the (c, r) parameter, not just the trigger string.
[064] The next command defines the text string used by the Define Legacy Trigger Properties command and may immediately follow that command. All commands that need a text frigger property use this command to define the trigger string. [065] Define Legacy Trigger String (Figs. 16, 18) ASCII US ETX SYN DC1 Hexadecimal IF 03 16 11 n d Decimal 31 03 22 17 Values (Hex) n = 01 - 17 Length of the string. 1 -23 characters. d = Text string. Any value but character codes between 20 - 7F suggested.
[066] The next command defines the auxiliary text string used by modes 1 and 2 of the Define Legacy Trigger Properties command. It should follow the Define Legacy Trigger String command. Note that the auxiliary frigger is not replaced.
[067] Define Legacy Auxiliary Trigger String (Figs. 16, 19) ASCII US ETX SYN DC2 Hexadecimal IF 03 16 12 n d Decimal 31 03 22 18 Values (Hex) n= 01-17 Length of the string. 1-23 characters. d= Text string. Character codes between 20 - 7F.
[068] The next command creates a triggered action command and stores in flash the string information previously set with a Define Legacy Trigger Properties command and others. It should be used after a consistent set of property definitions for a trigger. Flash status (ID 72) can be used to ensure the trigger was successfully saved, else there is either insufficient room or some problem with trigger property values. The printer goes busy while writing to flash memory, so a small delay (100 ms) should be inserted after issuing this command. All legacy trigger properties (even ones not used by current legacy mode and type) are set to null initial values. The next legacy triggered command definition starts with a clean slate, so all property setting must be done.
[069] Store Legacy Trigger (Figs. 16, 23) ASCII US ETX SYN DC3 Hexadecimal IF 03 16 13 Decimal 31 03 22 19 [070] A trigger block containing 256 entries is allocated the first time a frigger command is created. All subsequent trigger definitions use this trigger block as well. There is only one active block at a time. Prior to defining a new trigger, User Status Command (ID 97 06 00) can be used to ensure sufficient entries in the block. If there are not enough entries the block should be erased, so that a subsequent trigger definition command initiates allocation of an empty block. The next command is used to erase all entries in the trigger block.
[071] Erase Legacy Trigger Block (Figs. 16, 25) ASCII US ETX SYN DC4 Hexadecimal IF 03 16 14 Decimal 31 03 22 20
[072] The next command defines a surround type and gives it a Logo ID. When printed, the surround is printed in the active color at the time of definition. To ensure the desired effect, the command should be preceded by a set color command (IB 72 n). The number of print lines to surround should match the parameter in the Define Legacy Surround Data Area Property command, explained next below. It takes time to define the shape and write it to flash memory, so a delay of 1-3 seconds should be inserted after the command.
[073] Define Legacy Surround Area (Figs. 16, 20) ASCπ US ETX SYN NAK Hexadecimal lF 03 16 15 fm n o p Decimal 31 03 22 21 Values (Hex) f = 00-FF Logo ID. m = 00-05 Surround Type. Surround types include oval, rectangle, circle, and ellipse. n = 00-37 Start column for the surround graphic. 0 = 01-38 Number of columns to surround. p =01 - ... Number of print lines to surround.
[074] The next command specifies the text area to enhance with the surround shape. The number of print lines to surround should match the parameter in the Define Legacy Surround Area command, explained immediately above. Text on a line not included in the surround area is either printed or not printed depending on the state of the replace/no-replace flag in the trigger definition. For best results, the data to be surrounded should be centered. The data to be surrounded on a line should have a few blank spaces before and after it to accommodate the shape.
[075] Define Legacy Surround Data Area Property (Figs. 16, 21) ASCII US ETX SYN SYN Hexadecimal IF 03 16 16 n o p Decimal 31 03 22 22 Values (Hex) n = 01 -38 Start column of the data to be included. 0 = 01-37 The number of columns + the start column to include in the surround. p =01 - ... Number of print lines to surround.
[076] The next command causes a complete line to be printed in color. The Define Legacy Trigger Sfring Property command follows this command and defines the line to be printed in the 2nd paper color. For thermal printers, the second color is typically either red or blue, depending on the thermal paper used. Monochrome is black.
[077] Define Legacy 2nd Color Trigger (Figs. 16, 22) ASCII US ETX SYN CAN Hexadecimal IF 03 16 17 Decimal 31 03 22 23
[078] The next command is used to erase all definitions in a trigger block. Prior to modifying or adding to existing trigger definitions, all defined triggered commands may be erased, after which the new and updated friggered commands can be created. This command is used prior to creating triggers when there would be conflict within active frigger block. If there is not enough space in the block to fit the new triggers, the Erase Legacy Trigger Block command must be used, followed by defining all the triggers. Use the User Status command (ID 97 06 00) to determine if sufficient trigger space is available. If few triggers are defined and they are frequently updated, this is a good command to use because it maximizes use of flash memory and minimizes the need to re-download logos and re-define surround shapes. If many triggers are used and/or they are updated infrequently, the Erase Legacy Trigger Block command should be used because it requires less trigger management. [079] Erase All Legacy Trigger Commands (Figs. 16, 24) ASCII US ETX SYN CAN Hexadecimal IF 03 16 18 Decimal 31 03 22 24
[080] The next command enables configuring the functionality of various legacy features. Options specified in the Option Change Mask are set to the value specified in the Option Value Mask. Only options specified in the Option Change Mask are changed; the remaining are untouched.
[081] Set Legacy Feature Options Command ASCII US ETX SYN BS a m s t Hexadecimal IF 03 16 08 Decimal 31 03 22 08 Values: a = option change mask low byte m = option change mask high byte s = option value mask low byte t = option value mask high byte
Figure imgf000023_0001
Figure imgf000024_0001
[082] The next command enables or disables legacy features. The features to enable or disable are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be disabled/enabled is specified by the On/Off Mask. Whether the feature should be disabled/enabled immediately or be delayed until after the next knife cut is specified by setting the appropriate bit in the Delay Mask. This applies to run time only and is not saved in NVRAM.
[083] Enable/Disable Legacy Feature Command (Run Time) ASCII US ETX SYN ACK a m s Hexadecimal IF 03 16 06 Decimal 31 03 22 06 Values: a = delay mask. Set to 1 delays changing the feature until after the next knife cut. m = feature mask. Specifies the feature to change. Set to 1 identifies feature to be changed. s = Setting bit enables the feature, setting to 0 disables the feature.
[084] Bit Masks Bit Definition Table:
Bit 0 - Bottom Logo Bit 1 - Top Logo Bit 2 - Ribbon Logo Bit 3 - Watermark Bit 4 - Triggers (Valid for IF 03 16 06 and IF 03 16 10 xx xx 30 xx commands only) Bit 5 - Attribute Substitution Bit 6 - Input Substitution
[085] The next command enable or disables legacy features. The features to enable or disable are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be disabled/enabled is specified by the On/Off Mask. Whether the feature should be disabled/enabled immediately or be delayed until after the next knife cut is specified by setting the appropriate bit in the Delay Mask. Saved in NVRAM. [086] Enable/Disable Legacy Feature Command (Permanent) ASCII US ETX SYN ACK a m s Hexadecimal IF 03 16 09 Decimal 31 03 22 09 Values: a = delay mask. Set to 1 delays changing the feature until after the next knife cut. m = feature mask. Specifies the feature to change. Set to 1 identifies feature to be changed. s = Setting bit enables the feature, setting to 0 disables the feature.
[087] Bit Masks Bit Definition Table
Bit 0 - Bottom Logo Bit 1 - Top Logo Bit 2 - Ribbon Logo Bit 3 - Watermark Bit 4 - Triggers (Valid for IF 03 16 06 and IF 03 16 10 xx xx 30 xx commands only) Bit 5 - Attribute Substitution Bit 6 - Input Substitution
[088] The next command creates a trigger to disable a legacy feature for a specified number of knife cuts on matching the specified text in a data stream. The features to suspend are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be suspended immediately or be delayed until after the next knife cut is specified by setting the appropriate bit in the Delay Mask. A trigger must be specified via the IF 03 16 11 command. This trigger must be stored by the IF 03 16 13 command.
[089] Suspend Legacy Feature Trigger ASCII US ETX SYN BS a m 30 s Hexadecimal IF 03 16 10 Decimal 31 03 22 16 Values: a = delay mask. Set to 1 delays suspending the feature until after the next knife cut. m = feature mask. Set to 1 causes the feature to be suspended. 3 OH = Suspend function. s = Remove and count. Specifies the number of knife cuts to suspend feature for. Max = 64. Setting bit 7 of this byte to 1 causes the trigger string to be removed and not printed.
[090] Bit Masks Bit Definition Table
Bit 0 - Bottom Logo Bit 1 - Top Logo Bit 2 - Ribbon Logo Bit 3 - Watermark Bit 4 - Triggers (Valid for IF 03 16 06 and IF 03 16 10 xx xx 30 xx commands only) Bit 5 - Attribute Substitution Bit 6 - Input Substitution
[091] The next command creates a trigger to enable a legacy feature upon matching the specified text in a data stream. The features to enable are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be enabled immediately or be delayed till after the next knife cut is specified by setting the appropriate bit in the Delay Mask. A trigger must be specified via the IF 03 16 11 command. This trigger must be stored by the IF 03 16 13 command.
[092] Enable Legacy Feature Trigger ASCII US ETX SYN BS a m 31 s Hexadecimal IF 03 16 10 Decimal 31 03 22 16 Values: a = delay mask. Set to 1 delays enabling the feature until after the next knife cut. m = feature mask. Specifies the feature to enable. Set to 1 causes the feature to be enabled. 31H = Enable legacy feature trigger function. s = Remove. Setting bit 7 of this byte to 1 causes the trigger string to be removed and not printed.
[093] Bit Masks Bit Definition Table
Bit 0 - Bottom Logo Bit 1 - Top Logo Bit 2 - Ribbon Logo Bit 3 - Watermark Bit 4 - Not Applicable Bit 5 - Attribute Substitution Bit 6 - Input Substitution
[094] The next command creates a frigger to enable a legacy feature upon matching the specified text in a data sfream. The features to enable are specified by setting the appropriate bit in the Feature Mask. Whether the feature should be enabled immediately or be delayed till after the next knife cut is specified by setting the appropriate bit in the Delay Mask. A trigger must be specified via the IF 03 16 11 command. This trigger must be stored by the IF 03 16 13 command.
[095] Disable Legacy Feature Trigger ASCII US ETX SYN BS a m 32 s Hexadecimal IF 03 16 10 Decimal 31 03 22 16 Values: a = delay mask. Set to 1 delays disabling the feature until after the next knife cut. m = feature mask. Specifies the feature to disable. Set to 1 causes the feature to be disabled. 32H = Disable legacy feature trigger function. s = Remove. Setting bit 7 of this byte to 1 causes the trigger sfring to be removed and not printed.
[096] Bit Masks Bit Definition Table Bit 0 - Bottom Logo Bit 1 - Top Logo Bit 2 - Ribbon Logo Bit 3 - Watermark Bit 4 - Not Applicable Bit 5 - Attribute Substitution Bit 6 - Input Substitution
[097] The Data Stream Substitution Feature is an extension to the trigger command. However, it is not processed with the other triggers. This feature intercepts calls to the communications buffer, tests the data sfream and makes substitutions as specified. The trigger commands are used to program the substitution sequences. The data is stored with the triggers and as such takes up trigger locations and is erased by the erase trigger commands. Four of the trigger commands are enhanced for this purpose: Setup Legacy Trigger (If 03 16 10). Defines the number of bytes to strip from the data stream. Set Trigger String (If 03 16 11). Defines the key to look for in the data stream. Set Aux Trigger String (If 03 16 12). Defines the data to insert in the data stream. Store Legacy Trigger (If 03 16 13). Saves the trigger and replacement data.
[098] The next command defines the number of bytes to remove from the data stream:
[099] Define Legacy Data Stream Substitution Data to Remove
ASCII US ETX SYN DLE f m Hexadecimal IF 03 16 10 0 0 41 1 m Decimal 31 03 22 16 0 0 65 1 Values (Hex) f = 41 Identifies function as the Data Stream Substitution Trigger Function. m = Number of bytes of data to strip from the data stream, starting at first character of the trigger.
[100] The next command defines the trigger to look for in the data stream. [101] Define Legacy Data Stream Substitution Source Trigger ASCII US ETX SYN DC 1 n s Hexadecimal IF 03 16 11 n s Decimal 31 03 22 17 Values (Hex) n = Number of characters in the trigger. s = frigger characters: data[0] ... data[length-l
The next command defines the resultant data stream.
[102] Define Legacy Data Stream Substitution Source Trigger
ASCII US ETX SYN DC1 n s Hexadecimal IF 03 16 12 n s Decimal 31 03 22 18 Values (Hex) n = number of characters to place in the data stream. Set n = 0 to add nothing to the data stream. s = replacement characters: data[0] ... data[length-l]
[103] When the strip length is less then the key length the substitution string will be inserted before the remaining key data. CAUTION: Strip lengths of zero cause infinite loops. Use strip length of 1 and put back the sfripped character. Commands that download graphics data are excluded from processing, and therefore cannot be included in either the test key or the substitution sequence. These commands include the following: 0x11 Raster Graphics OxlB 0x2A Set Bit Image Mode Ox IB 0x2E Advanced Raster Graphics OxlB 0x42 Bmp Graphics OxlB 0x4B Single Density Graphics OxlB 0x59 Double Density Graphics Ox 1 D 0x2A Define Logo OxlD 0x83 Color Raster Graphics Ox ID 0x84 Download Logo Image [104] The next command sets a specific speed for an operation, allowing the user more control of the print environment. The speed is maintained as long as it is less than the speed automatically set by power management. A parameter of zero (0) restores the normal max speed. The command can be used in two different ways: (1) If inserted in the receipt data stream, it causes all following text and graphics to be printed at the target speed. It remains in effect until turned off or the printer is reset. Recognition of the command to turn off the target speed occurs prior to the printing of all previous data so the printer returns to normal speed sooner than expected. (2) If inserted prior to downloading a logo file, the logo file is automatically printed at the target speed. The command is in effect only for the logo downloaded immediately after issuing the command.
[105] Set temporary max target speed ASCI GS Hexadecimal ID A0 nl nh Decimal 29 Values: 15H - B4H Monochrome 15H - 64H Color Default: 0. Normal Speed
[106] The following diagnostic commands are preferably defined:
[107] Print Trigger Data.
IF 03 16 80 Prints the definition of the active triggers. After the Erase Trigger Block command, 256 triggers should be available.
[108] Print Legacy Settings
IF 03 16 81 Prints the on/off status of all legacy functions.
[109] Print Legacy Substitution (Data Stream) Settings
IF 03 16 82 Prints the on/off status of all legacy substitution settings.
[110] Print Logo Information ID 9C 00 00 Prints details concerning all active logos. The print count of surround shapes stored as logos is not maintained so the print count should be ignored.
[Ill] Return Number of Unused Trigger Slots
ID 97 06 00 Returns the number of unused Triggers.
[112] Some of the above functions are complex because they must rely on the print text generated by a client application that is completely unaware of the graphic effects which will be added by the printer. In some cases, control of the print text contents may be too vague and the region for a desired effect does not have any unique and repetitive byte strings. Fortunately, the ability to replace matched text allows configuring very precise actions. When a system implementation has the opportunity to tweak the input data to the printer host application by inserting unique gibberish and /or unprintable characters at the printout place where each effect is desired, then the new functions would be set-up with the parameter option to have the graphic replace the gibberish characters. Such applications are often described as providing "hooks" for their users, e.g., retail stores, to insert custom text into a standard format. It is therefore important that more than just the ASCII text range (20-7F- hex) be available for declaration as match strings.
[113] The maximum length of a match string, as given in the above parameter limits, is an arbitrary value, determined by the length of likely trigger words and the prevalent printing media being used. In a POS receipt case, where a maximum line is 40-60 characters, with the upper number arising from printers that offer compressed fonts, a value of 24 generously exceeds all likely usage. This number can be increased or even eliminated with commensurate increases in memory usage and implementation complexity. Both the length of the trigger strings and the total number active at any time influence the performance of the printer.
[114] The following features of the invention are all derived from the ability to trigger off of legacy text: (a) delaying for a fixed number of bytes the normal processing of input stream bytes; (b) delaying for a variable number of bytes, which number is determined by the presence of several carriage returns (CR) and or line feed (LF) characters, the processing of input stream bytes; (c) defining a byte string of less than or equal to maximum length to be stored in nonvolatile storage; (d) managing non- volatile storage for holding up to a fixed number of defined byte strings; (e) ordering the fixed number of byte strings into fast response memory, e.g., RAM or flash memory, for quickest execution of a match does not match function; (f) checking if a subset of the delayed input byte string matches any one of a stored list of strings; (g) acting on a match occurrence by inserting a defined part of the delayed input string into a stored logo; (h) acting on a match occurrence by merging a defined part of the delayed input string with a stored logo; (i) acting on a match occurrence by inserting a defined part of the delayed input string without its matched substring into a stored logo; (j) acting on a match occurrence by merging a defined part of the delayed input string without its matched substring with a stored logo; (k) printing the modified logo instead of passing the delayed input sfring to normal processing; (1) defining a surround graphic of a certain size, optionally in a specified color, to be a logo; (m) acting on a match occurrence by inserting a logo into a defined part of the delayed input string (n) acting on a match occurrence by replacing the match string in the delayed input stream with a logo; (o) acting on a match occurrence by merging a defined part of the delayed input string with a logo; (p) acting on a match occurrence by eliminating the match string in the delayed input stream and merging the logo with the remainder of the delayed input string; (q) defining the placement of the above inserted or merged logo to be either left or center or right aligned on the paper; (r) defining a secondary match string; (s) storing the secondary match string in non-volatile storage; (t) associating the secondary match string with a primary match string; and (u) acting on a match occurrence of a first match string and further in the delayed byte sfring a match occurrence of a secondary match string, where the secondary match is used to detect variable strings that are surrounded by known ones, with the known ones usually being replaced by a surround graphic.
[115] While the present invention has been described with reference to a particular preferred embodiment and the accompanying drawings, it will be understood by those skilled in the art that the invention is not limited to the preferred embodiment and that various modifications and the like could be made thereto without departing from the scope of the invention as defined in the following claims.

Claims

What is claimed is:
1. A method for adding at least one special effect to the output media of a computer output device adapted to receive an input byte sfream, said method comprising the steps of: a) identifying at least one byte string to act as a trigger for adding said at least one special effect to said output media; b) determining when said at least one byte string occurs in said input byte stream to said computer output device; and c) adding said at least one special effect to said output media in response to said at least one byte string.
2. A method according to claim 1, wherein said computer output device comprises a point-of-sale printer.
3. A method according to 2, wherein said output media comprises a receipt.
4. A method according to 1, wherein said byte string is a legacy text sfring.
5. A method according to claim 1, wherein said step of adding said at least one special effect to said output media is: i) inserting a predefined portion of said input byte stream into a stored graphic for printing; ii) merging a predefined portion of said input byte stream into a stored graphic for printing; iii) inserting a graphic into a predefined portion of said input byte stream for printing; iv) merging a graphic into a predefined portion of said input byte stream for printing; v) replacing a predefined portion of said input byte stream with a stored logo for printing; or vi) eliminating at least a portion of said predetermined input byte stream and merging a stored graphic with a remainder of said predetermined input byre for printing.
5. A method according to claim 1, further comprising the step of defining said special effect to be a surround graphic of a predetermined size.
6. A method according to claim 5, further comprising the step of defining said surround graphic to be a predetermined color.
7. A method according to claim 6, further comprising the step of defining said surround graphic to be a predetermined shape.
8. An article of manufacture having computer readable program code means embodied therein for adding at least one special effect to the output media of a computer output device adapted to receive an input byte stream, said article of manufacture comprising: a) computer readable program code means for storing at least one byte string to act as a trigger for adding said at least one special effect to said output media; b) computer readable program code means for determining when said at least one byte string occurs in said input byte stream; and c) computer readable program code means for adding said at least one special effect to said output media in response to said at least one byte string.
9. An article according to claim 8, wherein said computer readable program code means for adding said at least one special effect to said output media is: i) computer readable program code means for inserting a predefined portion of said predetermined legacy byte stream into a stored graphic for printing; ii) computer readable program code means for merging a predefined portion of said predetermined legacy byte stream into a stored graphic for printing; iii) computer readable program code means for inserting a graphic into a predefined portion of said predetermined input byte sfream for printing; iv) computer readable program code means for merging a graphic into a predefined portion of said predetermined input byte stream for printing; v) computer readable program code means for replacing a predefined portion of said predetermined input byte stream with a stored graphic for printing; or vi) computer readable program code means for eliminating a predefined portion of said predetermined input byte stream and merging a stored graphic with a remainder of said predetermined input byte stream for printing.
10. An article according to claim 8, further comprising computer readable program code means for defining said graphic to be a surround graphic of a predetermined size.
11. An article according to claim 8, wherein said byte string is a text string.
12. An article according to claim 9, further comprising computer readable program code means for defining said surround graphic to be a predetermined color.
13. An article according to claim 9, further comprising computer readable program code means for defining said surround graphic to be a predetermined shape.
14. A method of creating a trigger for signaling the addition of a special effect to the output media of a computer output device, said method comprising the steps of: a) setting the length of a input text string to serve as said trigger; b) setting the content of said text sfring; c) defining the location of said input text sfring relative to the intended location of said special effect; d) defining the type of said special effect to be added; e) defining the extent of replacement of said input text string by said special effect; and f) storing said length, said content, said location, said type, and said replacement in computer readable memory accessible by said computer output device.
15. A method according to claim 14, wherein said trigger is a legacy trigger.
16. A method according to claim 14, wherein said special effect is a surround graphic.
17. A method according to claim 14, wherein said special effect is a logo.
18. A method according to claim 14, further comprising defining the color of said special effect.
19. A method of adding a surround graphic to legacy data printed on the output media of a computer output device, said method comprising the steps of: a) defining a set of surround graphic parameters identifying the type of said surround graphic, the starting column of said output media where said surround graphic will be added, the numbers of columns of said output media that said surround graphic will be surround, and the number print lines said surround graphic will surround; b) defining a set of print area parameters identifying the starting column on said output media where said legacy data will be printed, the numbers of columns of said output media where said legacy data will be printed, and the number of print lines of said output media where said legacy data will be printed; and c) printing said surround graphic and said legacy data on said output media according to said surround graphic parameters and said print area parameters.
20. A method of confrolling the printing of a special effect on the output media of a computer output device adapted to receive an input byte stream from a legacy application, said method comprising the steps of: a) setting a feature mask having a plurality of predetermined parameters that define the intended printing characteristics of said special effect; b) defining a first trigger for indicating when said special effect should be disabled according to said feature mask; c) defining a second trigger to indicate when said special effect should be enabled according to said feature mask; d) detecting said first and said second triggers in said input byte stream; and e) enabling and disabling said special effect according to said first and second friggers.
21. A method of adding graphics to the output byte steam of a host application for a computer output device, said method comprising the steps of: a) delaying for a predetermined number of bytes the processing of said output byte stream; b) defining a plurality of byte strings of less than a predetermined maximum length to be stored in non-volatile storage; c) managing said non-volatile storage to hold said byte strings; d) ordering said byte strings into a fast response; f) determining whether said output byte stream contains at least one matching byte string; and g) adding said graphics into said output byte stream in response to determining said matching byte strings are in said output byte stream.
22. The method of claim 21, wherein the step of adding said graphics into said input stream comprises merging said output byte stream with said graphics.
23. The method of claim 21, wherein the step of adding said graphics into said output byte sfream comprises inserting predetermined portions of said output byte steam into said graphics.
24. The method of claim 21, wherein the step of adding said graphics into said output byte sfream comprises merging predetermined portions of said output byte steam without said matching byte strings with said graphics.
25. The method of claim 21, wherein the step of adding said graphics into said output byte stream comprises inserting at least one logo into a predetermined portion of said output byte stream.
26. The method of claim 21, wherein the step of adding said graphics into a said output byte stream comprises replacing said matching byte strings in said output byte sfream with at least one logo.
27. The method of claim 21, wherein the step of adding said graphics into said output byte stream comprises merging a predetermined portion of said output byte stream with at least one logo.
28. The method of claim 21, wherein the step of adding said graphics into a said output byte stream comprises eliminating said match string from said output byte stream and merging at least one logo with said output byte sfream.
PCT/US2004/035966 2004-01-13 2004-10-29 Graphical printing system and method using text triggers WO2005069760A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA002551742A CA2551742A1 (en) 2004-01-13 2004-10-29 Graphical printing system and method using text triggers

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/756,092 2004-01-13
US10/756,092 US7460252B2 (en) 2003-01-13 2004-01-13 Graphical printing system and method using text triggers

Publications (2)

Publication Number Publication Date
WO2005069760A2 true WO2005069760A2 (en) 2005-08-04
WO2005069760A3 WO2005069760A3 (en) 2007-09-20

Family

ID=34807465

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/035966 WO2005069760A2 (en) 2004-01-13 2004-10-29 Graphical printing system and method using text triggers

Country Status (3)

Country Link
US (1) US7460252B2 (en)
CA (1) CA2551742A1 (en)
WO (1) WO2005069760A2 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460252B2 (en) * 2003-01-13 2008-12-02 Axiohm Transaction Solutions, Inc. Graphical printing system and method using text triggers
US20050073710A1 (en) * 2003-02-20 2005-04-07 Campbell Terrence J. Method and system for suppressing printing of graphics in a POS printer
US20050242178A1 (en) * 2004-04-08 2005-11-03 Masahiro Minowa Printing system, POS system, connection device, and control method and control program for printing system
JP4595399B2 (en) * 2004-06-24 2010-12-08 セイコーエプソン株式会社 Printing apparatus, program, and printing method
JP4791710B2 (en) 2004-06-24 2011-10-12 セイコーエプソン株式会社 Printing apparatus, program, printing system, and printing control method
US20060095855A1 (en) * 2004-11-03 2006-05-04 Britt Clinton D HMI reconfiguration method and system
JP4574457B2 (en) * 2005-06-08 2010-11-04 キヤノン株式会社 Image processing apparatus and method
US8452604B2 (en) * 2005-08-15 2013-05-28 At&T Intellectual Property I, L.P. Systems, methods and computer program products providing signed visual and/or audio records for digital distribution using patterned recognizable artifacts
JP4685624B2 (en) * 2005-12-28 2011-05-18 スター精密株式会社 Environment setting data setting method, environment setting data setting program, and print data supply device
US20090027697A1 (en) * 2007-02-23 2009-01-29 Kyle Turner System and Method for Conserving Receipt Paper on a Transaction Receipt
US20080278750A1 (en) * 2007-05-11 2008-11-13 Daniel Adolf Lehotsky System And Method For Intelligent Label Printer Control
EP2083404A3 (en) 2008-01-24 2010-01-06 Seiko Epson Corporation Receipt printing processing method, printer and receipt printing processing system
JP6089406B2 (en) 2012-01-25 2017-03-08 セイコーエプソン株式会社 Image processing apparatus, printing apparatus, and image processing method
JP6024168B2 (en) 2012-04-10 2016-11-09 セイコーエプソン株式会社 Data processing apparatus, recording apparatus, and control method for data processing apparatus
JP6036040B2 (en) * 2012-09-07 2016-11-30 セイコーエプソン株式会社 RECORDING DEVICE, RECORDING DEVICE CONTROL METHOD, AND PROGRAM
CN107122143B (en) 2012-11-26 2020-01-17 精工爱普生株式会社 Recording control system, control method of recording control system, and recording apparatus
US10279583B2 (en) 2014-03-03 2019-05-07 Ctpg Operating, Llc System and method for storing digitally printable security features used in the creation of secure documents
US11752779B2 (en) 2017-12-12 2023-09-12 Gpcp Ip Holdings Llc Food service cup dispensers, systems, and methods
US20190174933A1 (en) 2017-12-12 2019-06-13 Gpcp Ip Holdings Llc Food service cup dispensers, systems, and methods

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040167993A1 (en) * 2003-01-13 2004-08-26 Campbell Terrence J. Graphical printing system and method using text triggers
WO2004074387A2 (en) * 2003-02-20 2004-09-02 Axiohm Transaction Solutions, Inc. Method and system for suppressing printing of graphics in a pos printer

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4027142A (en) * 1974-03-06 1977-05-31 Recognition Equipment Incorporated Automated processing of financial documents
US4467036A (en) * 1981-11-12 1984-08-21 The Board Of Regents Of The University Of Washington Bacillus thuringiensis crystal protein in Escherichia coli
US4448885A (en) * 1981-04-27 1984-05-15 Board Of The Regents Of The University Of Washington Bacillus thuringiensis crystal protein in Escherichia coli
US5380831A (en) * 1986-04-04 1995-01-10 Mycogen Plant Science, Inc. Synthetic insecticidal crystal protein gene
US4761373A (en) * 1984-03-06 1988-08-02 Molecular Genetics, Inc. Herbicide resistance in plants
US4830966A (en) * 1984-09-07 1989-05-16 Sungene Technologies Corporation Process for regenerating corn
US5100792A (en) * 1984-11-13 1992-03-31 Cornell Research Foundation, Inc. Method for transporting substances into living cells and tissues
US4945050A (en) * 1984-11-13 1990-07-31 Cornell Research Foundation, Inc. Method for transporting substances into living cells and tissues and apparatus therefor
JP2570684B2 (en) * 1985-02-08 1997-01-08 セイコーエプソン株式会社 Character pattern generator for Dot Tomato Rix serial printer
US5371003A (en) * 1987-05-05 1994-12-06 Sandoz Ltd. Electrotransformation process
US5350689A (en) * 1987-05-20 1994-09-27 Ciba-Geigy Corporation Zea mays plants and transgenic Zea mays plants regenerated from protoplasts or protoplast-derived cells
US5051924A (en) * 1988-03-31 1991-09-24 Bergeron Larry E Method and apparatus for the generation of reports
US5990387A (en) * 1988-06-10 1999-11-23 Pioneer Hi-Bred International, Inc. Stable transformation of plant cells
US5023179A (en) * 1988-11-14 1991-06-11 Eric Lam Promoter enhancer element for gene expression in plant roots
EP1103616A3 (en) * 1989-02-24 2001-06-27 Monsanto Company Synthetic plant genes and method for preparation
US5305196A (en) * 1989-05-01 1994-04-19 Credit Verification Corporation Check transaction processing, database building and marketing method and system utilizing automatic check reading
US5550318A (en) * 1990-04-17 1996-08-27 Dekalb Genetics Corporation Methods and compositions for the production of stably transformed, fertile monocot plants and cells thereof
US5128520A (en) * 1989-08-11 1992-07-07 Spectra-Physics, Inc. Scanner with coupon validation
US5484956A (en) * 1990-01-22 1996-01-16 Dekalb Genetics Corporation Fertile transgenic Zea mays plant comprising heterologous DNA encoding Bacillus thuringiensis endotoxin
US6946587B1 (en) * 1990-01-22 2005-09-20 Dekalb Genetics Corporation Method for preparing fertile transgenic corn plants
JP3209744B2 (en) * 1990-01-22 2001-09-17 デカルブ・ジェネティクス・コーポレーション Transgenic corn with fruiting ability
US6777589B1 (en) * 1990-01-22 2004-08-17 Dekalb Genetics Corporation Methods and compositions for the production of stably transformed, fertile monocot plants and cells thereof
US5832457A (en) 1991-05-06 1998-11-03 Catalina Marketing International, Inc. Method and apparatus for selective distribution of discount coupons based on prior customer behavior
NZ242614A (en) * 1991-05-06 1995-07-26 Catalina Marketing Int Printing discount coupons according to product bar codes at point of sale
UA48104C2 (en) * 1991-10-04 2002-08-15 Новартіс Аг Dna fragment including sequence that codes an insecticide protein with optimization for corn, dna fragment providing directed preferable for the stem core expression of the structural gene of the plant related to it, dna fragment providing specific for the pollen expression of related to it structural gene in the plant, recombinant dna molecule, method for obtaining a coding sequence of the insecticide protein optimized for corn, method of corn plants protection at least against one pest insect
TW261517B (en) * 1991-11-29 1995-11-01 Mitsubishi Shozi Kk
US5478120A (en) * 1992-07-31 1995-12-26 D'andrea; Deborah B. Method of making a publication and product produced thereby
US5353218A (en) * 1992-09-17 1994-10-04 Ad Response Micromarketing Corporation Focused coupon system
US5444763A (en) * 1993-06-17 1995-08-22 Research In Motion Limited Translation and connection device for radio frequency point of sale transaction systems
US5638880A (en) * 1993-11-09 1997-06-17 Hunter Douglas Inc. Fabric light control window covering with rigid vanes
US5689052A (en) * 1993-12-22 1997-11-18 Monsanto Company Synthetic DNA sequences having enhanced expression in monocotyledonous plants and method for preparation thereof
JPH08278890A (en) * 1995-04-05 1996-10-22 Sharp Corp Evolution adaptive type inference knowledge extracting device and analyzing device for point-of sales data using the same
WO1996041289A2 (en) * 1995-06-07 1996-12-19 Electronic Data Systems Corporation System and method for electronically auditing point-of-sale transactions
JPH09179927A (en) * 1995-12-26 1997-07-11 Fujitsu Ltd Bar code reader
US6092725A (en) * 1997-01-24 2000-07-25 Symbol Technologies, Inc. Statistical sampling security methodology for self-scanning checkout system
US5940581A (en) * 1996-03-21 1999-08-17 Apple Computer, Inc. Dynamic font management for large character sets
DE19611748C2 (en) * 1996-03-25 1998-03-26 Autoliv Dev Seat belt retractor with comfort function
US5859416A (en) * 1996-05-01 1999-01-12 Gatto; James G. Fuel pump system with automated transaction processing
US6332126B1 (en) * 1996-08-01 2001-12-18 First Data Corporation System and method for a targeted payment system discount program
US6321984B1 (en) * 1997-02-25 2001-11-27 Dresser Equipment Group, Inc. Adjustable price fuel dispensing system
US20010001203A1 (en) * 2000-04-04 2001-05-17 Mccall Don C. Fuel dispensing system
US6138105A (en) * 1997-03-21 2000-10-24 Walker Digital, Llc System and method for dynamic assembly of packages in retail environments
US6507898B1 (en) * 1997-04-30 2003-01-14 Canon Kabushiki Kaisha Reconfigurable data cache controller
US6330544B1 (en) * 1997-05-19 2001-12-11 Walker Digital, Llc System and process for issuing and managing forced redemption vouchers having alias account numbers
JP3526188B2 (en) * 1997-10-21 2004-05-10 株式会社日立製作所 Service processing method using IC card and IC card used therefor
US6055513A (en) * 1998-03-11 2000-04-25 Telebuyer, Llc Methods and apparatus for intelligent selection of goods and services in telephonic and electronic commerce
US6384931B1 (en) * 1998-07-20 2002-05-07 Pitney Bowes Inc. Method and system for capturing destination addresses from label data
US6332128B1 (en) * 1998-07-23 2001-12-18 Autogas Systems, Inc. System and method of providing multiple level discounts on cross-marketed products and discounting a price-per-unit-volume of gasoline
US6131718A (en) * 1998-09-30 2000-10-17 Lucent Technologies Inc. System and method for the detection of counterfeit currency
US20030195806A1 (en) * 1998-11-12 2003-10-16 Ad Response Micromarketing Corporation Manufacturer's coupon ordering system
US6415341B1 (en) * 1999-01-29 2002-07-02 Tekserve Pos, Llc Point-of-sale terminal adapter
US6251017B1 (en) * 1999-04-21 2001-06-26 David Leason Game or lottery with a reward validated and/or redeemed online
US6609104B1 (en) * 1999-05-26 2003-08-19 Incentech, Inc. Method and system for accumulating marginal discounts and applying an associated incentive
US6648222B2 (en) * 1999-06-02 2003-11-18 Mcdonald Ian Internet-based zero intrinsic value smart card with value data accessed in real time from remote database
WO2001013307A1 (en) * 1999-08-17 2001-02-22 Sunil Vasantrao Thakur Business system
US7176896B1 (en) * 1999-08-30 2007-02-13 Anoto Ab Position code bearing notepad employing activation icons
US7228285B2 (en) * 1999-12-01 2007-06-05 Catalina Marketing Corporation Automated method and system for automated tracking, charging and analysis of multiple sponsor discount coupons
NZ501706A (en) * 1999-12-10 2001-08-31 Global Online Promotions Ltd Lottery tickets awarded on purchase of goods at point of sale, according to data processing system
US6510989B1 (en) * 2000-01-04 2003-01-28 International Business Machines Corporation Price check assistant
US20020178088A1 (en) * 2000-03-08 2002-11-28 Lurie Leib A. System and method for facilitating shopping
US7181416B2 (en) * 2000-06-08 2007-02-20 Blackstone Corporation Multi-function transaction processing system
US20020077892A1 (en) * 2000-12-15 2002-06-20 Goring Bryan R. Graphical coupon for service providers
US6543683B2 (en) * 2001-02-12 2003-04-08 Ncr Corporation System and method for providing consumer access to a stored digital receipt generated as a result of a purchase transaction and to business/consumer applications related to the stored digital receipt
US20020143634A1 (en) * 2001-03-30 2002-10-03 Kumar K. Anand Wireless payment system
GB2373890A (en) * 2001-03-30 2002-10-02 Chee Beng Lim Customer loyalty marketing program
US20030177066A1 (en) * 2001-04-12 2003-09-18 Computer Sciences Corporation, A Nevada Corporation, Integrated marketing promotion system and method
US20030154125A1 (en) * 2001-05-23 2003-08-14 International Business Machines Corporation Pesonalisation of promotional offers
US20030055727A1 (en) * 2001-09-18 2003-03-20 Walker Jay S. Method and apparatus for facilitating the provision of a benefit to a customer of a retailer
US20030065576A1 (en) * 2001-10-02 2003-04-03 International Business Machines Corporation Transmitting a file to a customer possessing a hand held computer by a point of sale terminal
JP3721122B2 (en) * 2001-11-27 2005-11-30 Necインフロンティア株式会社 Advertisement placement method and advertisement placement service system
US20030149619A1 (en) * 2002-02-01 2003-08-07 Tim Stanley Multi-property enterprise promotions
US20030220830A1 (en) * 2002-04-04 2003-11-27 David Myr Method and system for maximizing sales profits by automatic display promotion optimization
US20030212595A1 (en) * 2002-05-10 2003-11-13 American Express Travel Related Services Company, Inc. Real-time promotion engine system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040167993A1 (en) * 2003-01-13 2004-08-26 Campbell Terrence J. Graphical printing system and method using text triggers
WO2004074387A2 (en) * 2003-02-20 2004-09-02 Axiohm Transaction Solutions, Inc. Method and system for suppressing printing of graphics in a pos printer
US20050073710A1 (en) * 2003-02-20 2005-04-07 Campbell Terrence J. Method and system for suppressing printing of graphics in a POS printer

Also Published As

Publication number Publication date
CA2551742A1 (en) 2005-08-04
US7460252B2 (en) 2008-12-02
US20040167993A1 (en) 2004-08-26
WO2005069760A3 (en) 2007-09-20

Similar Documents

Publication Publication Date Title
US7460252B2 (en) Graphical printing system and method using text triggers
US9672456B2 (en) Image processing device, printing device, and image processing method
US9030706B2 (en) Method of adding value to print data, a value-adding device, and a recording medium
US9218555B2 (en) Printing apparatus and printing control method for determining whether and where to print a watermark relative to print data
US6789482B2 (en) Printing method, recording medium containing a program for applying the printing method, printer, printer driver, POS terminal, and POS system
WO2003083681A1 (en) Methods and apparatus for creating customized messages for printing on a transaction slip
JP2001218011A (en) Picture processor, picture processing method and storage medium
US7375844B2 (en) Method for generating a print data file, method for storing print data, a data storage medium therefor, and an apparatus for generating a data storage file
US9898691B2 (en) Control device, control system, and control method of a control device
US6739773B2 (en) Thermal printing a two-color sales receipt
EP1408465B1 (en) Method of controlling printing apparatus in POS systems
JP6477378B2 (en) Information hidden in the flash pattern position of the print job
JP6160289B2 (en) Control device and control method of control device
US20050073710A1 (en) Method and system for suppressing printing of graphics in a POS printer
EP1739542B1 (en) Print system
US20040085579A1 (en) Predefined field command structure for point of sale printer
JP2005301345A (en) Method for controlling printing device, method for creating data for printing receipt, program, printer driver, printing device, merchandize sales data processing device, and pos system
US20030011799A1 (en) Command protocol for two color thermal printing
US20050057764A1 (en) Graphic POS printer
JPH11268352A (en) Apparatus and method for processing image, and memory medium
EP1559023A2 (en) Command protocol for two color thermal printing
JPH10202960A (en) Printing equipment

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2551742

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: PA/a/2006/007759

Country of ref document: MX

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase