Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
ВнизПомогите с печатью метафайла Найти похожие ветки
← →
Анонимщик (2002-02-14 10:54) [0]Пытаюсь распечатать окно (форму) с помощью метафайла. Вот код:
int originalPrinter100mmLeftMargin = 2540 * GetDeviceCaps(Printer()->Handle, PHYSICALOFFSETX)/ GetDeviceCaps(Printer()->Handle, LOGPIXELSX);
int originalPrinter100mmTopMargin = 2540 * GetDeviceCaps(Printer()->Handle, PHYSICALOFFSETY)/ GetDeviceCaps(Printer()->Handle, LOGPIXELSY);
Printer()->BeginDoc();
TMetafile* pMetafile = new TMetafile();
pMetafile->MMWidth = myForm->width100mm;
pMetafile->MMHeight = myForm->height100mm;
pMetafile->Inch = 1440;
TMetafileCanvas* pMCanvas = new TMetafileCanvas(pMetafile, 0);
myForm->PaintTo(pMCanvas->Handle, 0, 0);
pMCanvas->Free();
//pMetafile->Width *= 2.54 * 100 / Screen->PixelsPerInch;
//pMetafile->Height *= 2.54 * 100 / Screen->PixelsPerInch;
float leftMargin = GetDeviceCaps(Printer()->Handle, LOGPIXELSX)* myForm->leftMargin100mm/2540;
float topMargin = GetDeviceCaps(Printer()->Handle, LOGPIXELSY)* myForm->topMargin100mm/2540;
Printer()->Canvas->Draw(leftMargin, topMargin, pMetafile);
pMetafile->Free();
Printer()->EndDoc();
Печатается на разных принтерах с разными размерами. Те две строки, что закомментированы, на некоторых из них помогают привести размеры к обычным. Мне нужно, чтобы печатаемая форма была тех же размеров, что и на экране. Только, пожалуйста, не ссылайтесь на функцию Form.Print.
Что же не так?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c