public bool EnableDoublePassIfSuccess { get; set; }
@property (nonatomic, assign) BOOL enableDoublePassIfSuccess;
public boolean getEnableDoublePassIfSuccess()
public void setEnableDoublePassIfSuccess(boolean value)
EnableDoublePassIfSuccess # get and set (MicroPDF417BarcodeReadOptions)
true to use double pass when reading MicroPDF417 symbols. Otherwise, false. The default value is false.
Performs the same job as EnableDoublePass except the second pass is mandatory, regardless of whether the required barcode was detected the first time.
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";
}
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 microPDF417BarcodeExample() {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
String imageFileName = combine(LEAD_VARS_IMAGES_DIR, "MicroPDF417Barcode.tif");
String outputFileName = combine(LEAD_VARS_IMAGES_DIR, "Result.tif");
RasterCodecs codecs = new RasterCodecs();
BarcodeEngine engine = new BarcodeEngine();
// Create the image to write the barcodes to
int resolution = 300;
RasterImage image = RasterImage.create(
(int) (8.5 * resolution),
(int) (11.0 * resolution),
1,
resolution,
RasterColor.fromKnownColor(RasterKnownColor.WHITE)
);
// Write two MicroPDF417 barcodes
writeBarcode(engine.getWriter(), image, "DATA1", MicroPDF417BarcodeSymbolSize.SMALLEST, true);
writeBarcode(engine.getWriter(), image, "DATA2", MicroPDF417BarcodeSymbolSize.SIZE44X4, false);
// Save the image
codecs.save(image, imageFileName, RasterImageFormat.CCITT_GROUP4, 1);
// Now read the barcodes again
image = codecs.load(imageFileName);
codecs.save(image, outputFileName, RasterImageFormat.TIF, 0);
readBarcodes(engine.getReader(), image);
assertTrue("file unsuccessfully saved to " + outputFileName, (new File(outputFileName)).exists());
System.out.printf("File saved successfully to %s%n", outputFileName);
}
// Create the barcode data
private void writeBarcode(BarcodeWriter writer, RasterImage image, String value, MicroPDF417BarcodeSymbolSize symbolSize, boolean topLeft) {
MicroPDF417BarcodeData barcode = new MicroPDF417BarcodeData();
barcode.setValue(value);
barcode.setDataCode(0);
barcode.setSymbology(BarcodeSymbology.MICRO_PDF417);
// We will use the alignment to position the barcodes, so use all of the image
barcode.setBounds(new LeadRect(0, 0, image.getImageWidth(), image.getImageHeight()));
// Set the write options
MicroPDF417BarcodeWriteOptions options = new MicroPDF417BarcodeWriteOptions();
if (topLeft) {
options.setHorizontalAlignment(BarcodeAlignment.NEAR);
options.setVerticalAlignment(BarcodeAlignment.NEAR);
} else {
options.setHorizontalAlignment(BarcodeAlignment.FAR);
options.setVerticalAlignment(BarcodeAlignment.FAR);
}
options.setUseMode128Emulation(false);
options.setLinked(false);
options.setEnableGroupMode(false);
options.setXModule(30);
options.setXModuleAspectRatio(3);
options.setLimitByRowsAndColumns(true);
options.setSymbolSize(symbolSize);
// Write it
System.out.printf("Writing barcode with symbol size: %1s and Data: %2s%n", symbolSize, value);
writer.writeBarcode(image, barcode, options);
}
// Setup read options
private void readBarcodes(BarcodeReader reader, RasterImage image) {
MicroPDF417BarcodeReadOptions options = new MicroPDF417BarcodeReadOptions();
options.setSearchDirection(BarcodeSearchDirection.HORIZONTAL);
options.setEnableDoublePass(false);
options.setReadMode(MicroPDF417BarcodeReadMode.MODE0);
options.setReadOptionalMacroFileNameField(false);
options.setReadOptionalMacroSegmentCountField(false);
options.setReadOptionalMacroTimestampField(false);
options.setReadOptionalMacroSenderField(false);
options.setReadOptionalMacroAddresseeField(false);
options.setReadOptionalMacroFileSizeField(false);
options.setReadOptionalMacroChecksumField(false);
options.setReadOptionalMacro79AndAZField(false);
options.setEnableDoublePassIfSuccess(true);
options.setEnablePreprocessing(true);
System.out.println("Reading Barcodes");
BarcodeData[] barcodes = reader.readBarcodes(image, LeadRect.getEmpty(), 0,
new BarcodeSymbology[] { BarcodeSymbology.MICRO_PDF417 }, new BarcodeReadOptions[] { options });
System.out.printf("%s barcodes found:%n", barcodes.length);
for (BarcodeData barcode : barcodes) {
System.out.printf(" At %1s data: %2s and symbology: %3s%n", barcode.getBounds(), 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