ขั้นแรก ไป 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)
นำทั้งหมดมาที่ 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 นี้พิมพ์
จะได้ไฟล์ออกมาอีก 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’);
?>