Home > .NET Crystal Reports Barcode > Crystal Reports Barcode Generation Guide > Crystal Reports QR-Code Generator DLL

Crystal Reports QR Code Generator Library

How to Generate 2D QR-Code Barcodes in Crystal Reports for .NET
  • Easy to create barcodes in Crystal Reports without using barcode fonts or third party tools
  • Developed in Visual C# with full integration for .NET framework 4.x, 3.x, 2.x
  • Simple to print QR Code barcodes using Crystal Report in Windows applications and ASP.NET web applications
  • Programmatically create, generate QR Code 2D barcodes with C# and VB.NET
  • Programmatically create QR-Codes in ASP.NET with C#, VB.NET Class Library
  • Make multiple QR Codes images in Crystal Report within a few steps
  • Flexible barcode settings available as specified in standard
  • Complete barcode settings to adjust various QR Code barcode parameters
The QR Code barcode generation control for Crystal Reports is a professional and robust .NET component designed for integration with Visual Studio 2005, 2008, 2010, and later versions. It enables dynamic generation of QR Code symbols within Crystal Reports, suitable for listing and reporting scenarios.

This guide delivers a structured, step-by-step approach to creating and printing QR Code (Quick Response Code) images into Crystal Reports for .NET, supporting both ASP.NET and Windows Forms projects.

Using the Barcode Generator for Crystal Reports .NET library, you can embed QR Codes directly into .rpt files (Crystal Reports template files) for display in CrystalReportViewer (WinForms, WPF, or ASP.NET viewer control) or exported report formats.





Introduction

QR-Code is also known as Quick Response Code, Denso Barcode, QRCode, JIS X 0510, ISO/IEC 18004.
Compatibility: Barcode for Crystal Reports control / dll is compatible with ISO/IEC 18004 bar code symbology specification.



How to Print QR Code Barcodes in Crystal Reports Using C#, VB.NET

BarcodeLib.com provides detailed guides for users to create barcodes in Crystal Report in C# ASP.NET web and WinForms desktop application.
The demo ASP.NET and WinForms application will create and print Code 128 barcodes in the report. To generate QR Code in the report, you need do the following code modification.
    • For ASP.NET web application, open file Default.aspx.cs in Visual Studio, go to method Page_Load
    • For WinForms application, open file Form1.cs in Visual Studio, go to method Form1_Load
  1. Change the default Code 128 barcode generation code to the following QR Code generation C# code.
    QRCodeCrystal barcode = new QRCodeCrystal();
    barcode.UOM = UnitOfMeasure.INCH;
    barcode.ImageWidth = 2;
    barcode.ImageHeight = 2;
    barcode.ResizeImagePaddingTransparent = false;
    barcode.ImageFormat = BLImageFormat.PNG;
    
  2. Change QR Code image size to 2-inch width and 2-inch height.
    Open report file CrystalReport1.rpt in Visual Studio. Click the Barcode item, change the properties:
    Property XScaling value to 2.
    Property YScaling value to 2.
Now run the modified ASP.NET web application, you can view the QR Codes printed in the report in browser.



Print QR Code with Diverse Text Formats in Crystal Reports

QR Code is a 2D barcode symbology that supports various text string formats defined by industry standards, such as the GS1 Specification. The following sections explain how to print QR Codes with diverse text formats in Crystal Reports using C#.


Encode ASCII Non-Printing Characters

ASCII control characters, such as carriage return (CR), require special encoding for structured data in Crystal Reports formula field output.
  • Set ProcessTilde to true to enable the tilde (~) as an escape character.
  • In the Data property, non-printable characters are converted to the ~ddd format, where ddd is the three-digit ASCII value.
The following C# codes will print QR Code with SEVEN characters encoded. And the ASCII char carriage return integer value is 13.

QRCode barcode = new QRCode();
barcode.ProcessTilde = true;
barcode.Data = "QR~013Code";



Encode Unicode Text (Multilingual Reports)

QR Codes do not natively support Unicode text encoding, however you can encode Unicode text through binary data encoding in Crystal Reports:
  • Set IsUnicodeData to true to print QR Codes with Unicode text encoding in Crystal Reports.
  • Enter the Unicode text string in the Data property.
QRCode barcode = new QRCode();
barcode.Data = "Unicode text string here";
barcode.IsUnicodeData = true;



Generate GS1-Compliant QR Codes in Reports

GS1 QR Codes integrate industry-standard data, such as expiration dates and batch numbers, into Crystal Reports for supply chain and retail use cases.
  • Set property FNC1Mode with value QRCodeFNC1Mode.FirstPosition to enable GS1 formatting in QR Code.
  • In the Data property, include AI codes in parentheses followed by the data.
QRCode barcode = new QRCode();
barcode.Data = "(17)050101(10)ABC123";
barcode.FNC1Mode = QRCodeFNC1Mode.FirstPosition;



Adjust QR Code image width & height in Crystal Reports

Optimize QR Code dimensions for Crystal Reports image controls to avoid distortion in printed or exported reports. QR Codes are square, so the image width (property ImageWidth) defines both dimensions. Add the following C# code to the Crystal Reports for .NET project:
  • Determine the QR Code printing size in the .rpt file (matches ImageWidth).
  • Use UOM to select the preferred unit of measure (inch or cm).
  • Specify the QR Code rendering side with ImageWidth.
barcode.UOM = UnitOfMeasure.INCH;
barcode.ImageWidth = 2;



Configure QR Code Quiet Zones

Quiet zones, or blank space, ensure scannability. Set margins on QR Code images in Crystal Reports.

The QR Code standard requires a quiet zone of 10X, where X is the QR Code module size. Insufficient quiet zones may cause scan errors in printed reports; test physical prints before deployment.

Use the following properties to apply the QR Code left, right, top, bottom margin size.

barcode.LeftMargin = 10;
barcode.RightMargin = 10;
barcode.TopMargin = 10;
barcode.BottomMargin = 10;



Customizing QR Code Appearance for Crystal Reports

Configure Colors

Customize QR Code colors to match brand guidelines, such as Crystal Reports Report Header branding.
  • ModuleColor: QR Code modules color, typically black.
  • BackgroundColor: QR Code background color, typically white.
barcode.ModuleColor = Color.Red;
barcode.BackgroundColor = Color.LightSeaGreen;



Advanced Image Options

  • Appy high-resolution QR Code image through property Resolution. Optimize for printed reports, critical for Crystal Reports printing functionality.
  • Transparent image background through property BackgroundColor with value Color.Transparent: Seamless integration with Crystal Reports Details section backgrounds.
barcode.Resolution = 900;
barcode.BackgroundColor = Color.Transparent;


Advanced QR Code Features for Crystal Reports

The following advanced customization parameters are available for QR Code. It is recommended to use the preset values of the library. If modifications are required to meet specific requirements, refer to the C# code examples below.


Error Correction Mode

Reed-Solomon error correction ensures QR Codes remain scannable, which is critical for printed reports. Configure the error correction level (ECL) to match the use case:
  • QRCodeErrorCorrectionLevel.L: 7% (default)
  • QRCodeErrorCorrectionLevel.M: 15%
  • QRCodeErrorCorrectionLevel.Q: 25%
  • QRCodeErrorCorrectionLevel.H: 30%
barcode.ECL = QRCodeErrorCorrectionLevel.M;


QR Code Version

QR Codes have 40 versions (sizes) to accommodate varying data volumes in Crystal Reports. Higher versions (e.g., V40) require larger PictureBox controls in Crystal Reports.

barcode.Version = QRCodeVersion.V2;


Structured Append Mode

Split a large text message across up to 16 QR Codes, which is useful when the data exceeds the capacity of a single QR Code.


FNC1 First Position (GS1)

Set property FNC1Mode with value QRCodeFNC1Mode.FirstPosition to generate GS1 compliant QR Code in Crystal Reports supply chain and retail scenarios.

barcode.FNC1Mode = QRCodeFNC1Mode.FirstPosition;




More information about QR Code Text Encoding in Crystal Reports



QR Code Encoding Character Sets for Crystal Reports

  • Numbers (digits 0–9)
  • ASCII characters (plain text)
  • Unicode text. For multilingual reports (Arabic, Greek, Thai) in global deployments
  • Byte data (default: ISO/IEC 8859-1). Encoding byte arrays stored in ADO.NET DataSet
  • Kanji characters (13-bit compression). Optimized for Japanese locale reports


QR Code Data Mode for Crystal Reports

The Crystal Reports for .NET Barcode library automatically analyzes the encoding data and selects the appropriate QR Code data encoding mode. To manually customize the data mode encoding, use the property Encoding with the following value.
  • QRCodeEncoding.Auto (Default): The library chooses the optimal combination of data modes based on the encoding data.
  • QRCodeEncoding.Numeric: Digits 0 - 9 only.
  • QRCodeEncoding.AlphaNumeric: 0 - 9, A - Z, and special characters.
  • QRCodeEncoding.Byte: Byte data (ISO/IEC 8859-1).
  • QRCodeEncoding.Kanji: Kanji characters (13-bit).
barcode.Encoding = QRCodeEncoding.Auto;


Maximum Data Length for Crystal Reports QR Codes

The QR Code standard specifies forty sizes, referred to as Version 1 through Version 40. Version 40-L QR Codes, the largest standard size, support the following limits to avoid truncation in Crystal Reports:
  • Numeric data: 7,089 characters
  • Alphanumeric data: 4,296 characters
  • Byte data: 2,953 characters
  • Kanji data: 1,817 characters
Note: Exceeding these limits triggers QR Code encoding errors. The Structured Append mode, covered later, can be used for large text messages.


Summary

This guide has provided a comprehensive walkthrough for generating and customizing QR Code barcodes in Crystal Reports using the BarcodeLib Barcode Generator for Crystal Reports for .NET library.
  • Print QR Codes in Reports: Generate QR Codes in C# (or VB.NET) and bind them to Crystal Reports for .NET using ReportDocument, CrystalReportViewer, and .rpt file templates. This approach is compatible with ASP.NET Web Forms, WinForms, and WPF (via WindowsFormsHost).
  • Handle Diverse Text Formats: Utilize automatic or manual data modes to support ASCII, Unicode, and GS1-compliant data. Non-printable characters are processed using tilde encoding, ensuring accurate binding to Crystal Reports formula and parameter fields.
  • Optimize Appearance and Layout: Adjust dimensions, quiet zones, colors, and resolution to align with Crystal Reports layout requirements across headers, footers, and details sections. Advanced features such as Structured Append and error correction levels provide flexibility for enterprise reporting needs.
Crystal Reports Barcode Generator Control Supported Symbologies
Linear (1D) Barcodes:
Matrix(2D) Barcodes: