Показано с 1 по 7 из 7

Тема: Работа с принтерами UCS БЕЗ R-Keeper

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Новичок
    Регистрация
    23.01.2017
    Адрес
    Севастополь
    Сообщений
    1
    Поблагодарил(а)
    0
    Благодарностей: 0 (сообщений: 0)

    Работа с принтерами UCS БЕЗ R-Keeper

    Добрый день, коллеги.

    Хочу поделиться со всеми решением проблемы, описанной в заголовке.
    Входные данные: имеется принтер Star 650 с интерфейсной платой UCS.
    Задача: заставить его печатать без наличия R-Keeper.

    Попытки сделать это "легально", через:
    - установку родных драйверов Star 650,
    - поиска описания протокола на сайте UCS,
    - поиска информации на данном форуме
    успеха не принесли.

    Спасла noname утилитка, которая смогла вывести текст, но только латиницей.
    При помощи сниффинга трафика удалось чуть приоткрыть завесу (на это ушло два дня и рулон бумаги).

    Данные передаются по протоколу UDP. IP принтер сообщает при включении. Порт по умолчанию 18251.

    Любой управляющий пакет должен начинаться с такой последовательности $02,$41,$FF,$21,$01.

    Перед командой вывода текста принтеру зачем-то понадобился вот такой пакет $02,$41,$FF,$20. Без него никак

    Сама команда вывода текста выглядит так $02,$41,$FF,$21,$00. После неё текст в cp866.

    Последовательность для русификации мне удалось найти здесь RK6WIN\RK6\KACCA\STATIONS\DEVICES\PRINTERS\TSP700. RUS

    Выглядит она так: $1b, $1d, $74, $0a

    Ну и прогон 5 строк+подрезка: $1b, $64, $05, $1d, $56, $01

    Между пакетами обязательно нужна пауза. В моём случае стабильной работы удалось добиться при паузе в 100мс.

    Эта информация минимально достаточна, чтобы вывести на печать текст без изысков.

    Ниже приведена процедура на Delphi, выводящая на печать текстовый файл на русском языке. Код, может и кривой, но вполне рабочий.


    Код:
    ...
    udpc: TIdUDPClient;
    ...
    procedure TForm1.PrintTXT(fname: String);
    var
      s: string;
      f: textfile;
      i: integer;
      sl: TStringList;
      countString: Integer;
    begin
    
      //Русификация
      udpc.Send(#$02+#$41+#$FF+#$21+#$01+#$1b+#$1d+#$74+#$0a);
      sleep(100);
    
      //Получаем количество строк текстового файла, чтобы в последней передать команду подрезки
      sl := TStringList.Create;
      sl.LoadFromFile(fname);
      countString := sl.Count;
      sl.Free;
    
      //"Дедовский" способ работы с текстовыми файлами
      i:=0;
      assignfile(f,fname);
      reset(f);
      repeat
        readln(f,s);
        inc(i);
        //Видимо инциализируем
        udpc.Send(#$02+#$41+#$FF+#$20);
        sleep(100);    
        //Или просто выводим строку или выводим и подрезаем
        s:=#$02+#$41+#$FF+#$21+#$00+StrAnsiToOem(trim(s));
        if i<>countString then s:=s+#10+#13
                          else s:=s+#$1b+#$64+#$05+#$1d+#$56+#$01; 
        udpc.Send(s);
        sleep(100);
      until eof(f);
      closefile(f);
    end;
    Это всё. Надеюсь, что данная информация будет полезна.
    Желающим могу выслать исходники или консольную утилиту, которой можно скармливать txt файлы для печати.
    Последний раз редактировалось 48sfmdk4cx2n; 03.02.2017 в 09:49.

Похожие темы

  1. Проблема с принтерами
    от ZmeiiemZ в разделе Сервис-печать в R-Keeper 7
    Ответов: 0
    Последнее сообщение: 03.04.2016, 14:22
  2. Работа с R-Keeper 7 из Java
    от HappyCat в разделе Связь R-Keeper 7 с внешними системами
    Ответов: 3
    Последнее сообщение: 10.11.2014, 21:44
  3. Работа с версией R-Keeper 6.103.1
    от Digital в разделе Delivery
    Ответов: 3
    Последнее сообщение: 26.09.2013, 01:13
  4. Проблема с принтерами
    от Andrew009 в разделе RK: Сервис-печать, принтеры
    Ответов: 9
    Последнее сообщение: 27.12.2008, 11:34
  5. С принтерами путаница, хелп!
    от Buzinniy в разделе R-Keeper 6
    Ответов: 3
    Последнее сообщение: 25.08.2007, 00:39

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •