[SerializableAttribute()]
public enum MicroPDF417BarcodeReadMode
Value | Member | Description |
---|---|---|
0 | Mode0 |
Basic channel mode with no transmission of symbology: No escape doubling. Macro PDF is illegal. ECI is illegal. Reserved code words are illegal. |
1 | Mode1 |
Basic channel mode with transmit ]L1 symbology. Escape doubling. Macro PDF is transmitted. ECI is transmitted. Reserved code words are transmitted. |
2 | Mode2 |
Basic channel mode with transmit ]L2 symbology. No escape doubling. Macro PDF is illegal. ECI is illegal. Reserved code words are illegal. |
3 | Mode3Basic |
Basic channel mode with transmit ]L0 symbology. No escape doubling. Macro PDF is illegal. ECI is illegal. Reserved code words are illegal. |
4 | Mode3Extended |
Basic channel mode with transmit ]L0 symbology. Escape doubling. Macro PDF is transmitted. ECI is transmitted in GLI format. Reserved code words transmitted. |
5 | ModeMicroPDF417Basic |
Basic channel mode with transmit ]L3 symbology. Code 128 Emulation Basic Channel Mode. Transmit ] L0, ] L3, ] L4, or ] L5 symbology ID. No escape doubling. Macro PDF is illegal. ECI is illegal. Reserved code words are illegal. |
6 | ModeMicroPDF417Extended |
Extended channel mode with transmit ]L3 symbology. Code 128 Emulation Extended Channel Mode. Transmit ] L0, ] L3, ] L4, or ] L5 symbology ID. Escape doubling. Macro PDF is transmitted. ECI is transmitted in GLI format. Reserved code words transmitted. |
The MicroPDF417BarcodeReadMode enumeration is used as the type for the MicroPDF417BarcodeReadOptions.ReadMode property and can be used to control which mode to use when reading the MicroPDF417 data.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;
public void MicroPDF417Barcode_Example()
{
string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyMicroPDF417Barcodes.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 two MicroPDF417 barcodes
WriteBarcode(engine.Writer, image, "DATA1", MicroPDF417BarcodeSymbolSize.Smallest, true);
WriteBarcode(engine.Writer, image, "DATA2", MicroPDF417BarcodeSymbolSize.Size44X4, false);
// 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))
{
ReadBarcodes(engine.Reader, image);
}
}
}
private void WriteBarcode(BarcodeWriter writer, RasterImage image, string value, MicroPDF417BarcodeSymbolSize symbolSize, bool topLeft)
{
// Create the barcode data
MicroPDF417BarcodeData barcode = new MicroPDF417BarcodeData();
barcode.Value = value;
barcode.DataCode = 0;
barcode.Symbology = BarcodeSymbology.MicroPDF417;
// We will use the alignment to position the barcodes, so use all of the image
barcode.Bounds = new LeadRect(0, 0, image.ImageWidth, image.ImageHeight);
// Set the write options
MicroPDF417BarcodeWriteOptions options = new MicroPDF417BarcodeWriteOptions();
if (topLeft)
{
options.HorizontalAlignment = BarcodeAlignment.Near;
options.VerticalAlignment = BarcodeAlignment.Near;
}
else
{
options.HorizontalAlignment = BarcodeAlignment.Far;
options.VerticalAlignment = BarcodeAlignment.Far;
}
options.UseMode128Emulation = false;
options.IsLinked = false;
options.EnableGroupMode = false;
options.XModule = 30;
options.XModuleAspectRatio = 3;
options.LimitByRowsAndColumns = true;
options.SymbolSize = symbolSize;
// Write it
Console.WriteLine("Writing barcode with symbol size: {0} and Data: {1}", symbolSize, value);
writer.WriteBarcode(image, barcode, options);
}
private void ReadBarcodes(BarcodeReader reader, RasterImage image)
{
// Setup read options
MicroPDF417BarcodeReadOptions options = new MicroPDF417BarcodeReadOptions();
options.SearchDirection = BarcodeSearchDirection.Horizontal;
options.EnableDoublePass = false;
options.ReadMode = MicroPDF417BarcodeReadMode.Mode0;
options.ReadOptionalMacroFileNameField = false;
options.ReadOptionalMacroSegmentCountField = false;
options.ReadOptionalMacroTimestampField = false;
options.ReadOptionalMacroSenderField = false;
options.ReadOptionalMacroAddresseeField = false;
options.ReadOptionalMacroFileSizeField = false;
options.ReadOptionalMacroChecksumField = false;
options.ReadOptionalMacro79AndAZField = false;
options.EnableDoublePassIfSuccess = true;
options.EnablePreprocessing = true;
Console.WriteLine("Reading Barcodes");
BarcodeData[] barcodes = reader.ReadBarcodes(image, LeadRect.Empty, 0, new BarcodeSymbology[] { BarcodeSymbology.MicroPDF417 }, new BarcodeReadOptions[] { options });
Console.WriteLine("{0} barcodes found:", barcodes.Length);
foreach (MicroPDF417BarcodeData barcode in barcodes)
{
Console.WriteLine(" At {0} data: {1} and symbology: {2}", barcode.Bounds, barcode.Value, barcode.Symbology);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}