←Select platform

BarcodeWriter Class

Summary
Main class for the LEADTOOLS support for writing barcodes.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public sealed class BarcodeWriter 
@interface LTBarcodeWriter : NSObject 
public class BarcodeWriter 
public ref class BarcodeWriter sealed  
class BarcodeWriter: 
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[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; 
// You 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[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#
Java
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:\LEADTOOLS23\Resources\Images"; 
} 
 
import static org.junit.Assert.assertTrue; 
 
import java.io.File; 
import java.io.IOException; 
import java.nio.file.Path; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
 
import leadtools.*; 
import leadtools.barcode.*; 
import leadtools.codecs.*; 
 
 
public void barcodeWriterExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
 
   // Create a directory to store the images we will create 
   String outDir = combine(LEAD_VARS_IMAGES_DIR, "MyBarcodes"); 
   File dir = new File(outDir); 
   if (dir.exists()) { 
      dir.delete(); 
   } 
   dir.mkdirs(); 
   int resolution = 300; 
 
   // Create a Barcode engine 
   BarcodeEngine engine = new BarcodeEngine(); 
 
   // Get the Barcode writer 
   BarcodeWriter writer = engine.getWriter(); 
 
   // 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 = (OneDBarcodeWriteOptions) writer 
         .getDefaultOptions(BarcodeSymbology.UPC_A); 
   oneDWriteOptions.setUseXModule(true); 
 
   // All GS1 Databar Stacked 
   GS1DatabarStackedBarcodeWriteOptions gs1DatabarStackedWriteOptions = (GS1DatabarStackedBarcodeWriteOptions) writer 
         .getDefaultOptions(BarcodeSymbology.GS1_DATA_BAR_STACKED); 
   gs1DatabarStackedWriteOptions.setUseXModule(true); 
 
   // Patch Code 
   PatchCodeBarcodeWriteOptions patchCodeWriteOptions = (PatchCodeBarcodeWriteOptions) writer 
         .getDefaultOptions(BarcodeSymbology.PATCH_CODE); 
   patchCodeWriteOptions.setUseXModule(true); 
 
   // All PostNet/Planet 
   PostNetPlanetBarcodeWriteOptions postNetPlanetWriteOptions = (PostNetPlanetBarcodeWriteOptions) writer 
         .getDefaultOptions(BarcodeSymbology.POST_NET); 
   postNetPlanetWriteOptions.setUseXModule(true); 
 
   // We will use this object to save files 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Get all the available write symbologies 
   BarcodeSymbology[] symbologies = writer.getAvailableSymbologies(); 
 
   for (BarcodeSymbology symbology : symbologies) { 
      System.out.printf("Processing %1s%n", symbology); 
 
      // Create the default data for this symbology 
      BarcodeData data = BarcodeData.createDefaultBarcodeData(symbology); 
 
      // Calculate its size with default options 
      writer.calculateBarcodeDataBounds(LeadRect.getEmpty(), resolution, resolution, data, null); 
 
      // Create an image to write the data to 
      LeadRect pixels = data.getBounds(); 
      RasterImage image = RasterImage.create(pixels.getWidth(), pixels.getHeight(), 1, resolution, 
            RasterColor.fromKnownColor(RasterKnownColor.WHITE)); 
 
      // Write the barcode with default options 
      writer.writeBarcode(image, data, null); 
 
      // Save it 
      String outFileName = combine(outDir, symbology + ".tif"); 
      codecs.save(image, outFileName, RasterImageFormat.TIF, 1); 
 
      assertTrue("File saves to " + outFileName, (new File(outFileName)).exists()); 
      System.out.println("All RasterImages were saved to the output File"); 
 
   } 
} 
Requirements

Target Platforms

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

Leadtools.Barcode Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.