Печать этикеток и визиток в Linux часто откладывают «на потом»: страшно получить сдвиг на миллиметр и испортить лист. gLabels решает эту задачу без LibreOffice и сложной вёрстки: вы выбираете готовый шаблон листа, расставляете текстовые объекты и печатаете сразу весь тираж. Программа бесплатная, работает с CSV и умеет добавлять штрихкоды. Разберём установку, точную настройку и печать без сюрпризов.
Версии и установка
sudo apt install glabels
flatpak install flathub org.gnome.glabels-3
glabels-3 --version
glabels-3-batch --version
В репозиториях большинства дистрибутивов лежит gLabels 3.4 — стабильная GTK-версия, которая по-прежнему работает. Параллельно развивается gLabels 4.0 на Qt; если он есть в вашей системе, интерфейс будет другим, но логика шаблонов и объектов сохраняется. Flatpak-пакет org.gnome.glabels-3 удобен на дистрибутивах без свежих GTK-библиотек. Утилита glabels-3-batch входит в тот же пакет и пригодится для пакетной печати.
Шаблон — основа точности
Лист этикеток — это сетка с фиксированными размерами, полями и промежутками. Ошибка в шаблоне сдвигает весь тираж, поэтому начинайте не с дизайна, а с выбора правильного продукта. В gLabels есть база шаблонов Avery, Zweckform и других производителей; номер обычно указан на упаковке листа. Если нужного шаблона нет, откройте «Файл → Дизайнер шаблонов» и задайте размеры вручную.
Измеряйте не одну этикетку, а лист: ширину и высоту, поля до первой этикетки, расстояние между ними, радиус углов. Для визиток стандарт — 90×50 мм, но у конкретного производителя могут быть свои допущения. Сохраните шаблон в пользовательский каталог, чтобы он не пропал при обновлении пакета. Проверка простая: напечатайте сетку на обычном листе и приложите его к чистому листу этикеток на просвет.
ls ~/.config/libglabels/templates
glabels-3 --help
Пользовательские шаблоны удобно хранить в одном каталоге и копировать на другую машину.
Создание макета
После выбора шаблона gLabels показывает одну или несколько этикеток на странице. Текст, изображения, линии и штрихкоды добавляются через панель объектов. Для текста важны три вещи: шрифт, выравнивание и внутренние отступы. Не прижимайте текст к краю — оставьте 3–5 мм, иначе погрешность печати обрежет буквы. Для одинаковых элементов используйте выравнивание и распределение по сетке, а не расстановку на глаз.
Изображения лучше брать в SVG или PDF: они масштабируются без потери качества. Растровый логотип готовьте с запасом — примерно 300 dpi в конечном размере. Если картинка вставлена больше, чем нужно, не растягивайте её мышью до искажения пропорций, а задайте размер в свойствах объекта. Цвет фона этикетки учитывайте заранее: на прозрачной плёнке светлый текст пропадёт.
Штрихкоды
Объект штрихкода вставляется как обычный элемент. В свойствах выбирается формат и источник данных: введённый вручную текст или поле из CSV. gLabels поддерживает распространённые одномерные и двумерные форматы, включая EAN-13, Code 128 и DataMatrix; список зависит от установленного бэкенда zint. Проверьте не только внешний вид, но и считываемость: напечатайте пробную этикетку и просканируйте её тем же сканером, который будет использоваться в работе. Слишком мелкий модуль или глянцевая плёнка легко превращают код в нечитаемый.
Слияние с CSV
Для партии одинаковых этикеток с разными данными используется слияние документов. Подготовьте таблицу, где первая строка — имена полей, а каждая следующая — запись. Разделитель может быть запятой, табуляцией или двоеточием; запятые внутри значений заключайте в кавычки.
name,sku,price
Чайник,KT-100,1490
Термос,TS-220,2190
Кружка,MC-050,590
В gLabels откройте «Объекты → Свойства слияния», выберите текстовый файл, кодировку и разделитель, отметьте «Ключи в первой строке». Затем в текст объекта вставьте поле, например ${name}, или воспользуйтесь кнопкой вставки поля. Для цены добавьте подпись «Цена: ${price} ₽». Предпросмотр печати покажет все записи; если строк в файле больше, чем этикеток на листе, gLabels создаст нужное число страниц.
Если поле должно занимать отдельную строку и может быть пустым, оставьте его на строке одним — тогда пустая строка не напечатается. Смешанный вариант, где рядом с полем стоит пробел или запятая, такого поведения не даст. Проверьте данные на лишние пробелы: они часто приезжают из таблиц и ломают выравнивание.
Печать и PDF
glabels-3-batch -o labels.ps -i price-tags.csv -c 1 price-tags.glabels
ps2pdf labels.ps labels.pdf
pdfinfo labels.pdf
lp -o media=A4 -o fit-to-page=false labels.pdf
Пакетная утилита принимает файл .glabels, CSV и параметры листов и копий. По умолчанию она пишет PostScript, поэтому для типографии или архива конвертируйте результат в PDF через ps2pdf и проверьте размер страницы командой pdfinfo. При печати из графического диалога выберите «Фактический размер» или 100%, отключите «Вписать в страницу» и убедитесь, что ориентация совпадает с шаблоном. Масштабирование на 98% — самая частая причина сдвига, который потом ищут в настройках gLabels.
Перед запуском тиража проверьте принтер:
lpstat -p -d
lpoptions -p HP_OfficeJet -l
Первая команда показывает очередь и устройство по умолчанию, вторая — доступные параметры драйвера. Для плотных листов этикеток используйте ручную подачу или задний лоток, если он поддерживается: изогнутый тракт может отклеить этикетку. Дайте чернилам высохнуть перед повторной подачей листа.
Частые проблемы
- Сдвиг по вертикали или горизонтали. Проверьте поля шаблона и отключите масштабирование; напечатайте лист с контурами и сравните с оригиналом.
- Текст обрезан. Уменьшите кегль или увеличьте внутренние отступы; проверьте, не выходит ли объект за границу этикетки.
- Шрифт заменился. Установите используемый шрифт на машине печати или выберите свободный аналог заранее.
- Штрихкод не читается. Увеличьте размер, смените формат на более устойчивый и проверьте контраст.
- CSV разъехался. Убедитесь, что разделитель и кодировка совпадают с настройками слияния, а в первой строке нет лишних пробелов.
Чек-лист
- Шаблон соответствует упаковке листа, размеры проверены линейкой.
- Пробный лист напечатан на обычной бумаге в масштабе 100%.
- Поля и отступы оставляют текст внутри этикетки.
- CSV проверен на пустые строки и лишние разделители.
- Штрихкоды просканированы после пробной печати.
- Для тиража выбран правильный лоток и формат бумаги.
Итог
gLabels закрывает задачу, для которой не нужен графический пакет: выбрать шаблон, поставить текст и картинки, подставить данные из CSV и отправить на печать. Точность здесь важнее дизайна: правильный шаблон, масштаб 100% и пробный лист экономят больше нервов, чем любые настройки. Начните с одного листа и десяти записей, проверьте калибровку, и только потом запускайте тираж.