Archive for พฤษภาคม, 2009

PDF ไทย

ขั้นแรก ไป download fpdf จาก fpdf.org ก่อน

แตกไฟล์ออกมามันจะประกอบด้วย dir และ file ต่างๆ ดังนี้

เอาทั้งหมดนี้ไปวางไว้ใน dir ที่จำใช้ทำงาน เช่น ทำงานที่ workspace/ ก็เอาไปวางเป็น workspace/fpdf/ เป็นต้น(ปรับแก้ได้ตามใจนะไม่ได้บังคับใช้ในการอ้างอิงที่อยู่เท่านั้น)
อันนี้ code ลองทดสอบอันแรก เอามาจาก fpdf.org เลยเพื่อทดสอบว่า fpdf ทีเราเอามาใช้งานได้จริง
สมมติว่า save เป็นไฟล์ “firstpage.php” ไว้ที่ workspace/
เราก็จะเข้าไปทดสอบได้จาก http://hostname/…/workspace/firstpage.php
<?php
require(‘./fpdf/fpdf.php’);
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont(‘Arial’,‘B’,16);
$pdf->Cell(40,10,‘Hello World!’);
$pdf->Output();
?>
ถ้าได้ก็ไปต่อได้ถ้าไม่ได้ก็ลองใหม่(-_-)
ขั้นที่ 2 เตรียม font (ทำบน Windows Vista)
download ตัวทำ font http://www.fpdf.org/fr/dl.php?id=22
นำทั้งหมดมาที่ dir workspace/
copy font จาก dir font มาที่ dir ที่ทำงาน (เพื่อให้ง่าย)
ตัวอย่างเช่น เอา Font “Angsana New” จาก C:\Windows\Fonts มาใส่ไว้ที่ dir workspace/
โดยไฟล์ของ Font “Angsana New” ชื่อ angsa.ttf
ขั้นที่ 3

เปิด cmd ขึ้นมาแล้วย้ายตัวเองไปที่ dir workspace/

พิมพ์
ttf2pt1 -b -L cp874.map angsa.ttf angsa
จากขั้นตอนนี้จะได้ไฟล์มาสองตัวคือ angsa.afm กับ angsa.pfb copy ใส่ไว้ที่ workspace/fpdf/font/makefont/
ขั้นที่ 4
สร้างไฟล์ php 1 ไฟล์เพื่อสร้างfont ให้ใช้ได้กับ fpdf อีกที
สมมุติว่าชื่อ make_angsa.php อยู่ที่ workspace/fpdf/font/makefont/
<?
include(’makefont.php’);
MakeFont(’angsa,pfb’,'angsa.afm’,'cp874′)
?>
เปิด cmd แล้วมาที่ dir นี้พิมพ์
php make_angsa.php

จะได้ไฟล์ออกมาอีก 2 ไฟล์คือ angsa.php และ angsa.z

copy เอาทั้งสองตัวไปวางที่ workspace/fpdf/font/
น่าจะใช้ได้แล้วลองทดสอบโดย
<?php
require(‘./fpdf/fpdf.php’);
$str = “มอสสิล่า”;
$pdf=new FPDF();
$pdf->AddFont(’angsa’,”,’angsa.php’);
$pdf->AddPage();
$pdf->SetFont(angsa,,16);
$pdf->Cell(40,10,$str);
$pdf->Output();
?>

น่าจะได้แล้วนะ

ขั้นที่ พิเศษ
จาก ผมที่ผมได้ลองถ้าเปลี่ยน encoding เป็น utf8 แล้วมันจะใช้ไม่ได้แฮะ(จำเป็นต้องใช้เพราะดึงข้อมูล utf8 จาก db) ผมก็เลยงงๆ ถามๆ ไปเรื่อย แล้วก็ได้คำตอบจาก  @gookcompsci ว่าให้ลองใช้ iconv ดู โดยให้ดูก่อนว่า php มันเปิด function นี้ไว้หรือเปล่าถ้ามันเปิดอยู่ก็ง่ายขึ้นครับ
อันนี้ตัวอย่างการใช้ iconv
<?
$str = “string encoding เริ่มต้นสมมุติว่าเป็น utf8″;
//$str = iconv(’encoding เริ่มต้น’,'encoding ปลายทาง’,’string ที่จะเปลี่ยน’);
$str = iconv(’UTF-8′,’CP874′,$str); //ถูกแปลงเป็น CP874 ที่นี่
?>
ตัวอย่างการใช้งานกับ db
<?php
include(’config.php’);
include(’opendb.php’);
require(’./fpdf/fpdf.php’);
$sql = “SELECT * FROM user”;
$result = mysql_query($sql);
$str = ”;
while($row = mysql_fetch_array($result)){
$str .= $row['name'];
}
$str = iconv(’UTF-8′,’CP874′,$str);
$pdf=new FPDF();
$pdf->AddFont(’angsa’,”,’angsa.php’);
$pdf->AddPage();
$pdf->SetFont(’angsa’,”,16);
$pdf->Cell(40,10,$str);
$pdf->Output();
include(’closedb.php’);
?>
  • Comments Off

เมื่อใช้งาน fpdf ครั้งแรกจะไม่สามารถใช้ภาษาไทยได้ เนื่องจาก Class fpdf ไม่ได้เตรียม font ที่รองรับภาษาไทยไว้
ดังนั้นเราจะต้องทำการติดตั้ง font เพิ่มเติมเข้า ซึ่งสามารถโหลดได้จาก ที่นี่
1)  ให้ขยายไฟล์ fpdf_fontThai.zip ออกจะได้ไฟล์ที่มีนามสกุล .php และ .z

2) ทำการ Copy ไฟล์ทั้งหมดไปไว้ที่ Folder font

3)  font ที่เราเพิ่มเข้าไปมีชื่อเรียกและคุณสมบัติดังต่อไปนี้
N = Normal ตัวอักษรปกติ เวลาใช้ให้ใส่ค่าว่าง
ฺB = Bold ตัวอักษรหนา
I = Italic ตัวอักษรเอียง
IB = Italic Bold or Bold Italic ตัวอักษรหนาเอียง

  • AngsanaNew (N,B,I,IB)
  • CordiaNew (N,B,I,IB)
  • Tahoma (N,B)
  • BrowalliaNew (N,B,I,IB)
  • KoHmu (N)
  • KoHmu2 (N)
  • KoHmu3 (N)
  • MicrosoftSansSerif (N)
  • PLE_Cara (N)
  • PLE_Care (N,B)
  • PLE_Joy (N)
  • PLE_Tom (N,B)
  • PLE_TomOutline (N)
  • PLE_TomWide (N)
  • DilleniaUPC (N,B,I,IB)
  • EucrosiaUPC (N,B,I,IB)
  • FreesiaUPC (N,B,I,IB)
  • IrisUPC (N,B,I,IB)
  • JasmineUPC (N,B,I,IB)
  • KodchiangUPC (N,B,I,IB)
  • LilyUPC (N,B,I,IB)

4) ทดสอบผลการทำงานจาก font ที่เพิ่มเข้าไปโดยสร้างไฟล์ชื่อ exam_2.php และใส่ Code ดังต่อไปนี้

require(‘fpdf.php’);
$pdf=new FPDF();
$pdf->AddPage();
/*
เพิ่ม Font เข้ามาเท่าที่จะใช้เพราะจะทำ
ให้ไฟล์ pdf ของเรามีขนาดใหญ่
*/

$pdf->AddFont(‘AngsanaNew’,,‘angsa.php’);
$pdf->AddFont(‘AngsanaNew’,‘B’,‘angsab.php’);
$pdf->AddFont(‘AngsanaNew’,‘I’,‘angsai.php’);
//กำหนดแบบอักษร
$pdf->SetFont(‘AngsanaNew’,,18);
$pdf->Cell(0,10,‘ตัวอย่าง Font ภาษาไทย’);
$pdf->Ln(8);
$pdf->SetFont(‘AngsanaNew’,‘B’,20);
$pdf->Cell(0,10,‘Font ภาษาไทย AngsanaNew 20 ตัวหนา’);
$pdf->Ln(8);
$pdf->SetFont(‘AngsanaNew’,‘I’,25);
$pdf->Cell(0,10,‘Font ภาษาไทย AngsanaNew 25 ตัวเอียง’);$pdf->Output();

5) ผลการทดสอบ

  • Comments Off

ขั้นตอนการติดตั้ง Asterisk-GUI

  1. apt-get install subversion
  2. cd /usr/src/
  3. svn checkout http://svn.digium.com/svn/asterisk-gui/branches/2.0 asterisk-gui
  4. cd asterisk-gui
  5. ./configure
  6. make
  7. make install
  8. แก้ไขไฟล์ /etc/asterisk/manager.conf

    enabled = yes
    webenabled = yes
    [administrator]
    secret = mysecret
    read = system,call,log,verbose,command,agent,user,config
    write = system,call,log,verbose,command,agent,user,config
    –>แก้ไขไฟล์ /etc/asterisk/http.conf
    enabled=yes
    enablestatic=yes
    bindaddr=0.0.0.0
    ถ้ายังไม่สามารถแสดงหน้าเว็บได้ให้เพิ่ม
    prefix=asterisk ในบรรทัดสุดท้ายด้วย

  9. make checkconfig
  10. ทำการ reload asterisk และ restart apache
  11. ลบโฟล์เดอร์ static-http/ ใน /usr/share/asterisk/ ออก
  12. ทำ symbolic link ด้วยคำสั่ง ln -s /var/lib/asterisk/static-http/ /usr/share/asterisk/

การเรียกใช้งาน

  1. เรียกใช้ asterisk-gui ได้ที่ http://ip server asterisk-gui:8088/asterisk/static/config/index.html
  2. ในกรณีที่มีปัญหาเรื่อง Folder Permission ให้แก้ปัญหาโดยใช้คำสั่ง
    chmod -R 777 /var/lib/asterisk/static-http/
  • Comments Off
<a href=“#” OnClick=DoAction(1,’Jose’); > Click </a>

Using POST

function DoAction( id, name )
{
    $.ajax({
         type: “POST”,
         url: “someurl.php”,
         data: “id=” + id + “&name=” + name,
         success: function(msg){
                     alert( “Data Saved: “ + msg );
                  }
    });
}

Using GET

function DoAction( id, name )
{
     $.ajax({
          type: “GET”,
          url: “someurl.php?id=” + id + “&name=” + name,
          success: function(msg){
                     alert( “Data Saved: “ + msg );
                   }
     });
}

 
  • Comments Off

jquery simple

#testDiv {
	background-color:#3399CC;
	font: 12px Tahoma, Arial, sans-serif;
	color:#FFFFFF;
	width: 150px;
	height: 100px;
	text-align:center;
}
.testClass {
	background-color:#FF0000;
	font: 12px Tahoma, Arial, sans-serif;
	color:#FFFFFF;
	width: 150px;
	height: 100px;
	text-align:center;
}

* #testDiv และ .testClass ใน css เอาไว้แค่กำหนดหน้าตาเฉยๆ ไม่มีผลกับ jquery

<script src=“jquery.js” type=“text/javascript”><!–mce:0–></script>

เป็นการเรียกโหลด jquery.js เข้ามา

<a onclick=“$(’#testDiv’).show();” href=“javascript:void(0);”>Show</a>
<a onclick=“$(’#testDiv’).hide();” href=“javascript:void(0);”>Hide</a>

ดสำคัญมันอยู่ตรงนี้ onclick=”$(’#testDiv’).show();” คำสั่งนี้คือการ เลือกที่จะทำงานกับ
div (ขึ้นต้นด้วย #) ที่ชื่อว่า #testDiv นั่นเอง

 
<div id=“testDiv”>ข้อความ .. .. .. ข้อความ</div>
<a onclick=“$(’.testClass’).show();” href=“javascript:void(0);”>Show</a>
<a onclick=“$(’.testClass’).hide();” href=“javascript:void(0);”>Hide</a>

ในทำนองเดียวกัน onclick=”$(’.testClass’).show();” คำสั่งนี้คือการ เลือกที่จะทำงานกับ
class (ขึ้นต้นด้วย .) ที่ชื่อว่า .testClass นั่นเอง

 
<div class=“testClass”>ข้อความ .. .. .. ข้อความ</div>
  • Comments Off

อย่างที่ทราบกันครับว่าการส่ง-รับค่าแบบ AJAX นั้นสามารถส่งได้ 2 แบบ คือแบบ POST และ GET ซึ่งก้อเหมือนเราส่งค่าผ่าน HTML Form ธรรมดาทั่วไปนั้นเอง และ jQuery ก้อมีฟั่งชั่นรองรับที่ง่ายแสนง่าย ให้พวกเราใช้งานอยู่แล้วครับเรามาเริ่มกันเลยครับ
การส่ง-รับค่าแบบ POST
แบบที่ 1 (ไม่มีการส่งค่า Parameter)

  1. $.post(“ชื่อไฟล์ที่ต้องการดึงข้อมูล”, function(data){
  2. //คำสั่ง
  3. });

ตัวอย่าง JavaScript ในไฟล์ test.html

  1. $(document).ready(function(){ //เริ่มทำงานเมื่อโหลดเพจเสร็จ
  2. $.post(“test.php”, function(data){ //data จะเก็บค่าที่ return กลับมา
  3. alert(“Data is ”+data); //แสดงข้อความใน Alert box
  4. });
  5. });

โค๊ดในไฟล์ test.php

  1. echo ‘Hi, AJAX’; //return คำว่า ”Hi, AJAX”

ผลที่ได้คือ
0011.jpg
แบบที่ 2 (มีการส่งค่า Parameter)

  1. $.post(“ชื่อไฟล์ที่ต้องการดึงข้อมูล”, [JSON], function(data){
  2. //คำสั่ง
  3. });

ตัวอย่าง JavaScript ในไฟล์ test2.html

  1. $(document).ready(function(){ //เริ่มทำงานเมื่อโหลดเพจเสร็จ
  2. $.post(“test2.php”,{fname: “ทดสอบ”, lname: “นอนสบาย”}, function(data){ //มีการการส่งค่า fname และ lname ไปด้วย
  3. alert(“Data is ”+data); //แสดงข้อความใน Alert box
  4. });
  5. });

โค๊ดในไฟล์ test2.php

  1. $fname = $_POST["fname"]; // รับค่าแบบ POST
  2. $lname = $_POST["lname"];
  3. echo “Hi, {$fname} {$lanme}”; //return ค่าที่รับมาแบบ POST

ผลที่ได้คือ
0021.jpg
การส่ง-รับค่าแบบ GET
สำหรับการส่งแบบ GET นั้นสามารถทดสอบได้ด้วยโค๊ดเดียวกัน เพียงแต่เปลี่ยนจากฟังก์ชั่น $.pos() เป็น $.get() และเปลี่ยนการรับข้อมูลในไฟล์ PHP จาก $_POST เป็น $_GET

  • Comments Off

Time

Mp3

Msn status

  • manon2029@hotmail.com is

Chat with Meeh

Donate

    If you find an article useful, then please make a donation.

หมวดหมู่

UserOnline

Counter

  • Visitors today: 90
  • Visitors yesterday: 86
  • Visitors per day: 415
  • Max. visitors per day: 255
  • Total page views: 167,502
  • Page views of this page: 415
  • Currently online: 1
  • Max. online: 36
  • Total visitors: 36,258
  • counterStatistics