This class contains QR barcode information for writing QR barcodes.
[DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteQr")]
public class BarcodeWriteQr
The QR standard specifies 40 different sizes of the QR code and the maximum data capacity will vary depending on the size and Error Correction level. The table below lists the maximum data capacity for each ECC level and encoding scheme.
For a table containing information useful when writing QR barcode data see https://www.leadtools.com/sdk/barcode/qr-chart.
using Leadtools.Services;
using Leadtools.Services.Barcode.ServiceContracts;
using Leadtools.Services.Barcode.ServiceImplementations;
byte[] ConvertFromStringArray(string[] data)
{
if (data == null || data.Length == 0)
return null;
List<byte[]> list = new List<byte[]>();
ASCIIEncoding ascii = new ASCIIEncoding();
int length = 0;
for (int i = 0; i < data.Length; i++)
{
byte[] bytes = ascii.GetBytes(data[i]);
list.Add(bytes);
length += bytes.Length;
length++;
}
byte[] ret = new byte[length];
int index = 0;
for (int i = 0; i < list.Count; i++)
{
byte[] bytes = list[i];
bytes.CopyTo(ret, index);
index += bytes.Length + 1;
}
return ret;
}
public void BarcodeWriteQrExample()
{
BarcodeServiceClient client = new BarcodeServiceClient();
RawBinaryData sourceBinaryData = new RawBinaryData();
sourceBinaryData.Data = File.ReadAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "barcode1.tif"));
RasterConvertOptions convertOptions = new RasterConvertOptions();
convertOptions.Source = sourceBinaryData;
convertOptions.Destination = null;
convertOptions.Format = RasterImageFormat.RasPdf;
convertOptions.FirstPage = 1;
convertOptions.LastPage = 1;
convertOptions.BitsPerPixel = 24;
convertOptions.QualityFactor = 2;
LeadRectangle rc = new LeadRectangle();
rc.X = 100;
rc.Y = 100;
rc.Width = 0;
rc.Height = 0;
string[] barcodeText;
barcodeText = new string[1];
barcodeText[0] = "QR Default Size";
BarcodeData data = new BarcodeData();
data.Location = rc;
data.Data = ConvertFromStringArray(barcodeText);
BarcodeColor barColor = new BarcodeColor();
barColor.BarColor = "Black";
barColor.SpaceColor = "White";
Barcode1d bar1d = new Barcode1d();
BarcodeWritePdf barPDF = new BarcodeWritePdf();
BarcodeWriteDatamatrix barDM = new BarcodeWriteDatamatrix();
BarcodeWriteQr barQR = new BarcodeWriteQr();
barQR.EccLevel = BarcodeQrEccLevel.LevelL;
barQR.GroupNumber = 0;
barQR.GroupTotal = 0;
barQR.Justify = BarcodeJustifyFlags.Right;
barQR.XModule = 0;
WriteOptions options = new WriteOptions();
WriteBarcode2DQr qr = new WriteBarcode2DQr();
qr.Type = WriteBarcode2DQrType.Default;
qr.Data = data;
options.Add(qr);
WriteRequest request = new WriteRequest();
request.Code1d = bar1d;
request.CodeColor = barColor;
request.CodeDatamatrix = barDM;
request.CodePdf = barPDF;
request.CodeQr = barQR;
request.ConvertOptions = convertOptions;
request.TypeFlags = BarcodeMajorTypeFlags.BarcodesDatamatrixWrite;
request.Unit = BarcodeUnit.ScanlinesPerPixels;
request.WriteFlags = BarcodeWriteFlags.UseColors | BarcodeWriteFlags.Transparent | BarcodeWriteFlags.InitializationReader | BarcodeWriteFlags.DisableCompression;
request.WriteOptions = options;
WriteResponse response = client.Write(request);
if (response.Destination != null)
{
File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "BarcodeWriteQR.Pdf"), (response.Destination as RawBinaryData).Data);
}
client.Close();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}