From 8580899a90936e55a62a8ad1b567d484bac371fe Mon Sep 17 00:00:00 2001 From: Infinidoge Date: Fri, 6 Jun 2025 17:03:20 -0400 Subject: [PATCH] automatically open/close when cutting --- printer.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/printer.py b/printer.py index 8e377f1..0d164a2 100644 --- a/printer.py +++ b/printer.py @@ -67,8 +67,19 @@ class Split2Context: class ReceiptPrinter(CupsPrinter): def __init__(self, *args, autocut=True, **kwargs): self.autocut = autocut + self.is_open = False super().__init__(*args, **kwargs) + def open(self): + if not self.is_open: + super().open() + self.is_open = True + + def close(self): + if self.is_open: + super().close() + self.is_open = False + def __enter__(self): self.open() return self @@ -78,6 +89,14 @@ class ReceiptPrinter(CupsPrinter): self.cut() self.close() + def cut(self, *args, **kwargs): + if not self.is_open: + self.open() + super().cut(*args, **kwargs) + self.close() + else: + super().cut(*args, **kwargs) + def set(self, *args, **kwargs): super().set(*args, **kwargs) return CallbackContext(exit=super().set_with_default)