diff --git a/badges/Reader.py b/badges/Reader.py index b1c968a..00a98a6 100644 --- a/badges/Reader.py +++ b/badges/Reader.py @@ -16,9 +16,9 @@ from reportlab.lib.units import inch, cm from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont -def loadData(): +def loadData(filen="attendees.txt"): people = [] - with open("attendees.txt", 'r') as f: + with open(filen, 'r') as f: for p in f: m = re.match("(.*)\((.*)\)", p) if m: diff --git a/badges/create-sticky-badges-L4785.py b/badges/create-sticky-badges-L4785.py new file mode 100755 index 0000000..3474877 --- /dev/null +++ b/badges/create-sticky-badges-L4785.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import sys +import traceback +from Reader import * + +# Copyright by JK 2018 +# License: MIT +# https://www.reportlab.com/docs/reportlab-userguide.pdf + +if len(sys.argv) > 1: + event = sys.argv[1] +else: + event = "Use ARG1 as event" + +if len(sys.argv) > 2: + attendeesFile = sys.argv[2] +else: + attendeesFile = "attendees.txt" + +print("This script generates a template for the Avery L4785 form") + +data = loadData(attendeesFile) + +doc = PDFDoc("badges-A4", 21, 29.7) +c = 0 +printerCorrection = 0.2 + +for p in data: + try: + # check for image + if c % 10 == 0: + offset_x = 1.97 - printerCorrection + elif c % 10 == 5: + offset_x = 8 + 1.97 + 1.5 - printerCorrection + + if c % 5 == 0: + offset_y = 1.35 + else: + offset_y += 5.5 + + img = doc.subImage(offset_x, offset_y , 8, 5) + img.addImg("../assets/background2", 0, 0, 0.7) + + img.addImg("../assets/reading-logo", 0.1, 0.8, 0.1) + img.addKeyVal("Department of", 0.37, 0.87, size=0.035, color=(0,0.2,0), font="Helvetica") + img.addKeyVal("Computer Science", 0.37, 0.81, size=0.05, color=(0,0.2,0), font="Helvetica") + #img.addImg("logo", 0.7, 0.8, 0.1) + + #img.drawRectBorder(0, 0, 1, 1) + size = 0.2 + if len(p[0]) > 12: + size = 0.2 * 12 / len(p[0]) + + img.addKeyValCenter(p[0], 0.5, 0.5, size=size, font="Helvetica") + img.addKeyValCenter(p[1], 0.5, 0.37, size=0.07, font="Helvetica-Oblique") + + img.addKeyValCenter(event, 0.5, 0.2, size=0.07, font="Helvetica-Oblique") + + if c % 10 == 9: + doc.newpage() + c+=1 + except: + print("Unexpected error when processing %s" %(p)) + traceback.print_exc() + +doc.save() + +print("In printing dialog set the defaults for scaling but use the manual feed!")