From a242befc8e8671acad2a900de08a2246cc8481d5 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Tue, 03 May 2016 17:11:53 +0000
Subject: [PATCH] Add support for Code128 barcode (see test_form.py)
---
test_form.py | 49 ++++++++++++++++++++++++
axiohm.py | 18 ++++++++-
2 files changed, 65 insertions(+), 2 deletions(-)
diff --git a/axiohm.py b/axiohm.py
index ebeb2ee..b287b57 100644
--- a/axiohm.py
+++ b/axiohm.py
@@ -179,8 +179,8 @@
def setBarcodeTextPitch(self, pitch = PITCH_STANDARD):
self.serial.write("\x1d\x66" + chr(pitch))
- def setBarcodeHeight(self, width):
- self.serial.write("\x1d\x68" + chr(width))
+ def setBarcodeHeight(self, height):
+ self.serial.write("\x1d\x68" + chr(height))
def setBarcodeHeightInches(self, inches = 1):
if self.currentStation == self.STATION_SLIP:
@@ -193,6 +193,9 @@
self.setBarcodeHeight(int(milimeters / 8.5))
else:
self.setBarcodeHeight(int(milimeters / 8))
+
+ def setBarcodeWidth(self, width):
+ self.serial.write("\x1d\x77" + chr(width))
# FEEDING
@@ -294,6 +297,17 @@
assert(type > 64)
self.serial.write("\x1d\x6b" + chr(type) + chr(len(data)) + data)
+ def printCode128(self, bytelist):
+ assert 103 <= bytelist[0] <= 105
+ assert bytelist[1] < 103
+
+ checksum = bytelist[0]
+ for i, item in enumerate(bytelist):
+ checksum = (checksum + i*item) % 103
+
+ bytelist.append(checksum)
+ self.printBarcode(self.BARCODE_CODE128, str(bytearray(bytelist)))
+
def printLinesRotatedCCW(self, lines, startingPosition = 0):
maxLineLength = max([len(line) for line in lines])
lines = [line.ljust(maxLineLength, ' ') for line in lines]
diff --git a/test_form.py b/test_form.py
new file mode 100755
index 0000000..0cbeb86
--- /dev/null
+++ b/test_form.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+
+from axiohm import Axiohm
+
+printer = Axiohm(port = '/dev/ttyS0', baudrate = 19200, xonxoff = True)
+
+print printer.getModel()
+print printer.getStatus()
+
+slip = 0
+
+printer.reset()
+
+if slip:
+ printer.waitForSlip()
+ printer.setBarcodeWidth(2)
+else:
+ printer.selectReceipt()
+ printer.setPitch(printer.PITCH_COMPRESSED)
+ printer.setBarcodeWidth(3)
+ printer.cut()
+
+printer.setBarcodeHeight(32)
+
+printer.alignCenter()
+printer.printLineUnicode(u"┌──────────────────────────────────────────────────────┐")
+printer.printLineUnicode(u"│ POTWIERDZENIE NADANIA przesyłki poleconej nr │")
+printer.printCode128([105, 102, 0, 75, 90, 07, 73, 12, 34, 56, 78, 90])
+printer.feedDots(5)
+printer.printLineUnicode(u"│ (00) 7 5900773 1 234567890 │")
+printer.printLineUnicode(u"├───────────────────────────────┐ │")
+printer.printLineUnicode(u"│ NADAWCA: │ Opłata ... zł ... gr │")
+printer.printLineUnicode(u"│ Test Testowy │ Masa ... kg ... g │")
+printer.printLineUnicode(u"│ ul. Testowa 1 │ GABARYT A[ ] B[ ] │")
+printer.printLineUnicode(u"│ 01-001 Test │ Priorytetowa: [ ] │")
+printer.printLineUnicode(u"│ │ Potw. odbioru: [ ] │")
+printer.printLineUnicode(u"│ │ │")
+printer.printLineUnicode(u"│ ADRESAT: │ │")
+printer.printLineUnicode(u"│ Test Testowy │ ( ) │")
+printer.printLineUnicode(u"│ ul. Testowa 1 │ │")
+printer.printLineUnicode(u"│ 01-001 Test │ │")
+printer.printLineUnicode(u"│ │ Podpis przyjmującego │")
+printer.printLineUnicode(u"└───────────────────────────────┴──────────────────────┘")
+
+if slip:
+ printer.ejectSlip()
+else:
+ printer.cut()
--
Gitblit v1.9.1