added support for printing simple labels
This commit is contained in:
parent
92bf65dc62
commit
aad7c67d48
6 changed files with 151 additions and 14 deletions
|
|
@ -1,4 +1,11 @@
|
|||
from labeler.domain.objects import Label, LabelRequest, LabelDefinition, MediaDefinition
|
||||
from labeler.domain.objects import (
|
||||
Label,
|
||||
LabelRequest,
|
||||
LabelDefinition,
|
||||
MediaDefinition,
|
||||
Dimension,
|
||||
Image,
|
||||
)
|
||||
from labeler.interfaces import Renderer, Printer
|
||||
|
||||
|
||||
|
|
@ -7,16 +14,16 @@ class Application:
|
|||
self.renderer = renderer
|
||||
self.printer = printer
|
||||
|
||||
def render_preview(self, label_request: LabelRequest):
|
||||
def render_preview(self, text: str, length: int = None) -> Label:
|
||||
media = self.printer.get_installed_media()
|
||||
|
||||
if label_request.length is not None:
|
||||
label_length = label_request.length - 2 * media.minimal_margin_horizontal
|
||||
if length != 0:
|
||||
label_length = Dimension(mm=length) - 2 * media.minimal_margin_horizontal
|
||||
else:
|
||||
label_length = media.printable_length
|
||||
label_length = None
|
||||
|
||||
label_definition = LabelDefinition(
|
||||
text=label_request.text,
|
||||
text=text,
|
||||
length=label_length,
|
||||
width=media.printable_width,
|
||||
dpi=media.dpi,
|
||||
|
|
@ -24,5 +31,24 @@ class Application:
|
|||
|
||||
self.renderer.render_label(label_definition)
|
||||
|
||||
def print_label(self, text: str, length: int = None) -> Image:
|
||||
media = self.printer.get_installed_media()
|
||||
|
||||
if length != 0:
|
||||
label_length = Dimension(mm=length) - 2 * media.minimal_margin_horizontal
|
||||
else:
|
||||
label_length = None
|
||||
|
||||
label_definition = LabelDefinition(
|
||||
text=text,
|
||||
length=label_length,
|
||||
width=media.printable_width,
|
||||
dpi=media.dpi,
|
||||
)
|
||||
|
||||
label = self.renderer.render_label(label_definition)
|
||||
self.printer.print_label(label)
|
||||
return label
|
||||
|
||||
def get_installed_media(self) -> MediaDefinition:
|
||||
return self.printer.get_installed_media()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue