FileMaker Barcode Custom Functions (Font Encoder)

IDAutomation-filemaker-font-encoder-functions
  • These custom functions are font encoders that allow barcode fonts to be formatted within text fields.
  • Embeds the font encoder as a custom function directly within the database file, no plug-ins or scripts are required.
  • Supports the Universal Barcode Font, a single font that generates many barcode types and provides cross-platform compatibility between Windows, Mac, Linux, and mobile devices.
  • Creates many barcode types including Code 128, GS1-128, Code 39, ITF, Code 93, MSI, Codabar, UPC & EAN. 2D barcode types are supported in the FileMaker Font Encoder Object.
  • Compatible with FileMaker Pro and FileMaker Go versions 12 and up for Windows, Mac, iPhone, and iPad, 32 and 64-bit. Previous versions of FileMaker, such as 10, 11, and earlier, should use the barcode plugin.

Download Now Function List

IDAutomation is a Claris Marketplace partnerNOTE: The download example is formatted for Universal Barcode Fonts, but includes additional custom functions for individual font packages as well

Custom Function Integration Tutorial

IDAutomation's Font Encoder Functions for FileMaker format the data that needs to be encoded in the barcode to the font, so when the font is applied a correct barcode will be generated. Unlike plugins, custom functions are cross-platform compatible and remain embedded in the database, even when distributed.

If the database is being distributed to multiple devices, the appropriate barcode font must also be installed on each device. IDAutomation also offers the Native Barcode Generator for FileMaker, which allows distribution to multiple devices without the need to distribute fonts.

Installation:

  1. Download and extract the IDAutomation_FileMakerFontEncoderFunctions file from the FileMaker Font Encoder Function Download Package. The example is formatted for the Universal Barcode Font.
    Extract the custom functions database file
  2. Install the desired barcode font. Mac users should use the Universal Barcode Font with the appropriate "Uni" Function to avoid compatibility issues with character sets.
  3. Open the database that is to generate the barcode and choose File - Manage - Custom Functions. How to enable Custom Functions?
    Choosing File - Manage Custom Functions.
  4. Choose Import and then select the IDAutomation_FileMakerFontEncoderFunctions file that was extracted in Step 1.
     Import the FileMakerFonEncoderFunction
  5. Select all functions in this database by pressing Ctrl-A and the space bar. It is necessary to select all of the functions because several of the functions depend on others to be present.
    Importing barcode custom functions.
  6. Choose File - Manage Database to create a calculated field that will contain the barcode. Name the field to be the same as the related function name, without the underscores, and click Create. In this example, the field will be named IDAutomationUniCode128 and it will call the IDAutomation_Uni_Code128 function, which creates Code 128 with the Universal Barcode Font.
    Creating a calculated field for a barcode.
  7. Scroll down the list of functions and double-click on the IDAutomation_Uni_Code128 function to have the function appear in the formula box.
    • Replace "DataToEncode" with the field that is to be encoded in the barcode from the Current Table options. Be sure to delete the parenthesis.
    • Select TEXT as the Calculation Result and click OK.
      Specifics of the calculated barcode field.
  8. Change to Layout Mode and select Insert - Field to place the barcode field on the form or report.
    Placing the barcode field in the report.
  9. If there is a need to have the text interpretation appear below the barcode, select Insert - Field to add a field below the barcode that consists of the data that will be encoded.
  10. Choose View - Browse Mode to confirm that the data is being generated dynamically and properly formatted to the barcode font. Make sure that the data changes after moving to the next record. Random characters may appear in the field data, before applying the font. When using the Universal Barcode Font, a large number of letters will appear and this is normal.
    Text result of the custom function.
  11. Select the barcode field and choose View - Layout Mode and select the appropriate barcode font for the field. Since barcodes require a quiet zone, select the field and choose Format - Align Text - Center. Right-click on the field and choose Fill Color and change it to white so it may be easily scanned.
    Set Universal Font and center to ensure white zone.
  12. Choose View - Browse Mode to confirm the barcode is properly generated.
    The barcode font result of the custom function.

Combining Multiple Fields

Combining multiple fields into a single barcode is easily achieved when ApplyTilde is enabled. For example, the following would encode "File" <Return> "Maker" <Tab> "Pro":
IDAutomation_Uni_C128 ("File~013Maker~009Pro" & "|1")

Combining two data fields with a tab between:
IDAutomation_Uni_C128 (Field_1 & "~009" & Field_2 & "|1")

Barcode Functions and Parameters

Some of the functions have multiple parameters. When this occurs, use the '|' (pipe) as the dividing character for these additional parameters. If the additional parameters are omitted, defaults will be used.

Universal Barcode Font Functions
NOTE: IDAutomation recommends using the Universal Barcode Font for cross-platform compatibility and when generating Code 128 or ITF barcodes outside of the USA.
Barcode Type Functions & Notes Font to Use
Code 128 IDAutomation_Uni_C128(DataToEncode | ApplyTilde)
Examples:

Standard encoding: IDAutomation_Uni_C128(Field_1)
GS1-128 Encoding: IDAutomation_Uni_C128("~202" & Field_1)
IDAutomation_Uni
IDAutomation_C128HR(DataToEncode | ApplyTilde)
This method returns the human-readable text for Code 128 barcodes, such as with GS1-128.
Text Font
Additional Code 128 Functions:
IDAutomation_Uni_C128A(DataToEncode)
IDAutomation_Uni_C128B(DataToEncode)
IDAutomation_Uni_C128C(DataToEncode)
IDAutomation_Uni
Code 39 IDAutomation_Uni_C39(DataToEncode | N_Dimension)
Code 39 without the check digit included.

IDAutomation_Uni_C39M43(DataToEncode | N_Dimension)
Code 39 with the Mod 43 check digit included.
Examples:
Standard encoding: IDAutomation_Uni_C39(Field_1)
N=3 with check digit:
IDAutomation_Uni_C39M43(Field_1 & "|3")

IDAutomation_Uni
Codabar IDAutomation_Uni_Codabar(DataToEncode | N_Dimension | StartChar | StopChar) IDAutomation_Uni
Interleaved 2 of 5

IDAutomation_Uni_I2of5(DataToEncode | N_Dimension)
Interleaved 2 of 5 without the check digit included.

IDAutomation_Uni_I2of5M10(DataToEncode | N_Dimension)
Interleaved 2 of 5 with the check digit included.
Examples:
Standard encoding: IDAutomation_Uni_I2of5(Field_1)
N=2.5 with check digit:
IDAutomation_Uni_I2of5M10(Field_1 & "|2.5")

IDAutomation_Uni
MSI Plessey IDAutomation_Uni_MSI(DataToEncode | N_Dimension | IncludeCheckDigit) IDAutomation_Uni
USPS Postnet IDAutomation_Uni_Postnet(DataToEncode | IncludeCheckDigit) IDAutomation_Uni
(XS, S, or M size)
or
IDAutomationPOSTNET
Standard Font Functions
Barcode Type Functions & Notes Font to Use
When using the IDAutomationC128 or IDAutomationI25 fonts on a Mac or outside of the USA, consider using the Universal Barcode Font with the appropriate Universal Function to avoid incompatibilities.
Code 128 IDAutomation_Code128(DataToEncode)

Examples:
Standard encoding: IDAutomation_Code128(Field_1)
GS1 Encoding: IDAutomation_Code128("Ê" & Field_1)

NOTE: To avoid language and locale incompatibilities when generating Code 128 barcodes on a Mac or outside of the USA, consider using the Universal Barcode Font Package with the IDAutomation_Uni_C128 function.

IDAutomationC128 *

 

Text Interpretation IDAutomation_Code128HR(DataToEncode) Text Font
Interleaved 2 of 5 IDAutomation_I2of5(DataToEncode) IDAutomationI25 *
IDAutomationHI25 *
Interleaved 2 of 5 IDAutomation_I2of5Mod10(DataToEncode) IDAutomationI25 *
IDAutomationHI25 *
* When using the IDAutomationC128 or IDAutomationI25 fonts outside of the USA or on a Mac, consider using the Universal Barcode Font with the appropriate Universal Function to avoid language and locale incompatibilities.
Code 39 IDAutomation_Code39(DataToEncode)

IDAutomationC39
IDAutomationHC39
IDAutomationXC39
IDAutomationXHC39

Code 39
with check digit
IDAutomation_Code39Mod43(DataToEncode) IDAutomationC39
IDAutomationHC39
IDAutomationXC39
IDAutomationXHC39
Code 93 IDAutomation_Code93(DataToEncode) IDAutomationC93
Codabar IDAutomation_Codabar(DataToEncode) IDAutomationCB
USPS Postnet & Planet IDAutomation_Postnet(DataToEncode) IDAutomationPOSTNET
IDAutomationPLANET
MSI Plessey IDAutomation_MSI(DataToEncode) IDAutomationMSI
IDAutomationHMSI
UPC-A IDAutomation_UPCa(DataToEncode) IDAutomationUPCEAN
UPC-E IDAutomation_UPCe(DataToEncode) IDAutomationUPCEAN
EAN-13 IDAutomation_EAN13(DataToEncode) IDAutomationUPCEAN
EAN-8 IDAutomation_EAN8(DataToEncode) IDAutomationUPCEAN

Function Method Definitions and Functions

  • DataToEncode: A string value that represents the data that is being encoded. Within FileMaker, fields may be specified directly and text should be represented in double-quotes. Additional parameters are optional and are separated with the "|" pipe character.
    • Example:
      Standard encoding: IDAutomation_Code128(Field_1)
      Encoding GS1-128: IDAutomation_Uni_C128("~212" & GS1_Data_Field & "|1")
  • N_Dimension: Determines the width of the wide bars, which is a multiple of the X dimension. The X dimension is determined by the font point size. Valid values are 2, 2.5, and 3. The default is 2.
    • Example: IDAutomation_Uni_C39(Field_1 & "|3")
  • IncludeCheckDigit: If this value is 1, a check digit will be calculated automatically and included in the barcode, if appropriate, for the chosen symbology.
    • Example: IDAutomation_Code39Mod43(Field_1)
      Universal Font Example: IDAutomation_Uni_C39(Field_1 & "|3|1")
  • ApplyTilde: In IDAutomation_Uni_C128 and IDAutomation_C128, if the ApplyTilde option is set to 0, the tilde will be not evaluated. The default value is "1" enabled.

Support

Common FileMaker Barcode Font Problems and Solutions
  • Be sure that the barcode fits in the targeted field. If the printed barcode cannot be accurately read with a barcode scanner, the barcode may be too wide for the field. This can result in truncation of the symbol.
  • If numbers appear instead of text for a barcode field, ensure that the TEXT option is selected in the Calculation Result drop-down box as outlined above.
  • Additional problems and solutions are provided at IDAutomation's barcode font technical support site and by searching resolved public FileMaker forum threads. Priority phone, email, and forum support are provided up to 30 days after purchase. Additional support is available as long as the Priority Support and Upgrade Subscription is active.