# Codabar

DsExcel supports Codabar Barcode which is mainly used where serial numbers are required. Learn more in DsExcel docs.

## Content

Codabar is a barcode that uses alphanumeric characters including, A B C D + - : . / $ and all numbers. This is widely used in sectors where serial numbers are required, such as blood Banks, door-to-door delivery service orders, and membership card management.
The below image displays Codabar barcode in a PDF document.
![Codabar](https://cdn.mescius.io/document-site-files/images/dd59ea42-cd61-4fa6-a018-6231c2a9c598/images/codabar.png)

## Formula definition

You can set codabar in a worksheet using the following formula:
=BC\_CODABAR(value, color, backgroudColor, showLabel, labelPosition, checkDigit, nwRatio, fontFamily, fontStyle, fontWeight, fontTextDecoration, fontTextAlign, fontSize, quietZoneLeft, quietZoneRight, quietZoneTop, quietZoneBottom)

## Parameter

| Name | Description |
| ---- | ----------- |
| value | A string that represents encode on the symbol of QRCode. |
| color | A color that represents the barcode color. The default value is 'rgb(0,0,0)'. |
| backgroundColor | A color that represents the barcode backgroundcolor. The default value is 'rgb(255, 255, 255)' |
| showLabel | Specifies whether to show label text when the barcode has label. |
| labelPosition | ?A value that represents the label position when the label is shown. |
| checkDigit | Specifies whether the symbol needs a check digit. The default value is 'false'. |
| nwRatio | A value that represents the wide and narrow bar ratio. It has values 2 |
| fontFamily | A string that represents the label text fontFamily. The default value is 'sans-serif'. |
| fontStyle | A string that represents the label text fontStyle. The default value is 'normal'. |
| fontWeight | A string that represents the label text fontWeight. The default value is 'normal'. |
| fontTextDecoration | A string that represents the label text fontTextDecoration. The default value is 'none'. |
| fontTextAlign | A string that represents the label text fontTextAlign. The default value is 'center'. |
| fontSize | A string that represents the label text fontSize. The default value is '12px'. |
| quietZoneLeft | A value that represents the size of left quiet zone. |
| quietZoneRight | A value that represents the size of right quiet zone. |
| quietZoneTop | A value that represents the size of top quiet zone. |
| quietZoneBottom | A value that represents the size of bottom quiet zone. |

## Using Code

This example code sets Codabar in the worksheet.

```Java
// Create a new workbook
Workbook workbook = new Workbook();
// Set worksheet layout and data
IWorksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getRange("B:F").setColumnWidth(20);
worksheet.getRange("4:7").setRowHeight(60);
worksheet.getRange("A:A").setColumnWidth(5);
worksheet.getRange("B2").setValue("Codabar");
worksheet.getRange("B2:F2").setMergeCells(true);
worksheet.getRange("B3:G3")
        .setValue(new Object[][] { { "Name", "Number", "Default", "Change checkDigit", "Change nwRatio" } });
worksheet.getRange("B4:C7").setHorizontalAlignment(HorizontalAlignment.Center);
worksheet.getRange("B4:C7").setVerticalAlignment(VerticalAlignment.Center);
worksheet.getRange("B2:F3").setHorizontalAlignment(HorizontalAlignment.Center);
worksheet.getRange("B2:F3").setVerticalAlignment(VerticalAlignment.Center);
worksheet.getRange("B4:C6").setValue(new Object[][] { { "Notebook", "6935205311092" },
        { "Paper", "6922266446146" }, { "Value can contain letters and some symbol", "A1234+-/.$A" } });
worksheet.getRange("B4:C6").setWrapText(true);
worksheet.getRange("G6").setWrapText(true);
worksheet.getPageSetup().setOrientation(PageOrientation.Landscape);
worksheet.getPageSetup().setPrintGridlines(true);

// Set formula
for (int i = 4; i < 7; i++) {
    worksheet.getRange("D" + i).setFormula("=BC_CODABAR" + "(C" + i + ")");
    worksheet.getRange("E" + i).setFormula("=BC_CODABAR" + "(C" + i + ",,,,,\"true\")");
    worksheet.getRange("F" + i).setFormula("=BC_CODABAR" + "(C" + i + ",,,,,,\"2\")");
}

// Save to an pdf file
workbook.save("Codabar.pdf");
```

## Limitation

* The "checkDigit" parameter takes effect only when the 'value' parameter's length is 13 and the barcode's label text does not change.