[SerializableAttribute()]public enum PDF417BarcodeECCLevel
| Value | Member | Description |
|---|---|---|
| 0 | Level0 |
Use 2 code words for error correction |
| 1 | Level1 |
Use 4 code words for error correction |
| 2 | Level2 |
Use 8 code words for error correction |
| 3 | Level3 |
Use 16 code words for error correction |
| 4 | Level4 |
Use 32 code words for error correction |
| 5 | Level5 |
Use 54 code words for error correction |
| 6 | Level6 |
Use 128 code words for error correction |
| 7 | Level7 |
Use 256 code words for error correction |
| 8 | Level8 |
Use 512 code words for error correction |
| 9 | UsePercentage |
Use the percentage value set in PDF417BarcodeWriteOptions.ECCPercentage |
Used as the type for the PDF417BarcodeWriteOptions.ECCLevel property to specify the PDF417 barcode ECC (Error Correction) level.
using Leadtools;using Leadtools.Codecs;using Leadtools.Barcode;using Leadtools.ImageProcessing;public void PDF417Barcode_Example(){string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyPDF417Barcodes.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 PDF417 barcodesWriteBarcode(engine.Writer, image, "DATA1", 10, 10, true);WriteBarcode(engine.Writer, image, "DATA2", 20, 20, false);// 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)){ReadBarcodes(engine.Reader, image);}}}private void WriteBarcode(BarcodeWriter writer, RasterImage image, string value, int rows, int columns, bool topLeft){// Create the barcode dataPDF417BarcodeData barcode = new PDF417BarcodeData();barcode.Value = value;barcode.Group = 0;barcode.Symbology = BarcodeSymbology.PDF417;// 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 optionsPDF417BarcodeWriteOptions options = new PDF417BarcodeWriteOptions();if (topLeft){options.HorizontalAlignment = BarcodeAlignment.Near;options.VerticalAlignment = BarcodeAlignment.Near;}else{options.HorizontalAlignment = BarcodeAlignment.Far;options.VerticalAlignment = BarcodeAlignment.Far;}options.Truncated = false;options.EnableGroupMode = false;options.SymbolWidthAspectRatio = 2;options.SymbolHeightAspectRatio = 1;options.LimitByRowsAndColumns = true;options.Rows = rows;options.Columns = columns;options.XModule = 30;options.XModuleAspectRatio = 3;options.ECCLevel = PDF417BarcodeECCLevel.Level0;options.ECCPercentage = 0;// Write itConsole.WriteLine("Writing barcode with symbol rows/columns: {0}/{1} and Data: {2}", rows, columns, value);writer.WriteBarcode(image, barcode, options);}private void ReadBarcodes(BarcodeReader reader, RasterImage image){// Setup read optionsPDF417BarcodeReadOptions options = new PDF417BarcodeReadOptions();options.SearchDirection = BarcodeSearchDirection.Horizontal;options.EnableDoublePass = false;options.EnableFastMode = false;options.ReadMode = PDF417BarcodeReadMode.Mode0;options.ReturnCorruptedSymbolArea = false;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.EnableNoIndicatorTrail = true;options.EnablePreprocessing = true;Console.WriteLine("Reading Barcodes");BarcodeData[] barcodes = reader.ReadBarcodes(image, LeadRect.Empty, 0, new BarcodeSymbology[] { BarcodeSymbology.PDF417 }, new BarcodeReadOptions[] { options });Console.WriteLine("{0} barcodes found:", barcodes.Length);foreach (PDF417BarcodeData 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";}