Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-06-2004
JOMABRI JOMABRI is offline
Miembro
 
Registrado: may 2004
Posts: 30
Poder: 0
JOMABRI Va por buen camino
La historia de mi problema al imprimir.

saludos,

Mi problema comenzo cuando queria imprimir 2 comprobantes o recibos de pago en 1 hoja tamaño carta utilizandi QuickReport con XP, entonces realize lo siguiente:

1. Configure el QuickReport 8.5 x 5.5: En la vista previa salia perfecto, pero la imprimir solo mostraba un recibo por hoja.
2. Consulte al Foro y asi, construí mi rutina de impresion utilizando Printer.Cavas:

with Printer do begin
GetPrinter (ADevice, ADriver, APort, ADeviceMode);
SetPrinter (ADevice, ADriver, APort, 0);
GetPrinter (ADevice, ADriver, APort, ADeviceMode);
DevMode := GlobalLock(ADeviceMode);
if not Assigned(DevMode) then
ShowMessage('Ha entrado en -> if not Assigned(DevMode) ...')
else begin
with DevMode^ do begin
dmPaperSize:= DMPAPER_User;
dmPaperLength := intAlto;
dmPaperWidth:= intAncho;
dmFields := dmFields or DM_PAPERSIZE or DM_PAPERLength or DM_PAPERWidth;
end;
GlobalUnLock(ADeviceMode);
SetPrinter(ADevice, ADriver, APort, ADeviceMode);
end;
end;
Printer.BeginDoc;
Printer.Canvas.Font.Style:=[];
Printer.Canvas.Font.Size:=10;
Printer.Canvas.Font.Name:='draft';
Printer.Canvas.TextOut(0,0,'Hola');
Printer.EndDoc;

Hasta aqui funciono bien, Pero seguia con el problema de que la impresion era lenta.

3. Consulte al Foro y me aconsejaron imprimir directamente al puerto.

Pero antes de hacer esto, quisiera saber algo que me esta pasando con Printer.Canvas: El codigo que les muestro lo proble con 1 impresora LEXMARK 4227 PLUS y funciono a la perfeccion, pero cuando voy donde mi cliente, me doy cuenta que tiene impresora EPSON FX1180 y HP940C, en estas 2 impresoras la rutina que funcionaba perfecto en la primera, se desconfigura en las 2 ultimas, porque?????


Muchas gracias a todos por su colaboracion.
Responder Con Cita
  #2  
Antiguo 30-06-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
El problema es la resolución del Canvas de las impresoras que no es la misma, por lo tanto, puedes imprimir un recibo perfectamente a una resolución, pero al cambiar a otra te quedará completamente desconfigurado, yo lo resuelvo guardando en un fichero de configuración una simple tabla, todas las posiciones que me interesan, éstas se acceden desde un formulario para la configuración de la impresora:

Pongamos que que el título nos queda muy a la izquierda:
Pues el campo ConfiguraColumnaTitulo, lo modifico y la siguiente vez que imprima un recibo se modificará su posición, esto lleva cierto trabajo a veces hay que guardar más de 40 valores para asegurarse que pongan la impresora que pongan podremos configurar el recibo o incluso hasta por teléfono si el usuario no es muy torpe.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 30-06-2004
Avatar de jmoran
jmoran jmoran is offline
Miembro
 
Registrado: jul 2003
Ubicación: Antequera
Posts: 20
Poder: 0
jmoran Va por buen camino
hola,

Para que todas las medidas que mandes al canvas de la impresora sean independientes de la impresora, deberías escribir antes:

SetMapMode(Printer.Handle,MM_LOMETRIC);

Esto hace que lea los valores en milímetros. Espero que te sirva.

Un saludo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:12:32.


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
Copyright 1996-2007 Club Delphi