Главная страница
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.017 c
3-30232
Surgeon
2003-03-20 17:16
2003.04.10
Доступ к .mdb без изменения внешних параметров


14-30606
Tornado
2003-03-26 11:06
2003.04.10
Письмо Деду Морозу.


4-30655
tesd
2003-02-11 14:54
2003.04.10
Ассигн выполнения консольной программы


14-30595
acsoft
2003-03-25 06:31
2003.04.10
Создать zip-архив


1-30427
Duke DEE
2003-03-26 19:26
2003.04.10
Создание компонентов в RunTime и дальнейшая работа с ними??