Add sheet material labels
This commit is contained in:
parent
d8f279cef1
commit
69f2b3837b
103
main.py
103
main.py
|
@ -248,6 +248,34 @@ def print_tool_label(wiki_num):
|
||||||
os.system('lp -d dymo tmp.png > /dev/null 2>&1')
|
os.system('lp -d dymo tmp.png > /dev/null 2>&1')
|
||||||
|
|
||||||
|
|
||||||
|
def print_sheet_label(name, contact):
|
||||||
|
def get_date():
|
||||||
|
d = datetime.now(tz=timezone.utc)
|
||||||
|
d = d.astimezone(TIMEZONE_CALGARY)
|
||||||
|
return d.strftime('%b %-d, %Y')
|
||||||
|
|
||||||
|
name_size = 85
|
||||||
|
contact_size = 65
|
||||||
|
date_size = 65
|
||||||
|
|
||||||
|
im = Image.open('label.png')
|
||||||
|
|
||||||
|
draw = ImageDraw.Draw(im)
|
||||||
|
|
||||||
|
font = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', name_size)
|
||||||
|
draw.text((20, 300), name, font=font, fill='black')
|
||||||
|
|
||||||
|
font = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', contact_size)
|
||||||
|
draw.text((20, 425), contact, font=font, fill='black')
|
||||||
|
|
||||||
|
font = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', date_size)
|
||||||
|
date_line = 'Printed: ' + get_date()
|
||||||
|
draw.text((20, 625), date_line, font=font, fill='black')
|
||||||
|
|
||||||
|
im.save('tmp.png')
|
||||||
|
os.system('lp -d dymo tmp.png > /dev/null 2>&1')
|
||||||
|
|
||||||
|
|
||||||
def message_protovac(message):
|
def message_protovac(message):
|
||||||
try:
|
try:
|
||||||
logging.info('Message to Protovac: %s', message)
|
logging.info('Message to Protovac: %s', message)
|
||||||
|
@ -420,6 +448,8 @@ text_line = 0
|
||||||
nametag_member = ''
|
nametag_member = ''
|
||||||
nametag_guest = ''
|
nametag_guest = ''
|
||||||
label_tool = ''
|
label_tool = ''
|
||||||
|
label_material_name = ''
|
||||||
|
label_material_contact = ''
|
||||||
|
|
||||||
logging.info('Starting main loop...')
|
logging.info('Starting main loop...')
|
||||||
|
|
||||||
|
@ -428,7 +458,7 @@ last_key = time.time()
|
||||||
def ratelimit_key():
|
def ratelimit_key():
|
||||||
global last_key
|
global last_key
|
||||||
|
|
||||||
if think_to_send or sign_to_send or message_to_send or nametag_member or nametag_guest or label_tool or time.time() > last_key + 1:
|
if think_to_send or sign_to_send or message_to_send or nametag_member or nametag_guest or label_tool or label_material_name or label_material_contact or time.time() > last_key + 1:
|
||||||
last_key = time.time()
|
last_key = time.time()
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
@ -692,7 +722,7 @@ while True:
|
||||||
stdscr.addstr(0, 1, 'PROTOVAC UNIVERSAL COMPUTER')
|
stdscr.addstr(0, 1, 'PROTOVAC UNIVERSAL COMPUTER')
|
||||||
stdscr.addstr(2, 1, 'Print a Label')
|
stdscr.addstr(2, 1, 'Print a Label')
|
||||||
stdscr.addstr(3, 1, '===============')
|
stdscr.addstr(3, 1, '===============')
|
||||||
#stdscr.addstr(5, 1, 'Choose between member or guest.')
|
stdscr.addstr(5, 1, 'Choose the type of label.')
|
||||||
|
|
||||||
if label_tool:
|
if label_tool:
|
||||||
stdscr.addstr(8, 4, 'Enter Wiki-ID tool number: ' + label_tool)
|
stdscr.addstr(8, 4, 'Enter Wiki-ID tool number: ' + label_tool)
|
||||||
|
@ -700,15 +730,21 @@ while True:
|
||||||
stdscr.addstr(10, 4, '')
|
stdscr.addstr(10, 4, '')
|
||||||
stdscr.clrtoeol()
|
stdscr.clrtoeol()
|
||||||
stdscr.addstr(23, 1, '[RETURN] Print [ESC] Cancel')
|
stdscr.addstr(23, 1, '[RETURN] Print [ESC] Cancel')
|
||||||
#elif nametag_guest:
|
elif label_material_contact:
|
||||||
# stdscr.addstr(8, 4, '')
|
stdscr.addstr(8, 4, '')
|
||||||
# stdscr.clrtoeol()
|
stdscr.clrtoeol()
|
||||||
# stdscr.addstr(10, 4, nametag_guest)
|
stdscr.addstr(10, 4, 'Enter your contact info: ' + label_material_contact)
|
||||||
# stdscr.clrtoeol()
|
stdscr.clrtoeol()
|
||||||
# stdscr.addstr(23, 1, '[RETURN] Print [ESC] Cancel')
|
stdscr.addstr(23, 1, '[RETURN] Next [ESC] Cancel')
|
||||||
|
elif label_material_name:
|
||||||
|
stdscr.addstr(8, 4, '')
|
||||||
|
stdscr.clrtoeol()
|
||||||
|
stdscr.addstr(10, 4, 'Enter your name: ' + label_material_name)
|
||||||
|
stdscr.clrtoeol()
|
||||||
|
stdscr.addstr(23, 1, '[RETURN] Next [ESC] Cancel')
|
||||||
else:
|
else:
|
||||||
stdscr.addstr(8, 4, '[T] Tool label', curses.A_REVERSE if highlight_keys else 0)
|
stdscr.addstr(8, 4, '[T] Tool label', curses.A_REVERSE if highlight_keys else 0)
|
||||||
#stdscr.addstr(10, 4, '[G] Guest nametag', curses.A_REVERSE if highlight_keys else 0)
|
stdscr.addstr(10, 4, '[S] Sheet material', curses.A_REVERSE if highlight_keys else 0)
|
||||||
stdscr.addstr(23, 1, '[B] Back', curses.A_REVERSE if highlight_keys else 0)
|
stdscr.addstr(23, 1, '[B] Back', curses.A_REVERSE if highlight_keys else 0)
|
||||||
|
|
||||||
stdscr.clrtoeol()
|
stdscr.clrtoeol()
|
||||||
|
@ -1013,28 +1049,41 @@ while True:
|
||||||
else:
|
else:
|
||||||
if c <= 57 and c >= 48:
|
if c <= 57 and c >= 48:
|
||||||
label_tool = label_tool[:-1] + chr(c) + '_'
|
label_tool = label_tool[:-1] + chr(c) + '_'
|
||||||
#elif nametag_guest:
|
elif label_material_contact:
|
||||||
# if c == curses.KEY_BACKSPACE:
|
if c == curses.KEY_BACKSPACE:
|
||||||
# nametag_guest = nametag_guest[:-2] + '_'
|
label_material_contact = label_material_contact[:-2] + '_'
|
||||||
# elif c == KEY_ESCAPE:
|
elif c == KEY_ESCAPE:
|
||||||
# nametag_guest = ''
|
label_material_contact = ''
|
||||||
# stdscr.erase()
|
stdscr.erase()
|
||||||
# elif c == KEY_ENTER:
|
elif c == KEY_ENTER:
|
||||||
# if len(nametag_guest) > 1:
|
if len(label_material_contact) > 1:
|
||||||
# stdscr.addstr(15, 4, 'Printing...')
|
stdscr.addstr(15, 4, 'Printing...')
|
||||||
# stdscr.refresh()
|
stdscr.refresh()
|
||||||
# print_nametag(nametag_guest[:-1], guest=True)
|
print_sheet_label(label_material_name[:-1], label_material_contact[:-1])
|
||||||
# stdscr.erase()
|
stdscr.erase()
|
||||||
# nametag_guest = ''
|
label_material_name = ''
|
||||||
# else:
|
label_material_contact = ''
|
||||||
# if c < 127 and c > 31:
|
else:
|
||||||
# nametag_guest = nametag_guest[:-1] + chr(c) + '_'
|
if c < 127 and c > 31:
|
||||||
|
label_material_contact = label_material_contact[:-1] + chr(c) + '_'
|
||||||
|
elif label_material_name:
|
||||||
|
if c == curses.KEY_BACKSPACE:
|
||||||
|
label_material_name = label_material_name[:-2] + '_'
|
||||||
|
elif c == KEY_ESCAPE:
|
||||||
|
label_material_name = ''
|
||||||
|
stdscr.erase()
|
||||||
|
elif c == KEY_ENTER:
|
||||||
|
if len(label_material_name) > 1:
|
||||||
|
label_material_contact = '_'
|
||||||
|
else:
|
||||||
|
if c < 127 and c > 31:
|
||||||
|
label_material_name = label_material_name[:-1] + chr(c) + '_'
|
||||||
elif button == 'b' or c == KEY_ESCAPE:
|
elif button == 'b' or c == KEY_ESCAPE:
|
||||||
current_screen = 'home'
|
current_screen = 'home'
|
||||||
elif button == 't':
|
elif button == 't':
|
||||||
label_tool = '_'
|
label_tool = '_'
|
||||||
#elif button == 'g':
|
elif button == 's':
|
||||||
# nametag_guest = '_'
|
label_material_name = '_'
|
||||||
else:
|
else:
|
||||||
try_highlight()
|
try_highlight()
|
||||||
|
|
||||||
|
|
37
sheet_label.py
Normal file
37
sheet_label.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
from PIL import Image, ImageEnhance, ImageFont, ImageDraw
|
||||||
|
import requests
|
||||||
|
import pytz
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
|
TIMEZONE_CALGARY = pytz.timezone('America/Edmonton')
|
||||||
|
|
||||||
|
|
||||||
|
def print_sheet_label(name, contact):
|
||||||
|
def get_date():
|
||||||
|
d = datetime.now(tz=timezone.utc)
|
||||||
|
d = d.astimezone(TIMEZONE_CALGARY)
|
||||||
|
return d.strftime('%b %-d, %Y')
|
||||||
|
|
||||||
|
name_size = 85
|
||||||
|
contact_size = 65
|
||||||
|
date_size = 65
|
||||||
|
|
||||||
|
im = Image.open('label.png')
|
||||||
|
|
||||||
|
draw = ImageDraw.Draw(im)
|
||||||
|
|
||||||
|
font = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', name_size)
|
||||||
|
draw.text((20, 300), name, font=font, fill='black')
|
||||||
|
|
||||||
|
font = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', contact_size)
|
||||||
|
draw.text((20, 425), contact, font=font, fill='black')
|
||||||
|
|
||||||
|
font = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', date_size)
|
||||||
|
date_line = 'Printed: ' + get_date()
|
||||||
|
draw.text((20, 625), date_line, font=font, fill='black')
|
||||||
|
|
||||||
|
im.save('tmp.png')
|
||||||
|
|
||||||
|
|
||||||
|
print_sheet_label('Christopher Reallylongname', 'mail@christopherreallylongname.com')
|
||||||
|
|
Loading…
Reference in New Issue
Block a user