InvenTree: Brother-QL совместимый шаблон мест хранения 140x62mm
См. также малую версию (62x27mm) этой этикетки
Этот шаблон этикетки места хранения InvenTree полностью совместим с принтерами этикеток Brother QL-серии на 62mm. Я использую BrotherQLLabelPrintService для печати на Linux.

stock_location_140x62.html
{% extends "label/label_base.html" %}
{% load l10n i18n barcode %}
{% block style %}
@page {
size: 140mm 62mm;
margin: 2mm; /* Гарантирует строгий отступ 2мм сверху, снизу, слева и справа */
}
body {
margin: 0;
padding: 0;
}
/* Табличная вёрстка устойчива к багу многостраничного разделения WeasyPrint */
.label-table {
display: table;
width: 136mm; /* 140mm - 4мм суммарные отступы */
height: 58mm; /* 62mm - 4мм суммарные отступы */
table-layout: fixed;
page-break-inside: avoid;
break-inside: avoid;
}
.label-row {
display: table-row;
}
.qr-cell {
display: table-cell;
width: 58mm;
height: 58mm;
vertical-align: middle; /* Центрирует QR-код по вертикали */
}
.qr {
width: 58mm;
height: 58mm;
display: block;
}
.text-cell {
display: table-cell;
width: 78mm; /* Оставшееся место на этикетке */
height: 58mm;
vertical-align: middle; /* КЛЮЧЕВОЕ: идеально центрирует текстовый блок по вертикали */
padding-left: 5mm; /* Зазор между QR и текстом */
box-sizing: border-box;
overflow: hidden; /* Защита от многостраничных переполнений */
}
.loc {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
line-height: 1.05;
margin: 0;
padding: 0;
/* Поддержка мягких переносов UTF-8 */
white-space: normal;
word-wrap: break-word;
overflow-wrap: break-word;
}
/* АВТОМАТИЧЕСКАЯ РЕГУЛИРОВКА РАЗМЕРА */
/* Стандартные короткие имена (например Bechergläser) */
.loc.large { font-size: 52pt; }
/* Имена средней длины */
.loc.medium { font-size: 36pt; }
/* Очень длинный текст (например Test mit sehr langem Label) */
.loc.small { font-size: 26pt; }
{% endblock style %}
{% block content %}
<div class="label-table">
<div class="label-row">
<div class="qr-cell">
<img class='qr' alt="{% trans 'QR code' %}" src='{% qrcode qr_data %}'>
</div>
<div class="text-cell">
<div class="loc {% if location.name|length > 22 %}small{% elif location.name|length > 12 %}medium{% else %}large{% endif %}">
{{ location.name }}
</div>
</div>
</div>
</div>
{% endblock content %}Check out similar posts by category:
InvenTree
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow