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

Вниз

Печать TBitmap   Найти похожие ветки 

 
b_o_a   (2002-04-16 11:25) [0]

Здрасте всем!
Собственно сабж. Как?

Олег


 
kronprince   (2002-04-16 12:03) [1]

TPrinter.Canvas.Draw()


 
b_o_a   (2002-04-16 12:44) [2]

Yes.
Спасибо. Теперь другая проблема -- на экране он нормального размера, а печатается размером 1x1 см :)
tckb использовать StretchDraw то можно отмасштабировать, но масштабируется от размера 1x1 см... т.е. качество кошмарное.


 
b_o_a   (2002-04-16 13:27) [3]

Дело в том, что ширина рисунка ~640, а страницы ~ 4600.
Как их привести в соответствие?
StretchDraw-ом получается ну оооочень криво. Например там, где на экране был кружок, на принтере это тоже круг :) но из точек, размером по пол миллиметра :(


 
Song   (2002-04-16 13:32) [4]

Нужно вызывать АПИ: GetDeviceCaps() и в соответствии с этим масштабировать изображение.


 
b_o_a   (2002-04-16 13:53) [5]

Нужно вызывать АПИ: GetDeviceCaps() и в соответствии с этим масштабировать изображение.

В соответствии с чем? Размеры страницы в принтере я и так знаю -- Printer.PageWidth(Height). Но они ~ в 7 раз больше размеров картинки. Соответственно при масштабировании (StretchDraw) получается грубое умножение всех размеров на 7.

Избавится от этого можно только приведением размера картинки к размеру канвы принтера и её программным масштабированием или как-то по другому?


 
Song   (2002-04-16 14:00) [6]


Var ScaleX,ScaleY:Integer;
R:TRect;

....

With Printer Do
Begin
BeginDoc;
try
ScaleX:=GetDevicaCaps(Handle,logPixelsX) div PixelsPerInch;
ScaleY:=GetDevicaCaps(Handle,logPixelsY) div PixelsPerInch;
With BitMap1 Do R:=Rect(0,0,Width*ScaleX,Height*ScaleY);
Canvas.StretchDraw(R,BitMap);
finally
EndDoc;
end;
End;


 
b_o_a   (2002-04-16 14:19) [7]

О, спасибо! Единстевенное чего мне не хватало -- PixelsPerInch чтобы вывести 1:1.
Но проблема не в этом -- на экране те же круги выглядят более гладкими... Это уже неизлечимо?


 
Song   (2002-04-16 14:24) [8]

Это артефакт из-за разности разрешения экрана (где Вы этот круг видите) и принтера. По крайней мере я не знаю как это излечить.


 
b_o_a   (2002-04-16 14:35) [9]

Ясно.

ок. Всем спасибо.



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

Форум: "Media";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-71018
Naik
2002-07-31 15:32
2002.08.22
Помогите чайнику разобраться с использованием BDE


7-71401
andrey_dn
2002-06-11 14:23
2002.08.22
Отлов ошибок в другой программе


7-71391
Alexander
2002-06-09 01:39
2002.08.22
Как изменить иконку для какого-либо диска в проводнике?


3-70963
НАРИК
2002-07-30 08:39
2002.08.22
создание программы


1-71234
V.Turecky
2002-08-11 17:41
2002.08.22
Диалог выбора значка...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский