LEADTOOLS WCF Barcode (Leadtools.Services.Barcode.DataContracts assembly)
LEAD Technologies, Inc

BarcodeWriteQr Class

Example 





Members 
This class contains QR barcode information for writing QR barcodes.
Object Model
BarcodeWriteQr Class
Syntax
[DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteQr")]
public class BarcodeWriteQr 
'Declaration
 
<DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteQr")>
Public Class BarcodeWriteQr 
'Usage
 
Dim instance As BarcodeWriteQr
public sealed class BarcodeWriteQr 
function Leadtools.Services.Barcode.DataContracts.BarcodeWriteQr()
[DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteQr")]
public ref class BarcodeWriteQr 
Remarks

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 http://www.leadtools.com/SDK/Document/Document-Addon-Barcodeqr-chart.htm.

Example
 
Private Function ConvertFromStringArray(ByVal data As String()) As Byte()
      If data Is Nothing OrElse data.Length = 0 Then
         Return Nothing
      End If
      Dim list As New List(Of Byte())
      Dim ascii As ASCIIEncoding = New ASCIIEncoding()

      Dim length As Integer = 0
      Dim i As Integer = 0
      Do While i < data.Length
         Dim bytes As Byte() = ascii.GetBytes(data(i))
         list.Add(bytes)
         length += bytes.Length
         length += 1
         i += 1
      Loop

      Dim ret As Byte() = New Byte(length - 1) {}
      Dim index As Integer = 0
      i = 0
      Do While i < list.Count
         Dim bytes As Byte() = list(i)
         bytes.CopyTo(ret, index)
         index += bytes.Length + 1
         i += 1
      Loop

      Return ret
   End Function

   Public Sub BarcodeWriteQrExample()
      Dim client As BarcodeServiceClient = New BarcodeServiceClient()

      Dim sourceBinaryData As RawBinaryData = New RawBinaryData()
      sourceBinaryData.Data = File.ReadAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "barcode1.tif"))

      Dim convertOptions As RasterConvertOptions = New RasterConvertOptions()
      convertOptions.Source = sourceBinaryData
      convertOptions.Destination = Nothing
      convertOptions.Format = RasterImageFormat.RasPdf
      convertOptions.FirstPage = 1
      convertOptions.LastPage = 1
      convertOptions.BitsPerPixel = 24
      convertOptions.QualityFactor = 2

      Dim rc As LeadRectangle = New LeadRectangle()
      rc.X = 100
      rc.Y = 100
      rc.Width = 0
      rc.Height = 0

      Dim barcodeText As String()
      barcodeText = New String(0) {}
      barcodeText(0) = "QR Default Size"

      Dim data As BarcodeData = New BarcodeData()
      data.Location = rc

      data.Data = ConvertFromStringArray(barcodeText)

      Dim barColor As BarcodeColor = New BarcodeColor()
      barColor.BarColor = "Black"
      barColor.SpaceColor = "White"

      Dim bar1d As Barcode1d = New Barcode1d()
      Dim barPDF As BarcodeWritePdf = New BarcodeWritePdf()
      Dim barDM As BarcodeWriteDatamatrix = New BarcodeWriteDatamatrix()

      Dim barQR As BarcodeWriteQr = New BarcodeWriteQr()
      barQR.EccLevel = BarcodeQrEccLevel.LevelL
      barQR.GroupNumber = 0
      barQR.GroupTotal = 0
      barQR.Justify = BarcodeJustifyFlags.Right
      barQR.XModule = 0

      Dim options As WriteOptions = New WriteOptions()

      Dim qr As WriteBarcode2DQr = New WriteBarcode2DQr()
      qr.Type = WriteBarcode2DQrType.Default
      qr.Data = data

      options.Add(qr)

      Dim request As WriteRequest = 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 Or BarcodeWriteFlags.Transparent Or BarcodeWriteFlags.InitializationReader Or BarcodeWriteFlags.DisableCompression
      request.WriteOptions = options

      Dim response As WriteResponse = client.Write(request)

      If Not response.Destination Is Nothing Then
         File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "BarcodeWriteQR.Pdf"), (TryCast(response.Destination, RawBinaryData)).Data)
      End If

      client.Close()
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
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";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

BarcodeWriteQr Members
Leadtools.Services.Barcode.DataContracts Namespace
Leadtools.Services.Barcode.ServiceContracts.IBarcodeService.Write(Leadtools.Services.Barcode.DataContracts.WriteRequest)

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Applications developed with LEADTOOLS WCF components require runtime licenses. Server licensing is required for applications on a server. For more information, refer to: LEADTOOLS Toolkit Features