Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-03-2019
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 234
Poder: 19
WHILENOTEOF Va camino a la fama
Cita:
Empezado por afxe Ver Mensaje
Gracias WHILENOTEOF... tu apunte es realmente interesante y me va a servir para algunas cosas que me pasan. No obstante, no es el caso que ahora me ocupa, el FastReport está en un DataModule, y aunque le cambie la propiedad Scaled a False del Form que llama a la función definida en ese DataModule, sigue disminuyendo el código de barras.

No tengo ni idea de porqué cuando toco la resolución de la pantalla me comprime el EAN impreso, he llegado a la conclusión que el Windows "Falsea" de alguna manera el tamaño de la letra y el FastReport concluye que tiene que estrechar la impresión para que quepa, cuando realmente los dpi de la pantalla no deben afectar a los de impresión.

He notado que con el QuickReport también me pasa, cuando aumento el tamaño de la letra en las propiedades de Windows, se disminuye proporcionalmente el informe impreso en el folio. ¿?¿?¿?¿?¿?
Axfe, una opción que podrías probar es asignarle a la propiedad Zoom del componente Barcode de Fastreport según la ampliación que le hayan puesto a la pantalla, que puedes deducir la propiedad PixelsPerInch que tenga el formulario :
- si vale 96 --> el zoom es 100%
- si vale 120 --> el zoom es 125 %
- ....
Responder Con Cita
  #2  
Antiguo 21-03-2019
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 295
Poder: 22
afxe Va por buen camino
Gracias por tu aportación.... pero a pesar de tener el tamaño de la fuente al máximo, el valor de la propiedad PixelsPerInch seguía siendo 96, no obstante, he cogido tu idea y activando un flag cambio el zoom y el height del componente. Pongo el fuente:

Código Delphi [-]
  if frxIdentificativa.FindComponent('BarCode1') <> nil then begin
    TfrxBarCodeView(frxIdentificativa.FindComponent('BarCode1')).Text := Format('%3.3s%1.1d%9.9d%3.3s', [vEmpresa, vModificador, vNumero, vTipo]);
    // if Application.MainForm.PixelsPerInch > 96 then begin (no ha funcionado)
    if l_ZoomActivo then begin  // Por la resolución del tipo de letra.
      TfrxBarCodeView(frxIdentificativa.FindComponent('BarCode1')).Zoom   := 1.5;
      TfrxBarCodeView(frxIdentificativa.FindComponent('BarCode1')).Height := 120;
    end;
  end;

  frxIdentificativa.PrintOptions.Printer    := G_IMPRESORA_IDENTIFIC;
  frxIdentificativa.PrintOptions.Copies     := 1;
  frxIdentificativa.PrintOptions.ShowDialog := False;
  frxIdentificativa.PrepareReport(True);
  frxIdentificativa.Print;
__________________
Amar al mundo apasionadamente.
Responder Con Cita
  #3  
Antiguo 21-03-2019
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 295
Poder: 22
afxe Va por buen camino
Sigo sin dar una explicación al por qué al aumentar el tamaño del fuente en pantalla provoca que se estreche las impresiones.
__________________
Amar al mundo apasionadamente.
Responder Con Cita
  #4  
Antiguo 21-03-2019
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 234
Poder: 19
WHILENOTEOF Va camino a la fama
Cita:
Empezado por afxe Ver Mensaje
Sigo sin dar una explicación al por qué al aumentar el tamaño del fuente en pantalla provoca que se estreche las impresiones.

Continúo pensando que es posible que hayan metido los dpi de la pantalla en el código de la impresión, aunque imagino que en unos componentes tan usados como estos ya se hubiese reportado y solucionado. El check del dpi no lo tienes que hacer sobre PixelPerInch del form, sino de la pantalla, este es el código que utilizo para escalar una fuente originalmente con una altura de 8, cuando veo que el usuario tiene la pantalla con zoom:

Código Delphi [-]
 if (Screen.PixelsPerInch <> 96) then
  begin
   Opciones.Font8:= Round(8 * Screen.PixelsPerInch / 96);
  end;
Responder Con Cita
  #5  
Antiguo 26-03-2019
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 295
Poder: 22
afxe Va por buen camino
Hola de nuevo. El valor de Screen.PixelsPerInch no varía cuando aumento el tamaño de fuente en pantalla (botón derecho sobre el escritorio->"Resolución de Pantalla"->"Aumentar o reducir el tamaño del texto y de otros elementos"->"Cambiar el tamaño de todos los elementos"->Poner a tope "Más Grande"), sigue siendo 96, pero he observado que sí varia la propiedad Screen.DesktopWidth, que disminuye según el tamaño que se seleccione, pero no me vale, porque también varía si toco la resolución de pantalla sin cambiar el tamaño los elementos y el cambio de resolución de pantalla no afecta a la impresión, sólo cuando cambio el tamaño.
__________________
Amar al mundo apasionadamente.
Responder Con Cita
  #6  
Antiguo 01-04-2020
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 295
Poder: 22
afxe Va por buen camino
Solucionado.

Por si a alguien le ocurriera:

Hay que modificar el método DrawBarCode en el fuente frxBarcod.pas de Fastreport (yo estoy con la versión 4), y al principio, sustituir:
Código Delphi [-]
  BarWidth := Width;

por

Código Delphi [-]
  tTemp := GetDC(0);  // definir en var tTemp : HDC
  try
    BarWidth := Round((Width * GetDeviceCaps(tTemp, VERTRES)) / GetDeviceCaps(tTemp, DESKTOPVERTRES));
  finally
    ReleaseDC(0, tTemp);
  end;

Con esto se soluciona que el código de barras se estreche cuando se cambia el tamaño de los elementos del escritorio al 125%, 150%, etc. en las propiedades de la pantalla.

También he solucionado el problema para Quickreport, que le pasa otro tanto de lo mismo, usando la misma función.

Saludos
__________________
Amar al mundo apasionadamente.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Códigos de barras con rave sgarrido Varios 3 13-09-2011 18:47:34
Reconocimiento de Códigos de Barras. afxe Gráficos 1 10-11-2009 09:22:54
Códigos de barras Carmelo Cash OOP 11 15-11-2007 09:58:00
Codigos de Barras jostrix PHP 5 21-10-2004 14:58:26
codigos de barras the darkness Varios 6 22-04-2004 18:02:29


La franja horaria es GMT +2. Ahora son las 23:59:45.


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