Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Ayuda con imprimir (https://www.clubdelphi.com/foros/showthread.php?t=53397)

Fede_colon 20-02-2008 04:41:36

Ayuda con imprimir
 
Buenas... soy nuevo en esto.. estoy haciendo un proyecto con una factura que contiene unos cuantos edits, y necesitaria que me imprima la factura entera, pero solo con el contenido de los edits, es decir, que en la impresion figuren los textos de los edits ordenados como en la factura. He visto el componente printer, pero no se usarlo y no entiendo que es canvas texout, textrect, nada de eso...

si alguien me puede dar una mano le agradeceria de antemano!

Chogo 20-02-2008 06:15:24

Este es un pequeño ejemplo de como imprimir por medio del objecto Printer

Necesitar poner en uso la unidad Printers.

Código Delphi [-]
Procedure TFrm.Imprimir;
var
    DeviceMode: THandle;
    Device, Driver, Port: array[0..1023] of char;
begin
     Printer.GetPrinter(Device, Driver, Port, DeviceMode);;
     with Printer do
     begin
     SetMapMode(Printer.Handle,MM_LOMETRIC);
     BeginDoc;
            Canvas.Font.Name:= 'Verdana';
            Canvas.Font.Style:= [fsBold];
            Canvas.Font.Size:=12;
            Canvas.TextOut(10,100,'Hola mundo');
     EndDoc;
     end;
     Printer.SetPrinter(Device, Driver, Port, DeviceMode);
end;

Fede_colon 20-02-2008 16:25:36

graciass
 
disculpa, olvide aclarar que estoy trabajando con c++ builder 6, y no entiendo mucho todavia como para traducir el codigo a c++... si me puedes ayudar.. gracias!!

otra preguntita... en el TextOut(int X, int Y, AnsiString texto) en que unidades estan X e Y? o a cuantos centimetros equivale? porq con esto podria alinear mi texto y solucionaria el problema, ya que no logro colocarlo en el espacio de la hoja que necisito imprimir mi texto... gracias por todo!

Chogo 22-02-2008 01:07:56

No se nada de c++, pero si te das cuenta la ayuda de delphi y c builder son la misma.

Ahi tambien puedes encontrar la respuesta a tus preguntas si el textout usa centimetros. solo selecciona el textout y dale "F1";).

negro_sto 23-02-2008 21:05:29

viejaaaa
soy el negro jajaja
usa un QReport y acomodalo

ucanneo 26-02-2008 19:26:44

Pues bueno recien estoy en lo mismo y ve he visto en la necesidad de pasarlo a builder (gracias por la ayuda),
hay que aclarar que tienes que ver a cada hoja de impresion como un objeto TCanvas, por lo que si has manejado
este objeto antes no tendrás problemas, es decir si lo que quieres es poner un texto en cualquier parte de la hoja
tendrías que:


1.- Darle formato al texto (Cabiar las propiedades de fuente "Canvas->Font" )

2.- Calcular el sitio donde lo vas a poner... y ponerlo (Canvas->TextOutA(posicionX, posicionY, "Texto"))


Si lo que uieres poner es un gráfico o crear una segunda página en blando checa el ejemplo
Código:

//---------------------------------------------------------------------------

void __fastcall TForm1::btnImprimirClick(TObject *Sender)
{

        Printer()->Title = "Listado"; //Nombre del archivo

        Printer()->BeginDoc();        //Abriendo el buffer de impresion, como abrir un .doc
       
        Printer()->Canvas->Draw(100,100,Image1->Picture->Graphic); //ASí es como mandas una imagen al documento
        /*
              En esta parte del código es donde pones en la página lo que te plazca
              ya sean textos, imagenes o dibujos, siempre teniendo en cuenta que la página es
              un lienzo gigante Printer()->Canvas->LoQueDeseesHacer
        */

        Printer()->NewPage();        // as´es como obtienesuna nueva pag, en blanco por supuesto


        Printer()->EndDoc();          //Como darle salvar al .doc y prepararlo para la impresion


}
//---------------------------------------------------------------------------

_____________________
saludos
_____________________


La franja horaria es GMT +2. Ahora son las 10:35:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi