Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

ajustar informe en impresora

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: ajustar informe en impresora Responder citando

hola gente,
hoy mi duda es la siguiente:
a veces al hacer informes con QuickReports, no consigo ajustar los datos para todas las impresoras. En unas empiezan los datos un poco mas arriba, en otras un poco mas a la derecha, etc. Supongo que depende un poco del tipo de impresora. Hay alguna forma de solucionar esto? Estoy intentanto imprimir sobre un impreso de facturas y las columnas se me ajustan diferente si pruebo en una impresora o en otra.Muchas...
Volver arriba
Mensaje    Asunto: Responder citando

Mira a ver si te vale este código. Con esta API recibes el area de impresión de la impresora por defecto:

Código:

float Ancho = GetDeviceCaps(Printer()->Handle,HORZSIZE);
float Alto = GetDeviceCaps(Printer()->Handle,VERTSIZE);
float ResH = GetDeviceCaps(Printer()->Handle,LOGPIXELSX);
float ResV = GetDeviceCaps(Printer()->Handle,LOGPIXELSY);
float AnchoPapel = 25.4*GetDeviceCaps(Printer()->Handle,PHYSICALWIDTH)/(float) ResH;
float LargoPapel = 25.4*GetDeviceCaps(Printer()->Handle,PHYSICALHEIGHT)/(float) ResV;
float MargenIzq = ceil(25.4*GetDeviceCaps(Printer()->Handle,PHYSICALOFFSETX)/(float) ResH);
float MargenSup = ceil(25.4*GetDeviceCaps(Printer()->Handle,PHYSICALOFFSETY)/(float) ResV);
float MargenInf = ceil( LargoPapel - Alto - MargenSup);
float MargenDer = ceil(AnchoPapel - Ancho - MargenIzq);
  AnchoPapel=floor(AnchoPapel);
  LargoPapel=floor(LargoPapel);


Aunque quizás lo que deberías hacer es definirte los márgenes (sup, inf, der e izq). Por ejemplo: poner siempre todos a 3 cm. No se ... es una idea.
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.