Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/admin/tablice/generujskladke.php
<?php
session_start();


$start = '5'; //0.5cm
$margines = '10'; //1cm
$linia = '1'; //spad 0.2cm 
$maxw = '900'; //szerokosc maksymalna
$maxh = '600'; //wysokosc maksymalna
$odleglosc = '0';

$marginespx = round(($margines * 300) / 25.4);     //margines w px
$odlegloscpx = round(($odleglosc * 300) / 25.4);   //odleglosc w px

function najnizszy(){

    $files = array();
                $iterator = new DirectoryIterator('skladka');
                    foreach ($iterator as $fileinfo) {
                        
                        if ($fileinfo->isFile() and $fileinfo->getFilename()!='Thumbs.db') {  
                            $files[] = array($fileinfo->getFilename()); 
                        }
                        rsort($files);
                    }
                    $r = substr($files[0][0],0,-4);
                    $r++;
                    return $r;
} 
 
function katalogcount($kat){
        $directory = $kat;
        unlink("upload/".$kat."/Thumbs.db");
        $files = scandir($directory);    
        $num_files = count($files)-2;
        return  $num_files;
 
 }
 
//$total = katalogcount('skladka/tmp/');
 
najnizszy(); 




              
                  $files = array();
                $iterator = new DirectoryIterator('skladka/tmp/');
                    $mak = 0;
                    foreach ($iterator as $fileinfo) {
                        
                        if ($fileinfo->isFile() and $fileinfo->getFilename()!='Thumbs.db') {  
                            $files[] = array($fileinfo->getFilename()); 
                        }
                    }
                    
                    asort( $files);
                    $files = array_slice($files, 0, 8);

$total = count($files);
         $i=0;
         $heightone = 646;       
$height = (646 + $odlegloscpx) * $total + 2*$marginespx;       
$width = 2938;           
              
    $skladka = new Imagick();
    $skladka->newImage((2938 + 2*$marginespx),$height, new ImagickPixel("white"));      




$data= najnizszy();

foreach($files as $val){
    //echo '<p><img src="skladka/tmp/'.$val[0].'"></p>';
    $i++;
    
    $im = new Imagick('skladka/tmp/'.$val[0]);
    $im->setimageresolution(144,144);
    $im->scaleimage(2918,628);           //wymiar netto tablicy
    
                           
    $canvas = new Imagick();
    $canvas->newImage(2912,625, new ImagickPixel("white"));            
    $canvas->compositeImage($im, imagick::COMPOSITE_OVER, -2,-2);
    $canvas->borderImage('white', 10,10);
    $canvas->borderImage('gainsboro', 1,1);         
    $canvas->setimageresolution(144,144);
    unlink('skladka/tmp/'.$val[0]);
    
    
    //$canvas->writeimage('skladka/skl'.$i.'.jpg');
        
    $skladka->compositeImage($canvas, imagick::COMPOSITE_OVER,$marginespx,$marginespx+(($i-1)*$heightone + ($odlegloscpx * ($i-1))));     
    $skladka->setimageresolution(144,144);

}

                        $draw = new ImagickDraw();    //Czarna obwódka dookoła składki

                        $draw->setFillColor('transparent');    // Set up some colors to use for fill and outline
                        $draw->setStrokeColor('black');
                        $draw->setStrokeWidth(2);
                        $draw->rectangle( 0, 0, ($width+2*$marginespx-2), ($height-2));    // Draw the rectangle  
                        $draw->rectangle( 2, 2, ($width+2*$marginespx-4), ($height-4));    // Draw the rectangle 
                        $draw->rectangle( 4, 4, ($width+2*$marginespx-6), ($height-6));    // Draw the rectangle 
                        $draw->rectangle( 6, 6, ($width+2*$marginespx-8), ($height-8));    // Draw the rectangle  
                        $draw->rectangle( 8, 8, ($width+2*$marginespx-10), ($height-10));    // Draw the rectangle 

                        
                        $skladka->drawImage( $draw ); 

    $skladka->writeimage('skladka/'.$data.'.jpg');
    unset($_SESSION['zdjecia']);
    echo '<a href="/skladka/'.$data.'.jpg">Pobierz gotowa składkę</a>';

    

download_file('skladka/'.$data.'.jpg');

function download_file( $fullPath ){

  // Must be fresh start
  if( headers_sent() )
    die('Headers Sent');

  // Required for some browsers
  if(ini_get('zlib.output_compression'))
    ini_set('zlib.output_compression', 'Off');

  // File Exists?
  if( file_exists($fullPath) ){

    // Parse Info / Get Extension
    $fsize = filesize($fullPath);
    $path_parts = pathinfo($fullPath);
    $ext = strtolower($path_parts["extension"]);

    // Determine Content Type
    switch ($ext) {
      case "pdf": $ctype="application/pdf"; break;
      case "exe": $ctype="application/octet-stream"; break;
      case "zip": $ctype="application/zip"; break;
      case "doc": $ctype="application/msword"; break;
      case "xls": $ctype="application/vnd.ms-excel"; break;
      case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
      case "gif": $ctype="image/gif"; break;
      case "png": $ctype="image/png"; break;
      case "jpeg":
      case "jpg": $ctype="image/jpg"; break;
      default: $ctype="application/force-download";
    }

    header("Pragma: public"); // required
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private",false); // required for certain browsers
    header("Content-Type: $ctype");
    header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";" );
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".$fsize);
    ob_clean();
    flush();
    readfile( $fullPath );

  } else
    die('File Not Found');

}
?>