Creating Check-in Labels with Custom Icons

  • By Luke Potter One Year Ago

Creating Check-in Labels with Custom Icons:

Using merge fields to place custom icons on your Rock RMS check-in labels

The purpose of this article is to walk you through the process of placing custom icons on your labels that can be controlled by merge fields. For this example, we are placing allergy icons on our labels, but this can be used in many other applications.
We’ve included links to all the sites* we used, and here’s a Dropbox folder with all of the files we created during this process. We included our Champions Club Labels and our Parent Labels as well, if needed.

*Look at the end of this documentation for all the sources we used to get us this far

Part 1: Choosing the Allergies & Icons

It goes without saying that you need to know what your specific needs are and which allergies you care about before you start this process. For this article, we’ll be looking at the three allergies our church wanted to display: Nut, Dairy, and Wheat/Gluten.

Once we decided what allergies our Kids Ministry cared about, we went to Google and used their advanced image search tool to find the icons we wanted to use. In order to create a font with your specific images, you need to find a .svg file. We choose simple black images that we felt represented the allergies in a way that would be easy to tell what allergies the kids have with a quick look. I’ll show you our images a little later.

Part 2: Creating Your Font & Installing the Font on the Printer

We found that there's already a lot of documentation from both Rock RMS & Zebra Technologies with the steps to complete this, but for the convenience of having everything in one place I’ll go ahead and provide the steps we took here as well. To start you’ll need to head over to Fontello. Once you’re there, you just need to drag and drop the .svg files you selected earlier for your allergy icons. Once your files are uploaded, you’ll need to click on each of the icons. When you do this, you should see four tabs (Select Icons, Customize Names, Customize Codes, & Help/Wiki). Click on the third tab “Customize Codes”.

From here, you will associate a specific letter of the alphabet with the icon you want to reference/replace that letter on the badge. This part will be up to what makes sense to you & your organization. In our case, we chose D for the dairy icon, G for the wheat/gluten icon, & N for the nut icon. To do this, input the characters you choose above each icon. Up in the top right side of your screen you’ll see a dialog box called ‘font name’; go ahead and name your font whatever makes sense for you (I named ours ‘allbadges’). Now you’re basically done, so just hit the Download Webfont button on the upper right-hand side.

Now for the fun part, installing the font on the printer. You need to first unpack the .zip that was created when you hit the Download Webfont button, and find the .ttf in the folder structure. Now open ‘ZebraDesigner 2’. If you’ve installed the driver packages on your computer for your printer, you should have Tools > Font Downloader. Once ‘Font Downloader’ is open and running, click Card > New and name this whatever you’ve named your font and click Save. Now provide a simple description like the initials of your font, and change the card size to 4096K bytes. Click Fonts > Add, select Download Selected Characters and press OK. Find and select your font and click OK. On the next screen click Characters… and select your special characters then press OK and press OK again on the ‘Font Data’ dialog. Select Yes when you’re prompted to download the font now.

Look at you go! You’ve now created a new font & installed the font on your Zebra printer!

Part 3: Creating Your Tag & Uploading Your Tag to Rock

Again, there’s quite a bit of documentation on this, but oh well. We wanted to put all the steps in one place instead of sending you all over the internet to hunt down your own instructions.

Open ‘ZebraDesigner 2’ and either create your own label or use the amazing labels provided by Rock’s rockstar crew. We went the route of using Rock’s labels and just modifying them, but we’ll wait for you if you decide to do it the hard way… (waiting...)

Now that you're all back with us, make sure you select your new font on the text boxes you want your new icons to show up. (From previous experience don’t worry about making your icons look perfect, we’ll be tweaking them a lot later on anyway.) Once you have your tags looking beautiful and just the way you want, go to the print dialog and select Print to File, this will create a .prn, which is what you’ll use to upload your gorgeous tag to Rock.

Now find your way over to your instance of Rock and go to Check-in > Check-in Labels. Now click the Add button to create a new tag. Give your new label a ‘File Name’ (I suggest calling it “Test - your label name here”), give it a description, and click Upload. Find and select the .prn that your created earlier, and change your ‘Mime Type’ to “text/plain”. Click Save.

Good job you’ve officially completed the easy parts!

Part 4: Creating the Merge Fields

So you might have noticed that the merge fields work great with any font that’s a ‘ZEBRA ___’ font, but they don’t show up for any of the fields that you made with your fancy font. Don’t worry we’ll walk through this together. Before we start, I want to give you a tool that became invaluable to me when I was first doing this - a list of all the ZPL Commands that are used in the labels. Click here for your present. (I highly suggest bookmarking that and saving it for future you).

Now with your ZPL Commands in hand and this document open, take a breath and open up your new label that you created at the end of ‘Part 3.’ Now click on Edit Label Contents and take a good look! I promise it’s not as a scary as it looks, but it is very time consuming. Look through the different lines, and usually around line 6-9 there will be a line with ^MMT. 90% of what we’ll be doing is below this line. Now the characters that you created with your new font will be found about 4 lines below this. They’re usually called something like:
While we’re here I’ll explain what we’re looking at here:
Text Box: ^FT608,416Describes where the item is located on the label. The labels are a basic XY grid with 0,0 being at the top-left of the label. (I’d leave this part the same for now.)

Text Box: ^XG001.GRF,1,1This is telling the label to recall a graphic. This is the reason that our font isn’t working. The 1,1 tells the label how to size and proportion the item, so this graphic is 1pt x 1pt.
Text Box: ^FS
This tells the label that your finished with that line. Basically it’s a period to the label.

We need to keep the first part, ^FT608,416, but we’re going to change the middle bits. Here’s what our code should look like once it’s fixed:
I’ll go ahead and explain the new bits:
Text Box: ^A@your-font-name-here.ttf,1,1This is where you get to reference your custom font. Just go ahead and put your font’s name after the ‘^A@’. Again the 1,1 shows you what size your font is. If you want your icons to stay proportional you need to keep these values the same. *Note: Once you use the ‘^A@your-font-name-here.ttf’ command you can reference that font anytime after with just ‘^A@’.

Text Box: ^FD**This is where you make Rock recognize your merge field. You can use what ever character or phrase you’d like it wont affect anything. We used the letter that we assigned to our icon from Fontello.

I’ll go ahead and show you what my Nut Allergy & Dairy Allergy lines looks like:

Ok you’ve corrected the font and merge field title, now click Save. Press the ‘Reload Merge Fields’ button, and then you should see all the merge fields you previously had in addition to the new fields you just created.

Part 5: Making the Allergy Attributes and Create the Merge Fields

Alright - with the majority of the super technical coding behind us, let’s move on to actually making the attributes that are associated with our merge fields. You’ll need to head over to General Settings > Personal Attributes and then filter by ‘Childhood Information’.

OPTIONAL: So first we edited the generic ‘Allergy’ attribute, and change its field type to Multi-Select. We did this so that it’d show up on the notes tag with our specific allergy fields. This attribute will no longer reference the merge fields on the child label by placing a medical bag in the bottom right hand corner, but it is still connected to the allergy note detail on the Note Label. We did this so that it’d show up on the notes tag with a list of our specific allergy fields, and that it would keep the text consistent from child-to-child. You don’t have to do this if you already have allergy notes you’d like to keep.

For each of your new allergies, you’ll need to click the Add button at the bottom to create a new childhood information person attribute for each. Once you are in the ‘Add Attribute’ dialog, go ahead and name the attribute whatever you’d like. We called ours “______ Allergy” (i.e. Wheat/Gluten Allergy). The ‘Categories’ should be set to ‘Childhood Information’, you can give it whatever ‘Key’ name makes sense to you (we used the names that Rock defaulted to, like: WheatGlutenAllergy), ‘Field Type’ needs to be Boolean with True being Yes and False being No, and the ‘Default Value’ needs to be blank. Click Save & you’ve created your allergy attribute! (Rinse and Repeat if you have more than one.)

Now head over to Check-in > Label Merge Fields. This is where we setup the ability to link the attribute to the icon on your label. Now you’ll need to press Add once again at the bottom-right of the list to create our new merge field. Fill in both the ‘Value’ and ‘Description’ fields with something that makes sense to you and your organization. For the ‘Mergefield’, you’ll want to use this line of logic: (Special thanks to Jim Michael! The man with two first names who came in clutch with this when we hit a massive dead end)
{% assign allergy = Person | Attribute:' YourAllergy’sKey' %}{% if allergy == 'Yes' %}**{% endif -%}
Alright let’s break this down:

Text Box: {% assign allergy = PersonGo ahead and leave this as is if you’ve followed the steps detailed here you’ll be fine.

Text Box: |Attribute:'YourAllergy’sKey' %}
This is where you’ll tell the Lava to look at the specific attribute you created earlier.

Text Box: {% if allergy == 'Yes' %}This is telling Lava to look at the Boolean for a ‘Yes’ response.

Text Box: **
This part is how you tell the Lava what character you wanted it to put on the label if true. Basically, put the character you chose for your icon in Fontello.
Text Box: {% endif -%}
Leave this alone.

Here’s what our Nut Allergy looks like:
{% assign allergy = Person | Attribute:'NutAllergy' %}{% if allergy == 'Yes' %}N{% endif -%}

Once again rinse and repeat if you have more than one allergy!

Part 6: Connecting the Merge Fields & Finalizing

Alright if you’re here good job! Now comes some of the last bits. Head back to Check-in > Check-in Labels and find the label you created earlier. Now go assign the drop downs to match your merge fields up with the correct label fields! Go ahead and go to your check-in kiosk and begin testing. In our experience, we had to adjust the locations and size of our new icons (MANY TIMES). To adjust these settings, just go into the Edit Label Contents and start adjusting the values we discussed earlier until it looks right. Everything that’s left isn’t difficult if you’ve gotten this far; it just becomes tedious.

Congrats! You did it! Look at you go.

Part 7: Final Thoughts

We just want to say thank you to the community and to the team at Rock. Y’all are awesome and super helpful. We’re excited to be able to contribute to the community and all y’all are doing! If anyone needs help with this feel free to reach out to our team:

Luke Potter Slack: luke.potter
Shelby Evans Slack: shelbyaevans

We look forward to being able to help you get your new icons up and running!

- TFH IT Department

Our Reference Materials:

· Rock RMS – Checking Out Check In
· Zebra - Font Installation
· Labelary – ZPL Commands
· Rock RMS - Lava

The Fathers House
Vacaville, CA

I'm a IT Tech with The Fathers House in Vacaville, CA. I enjoy working through issues, and trying to find new and creative solutions to make our lives better & easier.