←Select platform

BarcodeWriter Class

Summary

Main class for the LEADTOOLS support for writing barcodes.

Syntax
C#
VB
Objective-C
C++
Java
public sealed class BarcodeWriter 
Public NotInheritable Class BarcodeWriter  
@interface LTBarcodeWriter : NSObject 
public class BarcodeWriter 
public ref class BarcodeWriter sealed  

Remarks

The BarcodeWriter class is used to write a barcode to an image. You cannot create an instance of BarcodeWriter directly, instead, you use the instance created for you inside BarcodeEngine and accessed through the BarcodeEngine.Writer property:

VB Snippet
Dim engine As New BarcodeEngine() 
Dim writer As BarcodeWriter = engine.Writer 
' Use can use the writer now, for example, write a UPCA barcode to an image: 
Dim data As New BarcodeData(BarcodeSymbology.UPCA,"01234567890") 
data.Bounds = New LeadRect(0, 0, 400, 200) 
writer.WriteBarcode(myImage, data, Nothing) 
C# Snippet
BarcodeEngine engine = new BarcodeEngine(); 
BarcodeWriter writer = engine.Writer; 
// Use can use the writer now, for example, write a UPCA barcode to an image: 
BarcodeData data = new BarcodeData(BarcodeSymbology.UPCA,"01234567890"); 
data.Bounds = new LeadRect(0, 0, 400, 200); 
writer.WriteBarcode(myImage, data, null); 

Or you can use the BarcodeWriter directly through the BarcodeEngine.Writer property:

VB Snippet
Dim engine As New BarcodeEngine() 
// Use the instance in BarcodeEngine directly, for example, write a UPCA barcode to an image: 
Dim data As New BarcodeData(BarcodeSymbology.UPCA,"01234567890") 
data.Bounds = New LeadRect(0, 0, 400, 200) 
engine.Writer.WriteBarcode(myImage, data, Nothing) 
C# Snippet
BarcodeEngine engine = new BarcodeEngine(); 
// Use the instance in BarcodeEngine directly, for example, write a UPCA barcode to an image: 
BarcodeData data = new BarcodeData(BarcodeSymbology.UPCA,"01234567890"); 
data.Bounds = new LeadRect(0, 0, 400, 200); 
engine.Write.WriteBarcode(myImage, data, null); 

Example

This example creates a barcode for each symbology supported by LEADTOOLS. It will then save the barcodes as TIFF files.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Barcode; 
using Leadtools.ImageProcessing; 
 
public void BarcodeWriter_Example() 
{ 
   // Create a directory to store the images we will create 
   string outDir = Path.Combine(LEAD_VARS.ImagesDir, "MyBarcodes"); 
   if (Directory.Exists(outDir)) 
   { 
      Directory.Delete(outDir, true); 
   } 
   Directory.CreateDirectory(outDir); 
 
   int resolution = 300; 
 
   // Create a Barcode engine 
   BarcodeEngine engine = new BarcodeEngine(); 
 
   // Get the Barcode writer 
   BarcodeWriter writer = engine.Writer; 
 
   // All 1D options have the UseXModule set to false by default, we need to set it to true 
   // so we can calculate the default size. We will change the default options so we can 
   // pass null to CalculateBarcodeDataBounds and WriteBarcode below 
 
   // For all Standard 1D 
   OneDBarcodeWriteOptions oneDWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeWriteOptions; 
   oneDWriteOptions.UseXModule = true; 
 
   // All GS1 Databar Stacked 
   GS1DatabarStackedBarcodeWriteOptions gs1DatabarStackedWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked) as GS1DatabarStackedBarcodeWriteOptions; 
   gs1DatabarStackedWriteOptions.UseXModule = true; 
 
   // Patch Code 
   PatchCodeBarcodeWriteOptions patchCodeWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PatchCode) as PatchCodeBarcodeWriteOptions; 
   patchCodeWriteOptions.UseXModule = true; 
 
   // All PostNet/Planet 
   PostNetPlanetBarcodeWriteOptions postNetPlanetWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PostNet) as PostNetPlanetBarcodeWriteOptions; 
   postNetPlanetWriteOptions.UseXModule = true; 
 
   // We will use this object to save files 
   using (RasterCodecs codecs = new RasterCodecs()) 
   { 
      // Get all the available write symbologies 
      BarcodeSymbology[] symbologies = writer.GetAvailableSymbologies(); 
      foreach (BarcodeSymbology symbology in symbologies) 
      { 
         Console.WriteLine("Processing {0}", symbology); 
 
         // Create the default data for this symbology 
         BarcodeData data = BarcodeData.CreateDefaultBarcodeData(symbology); 
 
         // Calculate its size with default options 
         writer.CalculateBarcodeDataBounds(LeadRect.Empty, resolution, resolution, data, null); 
 
         // Create an image to write the data to 
         LeadRect pixels = data.Bounds; 
         using (RasterImage image = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White))) 
         { 
            // Write the barcode with default options 
            writer.WriteBarcode(image, data, null); 
 
            // Save it 
            string outFileName = Path.Combine(outDir, symbology + ".tif"); 
            codecs.Save(image, outFileName, RasterImageFormat.Tif, 1); 
         } 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Barcode 
Imports Leadtools.ImageProcessing 
 
Public Sub BarcodeWriter_Example() 
   ' Create a directory to store the images we will create 
   Dim outDir As String = Path.Combine(LEAD_VARS.ImagesDir, "MyBarcodes") 
   If Directory.Exists(outDir) Then 
      Directory.Delete(outDir, True) 
   End If 
   Directory.CreateDirectory(outDir) 
 
   Dim resolution As Integer = 300 
 
   ' Create a Barcode engine 
   Dim engine As New BarcodeEngine() 
 
   ' Get the Barcode writer 
   Dim writer As BarcodeWriter = engine.Writer 
 
   ' All 1D options have the UseXModule set to false by default, we need to set it to true 
   ' so we can calculate the default size. We will change the default options so we can 
   ' pass null to CalculateBarcodeDataBounds and WriteBarcode below 
 
   ' For all Standard 1D 
   Dim oneDWriteOptions As OneDBarcodeWriteOptions = DirectCast(writer.GetDefaultOptions(BarcodeSymbology.UPCA), OneDBarcodeWriteOptions) 
   oneDWriteOptions.UseXModule = True 
 
   ' All GS1 Databar Stacked 
   Dim gs1DatabarStackedWriteOptions As GS1DatabarStackedBarcodeWriteOptions = DirectCast(writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked), GS1DatabarStackedBarcodeWriteOptions) 
   gs1DatabarStackedWriteOptions.UseXModule = True 
 
   ' Patch Code 
   Dim patchCodeWriteOptions As PatchCodeBarcodeWriteOptions = DirectCast(writer.GetDefaultOptions(BarcodeSymbology.PatchCode), PatchCodeBarcodeWriteOptions) 
   patchCodeWriteOptions.UseXModule = True 
 
   ' All PostNet/Planet 
   Dim postNetPlanetWriteOptions As PostNetPlanetBarcodeWriteOptions = DirectCast(writer.GetDefaultOptions(BarcodeSymbology.PostNet), PostNetPlanetBarcodeWriteOptions) 
   postNetPlanetWriteOptions.UseXModule = True 
 
   ' We will use this object to save files 
   Using codecs As New RasterCodecs() 
      ' Get all the available write symbologies 
      Dim symbologies() As BarcodeSymbology = writer.GetAvailableSymbologies() 
      For Each symbology As BarcodeSymbology In symbologies 
         Console.WriteLine("Processing {0}", symbology) 
 
         ' Create the default data for this symbology 
         Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(symbology) 
 
         ' Calculate its size with default options 
         writer.CalculateBarcodeDataBounds(LeadRect.Empty, resolution, resolution, data, Nothing) 
 
         ' Create an image to write the data to 
         Dim pixels As LeadRect = data.Bounds 
         Using image As RasterImage = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)) 
            ' Write the barcode with default options 
            writer.WriteBarcode(image, data, Nothing) 
 
            ' Save it 
            Dim outFileName As String = Path.Combine(outDir, symbology.ToString() + ".tif") 
            codecs.Save(image, outFileName, RasterImageFormat.Tif, 1) 
         End Using 
      Next 
   End Using 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Forms; 
using Leadtools.Barcode; 
using Leadtools.ImageProcessing; 
using Leadtools.Examples; 
 
public void BarcodeWriter_Example() 
{ 
   int resolution = 300; 
 
   // Create a Barcode engine 
   BarcodeEngine engine = new BarcodeEngine(); 
 
   // Get the Barcode writer 
   BarcodeWriter writer = engine.Writer; 
 
   // All 1D options have the UseXModule set to false by default, we need to set it to true 
   // so we can calculate the default size. We will change the default options so we can 
   // pass null to CalculateBarcodeDataBounds and WriteBarcode below 
 
   // For all Standard 1D 
   OneDBarcodeWriteOptions oneDWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeWriteOptions; 
   oneDWriteOptions.UseXModule = true; 
 
   // All GS1 Databar Stacked 
   GS1DatabarStackedBarcodeWriteOptions gs1DatabarStackedWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked) as GS1DatabarStackedBarcodeWriteOptions; 
   gs1DatabarStackedWriteOptions.UseXModule = true; 
 
   // Patch Code 
   PatchCodeBarcodeWriteOptions patchCodeWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PatchCode) as PatchCodeBarcodeWriteOptions; 
   patchCodeWriteOptions.UseXModule = true; 
 
   // All PostNet/Planet 
   PostNetPlanetBarcodeWriteOptions postNetPlanetWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PostNet) as PostNetPlanetBarcodeWriteOptions; 
   postNetPlanetWriteOptions.UseXModule = true; 
 
   // We will use this object to save files 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Get all the available write symbologies 
   BarcodeSymbology[] symbologies = writer.GetAvailableSymbologies(); 
   foreach (BarcodeSymbology symbology in symbologies) 
   { 
      Console.WriteLine("Processing {0}", symbology); 
 
      // Create the default data for this symbology 
      BarcodeData data = BarcodeData.CreateDefaultBarcodeData(symbology); 
 
      // Calculate its size with default options 
      writer.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, data, null); 
 
      // Create an image to write the data to 
      LeadRect pixels = data.Bounds.ToRectangle(resolution, resolution); 
      using (RasterImage image = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White))) 
      { 
         // Write the barcode with default options 
         writer.WriteBarcode(image, data, null); 
 
         // Save it 
         using (SampleImageStream outputStream = new SampleImageStream(symbology + ".tif")) 
         { 
            codecs.Save(image, outputStream, RasterImageFormat.Tif, 1); 
         } 
      } 
   } 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Forms 
Imports Leadtools.Barcode 
Imports Leadtools.ImageProcessing 
 
Public Sub BarcodeWriter_Example() 
   Dim resolution As Integer = 300 
 
   ' Create a Barcode engine 
   Dim engine As BarcodeEngine = New BarcodeEngine() 
 
   ' Get the Barcode writer 
   Dim writer As BarcodeWriter = engine.Writer 
 
   ' All 1D options have the UseXModule set to false by default, we need to set it to true 
   ' so we can calculate the default size. We will change the default options so we can 
   ' pass null to CalculateBarcodeDataBounds and WriteBarcode below 
 
   ' For all Standard 1D 
   Dim oneDWriteOptions As OneDBarcodeWriteOptions = TryCast(writer.GetDefaultOptions(BarcodeSymbology.UPCA), OneDBarcodeWriteOptions) 
   oneDWriteOptions.UseXModule = True 
 
   ' All GS1 Databar Stacked 
   Dim gs1DatabarStackedWriteOptions As GS1DatabarStackedBarcodeWriteOptions = TryCast(writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked), GS1DatabarStackedBarcodeWriteOptions) 
   gs1DatabarStackedWriteOptions.UseXModule = True 
 
   ' Patch Code 
   Dim patchCodeWriteOptions As PatchCodeBarcodeWriteOptions = TryCast(writer.GetDefaultOptions(BarcodeSymbology.PatchCode), PatchCodeBarcodeWriteOptions) 
   patchCodeWriteOptions.UseXModule = True 
 
   ' All PostNet/Planet 
   Dim postNetPlanetWriteOptions As PostNetPlanetBarcodeWriteOptions = TryCast(writer.GetDefaultOptions(BarcodeSymbology.PostNet), PostNetPlanetBarcodeWriteOptions) 
   postNetPlanetWriteOptions.UseXModule = True 
 
   ' We will use this object to save files 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   ' Get all the available write symbologies 
   Dim symbologies As BarcodeSymbology() = writer.GetAvailableSymbologies() 
   For Each symbology As BarcodeSymbology In symbologies 
      Console.WriteLine("Processing {0}", symbology) 
 
      ' Create the default data for this symbology 
      Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(symbology) 
 
      ' Calculate its size with default options 
      writer.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, data, Nothing) 
 
      ' Create an image to write the data to 
      Dim pixels As LeadRect = data.Bounds.ToRectangle(resolution, resolution) 
      Using image As RasterImage = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)) 
         ' Write the barcode with default options 
         writer.WriteBarcode(image, data, Nothing) 
 
         ' Save it 
         Using outputStream As SampleImageStream = New SampleImageStream(symbology & ".tif") 
            codecs.Save(image, outputStream, RasterImageFormat.Tif, 1) 
         End Using 
      End Using 
   Next symbology 
End Sub 

Requirements

Target Platforms

Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Barcode Assembly