Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про 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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо