public bool UseXModule { get; set; }
true to use XModule when writing barcodes of this type. Otherwise, false. The default value is false.
When the value of UseXModule is set to false, then the smallest module size is calculated from the size of the barcode data (BarcodeData.Bounds).
When the value of UseXModule is set to true, then the smallest module size is set in XModule and the barcode data size may be used as a "clipping" boundary.
For more information, refer to Writing Barcodes - Bounds and XModule.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;
public void GS1DatabarStackedBarcode_Example()
{
string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyGS1DatabarStackedBarcodes.tif");
BarcodeEngine engine = new BarcodeEngine();
// Create the image to write the barcodes to
int resolution = 300;
using (RasterImage image = RasterImage.Create((int)(8.5 * resolution), (int)(11.0 * resolution), 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)))
{
// Write a few GS1 Databar Stacked barcodes
WriteBarcode(engine.Writer, image, BarcodeSymbology.GS1DatabarStacked, "1234567890123", new LeadRect(10, 100, 400, 400));
WriteBarcode(engine.Writer, image, BarcodeSymbology.GS1DatabarExpandedStacked, "(01)00012345678905(10)ABC123", new LeadRect(10, 900, 400, 400));
// Save the image
using (RasterCodecs codecs = new RasterCodecs())
{
codecs.Save(image, imageFileName, RasterImageFormat.CcittGroup4, 1);
}
}
// Now read the barcodes again
using (RasterCodecs codecs = new RasterCodecs())
{
using (RasterImage image = codecs.Load(imageFileName))
{
// Read the GS1 Databar Stacked barcode
ReadBarcodes(engine.Reader, image, BarcodeSymbology.GS1DatabarStacked);
// Read the GS1 Databar Expanded Stacked barcode
ReadBarcodes(engine.Reader, image, BarcodeSymbology.GS1DatabarExpandedStacked);
}
}
}
private void WriteBarcode(BarcodeWriter writer, RasterImage image, BarcodeSymbology symbology, string value, LeadRect bounds)
{
// Create the barcode data
BarcodeData barcode = new BarcodeData(symbology, value);
barcode.Bounds = bounds;
// Set the write options
GS1DatabarStackedBarcodeWriteOptions options = new GS1DatabarStackedBarcodeWriteOptions();
options.UseXModule = false;
options.XModule = 30;
options.SetLinkageBit = false;
options.UseStackedOmniDirectionalFormat = false;
options.ExpandedStackedRowsCount = 2;
// Write it
Console.WriteLine("Writing {0} barcode with data: {1}", symbology, value);
writer.WriteBarcode(image, barcode, options);
}
private void ReadBarcodes(BarcodeReader reader, RasterImage image, BarcodeSymbology symbology)
{
// Setup read options
GS1DatabarStackedBarcodeReadOptions options = new GS1DatabarStackedBarcodeReadOptions();
options.SearchDirection = BarcodeSearchDirection.Horizontal;
options.EnableFastMode = true;
options.Granularity = 9;
options.ReturnCheckDigit = BarcodeReturnCheckDigit.Default;
Console.WriteLine("Reading {0} barcodes", symbology);
BarcodeData barcode = reader.ReadBarcode(image, LeadRect.Empty, symbology, options);
if (barcode != null)
{
Console.WriteLine(" At {0}, data: {1}", barcode.Bounds, barcode.Value);
}
else
{
Console.WriteLine(" Not found");
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}