Ver Mensaje Individual
  #32  
Antiguo 09-10-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.467
Reputación: 21
newtron Va camino a la fama
A ver....

O yo no me entero o tú no entiendes lo que te digo. Intentaré explicarme con un ejemplo. Esto que te pongo a continuación es usando un componente que se llama RolePDF y que se maneja exactamente igual que el objeto printer con lo que todo, o casi todo, tu código te serviría, solo que tendrías que iniciar el canvas con este componente.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
PDF: TrolePDF;
begin
  PDF:=TrolePDF.Create(nil);
  PDF.BeginDoc ;
  PDF.FileName := 'PRUEBA.PDF';
  PDF.AutoLaunch := True;
  PDF.BeginDoc ;

  SetBKMode(PDF.Canvas.Handle, TRANSPARENT);
  PDF.Canvas.Brush.Color := 16777215;
  PDF.Canvas.Brush.Style := bsSolid;
  PDF.Canvas.Pen.Style := psSolid;
  PDF.Canvas.Pen.Width := 1;
  PDF.Canvas.Pen.Color := 0;

  PDF.Canvas.FillRect(Rect(144,114,211,179));
  PDF.Canvas.Rectangle(144,114,211,179);

  PDF.Canvas.Brush.Color := 9868950;
  PDF.Canvas.FillRect(Rect(227,114,294,179));
  PDF.Canvas.Rectangle(227,114,294,179);

  PDF.Canvas.Brush.Color := 16777215;
  PDF.Canvas.FillRect(Rect(310,114,377,179));
  PDF.Canvas.Rectangle(310,114,377,179);

  PDF.EndDoc ;
  PDF.Free;

end;

Este ejemplo lo que hace es crear tres cuadros rellenos y ejecutar el visor de pdf para abrirlo de forma automática.

No sé si esto resuelve tu duda.
Saludos
__________________
Be water my friend.
Responder Con Cita