Imprimir grafico TeChart maior
Alguém poderia me dizer como fazer um gráfico do componente TeChart imprimir maior! Ele sai pequeno e centralizado gostaria de imprimir na página inteira.
Alguém sabe como fazer isso?
Obrigado
Alguém sabe como fazer isso?
Obrigado
Valdemi Ramos
Curtidas 0
Respostas
Gustavo Bretas
10/10/2011
Se vc for usar os dois, declare-os da seguinte forma.
function mtdImprimeGrafico(aGrafico : TChart; aOrientation : TPrinterOrientation1 = poPaisagem) : Boolean; overload; function mtdImprimeGrafico(aGrafico : TDBChart; aOrientation : TPrinterOrientation1 = poPaisagem) : Boolean; overload;
function mtdImprimeGrafico(aGrafico : TChart; aOrientation : TPrinterOrientation1) : Boolean;
var tmpH, tmpW, tmpWMargin, tmpHMargin : Longint; { margins }
OldOrientation : TPrinterOrientation;
begin
Screen.Cursor := crHourGlass;
OldOrientation := Printer.Orientation; // <-- save paper orientation
if aOrientation = poPaisagem then
begin
Printer.Orientation := poLandscape; // <-- Force Horizontal paper
end
else if aOrientation = poRetrato then
begin
Printer.Orientation := poPortrait; // <-- Force Horizontal paper
end;
try
Printer.Refresh;
Printer.BeginDoc; // <-- start printer job
try
Printer.Title := aGrafico.Title.Text.Text;
aGrafico.PrintResolution := 0;
// Calcula margem orizontal
tmpW := Printer.PageWidth;
tmpWMargin := Round(5.0 * Printer.PageWidth / 100.0); // <-- 5% margins
tmpW := Printer.PageWidth - 2 * tmpWMargin; // <-- left and right margins
tmpW := tmpW div 2; // half height for left and right charts
// Calcula Margem Vertical
tmpH := Printer.PageHeight;
tmpHMargin := Round(5.0 * tmpH / 100.0); // <-- 5% margins
tmpH := Printer.PageHeight - 2 * tmpHMargin; // <-- bottom and top margins
//
aGrafico.PrintPartial(Rect(tmpWMargin, tmpHMargin, tmpWMargin + 2 * tmpW, tmpHMargin + tmpH));
Printer.EndDoc; // <-- end job and print !!
except
on Exception do
Begin
Printer.Abort;
Printer.EndDoc;
Raise;
end;
end;
finally
Printer.Orientation := OldOrientation; { <-- restore paper orientation }
Screen.Cursor := crDefault; { <-- restore cursor }
end;
end;
function mtdImprimeGrafico(aGrafico : TDBChart; aOrientation : TPrinterOrientation1) : Boolean;
begin
Result := mtdImprimeGrafico(TChart(aGrafico), aOrientation);
end;GOSTEI 0
Gustavo Bretas
10/10/2011
há, declara a unit Printers na uses!
GOSTEI 0