การจะสั่งพิมพ์เอกสารทางหน้าเว็บเราทำได้กันอยู่ 2 วิธีหลักๆคือ

  1. แต่งเป็นหน้า html แล้วสั่งพิมพ์ วิธีนี้ทำง่ายแต่ว่าเราคุมพิกัดมันยาก อีกทั้งจะให้มันออกมาในขนาดของกระดาษ A4 แบบกั้นหน้ากันหลังกันบนล่าง แปะๆสวยๆ ก็ทำยาก มันจะเกินนั่นนิดนั่นหน่อย เอาเป็นว่าถ้าเอาง่าย เอาเร็ว ก็วิธีนี้
  2. สั่ง PHP สร้างไฟล์ PDF แล้วส่งไปให้เบราเซอร์สั่งพิมพ์เอา วิธีนี้จะได้รายงานที่สวยงาม พิกัดของสิ่งต่างๆที่เราเขียนวางบนเอกสารจะแปะ กั้นหน้ากั้นหลังกันบนกั้นล่างจะแปะ ออกมาในกระดาษ A4 ก็เป๊ะ เรียกว่าเป็นวิธีที่เพอเฟ็ก แต่ก็นั้่นแหละต้องแลกมาด้วยเวลาทำที่นานกว่า ยากกว่าหรือเปล่า อาจจะไม่ ถ้าเราชำนาญอะไรก็ง่ายอยู่แล้วแหละ อ้ออีกอย่างที่เป็นข้อดีของ PDF ก็คือมันแนบส่งไปกับอีเมล์ได้ด้วย

ในโลกของ PHP จะมีไลบรารี่ที่ใช้สำหรับสร้างไฟล์ PDF อยู่ไม่กี่ตัว หนึ่งในไม่กี่ตัวที่ได้รับความนิยมก็คือ TCPDF

ทำไมมันถึงได้รับความนิยม

  1. ข้อหนึ่งเลยก็คือ มันซัพพอร์ตภาษาไทย ไม่ทุกฟ้อนต์ที่ซัพพอร์ตก็จริง แต่ก็ส่วนใหญ่ โหลดมาจาก google fonts ใช้ได้เลย สระพยัญชนะไม่กระโดกกระเดกเลยก็มี
  2. ข้อสอง เจ้าของยังพัฒนามาอยู่ เขายังไม่ทิ้งยังมีที่พึ่ง
  3. ข้อสาม ใช้ง่าย อันนี้จริงมาก จากที่ผมใช้มาเองผมก็ว่าตัวนี้ง่าย

หลักๆก็มีประมาณนี้

ส่วนที่เจ้าของไลบรารี่เขาพูดไว้เองก็มีประมาณนี้

Main Features:

  • no external libraries are required for the basic functions;
  • all standard page formats, custom page formats, custom margins and units of measure;
  • UTF-8 Unicode and Right-To-Left languages;
  • TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1 and CID-0 fonts;
  • font subsetting;
  • methods to publish some XHTML + CSS code, Javascript and Forms;
  • images, graphic (geometric figures) and transformation methods;
  • supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/script/formats.php)
  • 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index – Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417;
  • JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;
  • automatic page header and footer management;
  • document encryption up to 256 bit and digital signature certifications;
  • transactions to UNDO commands;
  • PDF annotations, including links, text and file attachments;
  • text rendering modes (fill, stroke and clipping);
  • multiple columns mode;
  • no-write page regions;
  • bookmarks, named destinations and table of content;
  • text hyphenation;
  • text stretching and spacing (tracking);
  • automatic page break, line break and text alignments including justification;
  • automatic page numbering and page groups;
  • move and delete pages;
  • page compression (requires php-zlib extension);
  • XOBject Templates;
  • Layers and object visibility.
  • PDF/A-1b support.

แปลเอานะครับ ประมาณนี้แหละ