1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/power4j-esc-pos-printing

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ESC/POS 凭条打印

Уже реализованы следующие функции:

  • кодирование ESC/POS-инструкций (поддержка текста, двумерных кодов и графических строк).

Функция печати была протестирована на последовательном порту термочувствительного принтера, результаты для Bluetooth и локальной сети неизвестны, так как нет необходимого оборудования.

Сценарии использования

  • Разработка шаблонов:
    1. Разработчик отлаживает формат документа и создаёт шаблон для печати.
    2. Шаблон сохраняется в базе данных или упаковывается как ресурс серверной части.
  • Отправка инструкций:
    1. Бизнес-операция генерирует запрос на печать, серверная часть обрабатывает бизнес-данные и шаблон печати, создавая инструкцию по печати, которая отправляется на клиентскую часть.
    2. Клиентская часть отвечает за открытие устройства печати и отправку инструкции на принтер.

Примечание:

  • Обычно шаблоны не меняются часто, поэтому нет необходимости разрабатывать визуальные инструменты для создания шаблонов. Достаточно, чтобы технические специалисты завершили отладку шаблона.

  • Если требуется использовать большое количество шаблонов, может потребоваться разработка функций управления шаблонами для удобства их загрузки и обновления.

Способ использования

Maven координаты:

<dependency>
  <groupId>com.power4j.kit</groupId>
  <artifactId>esc-pos</artifactId>
  <version>последняя версия</version>
</dependency>
// json — это заранее определённый шаблон для печати
Doc doc = DocProcessor.parseFromJson(jsonStr);
// hexCmd — это инструкция по печати в шестнадцатеричном формате, обычно производители предоставляют тестовые инструменты, которые можно использовать для печати после вставки в них данных
// также можно передавать инструкции по печати через сеть или Bluetooth
String hexCmd = DocProcessor.getCmdEncoder().encodeHex(doc);

Пример: см. DefaultCmdEncoderTest.

Структура шаблона документа

Документ

Шаблон документа Doc состоит из нескольких строк и имеет следующую структуру:

{
  "charsetName": "GB2312",
  "opt": {},
  "lines": []
}
  • charsetName — набор символов.
  • opt — параметры по умолчанию для текстового формата.
  • lines — массив, содержащий строки для печати.

Строка

Документ определяет своё содержимое в виде строк, структура которых выглядит следующим образом:

{
  "type": "text",
  "data": "hello",
  "opt": {}
}
  • type — указывает тип:
    • text — текст;
    • bmp — изображение;
    • qrc — двумерный код;
    • feed — управляющая команда, перемещение бумаги;
    • cut — управляющая команда, обрезка бумаги.
  • data — данные для печати, требования различаются в зависимости от типа:
    • текст и двумерные коды: передаваемый текст для печати;
    • изображение: данные изображения в формате base64;
    • перемещение бумаги: число, указывающее количество строк перемещения бумаги;
    • обрезка бумаги: 0 означает частичную обрезку, 1 — полную обрезку.
  • opt — опции печати, используемые для настройки формата печати. Различные типы поддерживают разные опции. Необходимо передать параметры при настройке формата, иначе используются параметры по умолчанию.

Управляющие команды

  • Перемещение бумаги (Feed): управляет перемещением бумаги на принтере.
  • Обрезка бумаги (Cut): управляет обрезкой бумаги на принтере, поддерживает полную и частичную обрезку.

Формат печати

Общий

Общий формат применяется к строкам любого типа.

Свойство Значение Описание
align left, center, right выравнивание влево, по центру, вправо

Текст

Свойство Значение Описание
fontHeight 1, 2, 3, 4, 5, 6, 7, 8 высота шрифта, задаётся кратно
fontWidth 1, 2, 3, 4, 5, 6, 7, 8 ширина шрифта, задаётся кратно
fontType a, b, c три вида шрифтов, предоставляемых принтером
underline none, one-dot, two-dot тип подчёркивания
lineSpacing число межстрочный интервал
bold true, false жирный шрифт
color white, black режим цвета, белый фон и чёрный текст или чёрный фон и белый текст

Пример текстовой строки:

{
    "type": "text",
    "data": "凭  条",
    "opt": {
        "fontHeight": "3",
        "fontWidth": "3",
        "bold": "true",
        "align": "center",
        "underline": "none"
    }
}

Двумерный код

  • Модель двумерного кода (QrModel): выбор встроенной модели двумерного кода принтера.
  • Уровень коррекции ошибок (QrEccLevel): четыре уровня коррекции ошибок.
  • Размер: настройка размера двумерного кода.
Свойство Значение Описание
model m1, m2 модель
level l, m, q, h уровень коррекции ошибок
size число размер двумерного кода

Пример строки с двумерным кодом:

{
    "type": "qrc",
    "data": "12345678",
    "opt": {
        "size": "10",
        "align": "center"
    }
}

Изображение

  • Режим (BmpModel): режим хранения изображения в кэше принтера.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/power4j-esc-pos-printing.git
git@api.gitlife.ru:oschina-mirror/power4j-esc-pos-printing.git
oschina-mirror
power4j-esc-pos-printing
power4j-esc-pos-printing
master