Background ขาดหายไป หรือไล่ระดับไม่เต็มหน้า

ผลงานโปสเตอร์ ในรูปของ PDF File กำหนดขนาดไว้ 8 นิ้ว * 18 นิ้ว ที่นิสิตทำส่ง พบปัญหากับสีพื้น (background) บ่อยครั้งใน 2 กรณี คือ 1) สีพื้นและเนื้อหาข้อมูลมาไม่ครบ และ 2) สีไล่ระดับมาเป็นท่อนเล็ก ๆ ไม่เต็มหน้าเหมือนตอนออกแบบ สำหรับกรณีสีพื้นมาเพียงครึ่งหน้านั้น เกิดจาก Default printer เป็นโปรแกรม PDFCreator ซึ่งกำหนดขนาดกระดาษเป็น A4 เมื่อสั่ง Save as หรือ Print หรือส่งออกไปแล้ว จะทำให้การแสดงผลใน PDF file ถูกจำกัดที่ A4 ส่วนที่อยู่นอกเหนือจากนี้จะหายไป วิธีแก้ไขก็เพียงแต่เปลี่ยน Default Printer

สีไล่ระดับ ที่กำหนดเป็น background นั้น จะมาเป็นท่อนเล็ก ๆ หากต้องการใช้ Feature นี้ ต้องแทรก Shape, Rectangle แล้วกำหนดสีไล่ระดับใน Shape แล้วสั่ง send to back ก็จะแสดงผลได้ตามปกติ เมื่อมีการส่งออกไปเป็น PDF หรือจะใช้ image เป็น background ก็ดูสวยดี แต่ควรต้องคำนึงถึงการแสดงผลแบบ สีคู่ตรงข้าม (Contrast Color) จะได้เห็นเนื้อหาแยกออกจากสีพื้นได้ชัดเจน

http://www.thaiall.com/office/word.htm

สีไล่ระดับ ถ้าทำใน shape จะไม่พบปัญหา

การรวมแฟ้ม .doc เป็น .pdf

pdfcreator for combine all
pdfcreator for combine all

มีนักศึกษาถามว่า เขียนรายงาน 5 บท แยกบทละแฟ้ม
แล้วอาจารย์ต้องการรวมกันเป็น PDF แฟ้มเดียว
.. ต้องทำอย่างไร

ในที่นี่นำเสนอ 2 วิธี
1. คัดลอกทั้ง 5 บทมารวมกันใน word เพียงแฟ้มเดียว
แล้วตรวจสอบการแยก section ให้ดี
กำหนดเลขหน้า และการวางแนวให้ถูกต้อง
จากนั้นก็ save as เป็น PDF
2. สั่งพิมพ์แฟ้มทั้ง 5 ที่มีการแต่งรูปแบบแล้ว
ไปทาง PDFCreator แล้วเลือก Wait – Collect
จากนั้นก็จัดเรียงให้เรียบร้อย สั่งรวม แล้วพิมพ์ แล้วจัดเก็บ
ก็จะได้แฟ้ม PDF

สรุปว่า .. วิธีที่ 2 ง่ายกว่าเยอะ เพราะแต่งมาแล้ว
ทำให้ไม่ต้องเสียเวลาจับแฟ้มต่าง ๆ มาปรับใหม่ใน word
http://www.pdfforge.org/download

การปลดล็อกแฟ้มพีดีเอฟของตนเองที่เคยล็อกไว้ ต้องทำอย่างไร

เผลอล็อกแฟ้ม จะปลด ต้องทำอย่างไร
เผลอล็อกแฟ้ม จะปลด ต้องทำอย่างไร

คำถาม ..

มีนักศึกษาสอบถามมาว่า
เขาเคยส่งอีเมลเป็นแฟ้ม pdf แล้วเก็บต้นฉบับไว้ในเครื่อง
และได้ lock pdf ห้าม print อย่างมีเหตุผล
วันนี้แฟ้มต้นฉบับเพราะเครื่องพัง เหลือแต่ pdf ในอีเมล
เอกสารมีหลายร้อยหน้า จะพิมพ์ใหม่ก็ไม่ได้
ต้องการ print มาเข้าเล่ม ส่งอาจารย์ต้องทำอย่างไร

คำตอบ ..

ไม่ยากครับ ก็ download จากอีเมล
แล้วเข้าเว็บไซต์ข้างล่างนี้ สั่งปลดล็อก
ก็จะ print แฟ้ม pdf ที่ print ไม่ได้

p d f u n l o c k . c o m
c r a c k m y p d f . c o m

การใช้ 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>