Customize Barcode Appearance

This documentation explains how to customize the appearance of barcodes using the Aspose.BarCode Cloud SDK for Node.js. It provides details on the available methods, customization options, and examples of usage.

Methods

  • generate: Generates a barcode via GET request.
  • generateBody: Generates a barcode via POST request with JSON or XML body.
  • generateMultipart: Generates a barcode via POST request with multipart form data.

Customization Options

When generating a barcode, you can customize various aspects of its appearance using the properties of the request classes.

Key Properties:

  • barcodeType: Specifies the type of barcode to generate (e.g. QR, Aztec, Pdf417, Code39, etc).
  • data: The data to encode in the barcode.
  • imageFormat: Specifies the output format of the barcode image (e.g., Png, Jpeg, Svg).
  • foregroundColor: Color of the barcode bars, supports standard color names or ARGB values (e.g., AliceBlue or #FF000000).
  • backgroundColor: Background color of the barcode image.
  • textLocation: Position of the code text relative to the barcode (Below, Above, None).
  • units: Measurement units for image dimensions (Pixel, Inch, Millimeter).
  • resolution: Resolution of the image in dpi.
  • imageHeight and imageWidth: Dimensions of the barcode image.
  • rotationAngle: Rotation angle of the barcode (e.g., 0, 90, 180).

Barcode Type-Specific Parameters

In addition to the common appearance settings above, the API exposes advanced parameters that apply only to specific barcode types. They are ignored when a different barcode type is generated.

QR, MicroQR and RectMicroQR

  • qrEncodeMode: QR barcode encode mode (Auto, Extended, Binary, ECI).
  • qrErrorLevel: QR error correction level (LevelL, LevelM, LevelQ, LevelH).
  • qrVersion: QR barcode version (Auto, Version01Version40). Auto selects the smallest version that fits the data.
  • qrECIEncoding: ECI encoding for the QR barcode data (e.g., UTF8, ISO_8859_1).
  • qrAspectRatio: QR barcode aspect ratio, from 0 to 1.
  • microQRVersion: MicroQR version (Auto, M1M4). Used when the barcode type is MicroQR.
  • rectMicroQrVersion: RectMicroQR version (Auto, R7x43R17x139). Used when the barcode type is RectMicroQR.

Code128

  • code128EncodeMode: Controls which Code 128 subset is used (Auto, CodeA, CodeB, CodeAB, CodeC, CodeAC, CodeBC).

PDF417, MacroPDF417 and MicroPDF417

  • pdf417EncodeMode: PDF417 encode mode (Auto, Binary, ECI, Extended).
  • pdf417ErrorLevel: PDF417 error correction level (Level0Level8).
  • pdf417ECIEncoding: ECI encoding for the PDF417 barcode data.
  • pdf417Truncate: Whether to use the truncated PDF417 format (removes the right-side stop pattern).
  • pdf417Columns: Number of columns (130, or 0 for auto).
  • pdf417Rows: Number of rows (390, or 0 for automatic).
  • pdf417AspectRatio: Height/width ratio of the barcode module (25 for MicroPDF417; 35 for PDF417 and MacroPDF417).
  • pdf417MacroCharacters: Macro character to prepend for structured append (None, Macro05, Macro06).
  • pdf417IsReaderInitialization: Whether the barcode is used for reader initialization (programming).
  • pdf417IsLinked: Whether to use linked mode (for MicroPDF417).
  • pdf417IsCode128Emulation: Whether to use Code128 emulation (for MicroPDF417).

Examples

Example 1: Generating a Barcode with GET Request

const fs = require('fs');
const path = require('path');
const Barcode = require('aspose-barcode-cloud-node');

function makeConfiguration() {
    const envToken = process.env['TEST_CONFIGURATION_ACCESS_TOKEN'];
    if (!envToken) {
        return new Barcode.Configuration(
            'Client Id from https://dashboard.aspose.cloud/applications',
            'Client Secret from https://dashboard.aspose.cloud/applications',
            null,
            null
        );
    } else {
        return new Barcode.Configuration(null, null, null, envToken);
    }
}
const config = makeConfiguration();
async function generateBarcode(api, fileName) {
    const request = new Barcode.GenerateRequestWrapper(Barcode.EncodeBarcodeType.Qr, 'Aspose.BarCode.Cloud');
    request.barcodeImageParams = new Barcode.BarcodeImageParams();
    request.barcodeImageParams.imageFormat = Barcode.BarcodeImageFormat.Png;
    request.barcodeImageParams.foregroundColor = 'Black';
    request.barcodeImageParams.backgroundColor = 'White';
    request.barcodeImageParams.textLocation = Barcode.CodeLocation.Below;
    request.barcodeImageParams.resolution = 300;
    request.barcodeImageParams.imageHeight = 200;
    request.barcodeImageParams.imageWidth = 200;

    request.qrParams = new Barcode.QrParams();
    request.qrParams.qrEncodeMode = Barcode.QREncodeMode.Auto;
    request.qrParams.qrErrorLevel = Barcode.QRErrorLevel.LevelM;
    request.qrParams.qrVersion = Barcode.QRVersion.Auto;
    request.qrParams.qrAspectRatio = 0.75;

    const generated = await api.generate(request);

    fs.writeFileSync(fileName, generated.body);
}

const genApi = new Barcode.GenerateApi(config);
const fileName = path.resolve('testdata', 'Qr.png');

generateBarcode(genApi, fileName)
    .then(() => {
        console.log("File '" + fileName + "' generated.");
    })
    .catch((err) => {
        console.error('Error: ' + JSON.stringify(err, null, 2));
        process.exitCode = 1;
    });

Result Image is: Result image

Example 2: Generating a Barcode with POST Request (JSON Body)

const fs = require('fs');
const path = require('path');
const Barcode = require('aspose-barcode-cloud-node');

function makeConfiguration() {
    const envToken = process.env['TEST_CONFIGURATION_ACCESS_TOKEN'];
    console.log('Start config');
    if (!envToken) {
        return new Barcode.Configuration(
            'Client Id from https://dashboard.aspose.cloud/applications',
            'Client Secret from https://dashboard.aspose.cloud/applications',
            null,
            null
        );
    } else {
        return new Barcode.Configuration(null, null, null, envToken);
    }
}
const config = makeConfiguration();

async function generateBarcode(api, fileName) {
    const imageParams = new Barcode.BarcodeImageParams();
    imageParams.foregroundColor = '#FF0000';
    imageParams.backgroundColor = '#FFFF00';
    imageParams.imageFormat = Barcode.BarcodeImageFormat.Jpeg;
    imageParams.rotationAngle = 90;

    const encodeData = new Barcode.EncodeData();
    encodeData.data = 'Aspose';

    const qrParams = new Barcode.QrParams();
    qrParams.qrEncodeMode = Barcode.QREncodeMode.Auto;
    qrParams.qrErrorLevel = Barcode.QRErrorLevel.LevelM;
    qrParams.qrVersion = Barcode.QRVersion.Auto;
    qrParams.qrAspectRatio = 0.75;

    const generateParams = new Barcode.GenerateParams();
    generateParams.barcodeType = Barcode.EncodeBarcodeType.Qr;
    generateParams.encodeData = encodeData;
    generateParams.barcodeImageParams = imageParams;
    generateParams.qrParams = qrParams;

    const request = new Barcode.GenerateBodyRequestWrapper(generateParams);

    const generated = await api.generateBody(request);

    fs.writeFileSync(fileName, generated.body);
}
const genApi = new Barcode.GenerateApi(config);

const fileName = path.resolve('testdata', 'QR-custom.png');

generateBarcode(genApi, fileName)
    .then(() => {
        console.log('Barcode saved to ' + fileName);
    })
    .catch((err) => {
        console.error('Error: ' + JSON.stringify(err, null, 2));
        process.exitCode = 1;
    });

Result Image is: Result image

Example 3: Generating a Barcode with POST Request (Multipart Form)

const fs = require('fs');
const path = require('path');
const Barcode = require('aspose-barcode-cloud-node');

function makeConfiguration() {
    const envToken = process.env['TEST_CONFIGURATION_ACCESS_TOKEN'];
    if (!envToken) {
        return new Barcode.Configuration(
            'Client Id from https://dashboard.aspose.cloud/applications',
            'Client Secret from https://dashboard.aspose.cloud/applications',
            null,
            null
        );
    } else {
        return new Barcode.Configuration(null, null, null, envToken);
    }
}
const config = makeConfiguration();
async function generateBarcode(api, fileName) {
    const request = new Barcode.GenerateMultipartRequestWrapper(
        Barcode.EncodeBarcodeType.Pdf417,
        'Aspose.BarCode.Cloud'
    );
    request.barcodeImageParams = new Barcode.BarcodeImageParams();
    request.barcodeImageParams.textLocation = Barcode.CodeLocation.Above;
    request.barcodeImageParams.imageFormat = Barcode.BarcodeImageFormat.Svg;

    request.pdf417Params = new Barcode.Pdf417Params();
    request.pdf417Params.pdf417EncodeMode = Barcode.Pdf417EncodeMode.Auto;
    request.pdf417Params.pdf417ErrorLevel = Barcode.Pdf417ErrorLevel.Level2;
    request.pdf417Params.pdf417AspectRatio = 3;

    const generated = await api.generateMultipart(request);

    fs.writeFileSync(fileName, generated.body);
}

const genApi = new Barcode.GenerateApi(config);
const fileName = path.resolve('testdata', 'Pdf417.svg');

generateBarcode(genApi, fileName)
    .then(() => {
        console.log("File '" + fileName + "' generated.");
    })
    .catch((err) => {
        console.error('Error: ' + JSON.stringify(err, null, 2));
        process.exitCode = 1;
    });

Result Image is: Result image