1. Назначение
Моноширинный растровый (bitmap) шрифт для печати фискальных чеков и документов на термопринтере Star TSP100 (и совместимых). Печать выполняется 1-битным растром (чёрный/белый, без полутонов) при разрешении 203 DPI (8 точек/мм). Шрифт рендерится попиксельно — это «пиксельная» печать, как у офлайн-программ.
2. Технические параметры
Формат файла BDF (Glyph Bitmap Distribution Format)
Кодировка Unicode / ISO10646-1 (НЕ CP866, НЕ Windows-1251)
Размер ячейки 8 × 16 пикселей (ширина × высота)
Тип моноширинный — фиксированная ширина, advance = 8 px
Цвет 1-бит, монохром — только чёрный/белый, без сглаживания и градаций серого
Базовая линия подъём (ascent) 14 px, спуск (descent) 2 px (FONTBOUNDINGBOX 8 16 0 -2)
Один размер. Рисуется только базовый 8×16. Увеличенные кегли (×2 = 16×32, ×3 = 24×48) наша система генерирует сама целочисленным масштабированием — присылать несколько размеров не нужно.
3. Состав символов (обязательно ВСЕ)
Каждый символ — уникальный, прорисованный глиф (см. п.6 — заглушки запрещены).
• Кириллица заглавные (U+0410–U+042F): А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я + Ё (U+0401)
• Кириллица строчные (U+0430–U+044F): а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я + ё (U+0451)
• Латиница: A–Z (U+0041–U+005A), a–z (U+0061–U+007A)
• Цифры: 0–9 (U+0030–U+0039)
• Пунктуация: пробел (U+0020) ! " # % & ' ( ) * + , . / : ; < = > ? @ [ \ ] _ { | } ~
• Спецсимволы (важно для чеков): № (U+2116), « (U+00AB), » (U+00BB), — (U+2014), – (U+2013), ₽ (U+20BD), ° (U+00B0), § (U+00A7)
В BDF поле ENCODING каждого глифа = его Unicode-кодпойнт (например: А → 1040, Ё → 1025, а → 1072, № → 8470).
4. Метрики и отрисовка
• Сетка 8×16, advance 8 px (моноширина). Сам глиф рисовать шириной 5–6 px, оставляя ≥1 px справа — чтобы соседние символы в колонках не слипались.
• Единый стиль латиницы и кириллицы: одинаковый вес штриха, высота строчных (x-height), заглавных (cap-height), длина выносных. Символы идут вперемешку в одной строке чека.
• Выносные элементы вниз (р у ф д ц щ y g p q j) — в пределах 2 px спуска (descent).
• Постоянные базовая линия / cap-height / x-height у всех глифов.
5. Требования к читаемости (203 DPI, термопечать)
• Только сплошные штрихи. Минимальная толщина — 1 px, но избегать изолированных одиночных точек и волосяных линий в 1 px на просвет — на термоголовке они могут не пропечататься.
• Диагонали — аккуратной «лесенкой», без рваных одиночных пикселей.
• Каждый символ должен однозначно читаться в размере 8×16 и оставаться читаемым при увеличении ×2 (когда 1 пиксель станет блоком 2×2) — рисовать с учётом этого.
6. Чего НЕ делать
• НЕ оставлять заглушки. В прошлой версии вся кириллица была задана одним прямоугольником-болванкой (FC CC D4 A4 B4 CC FC) — так нельзя. Каждая русская буква = свой рисунок, как уже сделаны латиница и цифры.
• НЕ присылать тот же файл без изменений (проверяем по контрольной сумме).
7. BDF — технические детали экспорта
Чтобы файл корректно встал в наш конвейер, в заголовке BDF должен присутствовать блок свойств (многие редакторы ставят его сами; при ручном экспорте — прописать):
SIZE 16 72 72
FONTBOUNDINGBOX 8 16 0 -2
STARTPROPERTIES 4
PIXEL_SIZE 16
POINT_SIZE 160
RESOLUTION_X 72
RESOLUTION_Y 72
ENDPROPERTIES
У каждого глифа: DWIDTH 8 0, BBX 8 16 0 -2 (или плотнее, но advance = 8). Без PIXEL_SIZE некоторые конвертеры ломают размер — поэтому блок обязателен.
8. Результат (deliverables)
1. *.bdf — основной файл со всеми прорисованными глифами (п.3).
2. atlas.png — превью-таблица всех символов (для проверки перед интеграцией).
BIN/RAW и C-header не нужны — работаем по BDF.
9. Критерии приёмки
Шрифт принимается, если на превью все символы — разные читаемые глифы (никаких квадратов), и корректно печатается контрольная строка:
СЪЕШЬ ЕЩЁ ЭТИХ МЯГКИХ ФРАНЦУЗСКИХ БУЛОК ДА ВЫПЕЙ ЧАЮ
съешь же ещё этих мягких булок 0123456789
ООО «Ромашка» ИНН 7707083893 № 12 — 1 500,00 ₽
Все русские/латинские буквы, цифры и символы должны читаться; Ё/ё, №, «», —, ₽ — на месте.
Опубликован 01.06.2026 в 16:09