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 21-03-2019
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
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
  #2  
Antiguo 21-03-2019
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
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
  #3  
Antiguo 21-03-2019
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 231
Poder: 17
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
  #4  
Antiguo 26-03-2019
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
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
  #5  
Antiguo 01-04-2020
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
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



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 19:46:29.


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