Integrating Barcode Fonts With WPF (CSharp)

SampleFont_WPF is a C# project written in the .NET 3 framework that demonstrates the integration of the ConnectCode dynamic link library. The source code for SampleFont_WPF is provided in the download below and requires Visual Studio 2005 or later to compile.

The following is a screenshot of the sample in Vista.



Download

Dowload the SampleFont_WPF.zip executable and source code.

The ConnectCode Barcode Fonts DLL and the source for the SampleFont_WPF sample can be freely used, compiled and distributed with the users' (developers') applications as long as they are being used with any one of the registered barcode font packs. Redistribution of ConnectCode's fonts will, however, require a Distribution or Unlimited Distribution License.

Additional Requirements -

The following needs to be installed on the user's machine for successful compilation and execution.



Steps for integrating the DLL with Windows Presentation Foundation (C#)

1) Make sure the namespace System.Runtime.InteropServices is imported into your project

Using System.Runtime.InteropServices;

2) Copy the DLLImport statements for connectcodefont.dll into your project.

3) Make calls to the DLL to encode the input data. For example

String inputstr;
StringBuilder outputstr = new StringBuilder(2048);
inputstr = "12345678";
Encode_Code128Auto(inputstr, outputstr, outputstr.Capacity);

The result will be stored in the outputstr variable. 

4) Set the font of outputstr to the appropriate barcode font. For example, if you are using Encode_Code128Auto, then the font to choose should be CCode128_S3. (If you are developing with the Trial version of ConnectCode Font Pack, the font to choose would be CCCode128_S3_Trial instead)


 

The SampleFont_WPF sample includes all the above steps in a short and easy to understand program.

Note that the barcodes generated with the Trial version of ConnectCode Font Pack will have horizontal lines across them.


DLLImport Statements for C#

Copy the following block of statements into your C# project to integrate with the DLL. To use DLLImport statements in your project, you will need to import the System.Runtime.InteropServices namespace. 

using System.Runtime.InteropServices;

The connectcodefont.dll file has to be placed in the same folder as the executable for it to load properly. 

 

[DllImport("connectcodefont.dll", EntryPoint = "Encode_Code128Auto")]
public static extern int Encode_Code128Auto(String instr, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_Code39")]
public static extern int Encode_Code39(String instr, int checkdigit, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_POSTNET")]
public static extern int Encode_POSTNET(String instr, int checkdigit, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_Code93")]
public static extern int Encode_Code93(String instr, int checkdigit, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_Codabar")]
public static extern int Encode_Codabar(String instr, int checkdigit, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_Code39Ascii")]
public static extern int Encode_Code39Ascii(String instr, int checkdigit, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_I2of5")]
public static extern int Encode_I2of5(String instr, int checkdigit, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_ITF14")]
public static extern int Encode_ITF14(String instr, int checkdigit, int bearer, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_Industrial2of5")]
public static extern int Encode_Industrial2of5(String instr, int checkdigit, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_ModifiedPlessy")]
public static extern int Encode_ModifiedPlessy(String instr, int checkdigit, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_EAN13")]
public static extern int Encode_EAN13(String instr, int humantext, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "RetrieveOptionalString_EAN13")]
public static extern int RetrieveOptionalString_EAN13(String instr, int humantext, int strtype, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_UPCA")]
public static extern int Encode_UPCA(String instr, int humantext, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_EAN8")]
public static extern int Encode_EAN8(String instr, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_UCCEAN")]
public static extern int Encode_UCCEAN(String instr, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_Code128A")]
public static extern int Encode_Code128A(String instr, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_Code128B")]
public static extern int Encode_Code128B(String instr, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_Code128C")]
public static extern int Encode_Code128C(String instr, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_UPCE")]
public static extern int Encode_UPCE(String instr, int humantext, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_EXT2")]
public static extern int Encode_EXT2(String instr, StringBuilder outstr, int outstrmax);
[DllImport("connectcodefont.dll", EntryPoint = "Encode_EXT5")]
public static extern int Encode_EXT5(String instr, StringBuilder outstr, int outstrmax);