Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.007 c
1-30380
dusty2
2003-03-29 18:57
2003.04.10
Как поменять цвет шрифта в консольном приложении


9-30206
HellTrooper
2002-11-10 13:30
2003.04.10
2D карта


14-30588
Интересующийся
2003-03-25 20:43
2003.04.10
Операции AND и OR


3-30224
Balu
2003-03-21 11:55
2003.04.10
Выбор базы данных


1-30409
volph
2003-03-30 19:57
2003.04.10
Регулярное выражение в делфи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский