-
Как научить Винду понимать что такое рулон бумаги в матричном принтере? К сожалению в драйвере принтера нет настроек, обеспечивающих такой тип печати (без "выплевывания" бумаги), поэтому после выполнения посланного на печать задания он настойчиво пытается размотать весь рулон. Может есть какое средство (программа, код, что нибудь другое), что может решить проблему?
Принтер установлен как сетевой на компьюере с Win 2003.
-
не посылать в печатаемом документе символ конца страницы ("зеркало венеры")
-
А каким образом это реализовать практически?
-
> ПЛОВ (11.06.2008 16:46:00) [0]
Печатать в файл.
-
> Anatoly Podgoretsky © (11.06.08 17:00) [3]
???
К сожалению нужно именно на бумагу. И именно на рулонную. Объем информации очень большой, и она содержит в себе не только строки текста, но и графику.
-
Винда специально не "умеет" печатать в текстовом режиме. Любой принтер в ней описан как лист, на котором РИСУЮТ. Поэтому печатать как в ДОСе или Фаре (который лезет на принтер мимо винды) не выйдет, разве что напрямую через порт.
Всякие команды (ESC/p или типа того) тоже нужно посылать непосредственно в порт или писать в текстовик для фара.
-
> ПЛОВ (11.06.2008 16:59:02) [2]
А я не знаю как ты печатаешь, стандартными средствами Дельфи - AssignFile(F, 'LPT1');
-
> К сожалению нужно именно на бумагу.
Ты не понял открой файл с именем PRN и вперед пока бумага/рулон/ есть
-
>Anatoly Podgoretsky © (11.06.08 17:04) [6]
>А я не знаю как ты печатаешь, стандартными средствами Дельфи - AssignFile(F, 'LPT1'
Этого недостаточно - будут вместо символов печататься квадратики
-
> [8] MsGuns © (11.06.08 17:05)
Можно поподробне??
-
> AssignFile(F, 'LPT1');
Это будет работать как построчная печать текста?
-
> MsGuns © (11.06.08 17:05) [8]
Может есть пример какой чтобы без квадратиков? :)
Я вообщем-то нашел в Сети какой-то код для построчной печати (и помню как-то давненько весьма успешно его использовал на Вин 98 совместно советским матричным монстром формата А3), но ни на ХР, ни на 2003 код не работает :(
-
>@!!ex © (11.06.08 17:06) [9]
>Можно поподробне??
Большинство матричных принтеров понимают только "досовскую" кодировку.
-
это потому что код, видимо, напрямую выводит данные в порт, что в ХРеновине запрещено. Выход один - запускать этот код из-под Ring0, модифицировав GDT через
\Device\PhysicalMemory
. Я где-то на форуме приводил урлос на одну интересную статейку...
-
в смысле, я про то что
> ни на ХР, ни на 2003 код не работает :(
-
> Большинство матричных принтеров понимают только "досовскую"
> кодировку
Т.е. будет достаточно перевести текст в такую кодировку?
> Renegat
Нет, код работает с клоном TPrintera. Никаких Ring0 там нету :)
-
> MsGuns (11.06.2008 17:05:08) [8]
Ну так файл должен быть в соответствующей кодировке, поддерживаемый принтером. Обычно 866
-
> ПЛОВ (11.06.2008 17:07:10) [10]
Это будет работать как поток байт на порт.
-
У меня есть юнит, который умеет читать и писать на LPT. Могу дать, если надо.
-
Разобрался. Чего-то типа такого работает, правда еще осталось разобратся с кирилицей :)
var
F : TextFile;
begin
AssignFile(F,'LPT1');
Rewrite(F);
Writeln(F,'Hello');
CloseFile(F);
end;