|
Server : Apache/2.2.2 (Fedora) System : Linux App1.pathumtani.go.th 2.6.20-1.2320.fc5smp #1 SMP Tue Jun 12 19:40:16 EDT 2007 i686 User : apache ( 48) PHP Version : 5.2.9 Disable Function : NONE Directory : /var/www/html/pathumthani_integration/requirement/application/ecomplain/ |
Upload File : |
<?
class FPDF_Protection extends FPDF
{
var $encrypted; //whether document is protected
var $Uvalue; //U entry in pdf document
var $Ovalue; //O entry in pdf document
var $Pvalue; //P entry in pdf document
var $enc_obj_id; //encryption object id
var $last_rc4_key; //last RC4 key encrypted (cached for optimisation)
var $last_rc4_key_c; //last RC4 computed key
function FPDF_Protection($orientation='P',$unit='mm',$format='A4')
{
parent::FPDF($orientation,$unit,$format);
$this->encrypted=false;
$this->last_rc4_key='';
$this->padding="\x28\xBF\x4E\x5E\x4E\x75\x8A\x41\x64\x00\x4E\x56\xFF\xFA\x01\x08".
"\x2E\x2E\x00\xB6\xD0\x68\x3E\x80\x2F\x0C\xA9\xFE\x64\x53\x69\x7A";
}
/**
* Function to set permissions as well as user and owner passwords
*
* - permissions is an array with values taken from the following list:
* copy, print, modify, annot-forms
* If a value is present it means that the permission is granted
* - If a user password is set, user will be prompted before document is opened
* - If an owner password is set, document can be opened in privilege mode with no
* restriction if that password is entered
*/
function SetProtection($permissions=array(),$user_pass='',$owner_pass=null)
{
$options = array('print' => 4, 'modify' => 8, 'copy' => 16, 'annot-forms' => 32 );
$protection = 192;
foreach($permissions as $permission){
if (!isset($options[$permission]))
$this->Error('Incorrect permission: '.$permission);
$protection += $options[$permission];
}
if ($owner_pass === null)
$owner_pass = uniqid(rand());
$this->encrypted = true;
$this->_generateencryptionkey($user_pass, $owner_pass, $protection);
}
/****************************************************************************
* *
* Private methods *
* *
****************************************************************************/
function _putstream($s)
{
if ($this->encrypted) {
$s = $this->_RC4($this->_objectkey($this->n), $s);
}
parent::_putstream($s);
}
function _textstring($s)
{
if ($this->encrypted) {
$s = $this->_RC4($this->_objectkey($this->n), $s);
}
return parent::_textstring($s);
}
/**
* Compute key depending on object number where the encrypted data is stored
*/
function _objectkey($n)
{
return substr($this->_md5_16($this->encryption_key.pack('VXxx',$n)),0,10);
}
/**
* Escape special characters
*/
function _escape($s)
{
$s=str_replace('\\','\\\\',$s);
$s=str_replace(')','\\)',$s);
$s=str_replace('(','\\(',$s);
$s=str_replace("\r",'\\r',$s);
return $s;
}
function _putresources()
{
parent::_putresources();
if ($this->encrypted) {
$this->_newobj();
$this->enc_obj_id = $this->n;
$this->_out('<<');
$this->_putencryption();
$this->_out('>>');
$this->_out('endobj');
}
}
function _putencryption()
{
$this->_out('/Filter /Standard');
$this->_out('/V 1');
$this->_out('/R 2');
$this->_out('/O ('.$this->_escape($this->Ovalue).')');
$this->_out('/U ('.$this->_escape($this->Uvalue).')');
$this->_out('/P '.$this->Pvalue);
}
function _puttrailer()
{
parent::_puttrailer();
if ($this->encrypted) {
$this->_out('/Encrypt '.$this->enc_obj_id.' 0 R');
$this->_out('/ID [()()]');
}
}
/**
* RC4 is the standard encryption algorithm used in PDF format
*/
function _RC4($key, $text)
{
if ($this->last_rc4_key != $key) {
$k = str_repeat($key, 256/strlen($key)+1);
$rc4 = range(0,255);
$j = 0;
for ($i=0; $i<256; $i++){
$t = $rc4[$i];
$j = ($j + $t + ord($k{$i})) % 256;
$rc4[$i] = $rc4[$j];
$rc4[$j] = $t;
}
$this->last_rc4_key = $key;
$this->last_rc4_key_c = $rc4;
} else {
$rc4 = $this->last_rc4_key_c;
}
$len = strlen($text);
$a = 0;
$b = 0;
$out = '';
for ($i=0; $i<$len; $i++){
$a = ($a+1)%256;
$t= $rc4[$a];
$b = ($b+$t)%256;
$rc4[$a] = $rc4[$b];
$rc4[$b] = $t;
$k = $rc4[($rc4[$a]+$rc4[$b])%256];
$out.=chr(ord($text{$i}) ^ $k);
}
return $out;
}
/**
* Get MD5 as binary string
*/
function _md5_16($string)
{
return pack('H*',md5($string));
}
/**
* Compute O value
*/
function _Ovalue($user_pass, $owner_pass)
{
$tmp = $this->_md5_16($owner_pass);
$owner_RC4_key = substr($tmp,0,5);
return $this->_RC4($owner_RC4_key, $user_pass);
}
/**
* Compute U value
*/
function _Uvalue()
{
return $this->_RC4($this->encryption_key, $this->padding);
}
/**
* Compute encryption key
*/
function _generateencryptionkey($user_pass, $owner_pass, $protection)
{
// Pad passwords
$user_pass = substr($user_pass.$this->padding,0,32);
$owner_pass = substr($owner_pass.$this->padding,0,32);
// Compute O value
$this->Ovalue = $this->_Ovalue($user_pass,$owner_pass);
// Compute encyption key
$tmp = $this->_md5_16($user_pass.$this->Ovalue.chr($protection)."\xFF\xFF\xFF");
$this->encryption_key = substr($tmp,0,5);
// Compute U value
$this->Uvalue = $this->_Uvalue();
// Compute P value
$this->Pvalue = -(($protection^255)+1);
}
}
class PDF_Code39 extends FPDF_Protection {
function Code39($x, $y, $code, $ext = true, $cks = false, $w = 0.2, $h = 8, $wide = true) {
//Display code
$this->SetFont('Arial', '', 10);
$this->Text($x, $y+$h+4, $code);
if($ext)
{
//Extended encoding
$code = $this->encode_code39_ext($code);
}
else
{
//Convert to upper case
$code = strtoupper($code);
//Check validity
if(!preg_match('|^[0-9A-Z. $/+%-]*$|', $code))
$this->Error('Invalid barcode value: '.$code);
}
//Compute checksum
if ($cks)
$code .= $this->checksum_code39($code);
//Add start and stop characters
$code = '*'.$code.'*';
//Conversion tables
$narrow_encoding = array (
'0' => '101001101101', '1' => '110100101011', '2' => '101100101011',
'3' => '110110010101', '4' => '101001101011', '5' => '110100110101',
'6' => '101100110101', '7' => '101001011011', '8' => '110100101101',
'9' => '101100101101', 'A' => '110101001011', 'B' => '101101001011',
'C' => '110110100101', 'D' => '101011001011', 'E' => '110101100101',
'F' => '101101100101', 'G' => '101010011011', 'H' => '110101001101',
'I' => '101101001101', 'J' => '101011001101', 'K' => '110101010011',
'L' => '101101010011', 'M' => '110110101001', 'N' => '101011010011',
'O' => '110101101001', 'P' => '101101101001', 'Q' => '101010110011',
'R' => '110101011001', 'S' => '101101011001', 'T' => '101011011001',
'U' => '110010101011', 'V' => '100110101011', 'W' => '110011010101',
'X' => '100101101011', 'Y' => '110010110101', 'Z' => '100110110101',
'-' => '100101011011', '.' => '110010101101', ' ' => '100110101101',
'*' => '100101101101', '$' => '100100100101', '/' => '100100101001',
'+' => '100101001001', '%' => '101001001001' );
$wide_encoding = array (
'0' => '101000111011101', '1' => '111010001010111', '2' => '101110001010111',
'3' => '111011100010101', '4' => '101000111010111', '5' => '111010001110101',
'6' => '101110001110101', '7' => '101000101110111', '8' => '111010001011101',
'9' => '101110001011101', 'A' => '111010100010111', 'B' => '101110100010111',
'C' => '111011101000101', 'D' => '101011100010111', 'E' => '111010111000101',
'F' => '101110111000101', 'G' => '101010001110111', 'H' => '111010100011101',
'I' => '101110100011101', 'J' => '101011100011101', 'K' => '111010101000111',
'L' => '101110101000111', 'M' => '111011101010001', 'N' => '101011101000111',
'O' => '111010111010001', 'P' => '101110111010001', 'Q' => '101010111000111',
'R' => '111010101110001', 'S' => '101110101110001', 'T' => '101011101110001',
'U' => '111000101010111', 'V' => '100011101010111', 'W' => '111000111010101',
'X' => '100010111010111', 'Y' => '111000101110101', 'Z' => '100011101110101',
'-' => '100010101110111', '.' => '111000101011101', ' ' => '100011101011101',
'*' => '100010111011101', '$' => '100010001000101', '/' => '100010001010001',
'+' => '100010100010001', '%' => '101000100010001');
$encoding = $wide ? $wide_encoding : $narrow_encoding;
//Inter-character spacing
$gap = ($w > 0.29) ? '00' : '0';
//Convert to bars
$encode = '';
for ($i = 0; $i< strlen($code); $i++)
$encode .= $encoding[$code{$i}].$gap;
//Draw bars
$this->draw_code39($encode, $x, $y, $w, $h);
}
function checksum_code39($code) {
//Compute the modulo 43 checksum
$chars = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%');
$sum = 0;
for ($i=0 ; $i<strlen($code); $i++) {
$a = array_keys($chars, $code{$i});
$sum += $a[0];
}
$r = $sum % 43;
return $chars[$r];
}
function encode_code39_ext($code) {
//Encode characters in extended mode
$encode = array(
chr(0) => '%U', chr(1) => '$A', chr(2) => '$B', chr(3) => '$C',
chr(4) => '$D', chr(5) => '$E', chr(6) => '$F', chr(7) => '$G',
chr(8) => '$H', chr(9) => '$I', chr(10) => '$J', chr(11) => '?K',
chr(12) => '$L', chr(13) => '$M', chr(14) => '$N', chr(15) => '$O',
chr(16) => '$P', chr(17) => '$Q', chr(18) => '$R', chr(19) => '$S',
chr(20) => '$T', chr(21) => '$U', chr(22) => '$V', chr(23) => '$W',
chr(24) => '$X', chr(25) => '$Y', chr(26) => '$Z', chr(27) => '%A',
chr(28) => '%B', chr(29) => '%C', chr(30) => '%D', chr(31) => '%E',
chr(32) => ' ', chr(33) => '/A', chr(34) => '/B', chr(35) => '/C',
chr(36) => '/D', chr(37) => '/E', chr(38) => '/F', chr(39) => '/G',
chr(40) => '/H', chr(41) => '/I', chr(42) => '/J', chr(43) => '/K',
chr(44) => '/L', chr(45) => '-', chr(46) => '.', chr(47) => '/O',
chr(48) => '0', chr(49) => '1', chr(50) => '2', chr(51) => '3',
chr(52) => '4', chr(53) => '5', chr(54) => '6', chr(55) => '7',
chr(56) => '8', chr(57) => '9', chr(58) => '/Z', chr(59) => '%F',
chr(60) => '%G', chr(61) => '%H', chr(62) => '%I', chr(63) => '%J',
chr(64) => '%V', chr(65) => 'A', chr(66) => 'B', chr(67) => 'C',
chr(68) => 'D', chr(69) => 'E', chr(70) => 'F', chr(71) => 'G',
chr(72) => 'H', chr(73) => 'I', chr(74) => 'J', chr(75) => 'K',
chr(76) => 'L', chr(77) => 'M', chr(78) => 'N', chr(79) => 'O',
chr(80) => 'P', chr(81) => 'Q', chr(82) => 'R', chr(83) => 'S',
chr(84) => 'T', chr(85) => 'U', chr(86) => 'V', chr(87) => 'W',
chr(88) => 'X', chr(89) => 'Y', chr(90) => 'Z', chr(91) => '%K',
chr(92) => '%L', chr(93) => '%M', chr(94) => '%N', chr(95) => '%O',
chr(96) => '%W', chr(97) => '+A', chr(98) => '+B', chr(99) => '+C',
chr(100) => '+D', chr(101) => '+E', chr(102) => '+F', chr(103) => '+G',
chr(104) => '+H', chr(105) => '+I', chr(106) => '+J', chr(107) => '+K',
chr(108) => '+L', chr(109) => '+M', chr(110) => '+N', chr(111) => '+O',
chr(112) => '+P', chr(113) => '+Q', chr(114) => '+R', chr(115) => '+S',
chr(116) => '+T', chr(117) => '+U', chr(118) => '+V', chr(119) => '+W',
chr(120) => '+X', chr(121) => '+Y', chr(122) => '+Z', chr(123) => '%P',
chr(124) => '%Q', chr(125) => '%R', chr(126) => '%S', chr(127) => '%T');
$code_ext = '';
for ($i = 0 ; $i<strlen($code); $i++) {
if (ord($code{$i}) > 127)
$this->Error('Invalid character: '.$code{$i});
$code_ext .= $encode[$code{$i}];
}
return $code_ext;
}
function draw_code39($code, $x, $y, $w, $h){
//Draw bars
for($i=0; $i<strlen($code); $i++)
{
if($code{$i} == '1')
$this->Rect($x+$i*$w, $y, $w, $h, 'F');
}
}
}
class KP7 extends PDF_Code39
{
var $cutstr = " เแโใไ(";
//////////// ตัดข้อความ //////////////////////////////////////
function retstr($strinput, $stbegin, $stlength) {
$retarr = Array();
if (strlen($strinput)>$stlength) {
if ($stlength>(strlen($strinput)-$stbegin)) {
$retarr[0] = substr($strinput,$stbegin, (strlen($strinput)-$stbegin));
$retarr[1] = strlen($strinput);
$retarr[2] = "end";
}else{
for ($s=($stbegin+$stlength); $s>$stbegin; $s--) {
for ($i=0; $i<strlen($this->cutstr); $i++) {
if (ord(substr($this->cutstr,$i,1)) == ord(substr($strinput,$s,1))) {
if(ord(substr($this->cutstr,$i,1))!=32) {
$retarr[0] = substr($strinput,$stbegin, ($s-$stbegin));
$retarr[1] = $s;
$retarr[2] = "process";
$re = "success";
break;
}else{
$retarr[0] = substr($strinput,$stbegin, ($s-$stbegin));
$retarr[1] = $s+1;
$retarr[2] = "process";
$re = "success";
break;
}
}
}
if ($re == "success") {
break;
}
}
if ($re!="success") {
$retarr[0] = substr($strinput,$stbegin, $stlength);
$retarr[1] = $stbegin+$stlength;
$retarr[2] = "process";
$re = "success";
}
}
} else {
$retarr[0] = $strinput;
$retarr[1] = strlen($strinput);
$retarr[2] = "end";
}
$re = "nonsuccess";
return $retarr;
}
function alignstr($strin, $cutlength) {
$strarray = Array();
$bg = 0;
for ($k=0; $k<100; $k++) {
$xstr = Array();
$xstr = $this->retstr($strin, $bg, $cutlength);
$strarray[$k] = $xstr[0];
$bg = $xstr[1];
if ($xstr[2] == "end") {
break;
}
}
//print_r($strarray);
return $strarray;
}
function retireDate($date){
$d = explode("-",$date);
$year = $d[0];
$month = $d[1];
$date = $d[2];
if($month == 1 || $month == 2 || $month == 3){
$retire_year = ($year < 2484) ? $year + 61 : $year + 60 ;
} else if($month == 10 || $month == 11 || $month == 12){
$retire_year = ($date <= 1 && $month == 10) ? $year + 60 : $year + 61;
} else {
$retire_year = $year + 60;
}
return "30 กันยายน พ.ศ. ".$retire_year;
}
######################################### header แผนชุมชุน ###################################3
function header_list_otop(){
global $x,$y,$row1_x,$row1_y,$col_width,$col_height,$yy;
$star_yy = "ปี ".substr($yy,-2);
$this->SetXY(5,30 ); // สร้างกรอบ main ความสู่ง 4 แถว
$this->SetFont('Angsana New','',12);
$col_width = array(5,15,50,30,70,25,40,10,40);
$col_height = 10;
$row1_x = $this->GetX();
$row1_y = $this->GetY();
$x = $row1_x;
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[0],($col_height), " ",1,0,'C');
$x += $col_width[0];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[1],($col_height)," ",1,0,'C');
$x += $col_width[1];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[2],($col_height)," ",1,0,'C');
$x += $col_width[2];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[3],($col_height)," ",1,0,'C');
$x += $col_width[3];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[4],($col_height)," ",1,0,'C');
$x += $col_width[4];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[5],($col_height)," ",1,0,'C');
$x += $col_width[5];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[6],($col_height)," ",1,0,'C');
$x += $col_width[6];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[7],($col_height)," ",1,0,'C');
$x += $col_width[7];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[8],($col_height)," ",1,0,'C');
$this->SetXY(5,30 ); // สร้างกรอบ ย่อย
$this->SetFont('Angsana New','',12);
$col_width = array(5,15,50,30,70,25,40,10,40);
$col_height = 5;
$row1_x = $this->GetX();
$row1_y = $this->GetY();
$x = $row1_x;
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[0],10, "ที่",0,0,'C');
$x += $col_width[0];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[1],10,"รหัส",0,0,'C');
$x += $col_width[1];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[2],10,"ชื่อกลุ่ม/องค์กร/เจ้าของกิจการ",0,0,'C');
$x += $col_width[2];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[3],10,"ชื่อผลิตภัณฑ์",0,0,'C');
$x += $col_width[3];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[4],($col_height),"ที่อยู่",0,0,'C');
$x += $col_width[4];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[5],10,"หมายเลขโทรศัพท์",0,0,'C');
$x += $col_width[5];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[6],($col_height),"ประเภทผู้ประกอบการ",0,0,'C');
$x += $col_width[6];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[7],($col_height),"ดาว",0,0,'C');
$x += $col_width[7];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[8],($col_height),"ความต้องการ ",0,0,'C');
$this->SetXY(5,35 ); // สร้างกรอบ ย่อย
$this->SetFont('Angsana New','',12);
$col_width = array(5,15,50,30,12,8,25,25,25,10,15,15,10,40);
$col_height = 5;
$row1_x = $this->GetX();
$row1_y = $this->GetY();
$x = $row1_x;
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[0],($col_height), " ",0,0,'C');
$x += $col_width[0];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[1],($col_height)," ",0,0,'C');
$x += $col_width[1];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[2],($col_height)," ",0,0,'C');
$x += $col_width[2];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[3],($col_height)," ",0,0,'C');
$x += $col_width[3];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[4],($col_height),"บ้านเลขที่",1,0,'C');
$x += $col_width[4];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[5],($col_height),"หมู่ที่",1,0,'C');
$x += $col_width[5];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[6],($col_height),"ตำบล",1,0,'C');
$x += $col_width[6];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[7],($col_height),"อำเภอ",1,0,'C');
$x += $col_width[7];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[8],($col_height)," ",0,0,'C');
$x += $col_width[8];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[9],($col_height),"ชุมชน",1,0,'C');
$x += $col_width[9];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[10],($col_height),"รายเดียว",1,0,'C');
$x += $col_width[10];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[11],($col_height),"SMEs",1,0,'C');
$x += $col_width[11];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[12],($col_height),$star_yy,0,0,'C');
$x += $col_width[12];
$y = $row1_y;
$this->SetXY($x ,$y);
$this->Cell($col_width[13],($col_height),"พัฒนาศักยภาพ",0,0,'C');
}// end function
######################## end แผนชุมชน ####################
} // end class
?>