From c8b3c501f0c114e4ad00c457b942e9db45c44687 Mon Sep 17 00:00:00 2001 From: Philipp Klaus Date: Sat, 17 Dec 2016 21:11:58 +0100 Subject: [PATCH] initial support for different label types --- brother_ql_web.py | 17 +++++++++++++++-- views/labeldesigner.jinja2 | 6 +++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/brother_ql_web.py b/brother_ql_web.py index 22cd7da..89e4464 100755 --- a/brother_ql_web.py +++ b/brother_ql_web.py @@ -30,6 +30,14 @@ DEFAULT_FONTS = [ {'family': 'DejaVu Serif', 'style': 'Book'}, ] +LABEL_SIZES = [ + ('62', '62mm endless'), + ('29x90', '29mm x 90mm die-cut'), + ('62x29', '62mm x 29mm die-cut'), + ('17x54', '17mm x 54mm die-cut'), + ('17x87', '17mm x 87mm die-cut'), +] + @route('/') def index(): redirect('/labeldesigner') @@ -42,7 +50,8 @@ def serve_static(filename): @view('labeldesigner.jinja2') def labeldesigner(): fonts = sorted(list(FONTS.keys())) - return {'title': 'Labeldesigner', 'message': '', 'fonts': fonts} + label_sizes = LABEL_SIZES + return {'title': 'Labeldesigner', 'message': '', 'fonts': fonts, 'label_sizes': label_sizes} def get_label_context(request): """ might raise LookupError() """ @@ -89,7 +98,11 @@ def get_label_context(request): def create_label_im(text, **kwargs): im_font = ImageFont.truetype(kwargs['font_path'], kwargs['font_size']) textsize = im_font.getsize(text) - height = max(textsize[1] * (text.count('\n')+1), kwargs['height']) + if 'x' in kwargs['label_size']: + # die-cut labels + height = kwargs['height'] + else: + height = max(textsize[1] * (text.count('\n')+1), kwargs['height']) im = Image.new('L', (kwargs['width'], height), 'white') draw = ImageDraw.Draw(im) textsize = draw.multiline_textsize(text, font=im_font) diff --git a/views/labeldesigner.jinja2 b/views/labeldesigner.jinja2 index 9c39713..23e3cfd 100644 --- a/views/labeldesigner.jinja2 +++ b/views/labeldesigner.jinja2 @@ -6,6 +6,9 @@
+ @@ -58,8 +61,9 @@ function last_url_part() { text = $('#labelText').val().replace(/\n/g, "%0A"); font_family = $('#fontFamily option:selected').text(); font_size = $('#fontSize').val(); + label_size = $('#labelSize option:selected').val(); if (text == '') text = '%20'; - return text + '?font_family=' + font_family + '&font_size=' + font_size; + return text + '?font_family=' + font_family + '&font_size=' + font_size + '&label_size=' + label_size; } function preview() {