Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
1-30392
Павел
2003-03-30 09:16
2003.04.10
Stretch неработает?!


3-30247
galexis
2003-03-20 12:33
2003.04.10
SELECT из большого числа таблиц


3-30248
Ghost_
2003-03-20 17:30
2003.04.10
Full dBASE expressions not supported


7-30627
AGGRESSOR
2003-02-04 15:08
2003.04.10
Объем видеопамяти


8-30476
Lestat
2003-01-05 23:38
2003.04.10
Как в tcanvas перерисовывать отдельные части экрана.




   Наверх