Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

Загнулась кисть канвы принтера   Найти похожие ветки 

 
Danja12   (2006-07-06 09:19) [0]

При печати полигонов со стилем кисти отличным от bsSolid или bsClear заливка всегда одна и та же (непонятно какая). При этом на изображение не влияют также: CopyMode, Brush.Color, Brush.Bitmap. Хотя на экране все нормально, а процедура вывода информации на экран и на принтер одна и таже. Но Канвы то разные... Код практически не менялся, а вот на машине ПО обгрейчивалось, браузеры и т.д. Если кто сталкивался, помогите. Заранее благодарен.


 
MBo ©   (2006-07-06 10:16) [1]

это фундаментальная проблема - узорные кисти используют разрешение устройства, при этом 8 пикселов на экране - нормально, а на лазернике с 600dpi - сливаются.


 
Danja12   (2006-07-06 11:33) [2]

Да, проблема то втом, что аппаратная часть не менялась, и какое то время назад все работало. Тем паче, что программа стоит на десятках рабочих мест с разными (струйными и лазерными) принтерами. И все было нормально. Сейчас провел эксперимент: откопал exe-шник 2003 г. запустил - глюк присутствует, хотя в 2003 заведомо все работало. Т.е. дело в Виндах или каких либо библиотеках. Все равно, спасибо за ответ. Я редко здесь бываю, но каждый раз, первый ответ Ваш, еще раз спасибо.


 
MBo ©   (2006-07-06 11:57) [3]

>Т.е. дело в Виндах или каких либо библиотеках.
Возможно, драйвер принтера поддерживал правильное рисование узорных кистей, а теперь сменился.


 
Danja12   (2006-07-06 12:11) [4]

>Возможно, драйвер принтера поддерживал правильное рисование узорных кистей, а теперь сменился.

Сразу у всех? Я в чудеса такого порядка не верю. А вот в то что вышел какой-нибудь новый DirectX, и все его тут же поставили - верю. Причем лично наблюдал такую картину: приношу свой проект на новенький ноутбук в организацию, там компилирую, печатаю - все Ок. Через пару дней его работы в сети, он печатает как и остальные. Кто и что на него ставил отследить затруднительно - раздолбайство в бюджетных контторах российской глубинки то еще.
Вопрос: а не хранится ли информация о кистях где-нибудь отдельно? Я dll-ки и шрифты просто пишу в каталог запуска и не имею никаких проблем, а в реестр никогда ничего не пишу. Вот бы и с кистями файлик таскать вместе с exe-шником.


 
MBo ©   (2006-07-06 12:25) [5]

Ну не знаю. С принтером у меня опыт минимальный.
Для вывода картинок с узорными кистями использовал растяжение картинки StretchBlt, а также писал когда-то свою процедуру вывода заштрихованных многоугольников.


 
Danja12   (2006-07-06 13:58) [6]

У меня картографический редактор. Печать идет в точном масштабе (очень точном :) Стрейчи впринципе использовать нельзя. Штриховки, поначалу, использовались для печати карт в черно-белом варианте. Специально держались как минимум два цветовых набора: цветной для работы и ч\б для печати "оперативных выкопировок". Впоследствии штриховки использовали и в цвете: меньше чернил, меньше аляповатости на экране. Ну, на экране то, и сейчас все нормально, а некоторое время не печатали, и вдруг глюк. Софт (мой) все время корректируется, добавляются новые функции, которые требуются начальству. Но систему печати как написал один раз, так больше и не трогал. Удачная получилась, много удачней чем в Автокаде, для карт по крайней мере.
    А какова основная идея своей процедуры вывода заштрихованных многоугольников, если это не технологический секрет и не коммерческая тайна? Я то стандартными методами канвы обходился до этого. Но сейчас заказали для линейных объектов нестандартные типы линий - произвольные как в Автокаде. Может и площадные самостоятельно обрабатывать.

Извиняюсь что так много. Редко когда меня инструментарий так достает, но вот сейчас, действительно прижало.


 
MBo ©   (2006-07-06 14:20) [7]

>А какова основная идея своей процедуры вывода заштрихованных многоугольников

По набору вершин строится регион CreatePolygonRgn
Для графического контекста устанавливается регион отсечения SelectClipRgn
Далее просто рисование линий (наклонных или каких нужно) в ограничивающем прямоугольнике региона (GetRgnBox) с заданным шагом (рассчитывается из dpi)


 
danja12   (2006-07-06 15:08) [8]

Да, действительно. Я этот метод использую для впечатывания куска карты в какой-либо документ. Надо будет попробовать. Не скажется ли, вот только, на скорости отрисовки. Иногда приходится оперировать десятками и сотнями тысяч объектов. С другой стороны, больше чем на А3 не печатаем, а на больших масштабах (1:500, 1:100) объектов меньше десятка.
      Спасибо. Как глоток свежего воздуха, в смысле, пообщаться с умным человеком. А то у меня периодически возникает ощущение, что у нас в городе я - единственный программист. Остальные либо только базы данных, либо то, что удается в визуальной среде натаскать, не залезая в код, либо уж совсем "крутые хакеры", которым не интересны подобные проблемы.


 
danja12   (2006-07-06 16:18) [9]

Кстати, пробовал печатать с меньшим разрешением и 300 и 150 и 75. Те же яйца, только в профиль. Результат стабильный, отличающийся от разрешения в 600, но, увы, неверный, а жаль :(



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

Форум: "Основная";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.05 c
1-1152169596
RDS
2006-07-06 11:06
2006.08.20
Кнопка приложения на панели задач


15-1153553033
Pazitron_Brain
2006-07-22 11:23
2006.08.20
Посоветуйте КПК


1-1152527073
Calibr
2006-07-10 14:24
2006.08.20
Сообщения чужого окна


3-1150353422
s_t_d
2006-06-15 10:37
2006.08.20
Отображение длинных текстов в DBGrid


4-1145334498
Elen
2006-04-18 08:28
2006.08.20
OPC Server





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский