Skip to content

Commit f61030e

Browse files
authored
Merge pull request #466 from ozone89/master
Implement Code39
2 parents 25e8923 + 67152ab commit f61030e

4 files changed

Lines changed: 27 additions & 0 deletions

File tree

escposprinter/src/main/java/com/dantsu/escposprinter/EscPosPrinterCommands.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public class EscPosPrinterCommands {
6868
public static final int BARCODE_TYPE_UPCE = 66;
6969
public static final int BARCODE_TYPE_EAN13 = 67;
7070
public static final int BARCODE_TYPE_EAN8 = 68;
71+
public static final int BARCODE_TYPE_39 = 69;
7172
public static final int BARCODE_TYPE_ITF = 70;
7273
public static final int BARCODE_TYPE_128 = 73;
7374

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.dantsu.escposprinter.barcode;
2+
3+
import com.dantsu.escposprinter.EscPosPrinterSize;
4+
import com.dantsu.escposprinter.EscPosPrinterCommands;
5+
import com.dantsu.escposprinter.exceptions.EscPosBarcodeException;
6+
7+
public class Barcode39 extends Barcode {
8+
public Barcode39(EscPosPrinterSize printerSize, String code, float widthMM, float heightMM, int textPosition) throws EscPosBarcodeException {
9+
super(printerSize, EscPosPrinterCommands.BARCODE_TYPE_39, code, widthMM, heightMM, textPosition);
10+
}
11+
12+
@Override
13+
public int getCodeLength() {
14+
return this.code.length();
15+
}
16+
17+
@Override
18+
public int getColsCount() {
19+
return (this.getCodeLength() + 4) * 16;
20+
}
21+
}

escposprinter/src/main/java/com/dantsu/escposprinter/textparser/PrinterTextParser.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public class PrinterTextParser {
2727
public static final String ATTR_BARCODE_TYPE_UPCA = "upca";
2828
public static final String ATTR_BARCODE_TYPE_UPCE = "upce";
2929
public static final String ATTR_BARCODE_TYPE_128 = "128";
30+
public static final String ATTR_BARCODE_TYPE_39 = "39";
3031
public static final String ATTR_BARCODE_TEXT_POSITION = "text";
3132
public static final String ATTR_BARCODE_TEXT_POSITION_NONE = "none";
3233
public static final String ATTR_BARCODE_TEXT_POSITION_ABOVE = "above";

escposprinter/src/main/java/com/dantsu/escposprinter/textparser/PrinterTextParserBarcode.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.dantsu.escposprinter.EscPosPrinterCommands;
77
import com.dantsu.escposprinter.barcode.Barcode;
88
import com.dantsu.escposprinter.barcode.Barcode128;
9+
import com.dantsu.escposprinter.barcode.Barcode39;
910
import com.dantsu.escposprinter.barcode.BarcodeEAN13;
1011
import com.dantsu.escposprinter.barcode.BarcodeEAN8;
1112
import com.dantsu.escposprinter.barcode.BarcodeUPCA;
@@ -114,6 +115,9 @@ public PrinterTextParserBarcode(PrinterTextParserColumn printerTextParserColumn,
114115
case PrinterTextParser.ATTR_BARCODE_TYPE_128:
115116
this.barcode = new Barcode128(printer, code, width, height, textPosition);
116117
break;
118+
case PrinterTextParser.ATTR_BARCODE_TYPE_39:
119+
this.barcode = new Barcode39(printer, code, width, height, textPosition);
120+
break;
117121
default:
118122
throw new EscPosParserException("Invalid barcode attribute : " + PrinterTextParser.ATTR_BARCODE_TYPE);
119123
}

0 commit comments

Comments
 (0)