пЕЧАТЬ в с++ бИЛДЕРЕ
У меня такая проблема: хочу распечатать форму со всем что на ней. Вообще обычная форма белого цвета имитирут лист бума на котором несколько мемо и bitmap. Делаю:
FormD1->PrintScale =poProportional;
form1->Print();
И ведётся распечатка, но качество как факс. Пробовал
FormD1->PrintScale = poNone;
тогда печатает красиво, но очень маленькие размеры получились.
Пробовал:
Tprinter Printer()
но с ним почемуто картинка маленькая а текст нормально размер настроить получается.
Может знаете как нормально отпечатать.
Огромное Спасибо.
Евгений
Не может быть что никто не сталкивался.
У меня тоже были проблемы с печатью формы через form->Print(), поэтому сделал так:
TPrinter *printer=Printer();
Graphics::TBitmap *gr=new Graphics::TBitmap();
try{
gr=form->GetFormImage();
//gr->PixelFormat=pf24bit;//хм.. возможно для простой печати это не нужно (у меня там еще интенсивность цветов менялась), но если будут проблемы включи
//тута подготовим рект для вывода на принтер
double prop=(double)gr->Width/(double)gr->Height;
int printWidth=(double)printer->PageWidth*0.8;
int printHeight=(double)printWidth/prop;
int pr_top=printer->PageHeight*0.1;
int pr_left=printer->PageWidth*0.1;
TRect printRect=Rect(pr_left,pr_top,printWidth+pr_left,printHeight+pr_top);
//тут еще можно картинку обработать
...
printer->BeginDoc();
printer->Canvas->StretchDraw(printRect,gr);
printer->EndDoc();
}__finally{
delete gr;
}
}
У меня тоже были проблемы с печатью формы через form->Print(), поэтому сделал так:
TPrinter *printer=Printer();
Graphics::TBitmap *gr=new Graphics::TBitmap();
try{
gr=form->GetFormImage();
//gr->PixelFormat=pf24bit;//хм.. возможно для простой печати это не нужно (у меня там еще интенсивность цветов менялась), но если будут проблемы включи
//тута подготовим рект для вывода на принтер
double prop=(double)gr->Width/(double)gr->Height;
int printWidth=(double)printer->PageWidth*0.8;
int printHeight=(double)printWidth/prop;
int pr_top=printer->PageHeight*0.1;
int pr_left=printer->PageWidth*0.1;
TRect printRect=Rect(pr_left,pr_top,printWidth+pr_left,printHeight+pr_top);
//тут еще можно картинку обработать
...
printer->BeginDoc();
printer->Canvas->StretchDraw(printRect,gr);
printer->EndDoc();
}__finally{
delete gr;
}
}
Thanks. Может кто нибудб может кинуть пример как открыть Ворд и скопировать в Буфер картинку.
Пробоую
LogoWord->Documents->Open( Shablon, (OleVariant)EmptyParam, (OleVariant)EmptyParam, (OleVariant)EmptyParam, (OleVariant)EmptyParam, (OleVariant)EmptyParam, (OleVariant)EmptyParam, (OleVariant)EmptyParam, (OleVariant)EmptyParam, (OleVariant)EmptyParam, (OleVariant)EmptyParam, (OleVariant)EmptyParam );
Но неполучается. Заранее спасибо.