Форум: "Система";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];
ВнизИ опять про печать... Найти похожие ветки
← →
@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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c