purtroppo ho notato che la gestione delle immagini sul pdf generato è molto carente, così ho apportato un paio di modifiche al codice per utilizzare meglio le GD
nel file admin/pdf_catalogue.pdf, cercate la funzione "ShowImage" alla riga 170, e sostituite l'intera funzione con questa:
Codice: Seleziona tutto
 function ShowImage(&$width,&$height,$link,$path)
 {
    //$width=min($width,MAX_IMAGE_WIDTH);
    //$height=min($height,MAX_IMAGE_HEIGHT);
    $width = MAX_IMAGE_WIDTH;
    $height= MAX_IMAGE_HEIGHT;
    if(RESIZE_IMAGES) {
	$destination =DIR_FS_CATALOG."catalogues/";
	if(substr(strtolower($path), (strlen($path)-4),4)==".jpg" || substr(strtolower($path), (strlen($path)-5),5)==".jpeg") {
            $src=imagecreatefromjpeg($path);
   	} else if (substr(strtolower($path), (strlen($path)-4),4)==".png") {
      	    $src=imagecreatefrompng($path);
   	} else {
      	    echo "Only PNG and JPEG";
            exit();
   	}
   
   	$array=explode("/", $path);
   	$last=sizeof($array);
        $size = getimagesize($path);
   	if($size[0] > $size[1]) {
     	    $im=imagecreatetruecolor($width/PDF_TO_MM_FACTOR, $height/PDF_TO_MM_FACTOR);
            imagecopyresampled($im, $src, 0, 0, 0, 0,$width/PDF_TO_MM_FACTOR, $height/PDF_TO_MM_FACTOR, $size[0], $size[1]);
   	} else {
     	    $im=imagecreatetruecolor($height/PDF_TO_MM_FACTOR,$width/PDF_TO_MM_FACTOR);
            imagecopyresampled($im, $src, 0, 0, 0, 0, $height/PDF_TO_MM_FACTOR, $width/PDF_TO_MM_FACTOR, $size[0], $size[1]);
  	}
  	if(!imagejpeg($im, $destination.$array[$last-1])) {
    	    exit();
    	}
        $path=$destination.$array[$last-1];
        $this->SetLineWidth(1);  
	$this->Cell($width+3,$height,"",1,0);
	$this->SetLineWidth(0.2);
	$this->Image($path,($this->GetX()-$width), $this->GetY(), $width, $height,'',$link);
	$this->SetFont('Arial','',8);
	unlink($path);
    } else {
	$this->SetLineWidth(1);
	// NH $this->Cell($width,$height,"",1,0);
	$this->Cell($width+3,$height,"",SIZE_BORDER_IMAGE,0);
	$this->SetLineWidth(0.2);
	//NH $this->Image($path,($this->GetX()-$width), $this->GetY(), $width, $height,'',$link);
	$this->Image($path,($this->GetX()-$width), $this->GetY(),$width ,'' ,'',$link);
	$this->SetFont('Arial','',8);
    }
 }
Codice: Seleziona tutto
	define('RESIZE_IMAGES',1);
Codice: Seleziona tutto
	//Width max in mm
	define('MAX_IMAGE_WIDTH',50);
	//Height max in mm
	define('MAX_IMAGE_HEIGHT',50);
 
 un'ultima cosa: ho notato che se sono presenti i evcchi cataloghi, lo script non li sovrascrive! quindi quando generate un nuovo catalogo dovete cancellare i vecchi files
questo penso sia dovuto al parametro "safe_mode=on" del php.ini, magari su server diversi dal mio è settato off e il problema non sussiste...
Se avete linux come server usate un .htaccess e settate il parametro off (però poi diventa pericoloso magari con altri script!)
se non potete o non volete settare parametri del php.ini, bisogna modificare la classe di FPDF:
nel file pdf_fpdf.php, aggiungete sotto la riga 1062:
Codice: Seleziona tutto
if (file_exists($name)) {
    unlink($name);
}
 
 ciao, teo


 
 

 
 