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 > 0 || deltay > 0); 
La idea es quitar el do...while y que se ajuste a la primera. ¿Alguien puede ayudarme?
Responder Con Cita