Ver Mensaje Individual
  #6  
Antiguo 27-06-2006
Nelmiux Nelmiux is offline
Registrado
 
Registrado: jun 2006
Posts: 1
Reputación: 0
Nelmiux Va por buen camino
A mi me pasa lo mismo y se he visto que creando reportes con distintos reporteadores pues te imprime lo que tengas en el reporte pero en mi caso no necesito usar ni tablas ni bases de datos, solo quiero imprimir lo que esta en la form pero esta no cabe completamente en la panatalla y de una u otra forma solo me imprime lo que se ve en la pantalla, he tratado de copiar el canvas de la form a el de la impresora pero igual me imprime solo lo que se ve en pantalla, asi que probe una solucion mas simple e igual, probe tres cosas en general la ultima fue la de las canvas que tampoco me funciono (Los primeros codigos los encontre en el foro):

uno:
// Esta solo me imprime lo que se ve en pantalla en el momento que mando a imprimir

procedure TForm2.Button1Click(Sender: TObject);
begin
Form2.PrintScale:=poPrintToFit;
Form2.Print;
end;

dos:
//Esta me imprime el form desde el principio pero solo lo que cabria en una pantalla tomando desde el inicio del form pero entonces no me sale el final

procedure TForm2.Button1Click(Sender: TObject);
var
bi:TBorderIcons;
begin
// Antes de imprimir
Self.Color := clWhite;
Self.BorderStyle := bsNone;
bi := Self.BorderIcons;
Self.BorderIcons := [];

try
// Imprimir
Self.Print;
// Despues de imprimir....
Self.BorderIcons := bi;
Self.BorderStyle := bsSizeable;
Self.Color := clBtnFace;
finally
end;

tres:
//Esta me imprime la parte de la pantalla que se ve con barras de titulo y barra de desplazamiento, algo que tampoco quiero que salga pero es parte del canvas de la form asi que si or lo menos ubiera logrado imprimirla completa seria algo despreciable al final

procedure TForm2.Button1Click(Sender: TObject);
var
printDialog : TPrintDialog;
begin
PrintDialog := TPrintDialog.Create(Form2);
if printDialog.Execute then
begin
Printer.Orientation := poLandscape;
Printer.BeginDoc;
bitblt( printer.canvas.handle,0,0,width,height, getDC (Form2.Handle),0,0,SRCCOPY);
Printer.Canvas.Font.Color := clWhite;
Printer.EndDoc;
end;
end;

Espero que nos puedan ayudar

Última edición por Nelmiux fecha: 27-06-2006 a las 09:25:35.
Responder Con Cita