Ver Mensaje Individual
  #1  
Antiguo 23-09-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 14
aguml Va por buen camino
No puedo ajustar una imagen a un tamaño de papel correctamente

Pues este proyecto es antiguo y lo estoy modificando porque me di cuenta que no ajusta bien el tamaño. Lo he solucionado poniendo el codigo dentro de un bucle do...while pero creo que deberia funcionar bien a la primera y no veo la manera.
Aqui el codigo:
Código PHP:
#define MAXHEIGHTA5 745  //Alto maximo para imprimir en A5
#define MAXWIDTHA5 524   //Ancho maximo para imprimir en A5
#define MAXHEIGHTA4 1080 //Alto maximo para imprimir en A4
#define MAXWIDTHA4 745   //Ancho maximo para imprimir en A4
#define MAXHEIGHTA3 1537 //Alto maximo para imprimir en A3
#define MAXWIDTHA3 1040  //Ancho maximo para imprimir en A3

      
int deltay;
      
int deltax;
      
float porcentaje 100;

      do{
         switch(
VividReport1->PaperSize)
         {
            case 
A5:
               
deltay CurrentImage->Picture->Bitmap->Height MAXHEIGHTA5;
               
deltax CurrentImage->Picture->Bitmap->Width MAXWIDTHA5;
               break;

            case 
A4:
               
deltay CurrentImage->Picture->Bitmap->Height MAXHEIGHTA4;
               
deltax CurrentImage->Picture->Bitmap->Width MAXWIDTHA4;
               break;

            case 
A3:
               
deltay CurrentImage->Picture->Bitmap->Height MAXHEIGHTA3;
               
deltax CurrentImage->Picture->Bitmap->Width MAXWIDTHA3;
               break;
         }

         
//Averiguamos el ancho y alto apropiados para la imagen
         
if(deltay deltax && deltay 0)
         {
            
porcentaje = (100.0 maxHeight) / CurrentImage->Picture->Bitmap->Height;
         }
         else if((
deltay deltax || deltay == deltax) && deltax 0)
         {
            
porcentaje = (100.0 maxWidth) / CurrentImage->Picture->Bitmap->Width;
         }

         if(
porcentaje 100)
         {
            
CurrentImage->Picture->Bitmap->Width -= ((CurrentImage->Picture->Bitmap->Width - (CurrentImage->Picture->Bitmap->Width porcentaje 100)));
            
CurrentImage->Picture->Bitmap->Height -= ((CurrentImage->Picture->Bitmap->Height - (CurrentImage->Picture->Bitmap->Height porcentaje 100)));
         }
      }while(
deltax || deltay 0); 
La idea es quitar el do...while y que se ajuste a la primera. ¿Alguien puede ayudarme?
Responder Con Cita