![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача параметров принтеру
Только начавший © (2006-01-15 21:20:00)Проблемма в общих словах:
Вывожу на принтер Memo.Text
Каким образом можно передать принтеру Memo.Font.Size и Memo.TFont."Шрифт"?
Вывожу на принтер следующим образом:
For i:= 0 to Memo.Lines.Count - 1 do
Writeln(Prn, Memo.Lines[i];
А проблема, собственно, в выравнивании столбцов
Спасибо
Германн (2006-01-17 15:55:00) [1]2 evvcom © (17.01.06 08:46) [9]
> Ностальгия? :)
Отнюдь. Жизненно важная потребность. За которую платят деньги.
evvcom (2006-01-17 08:46:00) [2]
> Как раз сейчас отлаживаю программу для MSDOS 6.22.
Ностальгия? :)
Германн (2006-01-17 03:41:00) [3]Да был не совсем прав. :( Увы.
Как говорится, у кого чего болит, тот о том и говорит.
Как раз сейчас отлаживаю программу для MSDOS 6.22.
Графика там конечно есть, но только та, которую я отправил на принтер соответствующей ESC-командой.
Ещё раз "звиняйсь" автору сабжа. :(
evvcom (2006-01-16 14:16:00) [4]
> Leonid Troyanovsky © (16.01.06 13:45) [6]
Вообще-то была фраза по поводу "зашитости шрифтов". И то что Writeln перекочевала в Win-систему из ДОСа, совсем не значит, что она ДОСовской и осталась. Точнее, наверное, будет, что перекочевала из стандарта Паскаля, была она в ДОСе, осталась и в винде. Наверное, и в *никсах в Паскале есть, так как какие только паскали я не видел, везде она была.
P.S. Я называю нечто ДОСовским в том случае, если это нечто требует ДОСа, хотя бы его эмулятора.
Leonid Troyanovsky (2006-01-16 13:45:00) [5]
> evvcom © (16.01.06 09:34) [4]
> Не согласен с данным заявлением. Даже через якобы ДОСовский
> Writeln печать осуществляется в канву принтера и соответственно
> в графике.
Что значит "якобы ДОСовский" ?
Графическую природу вывода writeln на принтер никто и не скрывал.
Ну, а если нужно нечто иное, то Escape, ExtEscape etc., или вывод
(Winspool.WritePrinter) с generic/text only driver.
--
Regards, LVT.
Только начавший (2006-01-16 12:42:00) [6]> evvcom © (16.01.06 09:34) [4]
Спасибо
evvcom (2006-01-16 09:34:00) [7]
> Принтер не обязан знать все шрифты
Я тут халтурил на днях, пришлось с принтером разобраться. Не согласен с данным заявлением. Даже через якобы ДОСовский Writeln печать осуществляется в канву принтера и соответственно в графике.
2Афтар:
Прежде чем использовать Writeln, я так понимаю, было AssignPrn из Printers? Значит мои предположения верны. При инициализации модуля Printers происходит создание объекта TPrinter, которого можно получить через функцию Printer, ну и менять любые парметры в любое время. Например,
Printer.Canvas.Font.Pitch := fpFixed;
перед любым Writeln и возвращать назад
Printer.Canvas.Font.Pitch := fpDefault;
если моноширинность больше не нужна.
Только начавший (2006-01-16 09:07:00) [8]Хотелось бы иметь возможность задать принтеру моноширинный шрифт (независимо от названия) и его размер. И возможно ли программно узнать "список" шрифтов принтера (не шрифты описанные в системе)?
Германн (2006-01-16 02:32:00) [9]2 Только начавший (15.01.06 21:20)
Принтер не обязан знатьвсе шрифты, которые есть у тебя в системе. В нём могут быть, а могут и не быть зашиты какие-то шрифты. Ими он и печатает, выполняя ДОСовскую функцию Writeln. Установки параметров этого шрифта можно выполнить зная ESC-команды данного принтера.
Если же хочется, чтобы напечатанное походило на видимое на экране (Wis'i'wig), то Плохиш © (16.01.06 01:27) [1] дал "неплохой" совет:). Но есть ещё масса вариантов.
Плохиш (2006-01-16 01:27:00) [10]QuickReport