C# QR Code Generator Library SDK
Integration & Developer Guide for QR Code 2D barcode image generation in C#
"This .NET suite helps my team a lot, a bunch of time being saved. OnBarcode support is awesome, and we couldn't ask more than this."
- Bill Twain, Canada
Generate 2d barcode QR Code images in Visual C# .NET with complete sample C# source code
- Generate, create QR Code in Visual C# .NET applications
- Easy to install & integrate barcode QR Code generation library SDK into C# developments
- Generate over 30 linear, 2d barcode images in C#.NET including C# Data Matrix, C# PDF-417, C# Interleaved 2/5, C# Code 39, C# Code 128, C# EAN
- Generate QR Code images in C# class library
- Create barcode QR Code in C# ASP.NET web application
- Print QR Code barcode in C# Windows Form project
- Draw 2d QR Code in SQL Server Reporting Services (SSRS) & Crystal Reports for .NET projects
- Easy to encode QR Code to jpeg, gif, png, tiff, bitmap image files in C# program
C# QR-Code Generator Introduction

Top
Postnet, also known as USPS POSTNET Barcode, USPS POSTal Numeric Encoding Technique Barcode, is a delivery point barcodes adopted by United States Postal Services.
C# QR Code Generator is one of the functions in OnBarcode's
Barcode for .NET Generation Controls, which supports generating & printing QR Code and 20+ other linear & 2D bar codes for C# applications.
OnBarcode C# Barcode Generator makes it easy to generate, create QR Code and other linear & 2d barcodes in Microsoft Word. Here are some detailed tutorials for C# QR Code generation and data encoding, size & image setting.
QR Code Generator library, SDK & application
This document is providing a detailed C# source code about generating QR Code barcodes in C# class using
C# Barcode generation component. Complete QR Code custmoization settings is included in
C# QR Code generation guide.
Create QR-Code Barcodes in C#

Top
Creating QR-Code barcode in C# class example:
using System;
using System.Collections.Generic;
using System.Text;
using OnBarcode.Barcode;
using System.Drawing.Imaging;
using System.Drawing;
QRCode qrcode = new QRCode();
// Barcode data to encode
qrcode.Data = "ONBARCODE";
// QR-Code data mode
qrcode.DataMode = QRCodeDataMode.AlphaNumeric;
// QR-Code format mode
//qrcode.Version = QRCodeVersion.V10;
/*
* Barcode Image Related Settings
*/
// Unit of meature for all size related setting in the library.
qrcode.UOM = UnitOfMeasure.PIXEL;
// Bar module size (X), default is 3 pixel;
qrcode.X = 3;
// Barcode image left, right, top, bottom margins. Defaults are 0.
qrcode.LeftMargin = 0;
qrcode.RightMargin = 0;
qrcode.TopMargin = 0;
qrcode.BottomMargin = 0;
// Image resolution in dpi, default is 72 dpi.
qrcode.Resolution = 72;
// Created barcode orientation.
//4 options are: facing left, facing right, facing bottom, and facing top
qrcode.Rotate = Rotate.Rotate0;
// Generate QR-Code and encode barcode to gif format
qrcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Gif;
qrcode.drawBarcode("C:\\qrcode.gif");
/*
You can also call other drawing methods to generate barcodes
public void drawBarcode(Graphics graphics);
public void drawBarcode(string filename);
public Bitmap drawBarcode();
public void drawBarcode(Stream stream);
*/
Generate GS1 QR Code barcode images using C#
The foundational GS1 standard that defines how identification keys, data attributes and barcodes must be used in business applications.
GS1 QR Code is a standalone, two-dimensional matrix symbology that is made up of square modules arranged in an overall square pattern, including a unique finder pattern located at three corners of the symbol.
QR Code is the only member of the QR Code family that supports GS1 system data structures, including Function 1 Symbol Character. ISO/IEC QR Code also contains specifications for Micro QR Code,
but this symbology is not supported for the GS1 system. QR Code uses Reed-Solomon error correction (four selectable levels of error correction are specified), and this feature helps correct for partially damaged symbols.
GS1 QR Code symbols are read by two-dimensional imaging scanners or vision systems. Most other scanners that are not two-dimensional imagers cannot read GS1 QR Code. GS1 QR Code symbols are restricted for use with applications that will involve imaging scanners throughout the supply chain.
Sample C# source code to encode GS1 QR Code barcode
QRCode barcode = new QRCode();
// It could encode GS1 element(s) by inserting a FNC1 symbol before all data characters.
// Each element contains a GS1 prefix (in parentheses) and fixed (or variable) length data content.
// Set FNC1 to FNC1.FNC1_1ST_POS to enable this feature.
barcode.Data = "(17)050101(10)ABC123";
barcode.FNC1 = FNC1.FNC1_1ST_POS;
barcode.DataMode = QRCodeDataMode.Auto;
// Selecte format mode
barcode.Version = QRCodeVersion.V3;
// Barcode Size Related Settings
barcode.UOM = UnitOfMeasure.PIXEL;
barcode.X = 5;
barcode.LeftMargin = 50;
barcode.RightMargin = 50;
barcode.TopMargin = 50;
barcode.BottomMargin = 50;
barcode.Resolution = 96;
// Image format setting
barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;
barcode.drawBarcode("C://Projects//Test-Output//OnBarcode.com//csharp-qrcode-mode-gs1.png");
Encode Japanese (Kanji) text in QR Code using C#
Sample C# source code to encode Japanese (Kanji) text in QR Code barcode
QRCode barcode = new QRCode();
// Kanji mode encodes Kanji characters defined in JIS X 0208 and valid character values are in the ranges
// 0x8140 ~ 0x9FFC and 0xE040 ~ 0xEBBF. Each character (SJIS value) should be represented in format "~9ddddd",
// which "ddddd" is a decimal number in ranges 33088 (0x8140) ~ 40956 (0x9FFC) and 57408 (0xE040) ~ 60351 (0xEBBF).
// ProcessTilde must be enable to support this feature.
barcode.Data = "~937727~958538"; // 0x935F0xE4AA - "点茗"
barcode.ProcessTilde = true;
barcode.DataMode = QRCodeDataMode.Kanji;
// Selecte format mode
barcode.Version = QRCodeVersion.V1;
// Barcode Size Related Settings
barcode.UOM = UnitOfMeasure.PIXEL;
barcode.X = 5;
barcode.LeftMargin = 50;
barcode.RightMargin = 50;
barcode.TopMargin = 50;
barcode.BottomMargin = 50;
barcode.Resolution = 96;
// Image format setting
barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;
barcode.drawBarcode("C://Projects//Test-Output//OnBarcode.com//csharp-qrcode-mode-kanji.png");
Create, encode Non-English text (Thai Text) in QR Code using C#
Sample C# source code to encode Thai Text in QR Code barcode
QRCode barcode = new QRCode();
// It may encode any Unicode characters after converting them to bytes in UTF-8 encode.
// And then, use Byte encodation to encode these byte data.
String message = "สวัสดี";
byte[] bytes = Encoding.UTF8.GetBytes(message);
StringBuilder sb = new StringBuilder();
foreach (byte b in bytes)
sb.Append("~" + b.ToString().PadLeft(3, '0'));
barcode.Data = sb.ToString();
barcode.ProcessTilde = true;
barcode.DataMode = QRCodeDataMode.Byte;
// Selecte format mode
barcode.Version = QRCodeVersion.V3;
// Barcode Size Related Settings
barcode.UOM = UnitOfMeasure.PIXEL;
barcode.X = 5;
barcode.LeftMargin = 50;
barcode.RightMargin = 50;
barcode.TopMargin = 50;
barcode.BottomMargin = 50;
barcode.Resolution = 96;
// Image format setting
barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;
barcode.drawBarcode("C://Projects//Test-Output//OnBarcode.com//csharp-qrcode-mode-thai.png");
Generate, encode Non-printable chars in QR Code using C#
Sample C# source code to encode non printable chars '[CR]' (Carriage Return) in QR Code
QRCode barcode = new QRCode();
// It could encode non-printable chars by converting char ascii value to THREE digits, in format "~ddd",
// Set ProcessTilde to true to enable this feature.
barcode.Data = "~013"; // char '[CR]' or carriage return
barcode.ProcessTilde = true;
barcode.DataMode = QRCodeDataMode.Auto;
// Selecte format mode
barcode.Version = QRCodeVersion.V3;
// Barcode Size Related Settings
barcode.UOM = UnitOfMeasure.PIXEL;
barcode.X = 5;
barcode.LeftMargin = 50;
barcode.RightMargin = 50;
barcode.TopMargin = 50;
barcode.BottomMargin = 50;
barcode.Resolution = 96;
// Image format setting
barcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Png;
barcode.drawBarcode("W://Projects//Test-Output//OnBarcode.com//csharp-qrcode-mode-non-print.png");
More C# Barcode Generation Tutorials for Each Barcode

Top
Barcode Control for C#.NET - Bar Code Type Generation