initial, still very untested support for PT-P750W
This commit is contained in:
@@ -9,7 +9,8 @@ from PIL import Image
|
||||
import PIL.ImageOps, PIL.ImageChops
|
||||
|
||||
from brother_ql.raster import BrotherQLRaster
|
||||
from brother_ql.devicedependent import label_type_specs, ENDLESS_LABEL, DIE_CUT_LABEL, ROUND_DIE_CUT_LABEL, right_margin_addition
|
||||
from brother_ql.devicedependent import ENDLESS_LABEL, DIE_CUT_LABEL, ROUND_DIE_CUT_LABEL, PTOUCH_ENDLESS_LABEL
|
||||
from brother_ql.devicedependent import label_type_specs, right_margin_addition
|
||||
from brother_ql import BrotherQLUnsupportedCmd
|
||||
from brother_ql.image_trafos import filtered_hsv
|
||||
|
||||
@@ -102,7 +103,7 @@ def convert(qlr, images, label, **kwargs):
|
||||
else:
|
||||
dots_expected = dots_printable
|
||||
|
||||
if label_specs['kind'] == ENDLESS_LABEL:
|
||||
if label_specs['kind'] in (ENDLESS_LABEL, PTOUCH_ENDLESS_LABEL):
|
||||
if rotate not in ('auto', 0):
|
||||
im = im.rotate(rotate, expand=True)
|
||||
if dpi_600:
|
||||
@@ -161,10 +162,14 @@ def convert(qlr, images, label, **kwargs):
|
||||
qlr.mtype = 0x0B
|
||||
qlr.mwidth = tape_size[0]
|
||||
qlr.mlength = tape_size[1]
|
||||
else:
|
||||
elif label_specs['kind'] in (ENDLESS_LABEL, ):
|
||||
qlr.mtype = 0x0A
|
||||
qlr.mwidth = tape_size[0]
|
||||
qlr.mlength = 0
|
||||
elif label_specs['kind'] in (PTOUCH_ENDLESS_LABEL, ):
|
||||
qlr.mtype = 0x00
|
||||
qlr.mwidth = tape_size[0]
|
||||
qlr.mlength = 0
|
||||
qlr.pquality = int(hq)
|
||||
qlr.add_media_and_quality(im.size[1])
|
||||
try:
|
||||
|
||||
@@ -21,6 +21,7 @@ logger = logging.getLogger(__name__)
|
||||
DIE_CUT_LABEL = None
|
||||
ENDLESS_LABEL = None
|
||||
ROUND_DIE_CUT_LABEL = None
|
||||
PTOUCH_ENDLESS_LABEL = None
|
||||
label_type_specs = {}
|
||||
label_sizes = []
|
||||
# And concerning printer models
|
||||
@@ -61,13 +62,14 @@ def _populate_label_legacy_structures():
|
||||
We contain this code inside a function so that the imports
|
||||
we do in here are not visible at the module level.
|
||||
"""
|
||||
global DIE_CUT_LABEL, ENDLESS_LABEL, ROUND_DIE_CUT_LABEL
|
||||
global DIE_CUT_LABEL, ENDLESS_LABEL, ROUND_DIE_CUT_LABEL, PTOUCH_ENDLESS_LABEL
|
||||
global label_sizes, label_type_specs
|
||||
|
||||
from brother_ql.labels import FormFactor
|
||||
DIE_CUT_LABEL = FormFactor.DIE_CUT
|
||||
ENDLESS_LABEL = FormFactor.ENDLESS
|
||||
ROUND_DIE_CUT_LABEL = FormFactor.ROUND_DIE_CUT
|
||||
PTOUCH_ENDLESS_LABEL =FormFactor.PTOUCH_ENDLESS
|
||||
|
||||
from brother_ql.labels import LabelsManager
|
||||
lm = LabelsManager()
|
||||
|
||||
@@ -19,6 +19,8 @@ class FormFactor(IntEnum):
|
||||
ENDLESS = 2
|
||||
#: round die-cut labels
|
||||
ROUND_DIE_CUT = 3
|
||||
#: endless P-touch labels
|
||||
PTOUCH_ENDLESS = 4
|
||||
|
||||
class Color(IntEnum):
|
||||
"""
|
||||
@@ -102,6 +104,7 @@ ALL_LABELS = (
|
||||
Label("d12", ( 12, 12), FormFactor.ROUND_DIE_CUT, ( 142, 142), ( 94, 94), 113 , feed_margin=35),
|
||||
Label("d24", ( 24, 24), FormFactor.ROUND_DIE_CUT, ( 284, 284), ( 236, 236), 42 ),
|
||||
Label("d58", ( 58, 58), FormFactor.ROUND_DIE_CUT, ( 688, 688), ( 618, 618), 51 ),
|
||||
Label("pt24", ( 24, 0), FormFactor.PTOUCH_ENDLESS,( 128, 0), ( 128, 0), 0, feed_margin=14),
|
||||
)
|
||||
|
||||
class LabelsManager(ElementsManager):
|
||||
|
||||
@@ -55,6 +55,8 @@ ALL_MODELS = [
|
||||
Model('QL-820NWB',(150, 11811), two_color=True),
|
||||
Model('QL-1050', (295, 35433), number_bytes_per_row=162, additional_offset_r=44),
|
||||
Model('QL-1060N', (295, 35433), number_bytes_per_row=162, additional_offset_r=44),
|
||||
Model('PT-P750W', (31, 14172), number_bytes_per_row=16),
|
||||
Model('PT-P900W', (57, 28346), number_bytes_per_row=70),
|
||||
]
|
||||
|
||||
class ModelsManager(ElementsManager):
|
||||
|
||||
@@ -245,13 +245,18 @@ class BrotherQLRaster(object):
|
||||
while start + row_len <= frame_len:
|
||||
for i, frame in enumerate(frames):
|
||||
row = frame[start:start+row_len]
|
||||
if second_image:
|
||||
file_str.write(b'\x77\x01' if i == 0 else b'\x77\x02')
|
||||
else:
|
||||
file_str.write(b'\x67\x00')
|
||||
if self._compression:
|
||||
row = packbits.encode(row)
|
||||
file_str.write(bytes([len(row)]))
|
||||
translen = len(row) # number of bytes to be transmitted
|
||||
if self.model.startswith('PT'):
|
||||
file_str.write(b'\x47')
|
||||
file_str.write(bytes([translen%256, translen//256]))
|
||||
else:
|
||||
if second_image:
|
||||
file_str.write(b'\x77\x01' if i == 0 else b'\x77\x02')
|
||||
else:
|
||||
file_str.write(b'\x67\x00')
|
||||
file_str.write(bytes([translen]))
|
||||
file_str.write(row)
|
||||
start += row_len
|
||||
self.data += file_str.getvalue()
|
||||
|
||||
Reference in New Issue
Block a user