2013-01-23 28 views

回答

2

試試這個使代碼更改爲按您的要求:
可以顯示使用PDF幫助您的PDF下面的視圖文件。
你可以使用dom pdf helper從下面的鏈接下載它。 http://code.google.com/p/dompdf/downloads/detail?name=dompdf_0-6-0_beta3.zip

<?php  

$show_label = true; // true = show label, false = don't show label. 
$show_percent = true; // true = show percentage, false = don't show percentage. 
$show_text = true; // true = show text, false = don't show text. 
$show_parts = false; // true = show parts, false = don't show parts. 
$label_form = 'square'; // 'square' or 'round' label. 
$width = 199; 
$background_color = 'FFFFFF'; // background-color of the chart... 
$text_color = '000000'; // text-color. 
$colors = array('003366', 'CCD6E0', '7F99B2','F7EFC6', 'C6BE8C', 'CC6600','990000','520000','BFBFC1','808080'); // colors of the slices. 
$shadow_height = 16; // Height on shadown. 
$shadow_dark = true; // true = darker shadow, false = lighter shadow... 

// DON'T CHANGE ANYTHING BELOW THIS LINE... 

$data = $_GET["data"]; 
$label = $_GET["label"]; 

$height = $width/2; 
$data = explode('*',$data); 

if ($label != '') $label = explode('*',$label); 

for ($i = 0; $i < count($label); $i++) 
{ 
    if ($data[$i]/array_sum($data) < 0.1) $number[$i] = ' '.number_format(($data[$i]/array_sum($data))*100,1,',','.').'%'; 
    else $number[$i] = number_format(($data[$i]/array_sum($data))*100,1,',','.').'%'; 
    if (strlen($label[$i]) > $text_length) $text_length = strlen($label[$i]); 
} 

if (is_array($label)) 
{ 
    $antal_label = count($label); 
    $xtra = (5+15*$antal_label)-($height+ceil($shadow_height)); 
    if ($xtra > 0) $xtra_height = (5+15*$antal_label)-($height+ceil($shadow_height)); 

    $xtra_width = 5; 
    if ($show_label) $xtra_width += 20; 
    if ($show_percent) $xtra_width += 45; 
    if ($show_text) $xtra_width += $text_length*8; 
    if ($show_parts) $xtra_width += 35; 
} 

$img = ImageCreateTrueColor($width+$xtra_width, $height+ceil($shadow_height)+$xtra_height); 

ImageFill($img, 0, 0, colorHex($img, $background_color)); 

foreach ($colors as $colorkode) 
{ 
    $fill_color[] = colorHex($img, $colorkode); 
    $shadow_color[] = colorHexshadow($img, $colorkode, $shadow_dark); 
} 

$label_place = 5; 

if (is_array($label)) 
{ 
    for ($i = 0; $i < count($label); $i++) 
    { 
     if ($label_form == 'round' && $show_label && $data[$i] > 0) 
     { 
      imagefilledellipse($img,$width+11,$label_place+5,10,10,colorHex($img, $colors[$i % count($colors)])); 
      imageellipse($img,$width+11,$label_place+5,10,10,colorHex($img, $text_color)); 
     } 
     else if ($label_form == 'square' && $show_label && $data[$i] > 0) 
     { 
      imagefilledrectangle($img,$width+6,$label_place,$width+16,$label_place+10,colorHex($img, $colors[$i % count($colors)])); 
      imagerectangle($img,$width+6,$label_place,$width+16,$label_place+10,colorHex($img, $text_color)); 
     } 

     if ($data[$i] > 0) 
     { 
      if ($show_percent) $label_output = $number[$i].' '; 
      if ($show_text) $label_output = $label_output.$label[$i].' '; 
      if ($show_parts) $label_output = $label_output.$data[$i]; 

      imagestring($img,'2',$width+20,$label_place,$label_output,colorHex($img, $text_color)); 
      $label_output = ''; 

      $label_place = $label_place + 15; 
     } 
    } 
} 
$centerX = round($width/2); 
$centerY = round($height/2); 
$diameterX = $width-4; 
$diameterY = $height-4; 

$data_sum = array_sum($data); 

$start = 270; 

for ($i = 0; $i < count($data); $i++) 
{ 
    $value += $data[$i]; 
    $end = ceil(($value/$data_sum)*360) + 270; 
    $slice[] = array($start, $end, $shadow_color[$value_counter % count($shadow_color)], $fill_color[$value_counter % count($fill_color)]); 
    $start = $end; 
    $value_counter++; 
} 

for ($i=$centerY+$shadow_height; $i>$centerY; $i--) 
{ 
    for ($j = 0; $j < count($slice); $j++) 
    { 
     if ($slice[$j][0] != $slice[$j][1]) ImageFilledArc($img, $centerX, $i, $diameterX, $diameterY, $slice[$j][0], $slice[$j][1], $slice[$j][2], IMG_ARC_PIE); 
    } 
} 

for ($j = 0; $j < count($slice); $j++) 
{ 
    if ($slice[$j][0] != $slice[$j][1]) ImageFilledArc($img, $centerX, $centerY, $diameterX, $diameterY, $slice[$j][0], $slice[$j][1], $slice[$j][3], IMG_ARC_PIE); 
} 

OutputImage($img); 
ImageDestroy($img); 


function colorHex($img, $HexColorString) 
{ 
    $R = hexdec(substr($HexColorString, 0, 2)); 
    $G = hexdec(substr($HexColorString, 2, 2)); 
    $B = hexdec(substr($HexColorString, 4, 2)); 
    return ImageColorAllocate($img, $R, $G, $B); 
} 

function colorHexshadow($img, $HexColorString, $mork) 
{ 
    $R = hexdec(substr($HexColorString, 0, 2)); 
    $G = hexdec(substr($HexColorString, 2, 2)); 
    $B = hexdec(substr($HexColorString, 4, 2)); 

    if ($mork) 
    { 
     ($R > 99) ? $R -= 100 : $R = 0; 
     ($G > 99) ? $G -= 100 : $G = 0; 
     ($B > 99) ? $B -= 100 : $B = 0; 
    } 
    else 
    { 
     ($R < 220) ? $R += 35 : $R = 255; 
     ($G < 220) ? $G += 35 : $G = 255; 
     ($B < 220) ? $B += 35 : $B = 255;    
    }   

    return ImageColorAllocate($img, $R, $G, $B); 
} 

function OutputImage($img) 
{ 
    header('Content-type: image/jpg'); 
    ImageJPEG($img,NULL,100); 
} 
?> 

希望這將幫助你... :)