Принтер. Esc-последовательность.

Пару дней назад на форуме http://forum.e-lug.ru/ был задан вопрос:

Есть идея использовать матричный принтер для печати данных из терминала. Использовать CUPS на терминале крайне не хотелось бы.

Принтер подключен через LPT.

Печать файла нормально работает через

cat файл > /dev/lp0

и через

echo -e ‘текст \n текст \f’ > /dev/lp0

, но есть огромное желание понастраивать принтер перед печатью, то есть задать поля, размер страницы, скорость печати…

Как правильно формировать Escape последовательность через echo, чтобы её нормально воспринимал принтер?

Escape-символ — это байт со значением равным 27 (десятичное) или 0x1B (16-ричное) или 033 (восьмиричное).

Вводится, например, с помощью последовательности из четырех символов: \ 0 3 3
(Я их тут в WordPress-е что-то никак не могу нормально ввести. Перепробовал кажется уже все. Ничего не работает! Поэтому пришлось написать их через пробелы и подсветить зеленым цветом. И далее по тексту пришлось оставить этот  формат, иначе не работает. Кто-нибудь знает, как это победить? Подскажите, плиз!

Разумеется, Вам нужно вводить эти символы слитно, друг за другом, без пробелов.

Предположим , Вам нужно вывести на принтер строку полужирным шрифтом. В справочнике находим код вкючения жирного шрифта как последовательность Esc-E, отмена — Esc-F.
Тогда Вы должны сформировать такую последовательность:

\ 0 3 3 EПривет, Вася!\ 0 3 3 F

Попробуйте выполнить сначала вывод в файл:

$ echo -e "\ 0 3 3 EПривет, Вася!\ 0 3 3 F" > 123

и посмотреть, что у Вас реально записалось:

 $ hd 123
Реклама

2 responses to “Принтер. Esc-последовательность.

  1. ESC коды для PP6800L Aura Posiflex

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

    Задача следующая:
    Для печати баркода нужно сделать коды для принтера pp6800L по примеру:

    1.PrnNumber=n — число принтеров для печати с баркодом
    2.UseSlashInBarCode — печатать или нет слеши в баркоде
    3.StreamName= — имя потока
    4.CodeStart — код установки параметров в начале печати
    5.WaiterCodeOpen — код перед печатью кода официанта
    6.CodeOpen= — код начала вывода баркода
    7.CodeClose= — код окончания вывода баркода
    Где n от 1 до n. Коды вводятся в шестнадцатиричном виде

    Пример:
    [BarCode]
    UseSlashInBarCode=0
    PrnNumber=2
    ; epson
    StreamName1=холодный цех
    CodeStart1=1D683C1D7702
    WaiterCodeOpen1=1D6B4505
    CodeOpen1=1D6B450A
    CodeClose1=»
    ;star
    StreamName2=горячий цех
    CodeStart2=»
    WaiterCodeOpen2=1B6234313732
    CodeOpen2=1B6234313732
    CodeClose2=1E

    Для активации зуммера нужно так же послать команду, но не понятно как
    ее сформировать:
    Из мануала:

    CODES (HEX/CONTROL): / {ESC} p m t1
    t2
    NAME: Generate pulse
    FUNCTION: Outputs the pulse specified
    RANGE: m = 0, 1, 48, 49 0 ≤ t1 ≤ 255, 0 ≤ t2 ≤ 255
    EXPLANATION:
    1. The parameter t1 and t2 specifies generate pulse as below:
    m Connector pin
    0, 48 Drawer kick-out connector pin 2
    1, 49 Drawer kick-out connector pin 5
    2. The pulse ON time is [t1 x 2ms] and the OFF time is [t2 x 2ms]
    3. If t2 < t1, the OFF time is [t1 x 2ms]

    Какой же в результате должен получиться код для того чтобы зуммер
    заработал. Зуммер KZ-200

    • Извините, сходу помочь не получится. Я не знаком с Вашим оборудованием, никогда не имел дела.
      Тем более, что я не представляю контекст задачи.

      Вы пишите на Си?
      Программа будет крутиться на компе?
      Управление принтерами будет осуществляться через параллельный или USB-порт?
      Где должны находиться коды управления принтерами: зашиты жестко в код программы или лежать в отдельном файле?
      Какой должен быть файл: текстовый или двоичный.
      Ну и т.д.

      В любом случае: что мне, что Вам — нужно читать, разбираться, пробовать.
      Думаю, что за полдня или день вполне можно осилить Вашу проблему.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s