Our UFL (User Function Library) for Crystal
Reports is a special plug-in that can be easily integrated into
your Crystal Reports for barcode automation purposes. The
UFL plug-in is supplied in an easy to install executable file.
Once installed, barcode functions appear in the formula editor.
These functions can be easily applied to fields on reports that
require barcodes. Our UFL contains functions for popular linear
barcodes including POSTNET, PLANET, Code 39, Interleaved 2 of
5, Code 128, Code 128 auto, UPC-A, EAN-13, EAN-8, UCC-128, MSI
/ Plessy, Code 11, RM4SCC, 4-State, SSCC-18 and SCC-14. We
also have Crystal UFL's available for PDF417 and DataMatrix.
The Crystal Reports UFL is free to use as long as you are using it with one of our licensed barcode fonts. This UFL is designed to work with Crystal Reports 6.0 and above. It is also compatible with the version of Crystal Reports distributed with Visual Studio .NET and the implementation is the same.
Our UFL is free to use and distribute with your application as long as you are using it with one of our licensed barcode fonts. Redistribution of our fonts and components outside your organization requires a Developer License. The following is a list of runtime files you should distribute with your application:
| Crystal Reports UFL Files
to Distribute (We recommend using an advanced installation application to distribute files for Windows) |
||
| Purpose of File | File to Distribute | Notes |
| Font File | ???.ttf | One of our TrueType barcode fonts. You may distribute font files if you purchase the Developer License. |
| Crystal UFL | CRUFLIDAutomation.dll | The IDAutomation Crystal UFL. It can be found in the system directory after installation. |
| Crystal Runtime | U2lcom.dll | This is a crystal runtime file that is required to work with COM UFLs. It can be found in the system directory after installation. Do not reinstall this file if it exists. |
| VB Runtime DLL | msvbvm60.dll | This runtime file already exists on most PCs and it is required for the Crystal UFL. It can be found in the system directory after installation. Do not reinstall this file if it exists. |
UFL / ActiveX DLL:
CRUFLIDAutomation.dll
Class: FontEncoder (functions listed below)
NOTE: You MUST use Code 128 fonts dated December 2000 or later for Code 128 functions. You must use Interleaved 2 of 5 fonts dated May 1, 2001 or later for Interleaved 2 of 5 functions.
For all functions below, the data input type is a single string. A number may be required for additional parameters. For example, Code128("123456",0). For all number symbologies such as POSTNET and UPC, you may input dashes or spaces for easier readability and they will be filtered out by the function before the barcode is generated. For UPC-A, UPC-E & EAN-13 you can enter the +2 and +5 add-on codes by just adding them to the end of the string.
| Function | Notes |
| Code128(Data, Number) | If you are not sure which
Code 128 set is for your application, then use this
one. This is a "Code 128 Auto" function that will
automatically encode any data from ASCII 0 to ASCII
127. It will automatically switch to character set C
for numbers also. To encode alpha-numeric UCC/EAN-128, ASCII 202 or character E is entered as the FNC1 before each AI. For example, the UCC number of (8100)712345(21)12WH5678 should be entered as: E8100712345E2112WH5678. More information about AIs and UCC/EAN-128 is located here. (Data, 0) formats barcode output string for the Code 128 barcode fonts. (Data, 1) returns the human readable data. (Data, 2) returns only the check digit. |
| Code128a() | Use the characters from set B to print characters not on the keyboard; the scanner will scan characters from set A. Formats output to the Code 128 barcode fonts. |
| Code128b() | Returns codes formatted to the Code 128 character set B. Formats output to the Code 128 barcode fonts. |
| Code128c(Data, Number) | This code128 function
"interleaves" numbers into pairs for high density. An
even number of digits is required. (Data, 0) formats output to the Code 128 barcode fonts. (Data, 1) returns the human readable data with the check digit included. (Data, 2) returns only the check digit. |
| I2of5() | This function "interleaves" numbers into pairs for high density without check digits and formats the return string to the Interleaved 2 of 5 font. An even number of digits is required. |
| I2of5Mod10(Data, Number) | (Data, 0) performs the
mod10 checksum calculation for increased accuracy and
formats the return string to the Interleaved 2 of 5
font. MOD 10 checksums are required for SSC-14 when
using Interleaved 2 of 5 for that purpose. An odd
number of digits is required. (Data, 1) returns the human readable data with the MOD10 check digit included. (Data, 2) returns the MOD10 check digit. |
| Code39() | Formats the output to print using Code 39 fonts. |
| Code39Mod43(Data, Number) | (Data, 0) performs the
mod43 checksum calculation for increased accuracy and
then formats the output to print using Code 39 fonts.
The mod43 checksum is usually required for LOGMARS
applications. (Data, 1) returns the human readable data with the check digit included. (Data, 2) returns only the check digit. |
| Codabar() | Formats the output to print using Codabar fonts. |
| UCC128() | Use this function for UCC/EAN-128 applications when you have already generated your MOD10 check digit if required. Supports UCC-128, EAN-128, SCC-18 and SCC-14. FNC1 automatically included after start digit, enter "FA" between even numbers for additional FNC1 Codes. Formats the output to print using Code 128 fonts. |
| SCC14(Data, Number) | SCC14(Data, 0) generates
the MOD10 required and then formats the output to print
EAN-14 and SCC-14 using Code 128 fonts. The input for
Data must be a 13 to 17 digit number string,
however, only 13 are needed. The required application
identifier of (01) is automatically added. Entering
incorrect data will create a barcode containing all
zeros. SCC14(Data, 1) returns the human readable data for SCC14 / EAN14. SCC14(Data, 2) returns the MOD10 check digit. |
| SSCC18(Data, Number) | SCC18(Data, 0) generates
the MOD10 required for SSCC-18 and then formats the
output to print SSCC-18 using Code 128 fonts. The input
for Data must be a 17 to 21 digit number string,
however, only 17 are needed. The required application
identifier of (00) is automatically added. Entering
incorrect data will create a barcode containing all
zeros. SCC18(Data, 1) returns the human readable data for SCC-18. SCC18(Data, 2) returns the MOD10 check digit. |
| Postnet(Data, Number) | Enter a single string of
Zip, Zip + 4 or Zip + 4 + Delivery Point. The input for
Data must be a number and can include dashes and
spaces. (Data, 0) formats output to the POSTNET barcode fonts. (Data, 1) returns the human readable data with the check digit included. (Data, 2) returns only the check digit. |
| USPS_EAN128 (Data, Number) | Used for 22 digit USPS
special services labels such as delivery confirmation
in EAN128. This is used with our Code 128 font AdvC128d
at 20 points. This new EAN128 format is mandatory as of
January 10, 2004 according to the USPS Delivery
Confirmation Service defined in the September 2002
version of Publication 91. Enter a 19 or 20 digit
number string; only the first 19 are used. Entering
incorrect data will create a barcode containing all
zeros. This number is made up of the following: 2
digit service code + 9 digit customer ID + 8 digit
sequential package ID + MOD 10 check digit that can be
calculated by this function if excluded. In this
function, the application identifier of 91 is
automatically added for you. Other USPS EAN128 barcode
types must be created by calling Code128() with the
appropriate ASCII 202 and AIs included (Data, 0) formats output to the Code 128 barcode fonts. (Data, 1) returns the human readable data with the check digit included. (Data, 2) returns only the check digit. |
| USPS_USS128 (Data, Number) | NOTICE: After
1/10/2004, you must use the USPS_EAN128 function to
meet USPS requirements. Used for 20 digit USPS
special services numbers with Code 128 fonts according
to the USPS Special Services defined in the February
2000 version of the Special Services Technical Guide.
Enter a 19 or 20 digit number string; only the first 19
are used. Entering incorrect data will create a barcode
containing all zeros. This number is made up of the
following: 2 digit service code + 9 digit
customer ID + 8 digit sequential package ID + MOD 10
check digit that can be calculated by this function if
excluded. (Data, 0) formats output to the Code 128 barcode fonts. (Data, 1) returns the human readable data with the check digit included. (Data, 2) returns only the check digit. |
| RM4SCC() | Formats the output to print using RM4SCC fonts. Checksum calculated according to the mailsort customer barcoding specification. |
| MSI(Data, Number) | (Data, 0) formats output to
the MSI barcode fonts. (Data, 1) returns the human readable data with the check digit included. (Data, 2) returns only the check digit. |
| Code11() | Only the "C" check digit is calculated which is the standard when encoding 10 digits or less. |
| UPCa(Data) | Data is a UPC-A number string of 11, 12, 13, 14, 16 or 17 digits with or without a check digit, add-ons are supported. Formats output to the UPC/EAN barcode font. Entering incorrect data will create a barcode containing all zeros. |
| UPCe(Data) | Data is a UPC-A number string of 11, 12, 13, 14, 16 or 17 digits with or without a check digit, add-ons are supported. The purpose of this function is to print the UPC-E barcode from a UPC-A barcode that can be compressed. It will print a UPC-A if it cannot be compressed by zero suppression rules. Formats output to the UPC/EAN barcode font. Entering incorrect data will create a barcode containing "00005000000". |
| EAN13(Data) | Data is a number string of 12, 13, 14, 15, 17 or 18 digits with or without a check digit, add-ons are supported. Formats output to the UPC/EAN barcode font. Entering incorrect data will create a barcode containing all zeros. |
| EAN8(Data) | Data is a number string of 7 or 8 characters (EAN-8 without the check digit). Formats output to the UPC/EAN barcode font. Entering incorrect data will create a barcode containing all zeros. |
| MOD10(Data) | Data is a number string. A MOD 10 check digit is returned. This is useful in calculating check digits for UCC/EAN 128 barcodes where a MOD check digit is needed. |