'#000000','silver'=>'#C0C0C0','gray'=>'#808080', 'white'=>'#FFFFFF','maroon'=>'#800000','red'=>'#FF0000','purple'=>'#800080','fuchsia'=>'#FF00FF','green'=>'#008000','lime'=>'#00FF00','olive'=>'#808000','yellow'=>'#FFFF00','navy'=>'#000080', 'blue'=>'#0000FF','teal'=>'#008080','aqua'=>'#00FFFF'); // All color names array static $common_colors = array( 'antiquewhite' => '#FAEBD7', 'aquamarine' => '#7FFFD4', 'beige' => '#F5F5DC', 'black' => '#000000', 'blue' => '#0000FF', 'brown' => '#A52A2A', 'cadetblue' => '#5F9EA0', 'chocolate' => '#D2691E', 'cornflowerblue' => '#6495ED', 'crimson' => '#DC143C', 'darkblue' => '#00008B', 'darkgoldenrod' => '#B8860B', 'darkgreen' => '#006400', 'darkmagenta' => '#8B008B', 'darkorange' => '#FF8C00', 'darkred' => '#8B0000', 'darkseagreen' => '#8FBC8F', 'darkslategray' => '#2F4F4F', 'darkviolet' => '#9400D3', 'deepskyblue' => '#00BFFF', 'dodgerblue' => '#1E90FF', 'firebrick' => '#B22222', 'forestgreen' => '#228B22', 'gainsboro' => '#DCDCDC', 'gold' => '#FFD700', 'gray' => '#808080', 'green' => '#008000', 'greenyellow' => '#ADFF2F', 'hotpink' => '#FF69B4', 'indigo' => '#4B0082', 'khaki' => '#F0E68C', 'lavenderblush' => '#FFF0F5', 'lemonchiffon' => '#FFFACD', 'lightcoral' => '#F08080', 'lightgoldenrodyellow' => '#FAFAD2', 'lightgreen' => '#90EE90', 'lightsalmon' => '#FFA07A', 'lightskyblue' => '#87CEFA', 'lightslategray' => '#778899', 'lightyellow' => '#FFFFE0', 'limegreen' => '#32CD32', 'magenta' => '#FF00FF', 'mediumaquamarine' => '#66CDAA', 'mediumorchid' => '#BA55D3', 'mediumseagreen' => '#3CB371', 'mediumspringgreen' => '#00FA9A', 'mediumvioletred' => '#C71585', 'mintcream' => '#F5FFFA', 'moccasin' => '#FFE4B5', 'navy' => '#000080', 'olive' => '#808000', 'orange' => '#FFA500', 'orchid' => '#DA70D6', 'palegreen' => '#98FB98', 'palevioletred' => '#D87093', 'peachpuff' => '#FFDAB9', 'pink' => '#FFC0CB', 'powderblue' => '#B0E0E6', 'red' => '#FF0000', 'royalblue' => '#4169E1', 'salmon' => '#FA8072', 'seagreen' => '#2E8B57', 'sienna' => '#A0522D', 'skyblue' => '#87CEEB', 'slategray' => '#708090', 'springgreen' => '#00FF7F', 'tan' => '#D2B48C', 'thistle' => '#D8BFD8', 'turquoise' => '#40E0D0', 'violetred' => '#D02090', 'white' => '#FFFFFF', 'yellow' => '#FFFF00' ); // http://www.w3schools.com/css/css_colornames.asp if ( ( $color{0} != '#' ) and ( strstr( $color, '(' ) === false ) ) $color = $common_colors[strtolower( $color )]; if ( $color{0} == '#' ) { // case of #nnnnnn or #nnn $cor = strtoupper( $color ); if ( strlen( $cor ) == 4 ) { // Turn #RGB into #RRGGBB $cor = "#" . $cor{1} . $cor{1} . $cor{2} . $cor{2} . $cor{3} . $cor{3}; } $R = substr( $cor, 1, 2 ); $vermelho = hexdec( $R ); $V = substr( $cor, 3, 2 ); $verde = hexdec( $V ); $B = substr( $cor, 5, 2 ); $azul = hexdec( $B ); $color = array(); $color['R'] = $vermelho; $color['G'] = $verde; $color['B'] = $azul; } else { // case of RGB(r,g,b) $color = str_replace( "rgb(", '', $color ); //remove ´rgb(´ $color = str_replace( "RGB(", '', $color ); //remove ´RGB(´ -- PHP < 5 does not have str_ireplace $color = str_replace( ")", '', $color ); //remove ´)´ $cores = explode( ",", $color ); $color = array(); $color['R'] = $cores[0]; $color['G'] = $cores[1]; $color['B'] = $cores[2]; } if ( empty( $color ) ) return array( 'R' => 255, 'G' => 255, 'B' => 255 ); else return $color; // array['R']['G']['B'] } function ConvertSize( $size = 5, $maxsize = 0 ) { // Depends of maxsize value to make % work properly. Usually maxsize == pagewidth // Identify size (remember: we are using 'mm' units here) if ( stristr( $size, 'px' ) ) $size *= 0.2645; //pixels elseif ( stristr( $size, 'cm' ) ) $size *= 10; //centimeters elseif ( stristr( $size, 'mm' ) ) $size += 0; //millimeters elseif ( stristr( $size, 'in' ) ) $size *= 25.4; //inches elseif ( stristr( $size, 'pc' ) ) $size *= 38.1 / 9; //PostScript picas elseif ( stristr( $size, 'pt' ) ) $size *= 25.4 / 72; //72dpi elseif ( stristr( $size, '%' ) ) { $size += 0; //make "90%" become simply "90" $size *= $maxsize / 100; } else $size *= 0.2645; //nothing == px return $size; } function value_entity_decode( $html ) { // replace each value entity by its respective char preg_match_all( '|&#(.*?);|', $html, $temparray ); foreach( $temparray[1] as $val ) $html = str_replace( "&#" . $val . ";", chr( $val ), $html ); return $html; } function lesser_entity_decode( $html ) { // supports the most used entity codes $html = str_replace( " ", " ", $html ); $html = str_replace( "&", "&", $html ); $html = str_replace( "<", "<", $html ); $html = str_replace( ">", ">", $html ); $html = str_replace( "«", "«", $html ); $html = str_replace( "»", "»", $html ); $html = str_replace( "¶", "¶", $html ); $html = str_replace( "€", "€", $html ); $html = str_replace( "™", "™", $html ); $html = str_replace( "©", "©", $html ); $html = str_replace( "®", "®", $html ); $html = str_replace( "±", "±", $html ); $html = str_replace( "˜", "~", $html ); $html = str_replace( "ˆ", "^", $html ); $html = str_replace( """, '"', $html ); $html = str_replace( "‰", "‰", $html ); $html = str_replace( "‡", "‡", $html ); $html = str_replace( "†", "†", $html ); return $html; } function AdjustHTML( $html, $usepre = true ) { // Try to make the html text more manageable (turning it into XHTML) // Remove javascript code from HTML (should not appear in the PDF file) $regexp = '||si'; $html = preg_replace( $regexp, '', $html ); $html = str_replace( "\r\n", "\n", $html ); //replace carriagereturn-linefeed-combo by a simple linefeed $html = str_replace( "\f", '', $html ); //replace formfeed by nothing $html = str_replace( "\r", '', $html ); //replace carriage return by nothing if ( $usepre ) { // used to keep \n on content inside
 and inside 
		$regexp2 = '#(.+?)#si';
		$thereistextarea = preg_match_all( $regexp2, $html, $temp2 );
		$html = str_replace( "\n", ' ', $html ); //replace linefeed by spaces
		$html = str_replace( "\t", ' ', $html ); //replace tabs by spaces
		$regexp3 = '#\s{2,}#s'; // turn 2+ consecutive spaces into one
		$html = preg_replace( $regexp3, ' ', $html );
		$iterator = 0;
		while ( $thereispre ) { // Recover 
content
$temp[2][$iterator] = str_replace( "\n", "
", $temp[2][$iterator] ); $html = preg_replace( $regexp, '' . $temp[2][$iterator] . '', $html, 1 ); $thereispre--; $iterator++; } $iterator = 0; while ( $thereistextarea ) { // Recover $temp2[2][$iterator] = str_replace( " ", " ", $temp2[2][$iterator] ); $html = preg_replace( $regexp2, '' . trim( $temp2[2][$iterator] ) . '', $html, 1 ); $thereistextarea--; $iterator++; } // Restore original tag names $html = str_replace( "", "
", $html ); $html = str_replace( "", "", $html ); // (the code above might slowdown overall performance?) } //end of if($usepre) else { $html = str_replace( "\n", ' ', $html ); //replace linefeed by spaces $html = str_replace( "\t", ' ', $html ); //replace tabs by spaces $regexp = '/\\s{2,}/s'; // turn 2+ consecutive spaces into one $html = preg_replace( $regexp, ' ', $html ); } // remove redundant
's before , avoiding huge leaps between text blocks // such things appear on computer-generated HTML code $regexp = '/()+?<\/div>/si'; //', $html ); return $html; } function dec2alpha( $valor, $toupper = "true" ) { // returns a string from A-Z to AA-ZZ to AAA-ZZZ // OBS: A = 65 ASCII TABLE VALUE if ( ( $valor < 1 ) || ( $valor > 18278 ) ) return "?"; //supports 'only' up to 18278 $c1 = $c2 = $c3 = ''; if ( $valor > 702 ) { // 3 letters (up to 18278) $c1 = 65 + floor( ( $valor-703 ) / 676 ); $c2 = 65 + floor( ( ( $valor-703 ) % 676 ) / 26 ); $c3 = 65 + floor( ( ( $valor-703 ) % 676 ) % 26 ); } elseif ( $valor > 26 ) { // 2 letters (up to 702) $c1 = ( 64 + ( int )( ( $valor-1 ) / 26 ) ); $c2 = ( 64 + ( int )( $valor % 26 ) ); if ( $c2 == 64 ) $c2 += 26; } else { // 1 letter (up to 26) $c1 = ( 64 + $valor ); } $alpha = chr( $c1 ); if ( $c2 != '' ) $alpha .= chr( $c2 ); if ( $c3 != '' ) $alpha .= chr( $c3 ); if ( !$toupper ) $alpha = strtolower( $alpha ); return $alpha; } function dec2roman( $valor, $toupper = true ) { // returns a string as a roman numeral if ( ( $valor >= 5000 ) || ( $valor < 1 ) ) return "?"; //supports 'only' up to 4999 $aux = ( int )( $valor / 1000 ); if ( $aux !== 0 ) { $valor %= 1000; while ( $aux !== 0 ) { $r1 .= "M"; $aux--; } } $aux = ( int )( $valor / 100 ); if ( $aux !== 0 ) { $valor %= 100; switch ( $aux ) { case 3: $r2 = "C"; case 2: $r2 .= "C"; case 1: $r2 .= "C"; break; case 9: $r2 = "CM"; break; case 8: $r2 = "C"; case 7: $r2 .= "C"; case 6: $r2 .= "C"; case 5: $r2 = "D" . $r2; break; case 4: $r2 = "CD"; break; default: break; } } $aux = ( int )( $valor / 10 ); if ( $aux !== 0 ) { $valor %= 10; switch ( $aux ) { case 3: $r3 = "X"; case 2: $r3 .= "X"; case 1: $r3 .= "X"; break; case 9: $r3 = "XC"; break; case 8: $r3 = "X"; case 7: $r3 .= "X"; case 6: $r3 .= "X"; case 5: $r3 = "L" . $r3; break; case 4: $r3 = "XL"; break; default: break; } } switch ( $valor ) { case 3: $r4 = "I"; case 2: $r4 .= "I"; case 1: $r4 .= "I"; break; case 9: $r4 = "IX"; break; case 8: $r4 = "I"; case 7: $r4 .= "I"; case 6: $r4 .= "I"; case 5: $r4 = "V" . $r4; break; case 4: $r4 = "IV"; break; default: break; } $roman = $r1 . $r2 . $r3 . $r4; if ( !$toupper ) $roman = strtolower( $roman ); return $roman; } ?>