Главная страница
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.018 c
9-30201
APTEMKA
2002-11-05 00:45
2003.04.10
Коллизия в 3D


1-30350
Intell
2003-03-31 16:00
2003.04.10
Как в PopupMenu добавить ProgressBar?


1-30396
Intell
2003-03-27 07:42
2003.04.10
Как создатькаталог, если он не существует?


3-30244
Yura88
2003-03-20 13:28
2003.04.10
Как подключить файл DBF (фокс) к гриду+навигатору на форме?


3-30315
Горец
2003-03-24 01:51
2003.04.10
Связь БД с Excel...