QR Codes and Printer Compatibility

As of September 2021, we are aware of two ticket printers that can print QR codes on the ticket face:
  • Any Microcom ticket printer manufactured 2018 or later. (any purchased from Arts Management will certainly work)
  • Any Boca printer with FGL language version 46 or later. You many need to talk to Boca to make sure - the firmware comparability list is below

Practical Automation does not support QR codes at time of writing and older printers are not field upgradeable.

Sample Ticket with QR code

 

Inserting QR code into a Ticket Face

To add a QR code to a ticket face, you need to make sure that the area yo want to print it on is big enough and is high contrast.. Usually that means an ALL-WHITE stub area. If the area you chose to print the QR code on has darker coloured background you may find scanning times increased.

The steps are:

  1. Insert a new calculation line in your ticket face.
  2. Select Ticket Information from the Categories field
  3. Select QR code from the Available Fields in the image to the right.
    • That will add the correct calculation to your ticket face as per the image below
    •  

      If you are using a Boca printer you will need to update the default QR code with additional characters. Where the default code looks like:

      con('<QR6,1,1,2>ticket=',PS_SEQ,'~010patron=',PS_C_SEQ,'~010')

      backets will need to be added to the con statement following the QR references to make the code look like this:

      con('<QR6,1,1,2>{ticket=',PS_SEQ,'~010patron=',PS_C_SEQ,'~010}')

  4. Change the Column to about 890 or so - so that it prints on the stub. The ticket example above uses 890 in the ticket face code shown in the next diagram.
  5. The Row might need to be adjusted a little to move the QR code away from the edge of the ticket and center it across the narrow part of the ticket. The ticket example above uses 100 in the ticket face code shown in the next diagram.
  6. You may need to remove some of the other fields that are on the stub area of the ticket face
  7. Test the ticket face with QR code
    • Do a test print to see that it works
    • Do a test scan of the ticket using your scanners to see that it works. Working only means that the scan is successful and that the ticket will likely be rejected as not being sold, or not for this day, etc
  8. Adjust the ticket face as necessary and reprint and retest

 

Sample QR Code from the above ticket exmaple

 

Explaining the QR code format

<QR#,#,#,#>{barcode text}

NOTE: You should not change the parameters in the QR code without talking to AMS support. Only adjust the position of the QR code on the ticket face using the Row and Column settings.

All of the Quick Response (QR) bar code command parameters are optional. If omitted default values will be used. The QR command and the barcode text is all that is required. For example the command {Arts Management} will create a Quick Response 2D barcode for the text “Arts Management” using all default values.

The Parameters, explained in order, are:

  • Point Size - between 3 and 16
  • Apply Tilde - either 0 or 1
  • Encode Mode - either 0,1, or 2
  • Error Correction Level - between 0 and 3
  • {Barcode text}
Point size we have found that '4' to '6' are suitable sizes for a bar code on a ticket stub
Apply Tilde When Apply Tilde is equal to 1, the tilde (~) may be used to recognize some special characters in the input data.
  • If set to 1, you can use the format ~ddd if you want to specify the ASCII code of the character to be encoded. Default is off. For example
    • If you enter the following text in the Data field: ~029AB you will actually be encoding GSAB where GS is a delimiter ASCII 29 character. This can be used in a single string to encode GS and RS characters (GS = ASCII 29 and RS = ASCII 30). Other commonly used ASCII codes are ~009 for a tab and ~013 which is a return function. These are useful when encoding multiple fields in a single symbol.
    • Theatre Manager Linea Pro Scanners use ~010 to represent a new line between data values and this cannot not be changed.

      1 is the default for Theatre Manager and is required

Encode Mode The data represented in the symbol may be compressed by changing the encoding mode, if certain text is being encoded. Valid values are:
  • 0 for Byte (upper and lower case letters)
  • 1 for Alpha-Numeric (upper case letters only) - default for theatre Manager
  • 2 for Numeric
Error Correction The level of Reed Solomon error correction level placed in the symbol. More error correction creates a larger symbol that can withstand more damage. Valid values are:
  • 0 for Level M, 15% recovery capacity
  • 1 for Level L, 7% recovery capacity
  • 2 for Level H, 30% recovery capacity - default for Theatre Manager - may be changed.
  • 3 for Level Q, 25% recovery capacity
{barcode text} Do not change any values in this - otherwise ticket scanning will not work.

QR Code for Scanning Gifted Tickets

Scanning tickets that have been gifted to another patron in the database require the gifted patron number be included in the QR code inserted on the Ticket Face. The existing ticket face with a QR code can be updated to include the gifted patron number:

 

  1. Open the existing Ticket Face that has a QR code

  2. Locate the line of code in the Ticket Face that looks like this:

    con('<QR6,1,1,2>{ticket=',PS_SEQ,'~010patron=',PS_C_SEQ,'~010}')

  3. Double-click to open this line of code.
  4. Replace the entire code with this updated version:

    con('<QR6,1,1,2>{ticket=',PS_SEQ,'~010patron=',pick(PS_INTENDED_FOR_C_SEQ>0,PS_C_SEQ,PS_INTENDED_FOR_C_SEQ),'~010}')

 

Any tickets that have previously been Gifted and printed prior to updating the ticket face code can be unprinted and reprinted. This will ensure they can be scanned at the time of entry.