public bool HRItoGS1 { get; set; } @property (nonatomic, assign) BOOL HRItoGS1; HRItoGS1 # get and set (DatamatrixBarcodeWriteOptions)
true to write the input string which should be in the format of human readable interpretation (HRI) string as GS1 format (remove parenthesis). Otherwise, false. Default value is false.
If the input string is already formatted as GS1 specification then there is no need to enable this option.
using Leadtools;using Leadtools.Codecs;using Leadtools.Barcode;using Leadtools.ImageProcessing;public void DatamatrixBarcode_Example(){string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyDatamatrixBarcodes.tif");BarcodeEngine engine = new BarcodeEngine();// Create the image to write the barcodes toint resolution = 300;using (RasterImage image = RasterImage.Create((int)(8.5 * resolution), (int)(11.0 * resolution), 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White))){// Write two Datamatrix barcodes, a square and a rectangle oneWriteBarcode(engine.Writer, image, DatamatrixBarcodeSymbolSize.Size16X36, "Datamatrix1 16x36", false);WriteBarcode(engine.Writer, image, DatamatrixBarcodeSymbolSize.Size132X132, "Datamatrix2 132x132", true);// Save the imageusing (RasterCodecs codecs = new RasterCodecs()){codecs.Save(image, imageFileName, RasterImageFormat.CcittGroup4, 1);}}// Now read the barcodes againusing (RasterCodecs codecs = new RasterCodecs()){using (RasterImage image = codecs.Load(imageFileName)){// Read only square symbols, should only read the first barcodeReadBarcodes(engine.Reader, image, true);// Read all symbols, should read both barcodesReadBarcodes(engine.Reader, image, false);}}}private void WriteBarcode(BarcodeWriter writer, RasterImage image, DatamatrixBarcodeSymbolSize symbolSize, string value, bool topLeft){// Create the barcode dataDatamatrixBarcodeData barcode = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.Datamatrix) as DatamatrixBarcodeData;barcode.SymbolSize = symbolSize;barcode.Value = value;barcode.Symbology= BarcodeSymbology.Datamatrix;// We will use the alignment to position the barcodes, so use all of the imagebarcode.Bounds = new LeadRect(0, 0, image.ImageWidth, image.ImageHeight);// Set the write optionsDatamatrixBarcodeWriteOptions options = new DatamatrixBarcodeWriteOptions();if (topLeft){options.HorizontalAlignment = BarcodeAlignment.Near;options.VerticalAlignment = BarcodeAlignment.Near;}else{options.HorizontalAlignment = BarcodeAlignment.Far;options.VerticalAlignment = BarcodeAlignment.Far;}options.DisableCompression = false;options.GroupNumber = 0;options.GroupTotal = 0;options.FileIdNumberLowByte = 1;options.FileIdNumberHighByte = 1;options.XModule = 30;options.HRItoGS1 = false;// Write itConsole.WriteLine("Writing barcode with symbol size: {0} and Data: {1}", symbolSize, value);writer.WriteBarcode(image, barcode, options);}private void ReadBarcodes(BarcodeReader reader, RasterImage image, bool squareOnly){// Setup read optionsDatamatrixBarcodeReadOptions options = new DatamatrixBarcodeReadOptions();options.ReadSquareSymbolsOnly = squareOnly;options.EnableDoublePass = false;options.EnableDoublePassIfSuccess = false;options.EnableInvertedSymbols = false;options.EnableFastMode = true;options.EnableSmallSymbols = true;options.EnablePreprocessing = true;options.GS1toHRI = false;Console.WriteLine("Reading Datamatrix barcodes with ReadSquareSymbolsOnly set to {0}", squareOnly);BarcodeData[] barcodes = reader.ReadBarcodes(image, LeadRect.Empty, 0, new BarcodeSymbology[] { BarcodeSymbology.Datamatrix }, new BarcodeReadOptions[] { options });Console.WriteLine("{0} barcodes found:", barcodes.Length);foreach (DatamatrixBarcodeData barcode in barcodes){Console.WriteLine(" At {0}, symbol size: {1} data: {2} and symbology: {3}", barcode.Bounds, barcode.SymbolSize, barcode.Value, barcode.Symbology);}}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}
import java.io.File;import java.io.IOException;import org.junit.*;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;import static org.junit.Assert.*;import leadtools.*;import leadtools.barcode.*;import leadtools.codecs.*;public void datamatrixBarcodeExample() {final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";String imageFileName = combine(LEAD_VARS_IMAGES_DIR, "MyDatamatrixBarcodes.tif");BarcodeEngine engine = new BarcodeEngine();// Create the image to write the barcodes toint resolution = 300;RasterImage image = RasterImage.create((int) (8.5 * resolution),(int) (11.0 * resolution),1,resolution,RasterColor.fromKnownColor(RasterKnownColor.WHITE));// Write two Datamatrix barcodes, a square and a rectangle onewriteBarcode(engine.getWriter(), image, DatamatrixBarcodeSymbolSize.SIZE16X36, "Datamatrix1 16x36", false);writeBarcode(engine.getWriter(), image, DatamatrixBarcodeSymbolSize.SIZE132X132, "Datamatrix2 132x132", true);// Save the imageRasterCodecs codecs = new RasterCodecs();codecs.save(image, imageFileName, RasterImageFormat.CCITT_GROUP4, 1);// Now read the barcodes againimage = codecs.load(imageFileName);// Read only square symbols, should only read the first barcodereadBarcodes(engine.getReader(), image, true);// Read all symbols, should read both barcodesreadBarcodes(engine.getReader(), image, false);// cleanupimage.dispose();codecs.dispose();}// Create the barcode dataprivate void writeBarcode(BarcodeWriter writer, RasterImage image, DatamatrixBarcodeSymbolSize symbolSize, String value, boolean topLeft) {DatamatrixBarcodeData barcode = (DatamatrixBarcodeData) BarcodeData.createDefaultBarcodeData(BarcodeSymbology.DATAMATRIX);barcode.setSymbolSize(symbolSize);barcode.setValue(value);barcode.setSymbology(BarcodeSymbology.DATAMATRIX);// We will use the alignment to position the barcodes, so use all of the imagebarcode.setBounds(new LeadRect(0, 0, image.getImageWidth(), image.getImageHeight()));// Set the write optionsDatamatrixBarcodeWriteOptions options = new DatamatrixBarcodeWriteOptions();if (topLeft) {options.setHorizontalAlignment(BarcodeAlignment.NEAR);options.setVerticalAlignment(BarcodeAlignment.NEAR);} else {options.setHorizontalAlignment(BarcodeAlignment.FAR);options.setVerticalAlignment(BarcodeAlignment.FAR);}options.setDisableCompression(false);options.setGroupNumber(0);options.setGroupTotal(0);options.setFileIdNumberLowByte((byte) 1);options.setFileIdNumberHighByte((byte) 1);options.setXModule(30);options.setHRItoGS1(false);// Write itSystem.out.printf("Writing barcode with symbol size: %1s and Data: %2s%n", symbolSize, value);writer.writeBarcode(image, barcode, options);}// Setup read optionsprivate void readBarcodes(BarcodeReader reader, RasterImage image, boolean squareOnly) {DatamatrixBarcodeReadOptions options = new DatamatrixBarcodeReadOptions();options.setReadSquareSymbolsOnly(squareOnly);options.setEnableDoublePass(false);options.setEnableDoublePassIfSuccess(false);options.setEnableInvertedSymbols(false);options.setEnableFastMode(true);options.setEnableSmallSymbols(true);options.setEnablePreprocessing(true);options.setGS1toHRI(false);System.out.printf("Reading Datamatrix barcodes with ReadSquareSymbolsOnly set to %1s%n", squareOnly);BarcodeData[] barcodes = reader.readBarcodes(image, LeadRect.getEmpty(), 0,new BarcodeSymbology[] { BarcodeSymbology.DATAMATRIX }, new BarcodeReadOptions[] { options });System.out.printf("%s barcodes found:%n", barcodes.length);for (BarcodeData barcode : barcodes) {System.out.printf(" At %1s, symbol size: %2s data: %3s and symbology: %4s", barcode.getBounds(),barcode.getData(), barcode.getValue(), barcode.getSymbology());}}
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
