![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Печать на матричный принтер из RichEdit
lightix © (2004-08-11 09:05:00)Как из RichEdit выполнить печать на матричный принтер без учета шрифта (т.е. печатать встроенным шрифтом принтера, к примеру таким как бы я напечатал из доса copy имя_файла LPT1)?
При этом используя виндовые средства.
GrayFace (2004-08-11 14:52:00) [1]Очень черезжопный, но очень простой путь: записать в файл и сделать %SystemRoot%\system32\NOTEPAD.EXE /p [filename]
По-моему лучше напечатать все одним, но заранее выбраным шрифтом - это очень просто.
Анатолий (2004-08-11 12:14:00) [2]
> Как из RichEdit выполнить печать на матричный принтер без
> учета шрифта (т.е. печатать встроенным шрифтом принтера,
> к примеру таким как бы я напечатал из доса copy имя_файла
> LPT1)?
> При этом используя виндовые средства.
Вашему принтеру все равно, какая оп. система у вас на компьютере. Матричный принтер может печатать в двух режимах: текстовом и графическом.
Текстовый режим стандартный, когда во входной буфер принтера поступают байты-коды символов в кодировке ASCII. Принтер из зашитой в него таблицы печатает соответствующие кодам символы. Размер шрифта можно задать на принтере. Это DOS.
В графический режим принтер переводится спецальными упр. кодами - Escape - командами. После такой команды, байт-коды интерпретируются как координаты точечного изображения. Все стандарные драйвера Windows ваши символы преобразуют в такие рисунки и печатают их соотв. Т.е. шрифты принтера в этом процессе не принимают участия, соотв. нельзя задать их размер.
Итак, у вас два пути:
Печатать непосредственно в порт через hFile := CreateFile(..'LPT1'..);
WriteFile(hFile, AnsiToAscIIBuf(RichEdit1.Lines[i]..);
Не забудьте перекодировку в ASCII (AnsiToAscIIBuf надо написать самому :) ).
И убедитесь, что LPT1 - это не именованый канал спулера печати, а симв. линк на драйвер параллельного порта '\Device\Parallel0'.
Другой путь: стандартный спулер через функции API может печатать сырой ('RAW') поток данных на принтер. Это описано во многих FAQ по Дельфи. Насколькон он эфективен, проверьте сами.
Удачи.