Server IP : 202.29.229.35 / Your IP : 18.119.120.88 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/pdfNew/ |
Upload File : |
<? //require ('fpdf/fpdf.php'); //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 JPDF extends FPDF { function VCell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false) { //Output a cell $k=$this->k; if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak()) { //Automatic page break $x=$this->x; $ws=$this->ws; if($ws>0) { $this->ws=0; $this->_out('0 Tw'); } $this->AddPage($this->CurOrientation,$this->CurPageSize); $this->x=$x; if($ws>0) { $this->ws=$ws; $this->_out(sprintf('%.3F Tw',$ws*$k)); } } if($w==0) $w=$this->w-$this->rMargin-$this->x; $s=''; // begin change Cell function if($fill || $border>0) { if($fill) $op=($border>0) ? 'B' : 'f'; else $op='S'; if ($border>1) { $s=sprintf('q %.2F w %.2F %.2F %.2F %.2F re %s Q ',$border, $this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op); } else $s=sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op); } if(is_string($border)) { $x=$this->x; $y=$this->y; if(is_int(strpos($border,'L'))) $s.=sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k); else if(is_int(strpos($border,'l'))) $s.=sprintf('q 2 w %.2F %.2F m %.2F %.2F l S Q ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k); if(is_int(strpos($border,'T'))) $s.=sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k); else if(is_int(strpos($border,'t'))) $s.=sprintf('q 2 w %.2F %.2F m %.2F %.2F l S Q ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k); if(is_int(strpos($border,'R'))) $s.=sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k); else if(is_int(strpos($border,'r'))) $s.=sprintf('q 2 w %.2F %.2F m %.2F %.2F l S Q ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k); if(is_int(strpos($border,'B'))) $s.=sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k); else if(is_int(strpos($border,'b'))) $s.=sprintf('q 2 w %.2F %.2F m %.2F %.2F l S Q ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k); } if(trim($txt)!='') { $cr=substr_count($txt,"\n"); if ($cr>0) { // Multi line $txts = explode("\n", $txt); $lines = count($txts); for($l=0;$l<$lines;$l++) { $txt=$txts[$l]; $w_txt=$this->GetStringWidth($txt); if ($align=='U') $dy=$this->cMargin+$w_txt; elseif($align=='D') $dy=$h-$this->cMargin; else $dy=($h+$w_txt)/2; $txt=str_replace(')','\\)',str_replace('(','\\(',str_replace('\\','\\\\',$txt))); if($this->ColorFlag) $s.='q '.$this->TextColor.' '; $s.=sprintf('BT 0 1 -1 0 %.2F %.2F Tm (%s) Tj ET ', ($this->x+.5*$w+(.7+$l-$lines/2)*$this->FontSize)*$k, ($this->h-($this->y+$dy))*$k,$txt); if($this->ColorFlag) $s.=' Q '; } } else { // Single line $w_txt=$this->GetStringWidth($txt); $Tz=100; if ($w_txt>$h-2*$this->cMargin) { $Tz=($h-2*$this->cMargin)/$w_txt*100; $w_txt=$h-2*$this->cMargin; } if ($align=='U') $dy=$this->cMargin+$w_txt; elseif($align=='D') $dy=$h-$this->cMargin; else $dy=($h+$w_txt)/2; $txt=str_replace(')','\\)',str_replace('(','\\(',str_replace('\\','\\\\',$txt))); if($this->ColorFlag) $s.='q '.$this->TextColor.' '; $s.=sprintf('q BT 0 1 -1 0 %.2F %.2F Tm %.2F Tz (%s) Tj ET Q ', ($this->x+.5*$w+.3*$this->FontSize)*$k, ($this->h-($this->y+$dy))*$k,$Tz,$txt); if($this->ColorFlag) $s.=' Q '; } } // end change Cell function if($s) $this->_out($s); $this->lasth=$h; if($ln>0) { //Go to next line $this->y+=$h; if($ln==1) $this->x=$this->lMargin; } else $this->x+=$w; } //-------------end vcell-------------------------- function Header(){ //$this->AddFont('angsana','B','angsanab.php'); //$this->AddFont('angsana','','angsana.php'); //ใช้ตัวอักษร Arial ตัวเอียง ขนาด 5 $this->SetFont('Arial','',8); //พิมพ์ตัวหนังสือตัวเอียงๆ ที่ตำแหน่งเยื้องขอบกระดาษซ้าย 5หน่วย ขอบกระดาษบน 5หน่วย $this->Text(5,8,'' ); //ปัดบรรทัด กำหนดความกว้างของบรรทัด 20หน่วย $this->Ln(10); } function Footer() { //นับจากขอบกระดาษด้านล่างขึ้นมา 10 มม. $this->SetY( -10 ); //กำหนดใช้ตัวอักษร Arial ตัวเอียง ขนาด 5 //$this->SetFont('Arial','I',6); $this->SetFont('angsana','',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, 'page '.$this->PageNo().' of '.$this->tp ,0,0,'R'); } function RoundedRect($x, $y, $w, $h,$r, $style = '') { $k = $this->k; $hp = $this->h; if($style=='F') $op='f'; elseif($style=='FD' or $style=='DF') $op='B'; else $op='S'; $MyArc = 4/3 * (sqrt(2) - 1); $this->_out(sprintf('%.2f %.2f m',($x+$r)*$k,($hp-$y)*$k )); $xc = $x+$w-$r ; $yc = $y+$r; $this->_out(sprintf('%.2f %.2f l', $xc*$k,($hp-$y)*$k )); $this->_Arc($xc + $r*$MyArc, $yc - $r, $xc + $r, $yc - $r*$MyArc, $xc + $r, $yc); $xc = $x+$w-$r ; $yc = $y+$h-$r; $this->_out(sprintf('%.2f %.2f l',($x+$w)*$k,($hp-$yc)*$k)); $this->_Arc($xc + $r, $yc + $r*$MyArc, $xc + $r*$MyArc, $yc + $r, $xc, $yc + $r); $xc = $x+$r ; $yc = $y+$h-$r; $this->_out(sprintf('%.2f %.2f l',$xc*$k,($hp-($y+$h))*$k)); $this->_Arc($xc - $r*$MyArc, $yc + $r, $xc - $r, $yc + $r*$MyArc, $xc - $r, $yc); $xc = $x+$r ; $yc = $y+$r; $this->_out(sprintf('%.2f %.2f l',($x)*$k,($hp-$yc)*$k )); $this->_Arc($xc - $r, $yc - $r*$MyArc, $xc - $r*$MyArc, $yc - $r, $xc, $yc - $r); $this->_out($op); } function _Arc($x1, $y1, $x2, $y2, $x3, $y3) { $h = $this->h; $this->_out(sprintf('%.2f %.2f %.2f %.2f %.2f %.2f c ', $x1*$this->k, ($h-$y1)*$this->k, $x2*$this->k, ($h-$y2)*$this->k, $x3*$this->k, ($h-$y3)*$this->k)); } function WriteText($h,$text) { $intPosIni = 0; $intPosFim = 0; if (strpos($text,'<')!==false) { $this->Write($h,substr($text,0,strpos($text,'<'))); $intPosIni = strpos($text,'<'); $intPosFim = strpos($text,'>'); $this->SetFont('','B'); $this->Write($h,substr($text,$intPosIni+1,$intPosFim-$intPosIni-1)); $this->SetFont('',''); $this->WriteText($h,substr($text,$intPosFim+1,strlen($text))); } else{ $this->Write($h,$text); } } } //---------------------------------------------------------------------------- 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 function px2mm($px){ return $px*25.4/72; } function txtentities($html){ $trans = get_html_translation_table(HTML_ENTITIES); $trans = array_flip($trans); return strtr($html, $trans); } //////////////////////////////////// class PDF extends FPDF { //variables of html parser var $B; var $I; var $U; var $HREF; var $fontList; var $issetfont; var $issetcolor; 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 }//end of class ?>