Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.10;
Скачать: CL | DM;

Вниз

И опять про печать...   Найти похожие ветки 

 
@Ujin ©   (2003-02-14 23:35) [0]

При попытке напечатать EMF канву копированием на канву принтера получаю изображение очень маленьких размеров. Как получить толковый размер изображения?

Заранее спасибо.


 
Viktor Kushnir ©   (2003-02-16 08:20) [1]

Если я не ошибаюсь то рахмер таоей картинки Х на У пикселей. а размер канвы принтера где-то 300х300 точек и только на один дюйм. Надо при рисовани растягивать твой рисунок на всю канву принтера. Жаль команду не помню, но она точно есть.


 
Song ©   (2003-02-16 10:22) [2]

Надо отмасштабировать изображение.


 
Tano ©   (2003-02-16 14:09) [3]

Кусочек из моей проги. Надеюсь по названиям разберешься (сам подглядел на этом форуме).

var
FPrintOffsetPixels :TPoint;
PixX, PixY, LeftOffs, TopOffs :Integer;
FPixelsPerMMX, FPixelsPerMMY :Real;
begin
{$IFDEF WIN32}
FPrintOffsetPixels.X:=GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX);
FPrintOffsetPixels.Y:=GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY);
{$ELSE}
i:=Escape(Printer.Handle,GETPRINTINGOFFSET, 0, nil, @FPrintOffsetPixels);
{$ENDIF}
//Получаем количество пикселей, печатаемое на миллиметре бумаги
PixX:=GetDeviceCaps(Printer.Handle, LOGPIXELSX);
PixY:=GetDeviceCaps(Printer.Handle, LOGPIXELSY);
FPixelsPerMMX := 0.04 * PixX;
FPixelsPerMMY := 0.04 * PixY;
//заданый отступ в точках принтера
LeftOffs:=Round(FPixelsPerMMX*SheetFields.Scr.LeftField/ScreenMul);
TopOffs:=Round(FPixelsPerMMY*SheetFields.Scr.TopField/ScreenMul);
//ориентация
Printer.Orientation:=poLandscape;
//установки шрифта
Printer.Canvas.Font.Name:="Courier New";
Printer.Canvas.Font.Size:=10;
Printer.Canvas.Font.Color:=clBlack;
.........
end;


 
Tano ©   (2003-02-16 14:11) [4]

Тебе главное - получить разрешение принтера, а масштабировать прийдется самому.


 
BigDAN ©   (2003-02-17 09:34) [5]

Printer.Canvas.StretchDraw или я не понял вопроса...


 
REA ©   (2003-02-17 16:20) [6]

А какой у WMF размер в пикселах? Он же вроде векторный. Соответственно и размер в чем то девайсно-независимом должен быть...


 
Beel   (2003-02-17 20:15) [7]

Если метафайл сам рисуешь, то когда его будешь создавать, сделай так:
MetaFile:=TMetaFile.Create;
MetaCanvas:=TMetaCanvas.Create(MetaFile, printer.Handle);
если не сам, то
Printer.Canvas.StretchDraw..



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

Текущий архив: 2003.04.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
3-30225
DenKop
2003-03-17 23:07
2003.04.10
Русский текст в IB6.5


14-30523
Александр Г.
2003-03-21 09:07
2003.04.10
Хук на нажатие кнопок в НТ?


1-30375
Chlavik
2003-03-29 15:20
2003.04.10
Текст консольного приложения


1-30354
Psi-factor
2003-03-31 18:42
2003.04.10
Скроллинг в MEMO и RichEdit


1-30347
GIMLI
2003-03-30 23:03
2003.04.10
Изменение размеров...