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

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

Не получается печать WMF и EMF файлов на черно-белом принтере [D6, Win2k]


Nikolai_S ©   (2002-12-12 15:11:00) 

При попытке печати WMF и EMF файлов на черно-белом принтере возникает следующая проблема: некоторые цвета (например красный и синий) преобразуются в белый цвет, а не в оттенки серого и потому не видны на бумаге. Как распечатать картинку без потерь цвета?


Nikolai_S   (2002-12-19 11:07:00) [1]

Я попробовал сделать так: нужный метафайл рисую на TBitmap с нужным разрешением и уже TBitmap печатаю. В результате - проблема с цветами решилась, но вот процесс печати естественно заметно замедлился, да и качество тоже хуже стало. Все-таки не сравнить - векторную графику печатать гораздо быстрее и печать более четкая. Жаль, что с прямой печатью метафайлов проблемы.....


Nikolai_S   (2002-12-16 16:51:00) [2]

Непонятное дело с этими метафайлами. Я пробую печатать этот файл из известной программы ACDSee - эффект один к одному!!! Но выдается еще какая-то ошибка печати. Но все равно рисунок распечатывается и тоже с потрей цветов. Вот только если из MS Word печатает без проблем. Что там этот микрософт наворотил?


Я   (2002-12-16 16:25:00) [3]

У меня было прикольнее, когда все печатается нормально кроме последних 2-3 сантиметров, а на экране все нормально.
Думал принтер (струйнике HP), но на лазерном тоже самое.


Nikolai_S   (2002-12-16 16:04:00) [4]

К сожалению, не могу проверить печать на других принтерах, т.к. у меня нет другого принтера (принтер HP Laser Jet 4).
А вот убирать цветность я уже пробовал - эффект тот же самый. Печатается на 100% также, как и цветная картинка. Те цвета, которые были например красными или синими - становяться белыми. Хотя когда вывожу на экран, то все рисуется как надо.


Феу   (2002-12-12 16:27:00) [5]

Если это конкретно метафайлова заморочка, то не знаю, если проблема принтера/драйверов, то можно руками убрать цветность:
function RgbToGray(RGBColor : TColor) : TColor;
var
Gray : byte;
begin
Gray := Round((0.30 * GetRValue(RGBColor)) +
(0.59 * GetGValue(RGBColor)) +
(0.11 * GetBValue(RGBColor )));
Result := RGB(Gray, Gray, Gray);
end;


Наверх

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