[SerializableAttribute()]
public enum MicroPDF417BarcodeSymbolSize
Value | Member | Description |
---|---|---|
0 | Smallest |
Use smallest size required to save the data stored in BarcodeData |
1 | Size11X1 |
11 rows by 1 column |
2 | Size14X1 |
14 rows by 1 column |
3 | Size17X1 |
17 rows by 1 column |
4 | Size20X1 |
20 rows by 1 column |
5 | Size24X1 |
24 rows by 1 column |
6 | Size28X1 |
28 rows by 1 column |
7 | Size8X2 |
8 rows by 2 columns |
8 | Size11X2 |
11 rows by 2 columns |
9 | Size14X2 |
14 rows by 2 columns |
10 | Size17X2 |
17 rows by 2 columns |
11 | Size20X2 |
20 rows by 2 columns |
12 | Size23X2 |
23 rows by 2 columns |
13 | Size26X2 |
26 rows by 2 columns |
14 | Size6X3 |
6 rows by 3 columns |
15 | Size8X3 |
8 rows by 3 columns |
16 | Size10X3 | 10 rows by 3 columns |
17 | Size12X3 |
12 rows by 3 columns |
18 | Size15X3 |
15 rows by 3 columns |
19 | Size20X3 |
20 rows by 3 columns |
20 | Size26X3 |
26 rows by 3 columns |
21 | Size32X3 |
32 rows by 3 columns |
22 | Size38X3 |
38 rows by 3 columns |
23 | Size44X3 |
44 rows by 3 columns |
24 | Size4X4 |
4 rows by 4 columns |
25 | Size6X4 |
6 rows by 4 columns |
26 | Size8X4 |
8 rows by 4 columns |
27 | Size10X4 |
10 rows by 4 columns |
28 | Size12X4 |
12 rows by 4 columns |
29 | Size15X4 |
15 rows by 4 columns |
30 | Size20X4 |
20 rows by 4 columns |
31 | Size26X4 |
26 rows by 4 columns |
32 | Size32X4 |
32 rows by 4 columns |
33 | Size38X4 |
38 rows by 4 columns |
34 | Size44X4 |
44 rows by 4 columns |
The MicroPDF417BarcodeSymbolSize enumeration is used as the type for the MicroPDF417BarcodeWriteOptions.SymbolSize property and can be used to control the symbol size to use when writing MicroPDF417 barcodes.
When the value of MicroPDF417BarcodeWriteOptions.LimitByRowsAndColumns is false, the symbol size is control by the BarcodeData.Bounds and MicroPDF417BarcodeWriteOptions.XModule values used. Otherwise, the value of MicroPDF417BarcodeWriteOptions.SymbolSize will be used.
For more information, refer to Writing Barcodes - Bounds and sXModule.
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";
}