Fórum Imprimir grafico TeChart maior #408402
10/10/2011
0
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
Curtir tópico
+ 0
Responder
Posts
11/10/2011
Gustavo Bretas
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;
Responder
Gostei + 0
11/10/2011
Gustavo Bretas
há, declara a unit Printers na uses!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)