Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: CL | DM;

Вниз

Урезать ClipRect канвы принтера   Найти похожие ветки 

 
danja   (2003-04-21 10:47) [0]

Не срабатывает Printer.Canvas.SetClipRect (Printer из QPrinters), точнее Printer.Canvas.ClipRect после этого возвращает новые значения, но рисование происходит и за пределами установленного прямоугольника. К сожалению не могу проверить на разных принтерах, у меня только лазерники HP: 6L, 6P и 2200. Если кто знает, подскажите, пожалуйста, решение или обходной путь. PS Программно не выводить графику в область полей я не могу - очень громоздкий и медленный пересчет.


 
MBo ©   (2003-04-21 10:51) [1]

попробуй SelectClipRgn или selectClipPath
на 6L работало.


 
danja   (2003-04-22 09:00) [2]

Спасибо, MBo. К сожалению не знаю как преобразовать QPrinters.Printer.Handle (QPaintDeviceH) или QPrinters.Printer.Canvas.Handle (QPainterH) в HDC - прямое :
HDC(QPrinters.Printer.Handle) не срабатывает. Попробовал Printer из Printers у которого Хендл нужного типа, все равно не получилось. Видимо проблема глубже. Попробую подрезать вывод графики или наложить сверху поля.


 
REA ©   (2003-04-22 10:01) [3]

Насчет Q не в курсе, а так SelectClipRgn и ExtSelectClipRgn рабтают везде где видел. А вот о свойствах (DeviceCaps кажется) принтеры часто врут.


 
danja   (2003-04-22 10:54) [4]

Спасибо, попробую еще раз. Насчет Q сам не совсем в курсе. Вроде как семейство новых модулей (Delphi and Kylix Cross-Platform Visual Component Library), где предоставлено больше возможности по сравнению с предыдущими. Но за неделю работы уже выловил множество глюков. Не знаю на что и грешить, то ли моя D6, то ли Win98, то ли вся связка в купе с железом. Но если GetDeviceCaps врет - даже и не знаю как вывести сложную (векторную) графику (проще говоря, карту) в заданную часть листа с хорошим разрешением и жестко заданным масштабом.


 
REA ©   (2003-04-22 11:49) [5]

Ну может они не все характеристи врут, а только то что относится к RASTERCAPS, а может и у меня руки кривые.


 
Proton ©   (2003-04-22 16:33) [6]

> Printer.Canvas.SetClipRect

> HDC(QPrinters.Printer.Handle) не срабатывает.

Printer.Canvas.Handle - это и есть hdc
или я недопонял?


 
danja   (2003-04-23 09:13) [7]

Спасибо огромное всем за проявленый интерес. Для Proton:
Printer.Canvas.Handle - это и есть hdc, но только в модуле Printers, а в QPrinters он QPaintDeviceH.
Для REA: действительно я сам пока не замечал вранья в основных характеристиках, другое дело что иногда размеры листа бумаги трактуются как полный лист, иногда с учетом внутренних полей принтера и т.д.
В любом случае все получилось с SelectClipRgn (еще один поклон MBo).



Страницы: 1 вся ветка

Текущий архив: 2003.07.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
11-7369
blackalex
2002-10-14 10:51
2003.07.03
Предложения по TMenu


1-7525
del
2003-06-21 23:37
2003.07.03
Как по хэндлу главного окна определить exeName?


1-7378
mox
2003-06-19 22:56
2003.07.03
GetAsyncKeyState


4-7753
Tenrai
2003-04-29 04:48
2003.07.03
Подключение визуального компонента к программе на WinAPI


1-7422
BillyJeans
2003-06-23 10:38
2003.07.03
Можно ли консольное приложение засунуть в трей?