Форум: "Система";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
ВнизУрезать 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.018 c