diff options
| author | Leonardo Bishop <me@leonardobishop.com> | 2025-03-15 16:03:14 +0000 |
|---|---|---|
| committer | Leonardo Bishop <me@leonardobishop.com> | 2025-03-15 16:03:14 +0000 |
| commit | 74f6d7aa403c397368ff29c24b97fafa03d0e20b (patch) | |
| tree | 9811a6e3225d18cce491c1f2300dee981faf7fe5 /printer.py | |
Initial commit
Diffstat (limited to 'printer.py')
| -rw-r--r-- | printer.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/printer.py b/printer.py new file mode 100644 index 0000000..6bf69e9 --- /dev/null +++ b/printer.py @@ -0,0 +1,57 @@ +from PIL import Image +from escpos.printer import Usb +from typing import Optional, Union +import logging + +logger = logging.getLogger(__name__) +p = Usb(0x1fc9,0x2016,0,profile="TM-P80") + +def print_pass(name_image: Union[str, Image.Image], pronouns_image: Union[str, Image.Image], reference: str, ticket_type: str, slug: str): + logger.info(f"Printing pass for {ticket_type}") + p.linedisplay_clear() + p.image("birminghack-logo-raster-bw-rs.png",center=True) + p.ln() + p.ln() + p.image(name_image,center=True) + p.image(pronouns_image,center=True) + p.set(align="left",bold=False,custom_size=True,width=2,height=2) + p.ln() + p.qr(slug, size=10, center=True) + p.set(align="left",bold=True,normal_textsize=True) + p.software_columns(["Reference", reference], widths=48, align=["left", "right"]) + p.software_columns(["Type", ticket_type], widths=48, align=["left", "right"]) + p.set(align="left",bold=False,normal_textsize=True) + p.ln() + p.textln("By attending this event you agree to the") + p.textln("birmingHack Code of Conduct:") + p.set(align="right",bold=False,normal_textsize=True) + p.textln("birminghack.com/conduct") + p.set(align="left",bold=False,normal_textsize=True) + p.ln() + p.textln("Please wear your attendee pass at all times.") + p.cut() + +def print_food(issued_to: str, pizza_type: str, group: str, d_req: Optional[str] = None): + logger.info(f"Printing pizza token for {issued_to}") + p.linedisplay_clear() + p.ln() + p.set(align="center",bold=True,custom_size=True,width=3,height=3,smooth=True) + p.textln("Pizza Token") + p.ln() + p.set(align="left",bold=False,normal_textsize=True) + p.textln("Exchange me for pizza!") + p.image("pizza.png",center=True) + p.ln() + p.set(align="left",bold=True,normal_textsize=True) + p.software_columns(["Group", group], widths=48, align=["left", "right"]) + p.software_columns(["Pizza Type", pizza_type], widths=48, align=["left", "right"]) + p.software_columns(["Issued To", issued_to], widths=48, align=["left", "right"]) + p.ln() + if d_req: + p.set(align="left",bold=False,custom_size=True,width=2,height=2,invert=True) + p.textln("Dietary Requirement") + p.ln() + p.set(align="left",bold=False,normal_textsize=True,invert=False) + p.textln(d_req) + p.cut() + |
