![]() |
No me imprime como dice que deberia segun ejemplo
Este es el codigo.
Pero en una impresora de Inyeccion no salta la linea, que deberia hacer, imprimirsela yo tambien...imprimir un caracter de salto? Hay otra forma de hacerlo? Este es el codigo: var printDialog : TPrintDialog; myPrinter : TPrinter; begin inherited; // Create a printer selection dialog printDialog := TPrintDialog.Create(form_Printer_Dialog); // If the user has selected a printer (or default), then print! if printDialog.Execute then begin // Use the Printer function to get access to the // global TPrinter object. // All references below are to the TPrinter object myPrinter := Printer; with myPrinter do begin // Start printing BeginDoc; // Set up a large blue font Canvas.Font.Size := 8; Canvas.Font.Color := clNone; // Write out the page size DatosDatabase.a_Transaction_Queries_Commit.Execute; DatosDatabase.a_Transaction_Queries_Start.Execute; q_Factura.Close; q_Factura.ParamByName('P_EMPRESA').AsInteger := t_FacturasID_EMPRESA.Value; q_Factura.ParamByName('P_FACTURA').AsInteger := t_FacturasID_FACTURA.Value; q_Factura.Open; q_Factura_Detalles.Close; q_Factura_Detalles.ParamByName('P_EMPRESA').AsInteger := t_FacturasID_EMPRESA.Value; q_Factura_Detalles.ParamByName('P_FACTURA').AsInteger := t_FacturasID_FACTURA.Value; q_Factura_Detalles.Open; if Not(q_Factura.IsEmpty) And Not(q_Factura_Detalles.IsEmpty) then Begin Canvas.TextOut(20, 20, ' '); Canvas.TextOut(20, 20, ' '); Canvas.TextOut(20, 20, 'Factura No. ' + IntToStr(q_FacturaID_FACTURA.Value)); q_Factura_Detalles.First; While Not(q_Factura_Detalles.Eof) Do Begin Canvas.TextOut(20, 40, 'Producto: ' + t_Facturas_ProdsID_PRODUCTO.Value); q_Factura_Detalles.Next; End; End; q_Factura.Close; q_Factura_Detalles.Close; DatosDatabase.a_Transaction_Queries_Commit.Execute; // Finish printing EndDoc; end; end; |
Como imprimir por canvas un caracter de salto de linea
Por fa, responderme eso.
Saludos Fer |
Hola,
desconozco el tema, pero te doy mi opinión... Estás seguro de que tiene sentido querer imprimir un salto de línea en un Canvas? Un Canvas sería como una superfície, tu escribes dada una coordenada (x,y) en un plano. Por lo tanto un salto de línea significaría, simplemente, escribir en una coordenada Y superior a la que estabas escribiendo hasta ahora. Saludos. |
Como bien dice Marc, lo único que has de hacer es aumentar la Y
En mi web tienes una demo del TListView en la que se muestra cómo imprimir con el Canvas. Echale una ojeada para terminar de aclarar tus dudas EDIT: No preguntes en hilos diferentes lo mismo. Fíjate que en todo momento estás usando la misma Y para la impresión Léete la Guía de Estilos (ver firma) Usa las etiquetas [ delphi ] y [ /delphi ] sin espacios para el código |
La franja horaria es GMT +2. Ahora son las 05:48:46. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi