public Image GetBarcodeImage(BarcodeParameters parameters)
{
if (parameters.BarcodeType == null || parameters.BarcodeValue == null)
return null;
BarCodeBuilder builder = new BarCodeBuilder();
builder.SymbologyType = ConvertBarcodeType(parameters.BarcodeType);
if (builder.SymbologyType == (Symbology)int.MinValue)
return null;
builder.CodeText = parameters.BarcodeValue;
if (builder.SymbologyType == Symbology.QR)
builder.Display2DText = parameters.BarcodeValue;
if (parameters.ForegroundColor != null)
builder.ForeColor = ConvertColor(parameters.ForegroundColor);
if (parameters.BackgroundColor != null)
builder.BackColor = ConvertColor(parameters.BackgroundColor);
if (parameters.SymbolHeight != null)
{
builder.ImageHeight = ConvertSymbolHeight(parameters.SymbolHeight);
builder.AutoSize = false;
}
builder.CodeLocation = CodeLocation.None;
if (parameters.DisplayText)
builder.CodeLocation = CodeLocation.Below;
builder.CaptionAbove.Text = "";
const float scale = 0.4f; // Empiric scaling factor for converting Word barcode to Aspose.BarCode
float xdim = 1.0f;
if (builder.SymbologyType == Symbology.QR)
{
builder.AutoSize = false;
builder.ImageWidth *= scale;
builder.ImageHeight = builder.ImageWidth;
xdim = builder.ImageHeight / 25;
builder.yDimension = xdim;
builder.xDimension = xdim;
}
if (parameters.ScalingFactor != null)
{
float scalingFactor = ConvertScalingFactor(parameters.ScalingFactor);
builder.ImageHeight *= scalingFactor;
if (builder.SymbologyType == Symbology.QR)
{
builder.ImageWidth = builder.ImageHeight;
builder.yDimension = xdim * scalingFactor;
builder.xDimension = builder.yDimension;
}
builder.AutoSize = false;
}
return builder.BarCodeImage;
}