Конференция "Прочее" » Печать на матричном принтере
 
  • MsGuns © (11.06.08 22:20) [20]
    >Anatoly Podgoretsky ©   (11.06.08 18:42) [16]
    >Ну так файл должен быть в соответствующей кодировке, поддерживаемый >принтером. Обычно 866

    Ну да. Только вот как мне "заставить" при выгрузке в текстовый файл, например, из мемо, переключить страницу 1251 на cp866 ?
  • Anatoly Podgoretsky © (11.06.08 22:56) [21]
    > MsGuns  (11.06.2008 22:20:20)  [20]

    Зачем переключать, а CharToOem для чего тогда
  • Anatoly Podgoretsky © (11.06.08 22:58) [22]
    > ПЛОВ  (11.06.2008 21:43:19)  [19]

    Смотри предыдущее сообщение.
    А работать просто обязано, здесь же подсистема печати не используется, простой вывод в файл с именем 'LPT1' as is
  • Германн © (12.06.08 00:28) [23]
    Почти оффтоп, но не совсем.
    Сколько я усилий затратил 9 лет назад, чтобы QR печатал наряды для пожарной охраны одного из Ижевских военных заводов на рулоне
    > без "выплевывания" бумаги
  • ПЛОВ © (12.06.08 11:19) [24]

    > Зачем переключать, а CharToOem для чего тогда

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

    У меня еще вот такой вопрос возник - можно ли каким-то образом "объяснить" принтеру что поток данных не нужно преобразововать в текстовые символы, а печатать как "кусок" изображения? Как бы та же построчная печать, только фрагментов изображения, или это я уже лихо загнул? :)
    Было бы как раз то что нужно - я и сам смог бы нарисовать все нужные и не нужные символы, и вообще все что только угодно. И вопроса с кодовыми страницами бы не возникло...
  • MsGuns © (12.06.08 12:08) [25]
    >ПЛОВ ©   (12.06.08 11:19) [24]
    >Мне оно не помогло - вместо кириллицы печатается каша из латиницы и спецсимволов.

    Чем (какой программой) печатаешь ?

    >Но зато какие-то символы способны включать курсив, полужирный шрифт и т.п.
    >У меня еще вот такой вопрос возник - можно ли каким-то образом >"объяснить" >принтеру что поток данных не нужно преобразововать в текстовые >символы, а печатать как "кусок" изображения? Как бы та же построчная печать, >только фрагментов изображения, или это я уже лихо загнул? :)

    При выводе на матричный принтер "нарямую" графики в понимании винды нет. Все надо самому посредством вставки в отправляемые на принтер (порт) строки esc-последовательности, которые достаточно подробно описаны в доке к принтеру (т.н. система команд Esc/p, которая понимаема большинством принтеров, в т.ч. не Эпсон, хотя есть исключения, насколько помню в старовских и микролай-принтерах, у которых есть свои системы команд). Т.е. схема примерно такова:

    <Esc-команды для установки режимов печати текста><Текст1>,
    <Esc-команды для установки режимов печати текста><Текст>,
     ...
    <Esc-команды для установки режимов графики>,<Графика,заданная с помощью двоичных кодов-байтов >
     ...

    При этом нужно помнить, что перевод каретки, прогон листа и т.д. принтером автоматически не делается (если не было установлено ранее теми же Esc-командами) - все нужно "ручками". Другими словами, принтер воспринимает входные данных просто как бесконечную последовательность байтов, часть из которых он распознает как Esc-команды, а часть печатает.

    Перемешивать текст и графику весьма сложно и без крайней нужды не советую.

    >И вопроса с кодовыми страницами бы не возникло...

    Его не может не возникать, т.к. большинство матричных принтеров ничего не знают про кодовые страницы винды, у них собственные таблицы, "зашитые" производителем в ПЗУ либо загружаемые программно теми же Esc-последовательностями.
    Для "нормальной" печати текста следует сам текст из кодировки w1251 переводить в cp866 (для русской раскладки), и только после этого посылать символы (строки) в порт принтера.
  • ПЛОВ © (12.06.08 12:10) [26]
    Спасибо! Нашел целый воз инфы, в том числе по командам и даже с примерами. Буду копать дальше...
  • MsGuns © (12.06.08 12:25) [27]
    Вот сейчас вспомнил, что Стар вроде полностью эпсон-совместимый. А вот микролайны (были такие дешевые широкие принтеры, кстати весьма неплохие) - там точно что-то было свое ;)
  • ПЛОВ © (12.06.08 12:35) [28]
    У меня Панасоник. Думаю он тоже совместимый )
  • AndreyV © (12.06.08 12:38) [29]
    > [27] MsGuns ©   (12.06.08 12:25)
    > А вот микролайны (были такие дешевые широкие принтеры, кстати
    > весьма неплохие) - там точно что-то было свое ;)

    Вроде переключатель был IBM/Epson.
  • VICTOR_ (12.06.08 12:44) [30]
    С кириллицей может помочь - перед печатью каждой формы использовать последовательность символов (в шестнадцатиричном представлении)
    1B 74 11
    То есть данную последовательность символов надо посылать перед печатью всего остального.

    Просьба также уточнить модель принтера. Возможно нужно просто обновить драйвер через интернет - и в нем будет поддержка рулонной печати.
    Работал с чековым (матричным принтером) Epson TM-U220D
    Там из Windows печатало без прогона рулона
    Еще хорошая вещь - принтеры EPSON TM-88 и совместимые с ними (чековые)

    Еще одно замечание - при работе чековыми принтерами и печати из под Windows используйте только LPT - модели, а не USB и тем более не COM. Скорость печати отличается в разы.
  • ПЛОВ © (12.06.08 12:53) [31]

    > 1B 74 11

    Было бы интересно узнать что это за команды?
  • Alien1769 © (12.06.08 12:55) [32]

    >
    > > 1B 74 11
    >
    > Было бы интересно узнать что это за команды?

    Esc последовательность перевода печати в альтернативную кодировку
  • Anatoly Podgoretsky © (12.06.08 13:22) [33]
    > ПЛОВ  (12.06.2008 11:19:24)  [24]

    Так это, а какой у тебя шрифт(язык) установлен в принтере по умолчанию. Проверь вот это.
  • Anatoly Podgoretsky © (12.06.08 13:25) [34]
    > MsGuns  (12.06.2008 12:25:27)  [27]

    Зато сейчас они пишут, мол система команд совместима с Epson - именно так, без указания модели, поскольку сами эпсоны не совместимы и выбрать драйвер в Виндоус это проблема, нет драйвера Epson
  • Anatoly Podgoretsky © (12.06.08 13:26) [35]
    > AndreyV  (12.06.2008 12:38:29)  [29]

    Был, но при этом не понимал ряд команд, скажем в режиме Epson, но при этом почему то понимал не существующие для эпсон команды IBM
  • Anatoly Podgoretsky © (12.06.08 13:27) [36]
    > VICTOR_  (12.06.2008 12:44:30)  [30]

    > используйте только LPT - модели, а не USB

    Какой то у тебя печальный опыт.
  • VICTOR_ (12.06.08 13:48) [37]

    > Какой то у тебя печальный опыт.
    >

    Возможна проблема была в драйвере, потому что насколько я понял - печать через USB эмулировалась как печать через COM. Использовалась модель, совместимая EPSON TM-88.
    Пересмотрел все варианты этой модели (COM, USB, LPT)  и на основании собственного опыта пришел к такому выводу. Имеется ввиду именно печать через Windows-драйвер.
    P.S. А многие производители материнских плат уже не комплектуют их LPT-портом :(
  • AndreyV © (12.06.08 13:51) [38]
    Вот на перфорированной бумаге, в соответсвующем режиме, прокрутка идёт только до конца страницы.
    Может посмотреть на принтере переключатели какие-нибудь.
  • Anatoly Podgoretsky © (12.06.08 14:11) [39]
    > VICTOR_  (12.06.2008 13:48:37)  [37]

    Ну так и надо жаловаться на СОМ а не на USB, у USB2 скорость может достигать 60мб/сек, LPT даже самые скоростные так не могут. Это же половина скорости 1 гигабита.
 
Конференция "Прочее" » Печать на матричном принтере
Есть новые Нет новых   [134437   +29][b:0][p:0.001]