Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
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 22-05-2019
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 545
Poder: 17
jhonalone Va por buen camino
Compatibilidad versiones Delphi

Hola a todos, amigos y compañeros de fatigas Delphi.

Tengo un programa Multiplataforma que usa FMX y tengo una versión adaptada para Windows.

Me actualicé en su momento a la versión Tokyo 10.2.3. (A la versión Rio no he llegado)

El problema: tengo compilada la aplicación para la versión Seattle y funciona (imprime) perfecto. Al hacer algunas mejoras lo compilo con Tokyo y no imprime correcto. Mantiene todos los aspectos de las fuentes menos el tamaño que es minúsculo.

¿Alguien ha resuelto este problema? Por favor compártelo. Gracias.

Si tengo espacio para subir las fotos de las 2 impresiones las subo. Nada no puedo subir los escanéos.

Espero vuestra ayuda. Gracias.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #2  
Antiguo 22-05-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Súbelos si quieres a subefotos.com y pones el enlace.
Responder Con Cita
  #3  
Antiguo 23-05-2019
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 545
Poder: 17
jhonalone Va por buen camino
Gracias Casimiro.
No conocía esta opción.

Foto de la impresión con Seattle.

Foto de la impresion con Tokyo.

Y este es el código de impresión. Como podéis ver es una factura. (Siento que sea un poco largo...)
Código Delphi [-]
function IH(N:integer):integer;
var
   I:real;
begin

I:=Printer.Pagewidth/2892;
//I:=GetDeviceCaps(Printer.Handle,Physicalwidth)/2481;
IH:=Round(i*N);

end;

function IV(N:integer):integer;
var
   I:real;
begin  //ShowMessage('Alto = '+Printer.PageHeight.ToString);
I:=Printer.PageHeight/4125;
//I:=GetDeviceCaps(Printer.Handle,PhysicalHeight)/3507;
IV:=Round(i*N);

end;

procedure TEmpe.Imprimir;
VAR
XX, YY, Pagina, TotalPaginas:INTEGER;
SumaySigue : Double;

procedure NumeraPagina;
var
  MyRect:TrectF;
begin
with Printer.Canvas
do begin
   try
        Font.Size   := Form1.Pica.Font.Size;
        Font.Family := Form1.Pica.Font.Family;
        Font.Style  := Form1.Pica.Font.Style;
        Fill.Color :=  Form1.Pica.TextSettings.FontColor;
        MyRect.Create(IH(125),IV(Printer.PageHeight-200),ih(Printer.PageWidth-150),iv(Printer.PageHeight-100));
        FillText(MyRect, 'Página '+Pagina.ToString+' de '+TotalPaginas.ToString, false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Leading, TTextAlign.Center);
   finally
   end;
   end;
end;

procedure Resumen;
var
  MyRect:TrectF;
  v1 : Integer;
  S : String;
begin
with Printer.Canvas
do begin
   try
                               // RESUMEN DEL DETALLE


      v1 := 3000; // 3000 es el Final del detalle
      while xx < DetallaEmpe.StringGrid1.RowCount // La última línea la escribimos sola
      do begin
         // Apartados Globales

         if (DetallaEmpe.StringGrid1.Cells[2, xx] = '..................') and
            (DetallaEmpe.StringGrid1.Cells[3, xx] <> '0,00') // Descuentos y entregas a 0 no se imprimen
         then begin

              S := DetallaEmpe.StringGrid1.Cells[1, xx];
              if S.IndexOf('I.V.A.') <> -1 // Si es iva hay que darle la vuelta para evitar que el sistema trastoque la String
              then begin
                   S := S.Substring(S.Length-6,6) +' '+ S.Substring(0,7);
                   DetallaEmpe.StringGrid1.Cells[1, xx] := S;
                   end;

              S := DetallaEmpe.StringGrid1.Cells[3, xx];
              while S.Length < 10 do S := ' ' + S;  // para que todas las cantidades sean igual de anchas
              S := DetallaEmpe.StringGrid1.Cells[1, xx] + '.......' + S;

              Font.Size   := Form1.Consolas.Font.Size;
              Font.Family := Form1.Consolas.Font.Family;
              Font.Style  := Form1.Consolas.Font.Style;
              Fill.Color :=  Form1.Consolas.TextSettings.FontColor;
              MyRect.Create(IH(125),IV(v1),ih(Printer.PageWidth-150),iv(v1+100));
              FillText(MyRect, S, false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Leading, TTextAlign.Center);
              V1 := V1 + 75; // Siquiente renglon
              end;

         // Apartados de detalle de los Descuentos y las Enatregas
         if (DetallaEmpe.StringGrid1.Cells[3, xx] = '') // Descuentos y entregas a 0 no se imprimen
         then begin
             // V1 := V1 - 25; // Letra mas pequeña y más junta
              S := DetallaEmpe.StringGrid1.Cells[2, xx];

              while S.Length < 10 do S := ' ' + S;
              S := ' El ' +
                   DetallaEmpe.StringGrid1.Cells[0, xx] + ' por importe de ' + S;

              Font.Size   := Form1.Pica2.Font.Size;
              Font.Family := Form1.Pica2.Font.Family;
              Font.Style  := Form1.Pica2.Font.Style;
              Fill.Color :=  Form1.Pica2.TextSettings.FontColor;
              MyRect.Create(IH(125),IV(v1),ih(Printer.PageWidth-550),iv(v1+75));
              FillText(MyRect, S, false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Leading, TTextAlign.Center);
              if DetallaEmpe.StringGrid1.Cells[3, xx+1] = ''
              then V1 := V1 + 50 // Hay 2 ó + descuentos, o 2 ó + entregas
              else V1 := V1 + 75; // Siquiente renglon
              end;
         Inc(xx);
         end;
   finally
   end;
   end;
end;


Procedure PonerLogo;
var
  Rect : TRectF;
  Rect2: TRectF;
  Map  : FMX.Graphics.TBitmap;
begin
with Printer.Canvas
do begin
   Map := FMX.Graphics.TBitmap.Create();
   Map.LoadFromFile('Icono144x144.bmp');
   Rect := TRectF.Create(0,0,Map.Width,Map.Height);

                         // Para mover la imagen 1 y 3 (Dcha o izda)
                         //(Aumenta los mismos Px a la derecha)
                         //(Disminuye los mismos Px a la Izda)

                         // Para mover la imagen 2 y 4 (Arriba y abajo)
                         //(Aumenta los mismos Px baja)
                         //(Disminuye los mismos Px Sube)

                         // Para deformar la imagen 1 y 3 (Dcha o izda)
                         // el 1 (Si aumenta APLASTA y si disminuye ESTIRA la parte IZQUIERDA)
                         // el 3 (Si aumenta ESTIRA y si disminuye APLASTA la parte DERECHA)

                         // Para deformar la imagen 2 y 4 (Arriba y abajo)
                         // el 2 (Si aumenta APLASTA y si disminuye ESTIRA por la parte SUPERIOR)
                         // el 4 (Si aumenta ESTIRA y si disminuye APLASTA por la parte INFERIOR)

                         { 1 }{ 2 }{ 3 }{ 4 }
   Rect2 := TRectF.Create(350, 000, 765, 360);
   try
   //Printer.BeginDoc;
   DrawBitmap(Map, Rect, Rect2, 20, True);
   //Printer.EndDoc;
   finally
   Map.Free;
   end;
   end;
end;

PROCEDURE  CABECERA;
var
MyRect:TrectF;
p1,p2 : TPointF;
S, S2 : String;
Linea, CuentaLineas ,V1, V2, I: integer;
BEGIN

try //ShowMessage('Aqui');
Printer.BeginDoc;

 if PortaNombr.Chars[PortaNombr.Length - 1] = '.'  //FillText pone el punto del final al principio
 then PortaNombr := PortaNombr.Remove(PortaNombr.Length - 1,1);

 pagina:=pagina+1;

with Printer.canvas
do begin
   // Rectangulo
   MyRect.Create(IH(125),IV(1050),ih(Printer.PageWidth-150),iv(3000));
   DrawRect(MyRect, 0, 0, AllCorners, 100);

   //Lineas horizontales
   V1 := 1200;
   for I := 1 to 18
   do begin
      p1 := TPointF.Create(IH(125),IV(V1));
      p2 := TPointF.Create(ih(Printer.PageWidth-150),iv(V1));
      DrawLine(p1,p2,100);
      V1 := V1 + 100;
      end;

   // Lineas verticales
   p1 := TPointF.Create(IH(450),IV(1050));
   p2 := TPointF.Create(ih(450),iv(3000));
   DrawLine(p1,p2,100);

   p1 := TPointF.Create(IH(1975),IV(1050));
   p2 := TPointF.Create(ih(1975),iv(3000));
   DrawLine(p1,p2,100);

   p1 := TPointF.Create(IH(2350),IV(1050));
   p2 := TPointF.Create(ih(2350),iv(3000));
   DrawLine(p1,p2,100);

   // Tipo de documento
   Font.Size   := Form1.Doble.Font.Size;
   Font.Family := Form1.Doble.Font.Family;
   Font.Style  := Form1.Doble.Font.Style;
   Fill.Color :=  Form1.Doble.TextSettings.FontColor;
   MyRect.Create(IH(125),IV(100),ih(Printer.PageWidth-150),iv(200));
   FillText(MyRect, 'Trabajo en Curso', false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);

   // Comentario
   if DetallaEmpe.StringGrid1.Cells[1, 0] <> ''
   then begin
        Font.Size   := Form1.Pica.Font.Size;
        Font.Family := Form1.Pica.Font.Family;
        Font.Style  := Form1.Pica.Font.Style;
        Fill.Color :=  Form1.Pica.TextSettings.FontColor;
        MyRect.Create(IH(125),IV(200),ih(Printer.PageWidth-150),iv(300));
        FillText(MyRect, DetallaEmpe.StringGrid1.Cells[1, 0], false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);
       end;

// Títulos dee las columnas de detalla
Font.Size   := Form1.Enfatica3.Font.Size;
Font.Family := Form1.Enfatica3.Font.Family;
Font.Style  := Form1.Enfatica3.Font.Style;
Fill.Color :=  Form1.Enfatica3.TextSettings.FontColor;

MyRect.Create(IH(125),IV(1050),ih(450),iv(1200));
FillText(MyRect, 'Cantidad', false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);

MyRect.Create(IH(450),IV(1050),ih(1975),iv(1200));
FillText(MyRect, 'C o n c e p t o', false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);

MyRect.Create(IH(1975),IV(1050),ih(2350),iv(1200));
FillText(MyRect, 'Precio', false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);

MyRect.Create(IH(2350),IV(1050),ih(Printer.PageWidth-150),iv(1200));
FillText(MyRect, 'Total', false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);


                     // E M P R E S A R I O

if PortaNif <> '' // Es FACTURA
then begin
// Empresario
     PonerLogo;
     Font.Size   := Form1.Empresario.Font.Size;
     Font.Family := Form1.Empresario.Font.Family;
     Font.Style  := Form1.Empresario.Font.Style;
     Fill.Color :=  Form1.Empresario.TextSettings.FontColor;
     MyRect.Create(IH(125),IV(325+40),ih(Printer.PageWidth div 2),iv(425+40));
     FillText(MyRect, NomE , false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);

// Nif y Telefono
        Font.Size   := Form1.Enfatica.Font.Size;
        Font.Family := Form1.Enfatica.Font.Family;
        Font.Style  := Form1.Enfatica.Font.Style;
        Fill.Color :=  Form1.Enfatica.TextSettings.FontColor;
        MyRect.Create(IH(125),IV(450+40),ih(Printer.PageWidth-150),iv(525+40));
        FillText(MyRect, 'N.I.F: '+ NifE +
                      '   Teléf: ' + TelE.Substring(0,3)+' '+
                                     TelE.Substring(3,2)+' '+
                                     TelE.Substring(5,2)+' '+
                                     TelE.Substring(7,2) , false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);

// Direccion, Poblacion y provincia
     Font.Size   := Form1.Enfatica.Font.Size;
     Font.Family := Form1.Enfatica.Font.Family;
     Font.Style  := Form1.Enfatica.Font.Style;
     Fill.Color :=  Form1.Enfatica.TextSettings.FontColor;

// Direccion
        MyRect.Create(IH(125),IV(525+40),ih(Printer.PageWidth div 2),iv(600+40));
        FillText(MyRect, DirE, false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);
// CP
        MyRect.Create(IH(125),IV(600+40),ih(Printer.PageWidth div 2),iv(675+40));
        FillText(MyRect,PobE.Substring(0,5), {+ ' ' + ProvE} false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);
// Poblacion
        MyRect.Create(IH(300),IV(600+40),ih(Printer.PageWidth div 2),iv(675+40));
        FillText(MyRect,PobE.Substring(6,PobE.Length-6){+ ' ' + ProvE}, false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);
// Provincia
        MyRect.Create(IH(125),IV(675+40),ih(Printer.PageWidth div 2),iv(750+40));
        FillText(MyRect, ProvE, false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);
     end; // Si es FACTURA

                             // C L I E N T E

// Título de Cliente
     Font.Size   := Form1.Titulo.Font.Size;
     Font.Family := Form1.Titulo.Font.Family;
     Font.Style  := Form1.Titulo.Font.Style;
     Fill.Color :=  Form1.Titulo.TextSettings.FontColor;
     MyRect.Create(ih(Printer.PageWidth div 2 - 100),IV(325),ih(Printer.PageWidth -150),iv(475));
     FillText(MyRect, 'Cliente' , false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);

// Nombre del Cliente
     Font.Size   := Form1.Cliente.Font.Size;
     Font.Family := Form1.Cliente.Font.Family;
     Font.Style  := Form1.Cliente.Font.Style;
     Fill.Color :=  Form1.Cliente.TextSettings.FontColor;
     MyRect.Create(ih(Printer.PageWidth div 2)+150,IV(450),ih(Printer.PageWidth -150),iv(550));
     FillText(MyRect, PortaNombr , false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);



// Nif y Telefono
        Font.Size   := Form1.Enfatica2.Font.Size;
        Font.Family := Form1.Enfatica2.Font.Family;
        Font.Style  := Form1.Enfatica2.Font.Style;
        Fill.Color :=  Form1.Enfatica2.TextSettings.FontColor;
        MyRect.Create(ih(Printer.PageWidth div 2)+150,IV(550),ih(Printer.PageWidth -150),iv(600));
     if PortaNif <> ''   // Si tiene NIF
     then begin
          FillText(MyRect, 'N.I.F: '+ PortaNif +
                       '   Teléf: ' + PortaTelef.Substring(0,3)+' '+
                                      PortaTelef.Substring(3,2)+' '+
                                      PortaTelef.Substring(5,2)+' '+
                                      PortaTelef.Substring(7,2) , false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);

          end
     else begin
          FillText(MyRect,{ 'N.I.F: '+ PortaNif + }
                          'Teléf: ' + PortaTelef.Substring(0,3)+' '+
                                      PortaTelef.Substring(3,2)+' '+
                                      PortaTelef.Substring(5,2)+' '+
                                      PortaTelef.Substring(7,2) , false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);
          end;

// Direccion  (Primera linea) Si hay
   S := PortaDirec;
   V1 := 600;
   V2 := 660;
   Linea := 0;
   while S <> ''
   do begin
      Inc(Linea);
      if Linea <> 2
      then begin
           if S.IndexOf(#10) > -1 // PortaDirec no lleva #13#10 al final
           then S2 := S.Substring(0,S.IndexOf(#13))
           else S2 := S;
                if S2.Chars[S2.Length - 1] = '.'  //FillText pone el punto del final al principio
                then S2 := S2.Remove(S2.Length - 1,1);
           MyRect.Create(ih(Printer.PageWidth div 2)+150,IV(V1),ih(Printer.PageWidth -150),iv(V2));
           FillText(MyRect, S2, False, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);
           end
      else begin // Controlamos el Codigo Postal
           if S.IndexOf(#10) > -1 // PortaDirec no lleva #13#10 al final
           then S2 := S.Substring(0,S.IndexOf(#13))
           else S2 := S;
                if S2.Chars[S2.Length - 1] = '.'  //FillText pone el punto del final al principio
                then S2 := S2.Remove(S2.Length - 1,1);
           MyRect.Create(ih(Printer.PageWidth div 2)+150,IV(V1),ih(Printer.PageWidth -150),iv(V2));
           FillText(MyRect, S2.Substring(0,5), False, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);
           MyRect.Create(ih(Printer.PageWidth div 2)+300,IV(V1),ih(Printer.PageWidth -150),iv(V2));
           FillText(MyRect, S2.Substring(6,S2.Length-6), False, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);
           end;
      V1 := V2;
      V2 := V2 + 60;
      if S.IndexOf(#10) > -1 // PortaDirec no lleva #13#10 al final
      then S := S.Remove(0,S.IndexOf(#10)+1)
      else S := '';

      end;


// Numero de documento y fecha
        Font.Size   := Form1.PicaNegra.Font.Size;
        Font.Family := Form1.PicaNegra.Font.Family;
        Font.Style  := Form1.PicaNegra.Font.Style;
        Fill.Color :=  Form1.PicaNegra.TextSettings.FontColor;
        MyRect.Create(IH(125),IV(950),ih(Printer.PageWidth-150),iv(1010));
        FillText(MyRect, 'Trabajo en Curso Núm: TE'+PortaRef+'     Fecha: '+
        PortaFInic, false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);

                          // D E T A L L E

        Font.Size   := Form1.PicaNegra.Font.Size;
        Font.Family := Form1.PicaNegra.Font.Family;
        Font.Style  := Form1.PicaNegra.Font.Style;
        Fill.Color :=  Form1.PicaNegra.TextSettings.FontColor;

    v1 := 1200;
    CuentaLineas := 0;
    //xx := 1; // El 0 es el comentario  esto lo inicializamos al empezar a imprimir
    while (CuentaLineas < 18) and  // no ha completado la Pagina
          (DetallaEmpe.StringGrid1.Cells[1, xx] <> 'Total Materiales y Mano de Obra')
    do begin
        MyRect.Create(IH(125),IV(v1),ih(450),iv(v1+100));
        FillText(MyRect, DetallaEmpe.StringGrid1.Cells[0, xx], false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Leading, TTextAlign.Center);

        MyRect.Create(IH(450),IV(v1),ih(1975),iv(v1+100));
        FillText(MyRect, DetallaEmpe.StringGrid1.Cells[1, xx], false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Trailing, TTextAlign.Center);

        MyRect.Create(IH(1975),IV(v1),ih(2350),iv(v1+100));
        FillText(MyRect, DetallaEmpe.StringGrid1.Cells[2, xx], false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Leading, TTextAlign.Center);

        MyRect.Create(IH(2350),IV(v1),ih(Printer.PageWidth-150),iv(v1+100));
        FillText(MyRect, DetallaEmpe.StringGrid1.Cells[3, xx], false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Leading, TTextAlign.Center);

        v1 := v1 + 100;

        S := DetallaEmpe.StringGrid1.Cells[3, xx];
        while S.IndexOf('.') <> -1
              do S := S.Remove(S.IndexOf('.'), 1);
        SumaySigue := SumaySigue + S.ToDouble;

        Inc(xx);

        Inc(CuentaLineas);
       end; // while del Detalle

       if  (Pagina = TotalPaginas) // Es la última página
       then Resumen
       else begin   // Ponemos Suma y sigue
            MyRect.Create(IH(125),IV(3300),ih(Printer.PageWidth-150),iv(3400));
            FillText(MyRect, 'Suma y Sigue................'+Format( '%n', [SumaySigue] ), false, 100,[TFillTextFlag.RightToLeft], TTextAlign.Leading, TTextAlign.Center);
            end;

       NumeraPagina;

   end; //With Printer.Canvas

Printer.EndDoc;
   except
   Printer.Abort;
   raise;
end;{try}
END;

BEGIN // Imprimir

xx := 1; // El 0 es el comentario  la ponemos aqui porque es el contador de líneas

Pagina := 0;
SumaySigue := 0.00;

//Calculaamos las páginas
yy := 1; // para calcular las lineas de detalle no cuenta el 0 que es el comentario
while  (DetallaEmpe.StringGrid1.Cells[1, yy+1] <> 'Total Materiales y Mano de Obra')
do Inc(yy);
TotalPaginas := yy div 18;
if yy mod 18 > 0
then TotalPaginas := TotalPaginas + 1;

//Printer.ActivePrinter.ActiveDPIIndex := 1;
Printer.ActivePrinter.SelectDPI(600,600);


repeat

   Cabecera;

until Pagina = TotalPaginas;

END; // Imprimir
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #4  
Antiguo 23-05-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Imprimir "a pelo" es trabajo de chinos.



¿Por qué no usas alguna utilidad de reportes? creo que te ahorrarías bastantes problemas.


Saludos
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 23-05-2019
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 545
Poder: 17
jhonalone Va por buen camino
Tienes razón, Newtron.
Pero me da más libertad confeccionarlo a pelo, como dices tu.
Además ya lo tengo hecho... y ha funcionado hasta ahora.
Gracias por tu consejo. Para otra vez puede que te haga caso.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #6  
Antiguo 23-05-2019
Javierus Javierus is offline
Miembro
 
Registrado: jun 2017
Posts: 88
Poder: 7
Javierus Va por buen camino
Comprueba que los valores de font.size y printer.pagewidth que aparecen son los mismos al ejecutarse en ambos entornos. Para ello, te sugiero hagas que se impriman esos valores en una esquina de la hoja, y así veas de verdad los valores que tenían cuando se imprimió
Responder Con Cita
  #7  
Antiguo 23-05-2019
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 545
Poder: 17
jhonalone Va por buen camino
Muchas Gracias por la idea, Javierus.
Lo de PageWidth sospecho que no tiene que ver pues las rayas y la posición son correctas.
Lo probaré y te cuento.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #8  
Antiguo 23-05-2019
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 545
Poder: 17
jhonalone Va por buen camino
Hola Javierus. He probado los tamaños de la fuente y son los correctos.
El tamaño de la página no lo he probado, pero ya te adelanto que no tiene que ver.
Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #9  
Antiguo 24-05-2019
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 545
Poder: 17
jhonalone Va por buen camino
Hola a todos.

Tengo la sospecha de que el problema está en los DPI o PPP. Pero no sé como arreglarlo.
El tamaño de la página es correcto y los tamaños de la fuente también.

Lo extraño es que en Seattle tome los DPI por defecto correctamente y en Tokyo los tome tan aumentados. SIENDO EXACTAMENTE EL MISMO CÓDIGO.
Y si el problema fuera la resolución DPI, lo más extraño es que sólo afecte a las fuentes de letra, NO A LOS GRÁFICOS.

Sigo investigando. Si encuentro algo os lo haré saber. Gracias por leerme.
Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 24-05-2019 a las 12:18:11.
Responder Con Cita
  #10  
Antiguo 23-06-2019
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 545
Poder: 17
jhonalone Va por buen camino
Hola a todos.
Lamento comunicaros que HE RENUNCIADO a resolverlo después de muchas pruebas.
Al final, he vuelto a compilar el mismo código con delphi Seattle para solucionar el problema.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
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
MS SQL Server y la compatibilidad entre versiones. TiammatMX MS SQL Server 2 13-09-2013 00:31:09
Compatibilidad entre versiones de tu aplicación, ¿cómo conseguirlo? LoPiTaL Varios 0 11-11-2010 14:49:41
Compatibilidad de D2009 con versiones anteriores. JCarlosas Varios 3 17-04-2009 04:18:00
Compatibilidad Delphi 5 y 6 aenima Varios 3 15-01-2008 14:45:32
Compatibilidad del SP2 de XP con Delphi y ADO lgarcia Internet 2 05-11-2004 17:14:06


La franja horaria es GMT +2. Ahora son las 16:45:46.


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