![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про Font при выводе на принтер. [D6, XP]
vegarulez © (2007-11-13 21:47:00)Привет всем мастерам!
У меня такой вопрос - если выводить на принтер информацию таким способом:
http://delphibasics.ru/Printer.php
то тут я могу установить нужный фонт и размер шрифта, если же принтер медленный, то вывожу на него таким образом:
http://delphibasics.ru/AssignPrn.php
И тут возникает вопрос, можно ли установить нужный размер и нужный фонт шрифта для 2-ого варианта печати, чтобы не рисовать на холсте и не передавать на принтер рисунок, который много весит, как это сделано в 1-ом варианте.
vegarulez (2007-11-14 15:36:00) [1]Так у меня он USB и я посылаю на принтер по умолчанию и он печатает.
При графическом выводе там получаются на принтер идут мегабайты(1,5 - 2 мб), при AssignPrn - на принтер идут килобайты(2-3 кб).
guav © (14.11.07 15:16) [5]
А у тебя нет какого нить примерчика как с помощью ExtEscape передать на USB порт комманду?
Сергей М. (2007-11-14 15:19:00) [2]
> как из под делфа передавать ему эти ESC команды?
WritePrinter ?
guav (2007-11-14 15:16:00) [3]https://msdn2.microsoft.com/en-us/library/ms535786.aspx или ExtEscape PASSTHROUGH или открыть порт принтера и писать туда.
Anatoly Podgoretsky (2007-11-14 15:05:00) [4]> vegarulez (14.11.2007 15:03:03) [3]
Для этого надо уйти от графического вывода в сторону текстового, когда TextFile просто посылается на LPTn
Как было сказано отказаться от AssignPrn
vegarulez (2007-11-14 15:03:00) [5]Johnmen © (13.11.07 22:47) [1]
Да у принтера имеется очень большая внутренняя система комманд. Но вопрос как из под делфа передавать ему эти ESC команды?
подскажите...
guav (2007-11-14 00:11:00) [6]Печать через AssignPrn то же средствами GDI, а не напрямую через принтер, в этом можно убедится, изучив реализацию в Printer.pas. Там, если проследить, в конце окажется вызов Windows.TextOut.
Изменения шрифта для Printer.Canvas повлияет и на результат печати через Printer.pas (нет принтера проверить, но вроде так). Медленность первого способа свидетельствует о неправильной (неоптимальной) работе с Printer.Canvas.
Печать текста напрямую а не через DC действительно может быть быстрее (для старых матричных принтеров особенно), но это делается не через AssignPrn в Delphi.
Johnmen (2007-11-13 22:47:00) [7]Насчет нужного не знаю, но можно. Если, например, принтер понимает систему команд ESC.