[SerializableAttribute()]
public class PharmaCodeBarcodeWriteOptions : BarcodeWriteOptions
The PharmaCodeBarcodeWriteOptions class is used to control the options when writing PharmaCode barcodes using LEADTOOLS. Set the options in two ways:
The BarcodeWriter class contains default options for each barcode symbology (or group of common symbologies). These options can be retrieved using the BarcodeWriter.GetDefaultOptions method, passing BarcodeSymbology.PharmaCode.
Then change the members of the returned PharmaCodeBarcodeWriteOptions by casting it from BarcodeWriteOptions to PharmaCodeBarcodeWriteOptions.
You can also create an instance of the PharmaCodeBarcodeWriteOptions class and use it directly in the BarcodeWriter.WriteBarcode method which accepts the options as an input parameter.
The base BarcodeWriteOptions contains the following members and features:
Member | Description |
---|---|
BarcodeWriteOptions.ForeColor |
Controls the barcode foreground color (color of the bars or symbols) to use when writing a barcode to an image. |
BarcodeWriteOptions.BackColor |
Controls the barcode background color (color of the spaces) to use when writing a barcode to an image. |
BarcodeWriteOptions.Load and BarcodeWriteOptions.Save |
Can be used to save or load the options to/from an XML file or stream. |
BarcodeWriteOptions.GetSupportedSymbologies |
This class overrides the base class method to return an array containing the following symbologies: BarcodeSymbology.PharmaCode |
In addition to the features and members, the PharmaCodeBarcodeWriteOptions contains these PharmaCode barcodes specific features:
Member | Description |
---|---|
UseXModule |
Uses the XModule when writing barcodes of this type |
XModule |
The size of the smallest module when writing a PharmaCode barcode |
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;
public void BarcodeWriteOptions_Example()
{
// This example uses derived classes from the abstract class BarcodeWriteOptions to set the barcode write options.
// For example: OneDBarcodeWriteOptions, GS1DatabarStackedBarcodeWriteOptions,
// PatchCodeBarcodeWriteOptions, PostNetPlanetBarcodeWriteOptions are derived
// from the abstract class BarcodeWriteOptions
// Create a directory to store the images we will create
string outDir = Path.Combine(LEAD_VARS.ImagesDir, "MyBarcodes");
if (Directory.Exists(outDir))
{
Directory.Delete(outDir, true);
}
Directory.CreateDirectory(outDir);
int resolution = 300;
// Create a Barcode engine
BarcodeEngine engine = new BarcodeEngine();
// Get the Barcode writer
BarcodeWriter writer = engine.Writer;
// All 1D options have the UseXModule set to false by default, we need to set it to true
// so we can calculate the default size. We will change the default options so we can
// pass null to CalculateBarcodeDataBounds and WriteBarcode below
// For all Standard 1D.
OneDBarcodeWriteOptions oneDWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeWriteOptions;
oneDWriteOptions.UseXModule = true;
// All GS1 Databar Stacked
GS1DatabarStackedBarcodeWriteOptions gs1DatabarStackedWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked) as GS1DatabarStackedBarcodeWriteOptions;
gs1DatabarStackedWriteOptions.UseXModule = true;
// Patch Code
PatchCodeBarcodeWriteOptions patchCodeWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PatchCode) as PatchCodeBarcodeWriteOptions;
patchCodeWriteOptions.UseXModule = true;
// All PostNet/Planet
PostNetPlanetBarcodeWriteOptions postNetPlanetWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PostNet) as PostNetPlanetBarcodeWriteOptions;
postNetPlanetWriteOptions.UseXModule = true;
// Pharma code
PharmaCodeBarcodeWriteOptions pharmaCodeBarcodeWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PharmaCode) as PharmaCodeBarcodeWriteOptions;
pharmaCodeBarcodeWriteOptions.UseXModule = true;
pharmaCodeBarcodeWriteOptions.XModule = 30;
// We will use this object to save files
using (RasterCodecs codecs = new RasterCodecs())
{
// Get all the available write symbologies
BarcodeSymbology[] symbologies = writer.GetAvailableSymbologies();
foreach (BarcodeSymbology symbology in symbologies)
{
Console.WriteLine("Processing {0}", symbology);
// Create the default data for this symbology
BarcodeData data = BarcodeData.CreateDefaultBarcodeData(symbology);
// Calculate its size with default options
writer.CalculateBarcodeDataBounds(LeadRect.Empty, resolution, resolution, data, null);
// Create an image to write the data to
LeadRect pixels = data.Bounds;
using (RasterImage image = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)))
{
// Write the barcode with default options
writer.WriteBarcode(image, data, null);
// Save it
string outFileName = Path.Combine(outDir, symbology + ".tif");
codecs.Save(image, outFileName, RasterImageFormat.Tif, 1);
}
}
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}