simple label coding in python
[ql570.git] / python / label.py
diff --git a/python/label.py b/python/label.py
new file mode 100644 (file)
index 0000000..41618bb
--- /dev/null
@@ -0,0 +1,26 @@
+from PIL import Image, ImageFont, ImageDraw
+
+class label:
+       def __init__(self, length, width=336, landscape=False):
+               assert(width == 336 or width == 720)
+               self.landscape = False
+               self.fontfile = '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf'
+
+               self.im = Image.new("1", (width, length), "white")
+               if self.landscape:
+                       self.im.rotate(90)
+
+       def set_font(self, fontfile):
+               self.fontfile = fontfile
+
+       def set_fontsize(self, size):
+               self.font = ImageFont.truetype(self.fontfile, size)
+
+       def text(self, pos, text):
+               draw = ImageDraw.Draw(self.im)
+               draw.text(pos, text, font=self.font)
+
+       def save(self, outfile):
+               if self.landscape:
+                       self.im.rotate(90)
+               self.im.save(outfile, "PNG")