none
Печать в кодировке cp866 RRS feed

  • Вопрос

  • Windows XP SP3, подключен локально (lpt1) матричный принтер epson lx-300+. Печатать необходимо в кодировке cp866 (программа выплевывает в такой кодировке)...
    Проблема частично решается, если устанавливаешь данный принтер как generic\text only, но в таком случае есть возможность печатать только в кодировке 1251, можно ли в cp866?
    И второй вопрос: после печати любого текста на данный принтер в конце всегда выполняется прогон страницы (from feed), как его убрать, чтобы текст печатался без прогона?
    Коллеги, буду очень признателен, бьюсь уже неделю....HELP!!!
    12 ноября 2009 г. 9:03

Все ответы

  • помню такое, там нужен еще один файлик менять (TTY.dat) кажись этот. если найду его у себя, напиши куда высылать.
    12 ноября 2009 г. 20:46
  • ДА, верно, я поменял эти файлы, в настройках очереди появился шрифт cp866. Но почему то данные с программы в кодировке cp866 на принтер выводятся иероглифами...В программе нет возможности поставить шрифт 1251...
    А прогон листа - это, я так понимаю, виндовая особенность печати...как ее отменить?
    13 ноября 2009 г. 4:04
  • там же в настройках есть опция "Без прогона", а также нужно еще в настройках принтера (при помощи клавиш принтера) тоже необходимо выбрать эту кодировку.
    13 ноября 2009 г. 20:08
  • В каких опциях? Я уже все перепробовал, не срабатывает....Наткнулся на такую тему: загрузить ESC-последовательность в принтер, а вот какую именно последовательность не могу подобрать...Как правильно ее написать?
    16 ноября 2009 г. 6:26
  • 1. Выключаем принтер, удерживаем "Tear Off" - включаем принтер.
    2. После того, как напечатает страничку  -надо просто нажать "Tear Off" если не начнёт печать - "Pause" и "Tear Off".
    3. Напечатает страничку "Current settings" где нужно найти сроку "Character table" где и стоит твой РС 437.
    4. В конце листа написано две строчки, где сказано(если хотите изменить нажмите "Tear Off").
    5. нажимаем и ждём пока не напечатает 3-4 странички(в зависимости от прошивки).
    когда он всё это напечатает берём страничку №1 после странички "Current settings" и находим там строку с надписью "Character table".
    6. квадратики(описаны на самом первом листе) означают: простой квадрат неокрашенный - лампочка горит, с "рожками" - мигает, закрашенный квадрат - не горит.
    7. нажимаем "Tear Off" до того времени, пока: 2 лампочки возле "Tear Off" не будут гореть, а лампочка возле "Pause" не будет мигать. (если проскочиш - ничего страшного он идёт по кругу, т. е. дойдёш до конца и начнёш с начала).
    8. потом нажимаем кнопку"LF/FF" до того времени, пока первая лампочка не будет гореть, а две остальные будут мигать.
    9. просто выключаем принтер и ждём где-то секунд 20.

    Вот где-то так включалась поддержка 866 кодировки.
    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт.
    Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    18 ноября 2009 г. 14:21
    Модератор
  • Это все я знаю, не первый год работаю с этими принтерами....Настраивать их умею...Здесь дело скорее всего в виндовом драйвере принтера...Именно он подает команду принтеру на прогон в конце напечатанного текста, а вот как это убрать...Я так понимаю ESC последовательность необходимо загружать в принтер после задания или перед? А вот какую?
    1 декабря 2009 г. 6:17
  • Таблица Esc-последовательностей для пpинтеpа Epson

         Коды       ASCII

       Клавиша Код нажатия  Клавиша Код нажатия  Клавиша Код нажатия

         "1"       2          "T"        20        "L"       38
         "2"       3          "Y"        21        ";"       39
         "3"       4          "U"        22        "'"       40
         "4"       5          "I"        23        "`"       41
         "5"       6          "O"        24        "\"       43
         "6"       7          "P"        25        "Z"       44
         "7"       8          "["        26        "X"       45
         "8"       9          "]"        27        "C"       46
         "9"       10         "A"        30        "V"       47
         "0"       11         "S"        31        "B"       48
         "-"       12         "D"        32        "N"       49
         "="       13         "F"        33        "M"       50
         "Q"       16         "G"        34        ","       51
         "W"       17         "H"        35        "."       52
         "E"       18         "J"        36        "/"       53
         "R"       19         "K"        37      пробел      57

                            Управляющие клавиши

       Esc - 1               Ctrl - 29           Alt - 56
       BackSpace - 14        left shift - 42     CapsLock - 58
       Tab - 15              right shift - 42    NumLock - 58
       Enter - 28            PrtSc - 55          ScrollLock - 70

    В текстовом редакторе (пустом и с английской кодировкой водиш следующим
    образом : любой код ASCII от 1 до 255

    может  быть введен с клавиатуры, если держать нажатой клавишу Alt
    при наборе номера кода на дополнительной клавиатуре (с соответст-
    венно  установленным  режимом NumLock).  Когда клавиша Alt  затем
    освобождается, то код вводится.Закрываешь редактор и печатаешь - есть
    проще способ через команду echo но сейчас не помню.

    Привожу еще некоторые управляющие коды :

    DEL                     Стереть символ
    Esc SO                 то же что SO
    Esc SI                  то же что SI
    Esc EM               Включить/выключить режим автоподачи
    Esc SP               Установить межсимвольное расстояние
    Esc !                Установить стиль печати
    Esc #                   Выключить контроль MSB (8-го бита данных)
    Esc $ (n1) (n2)          Переместить в абс.позицию по горизонтали
    Esc %                 Включить загружаемый шрифт
    Esc & (0) (n1) (n2)      Загрузить шрифт

    Esc +                    L   Включить n/360-дюймовый интервал
    Esc -             P   Включить или выключить подчеркивание
    Esc /                 Select (включить) Vertical Tab Channel
    Esc 0                P   Включить 1/8-дюймовый интервал
    Esc 1                P E     Включить 7/72-дюймовый интервал
    Esc 2                    Включить 1/6-дюймовый интервал
    Esc 2                P       Включить интервал Esc A (или 1/6")
    Esc 3                 Включить n/216-дюймовый интервал
    Esc 3                 L N Включить n/180-дюймовый интервал
    Esc 4                    Включить курсив
    Esc 4                P       Установить верхнюю границу формата

    Esc 6                P   Подключить коды 128-159 к печати (printable коды)
    Esc 7                P   Отключить коды 128-159 от печати  (upper control)
    Esc 8                  E     Отключить контроль конца бумаги
    Esc 9                  E     Подключить контроль конца бумаги
    Esc :         Копировать текущий ROM в RAM
    Esc :                P       Включить плотность 12 Pitch
    Esc <                    Включить однонаправленный режим (на одну строку)
    Esc =                    Установить MSB (8-й бит данных) в 0


    Esc =                P       Загрузить шрифт



    Esc >                    Установить MSB в 1
    Esc ? (s) (m)            Переназначить графический режим
    Esc @                    Инициализировать принтер
    Esc A             P E     Установить n/72-дюймовый интервал
    Esc A                 L N Установить n/60-дюймовый интервал

    Esc I               E     Расширить область печатных кодов
    Esc I             P       Выбрать NLQ/DRAFT и ROM/RAM шрифт
    Esc J             P E     Исполнить n/216-дюймовый интервал
    Esc J                 L N Исполнить n/180-дюймовый интервал
    Esc K (n1) (n2)      P   Включить режим плотности 60 dpi графики
    Esc L (n1) (n2)      P   Включить режим плотности 120 dpi графики
    Esc M                    Включить плотность 12 Pitch
    Esc N             P   Включить пропуск перфорации
    Esc O                P   Отключить пропуск перфорации
    Esc P                    Включить плотность 10 Pitch

    Esc Q                P       Выключить принтер
    Esc R                 Включить международный кодовый набор
    Esc R                P       Сбросить все табуляторы (to power on)
    Esc S (0)            P   Включить режим надстрочника
    Esc S (1)            P   Включить режим подстрочника
    Esc T                P   Выключить режим над/под-строчника
    Esc U             P   Включить/выключить однонаправленный режим
    Esc V                   N Повторяемые данные

    Esc Y (n1) (n2)      P   Включить режим графики плотности 120 dpi
                                 и высокой скорости
    Esc Z (n1) (n2)      P   Включить режим плотности 240 dpi графики
    Esc [ @              P       Установить режим двойной высоты, двойной ширины
    Esc \ (n1) (n2)          Установить относ. гориз. позицию печати
    Esc \ (n1) (n2)      P       Печатать все символы (0-255)
    Esc ^                  E     Включить режим 9-точечной графики
    Esc ^                P       Печатать один символ (0-255)
    Esc _                P       Включить/выключить режим зачеркивания
    Esc a                 Включить выравнивание (justification)
    Esc b (c) (n1) (n2)      Set vertical tabs in channels
        (n...) (0)
    Esc e 0                 N Repeated horizontal tabs
    Esc e 1                 N Repeated vertical tabs
    Esc f 0                 N Print head moved
    Esc f 1                 N Paper advanced
    Esc g                    L N Включить 15 Pitch
    Esc j                   N Исполнить n/180-дюймовый возврат бумаги
    Esc k                 Включить Typestyle Family (select a font)
    Esc l                 Установить левую границу
    Esc p                 Включить/выключить пропорциональный режим
    Esc s               E   N Включить/выключить режим половинной скорости
    Esc t                 Select character table
    Esc w                  E L   Включить/выключить режим двойной высоты
    Esc x                 Включить режим NLQ или DRAFT

    Также можно глянуть последовательности тут: http://support.epson.ru/products/manuals/100078/ref_g/apspe_4.htm

    Помещать команды, насколько я помню, нужно в начале задания печати. Либо создаем файл, содержащий нужные последовательности (например Test.prn) и выполняем команду "copy /b Test.prn PRN" или "copy /b Test.prn LPT1" перед каждой отправкой задания. 
    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт.
    Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    1 декабря 2009 г. 7:03
    Модератор
  • спасибо, попробую!!!!
    10 декабря 2009 г. 11:06
  • не могу найти именно ту последовательность, которая отменяет прогон листа после задания посланного через очередь windows...
    21 декабря 2009 г. 10:09
  • Прогон листа, как я помню, привязан к формату бумаги. И еще одна особенность - если принтер уверн, что бумага листовая, прогон он будет выполнять по умолчанию. Попробуйте в типе бумаги выставить рулонную подачу, либо с перфорацией (сейчас уже навскидку не скажу, как именно называется эта настройка)


    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт.
    Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    21 декабря 2009 г. 12:00
    Модератор
  • пробывал, все без изменений...один раз получилось, когда я запустил старую досовскую программу, которая бланки выпускает на принтер, вот после ее печати в принтер прописывается esc последовательность(котоую я не могу понять) и принтер,  пока его не выключишьпечатает без прогона
    31 декабря 2009 г. 4:35