public sealed class BarcodeWriter
Public NotInheritable Class BarcodeWriter
@interface LTBarcodeWriter : NSObject
public class BarcodeWriter
public ref class BarcodeWriter sealed
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:
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)
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:
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)
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);
This example creates a barcode for each symbology supported by LEADTOOLS. It will then save the barcodes as TIFF files.
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:\LEADTOOLS21\Resources\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:\LEADTOOLS21\Resources\Images"
End Class
Programming with LEADTOOLS Barcode
UPC / EAN Barcodes in LEADTOOLS
GS1 DataBar / RSS-14 Barcodes in LEADTOOLS
Code 128 Barcodes in LEADTOOLS
USPS and 4-State Barcodes in LEADTOOLS
MSI Barcodes (Pulse Width Modulated) in LEADTOOLS
Miscellaneous Barcodes in LEADTOOLS
Datamatrix Barcodes in LEADTOOLS
PDF417 and MicroPDF417 Barcodes in LEADTOOLS
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.