hs3-baza-zasobow-dashboard/labeler/app/labeler.py
2023-07-09 14:24:31 +02:00

25 lines
822 B
Python

from labeler.domain.objects import Label, LabelRequest, LabelDefinition
from labeler.interfaces import Renderer, Printer
class Application:
def __init__(self, renderer: Renderer, printer: Printer):
self.renderer = renderer
self.printer = printer
def render_preview(self, label_request: LabelRequest):
media = self.printer.get_installed_media()
if label_request.length is not None:
label_length = label_request.length - 2 * media.minimal_margin_horizontal
else:
label_length = media.printable_length
label_definition = LabelDefinition(
text=label_request.text,
length=label_length,
width=media.printable_width,
dpi=media.dpi,
)
self.renderer.render_label(label_definition)