Форум: "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.008 c