Passage 9 by Ian Walker & พชรภรณ์ เค้าสงวนศิลป์

cell phone
cell phone

เป็นเนื้อหาสำหรับสาระภาษาอังกฤษ และเทคโนโลยี
สำหรับผู้เริ่มต้นกับภาษาอังกฤษ

Everyone has a cell phone including me.
My dad gave it to me on my birthday last year.
It is black and shiny.
It has a lot of buttons.
I use it to call my friends.
My dad told me I should not use it too much.
It is use ful when i am out with friends and my parents want to call me.
I carry my phone everywhere with me.
I cannot use it at school when i am in class.
If my teacher sees my cell phone, he will take it from me.
I enjoy listening to music on my cell phone.
Sometimes my friends and i exchange music on our cell phones.
This year, i want a Sony PSP for my birthday.

+ Woman fired : http://www.thaiall.com/blog/burin/6058/
+ 16 news : http://www.thaiall.com/blog/burin/6267/

การใช้ PHP เขียนข้อมูลสร้าง PDF File

fpdf module with multicell
fpdf module with multicell

30 มิ.ย.56 มีโอกาสดู 2 เรื่อง สำหรับเรื่องแรก คือ cygwin กับ freebasic ที่ดูมาแล้วหลายวัน วันนี้สรุปว่า freebasic ยังทำงานบนสภาวะจำลอง linux ได้ไม่ดีนัก แต่เป้าหมายคือการทดสอบบน cygwin จึงเปลี่ยนไปใช้ open-cobol ก็พบว่าทำงานเข้ากันได้กับ cygwin ตั้งแต่ปรับแก้คำสั่งใน compiler แล้วก็แปล sourcecode ใหม่ด้วย gcc แล้วได้ compiler จากนั้นก็เขียนภาษา cobol นำมาแปลด้วย compiler ตัวใหม่ที่ปรับแก้คำสั่งแล้ว สรุปว่าเรียบร้อยดี

ส่วนเรื่องที่สอง เรื่องการใช้ php อ่านข้อมูลไปเขียนลง PDF file เพื่อ download ไปใช้งาน
โจทย์ที่ทราบมาจาก ภสุ (นักศึกษาที่ทำโปรเจค) คือต้องการเขียนข้อมูลฟิลด์เดียว แต่มีหลายบรรทัดลงแฟ้ม pdf แต่ฟังก์ชัน cell จะทำให้ข้อมูล 1 ฟิลด์ไหลไปเรื่อย ๆ จนทับข้อมูลส่วนอื่นในบรรทัดนั้น ไม่มีการตัดบรรทัด ส่วน multicell ก็มีปัญหานิดหน่อย  มีประเด็นแลกเปลี่ยน ดังนี้
1. การเขียน content-type เป็น pdf นั้น (เป็นเรื่องที่กรพูดถึง)
คำสั่งพื้นฐานของ PHP ออกแบบมาให้เขียน header แล้วผู้ใช้ก็ load file ไป
อาจถูกใช้เพื่อป้องกันการเข้าถึงแฟ้ม pdf โดยตรง
แต่เทคนิคนี้ไม่ได้ใช้ php เขียนข้อมูล เพื่อสร้าง pdf ใหม่ แต่เน้น load file ที่มีอยู่

header(“Content-type: application/pdf”);
header(“Content-Length: $len”);
header(“Content-Disposition: inline; filename=foo.pdf”);
readfile($filename);

2. multicell จะเลื่อนตัวชี้ไปบรรทัดใหม่ (ซันแนะนำมา)
สามารถตัดข้อมูลเป็นหลายบรรทัดได้ แต่ pointer จะขึ้นบรรทัดใหม่หลังใช้ multicell
หากต้องการเขียน cell ต่อไปก็ต้องไปเริ่มบรรทัดใหม่ จึงไม่สามารถใช้ multicell
เป็นฟิลด์แรกของแต่ละบรรทัดข้อมูล
3. เทคนิคการตัดบรรทัดข้อมูล แล้วแสดงผลแยก cell
วิธีข้างล่างนี้ยุ่งยากน่าดู ทำให้นึกถึงการเขียน graphic บน java แต่นี่คือ pdf
download module FPDF ได้ที่
http://resource.thaicreate.com/upload/script/pdf-thai.zip

<body><?php
require(‘fpdf.php’);
define(‘FPDF_FONTPATH’,’font/’);
$pdf=new FPDF();
$pdf->AddPage();
$pdf->AddFont(‘angsa’,”,’angsa.php’);
$pdf->SetFont(‘angsa’,”,36);
$pdf->Cell(0,20,iconv( ‘UTF-8′,’TIS-620′,’เธชเธงเธฑเธชเธ”เธต’),0,1,”C”);
$pdf->SetFont(‘angsa’,”,10);
$pdf->Cell(50, 3 ,’ธรณีนี่นี้ เป็นพยาน เราก็ศิษย์มีอาจารย์ หนึ่งบ้าง เราผิดท่านประหาร เราชอบ’);
$pdf->Cell(30,3,”ธรณีนี่นี้เป็นพยาน”,1,”L”);
$pdf->Cell(30,3,”ธรณีนี่นี้เป็นพยาน”,1,”L”);
$pdf->ln(11);
$pdf->SetFillColor(255,255,0);
$pdf->Rect(10, 40, 40, 10,”F”);
$pdf->Rect(50, 40, 40, 10);
$pdf->Rect(90, 40, 40, 10);
$pdf->SetFont(‘angsa’,”,10);
// ===
$pdf->Cell(50, 3 ,’ธรณีนี่นี้ เป็นพยาน เราก็ศิษย์มีอาจารย์ ‘);
$pdf->Cell(30,3,”ธรณีนี่นี้เป็นพยาน”,0,”L”);
$pdf->Cell(30,3,”ธรณีนี่นี้เป็นพยาน”,0,”L”);
$pdf->ln();
$pdf->Cell(50, 3 ,’หนึ่งบ้าง เราผิดท่านประหาร เราชอบ’);
$pdf->ln();
$pdf->Cell(50, 3 ,’เราบ่ผิดท่านมล้าง ดาบนั้น คืนสนอง’);
$pdf->ln(5);
// ===
$f = time();
$pdf->Output(“$f.pdf”,”F”);
echo “<a href=’$f.pdf’>here</a>”;
// http://www.fpdf.org/en/script/script3.php
// http://www.fpdf.org/en/doc/multicell.htm
// http://www.select2web.com/fpdf/fpdf-lesson-14.html
?>
</body>