×

Cách tạo class để xuất dữ liệu ra file PDF trong PHP

Khi làm việc với PHP, đôi khi bạn cần xuất dữ liệu ra file PDF để dễ dàng chia sẻ và lưu trữ. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết cách tạo một class để xuất dữ liệu ra file PDF trong PHP một cách hiệu quả và dễ dàng.

Có nhiều thư viện PHP hỗ trợ tạo PDF, nhưng một trong những thư viện phổ biến nhất là FPDFTCPDF. Chúng ta sẽ sử dụng FPDF trong ví dụ này vì nó nhẹ nhàng và dễ sử dụng cho những người mới bắt đầu.

Giới thiệu về FPDF

FPDF là một thư viện PHP cho phép bạn tạo file PDF mà không cần cài đặt bất kỳ phần mềm máy chủ nào, hoàn toàn miễn phí. Thư viện này hỗ trợ các tính năng cơ bản như tạo các trang PDF, thêm văn bản, hình ảnh và định dạng.

Cài đặt FPDF

Trước tiên, hãy tải FPDF từ trang chính thức của nó: FPDF. Sau khi tải về, giải nén và lưu thư mục vào dự án PHP của bạn.

Tạo Class Xuất PDF

Tiếp theo, chúng ta sẽ tạo một class sử dụng FPDF để xuất dữ liệu ra file PDF. Class này sẽ có các phương thức để thêm nội dung và cuối cùng là xuất file PDF.

<?php
require('path_to_fpdf/fpdf.php'); // Cần sinh đường dẫn chính xác tới thư viện FPDF

class PDFGenerator extends FPDF {
    private $title;
    private $data;

    public function __construct($title, $data) {
        parent::__construct();
        $this->title = $title;
        $this->data = $data;
    }

    public function Header() {
        $this->SetFont('Arial', 'B', 12);
        $this->Cell(0, 10, $this->title, 0, 1, 'C');
        $this->Ln(10);
    }

    public function Footer() {
        $this->SetY(-15);
        $this->SetFont('Arial', 'I', 8);
        $this->Cell(0, 10, 'Page ' . $this->PageNo(), 0, 0, 'C');
    }

    public function createPDF() {
        $this->AddPage();
        $this->SetFont('Arial', '', 12);

        foreach ($this->data as $line) {
            $this->Cell(0, 10, $line, 0, 1);
        }

        $this->Output();
    }
}

Sử dụng Class PDFGenerator

Sau khi chúng ta đã định nghĩa class PDFGenerator, chúng ta sẽ sử dụng nó để tạo file PDF.

<?php
$title = "Dữ liệu xuất ra PDF";
$data = [
    "Dòng 1: Nội dung mẫu",
    "Dòng 2: Nội dung mẫu",
    "Dòng 3: Nội dung mẫu",
    // Thêm nhiều dòng dữ liệu hơn nếu cần
];

$pdf = new PDFGenerator($title, $data);
$pdf->createPDF();

Giải thích mã nguồn

  • Tạo lớp: Class PDFGenerator kế thừa từ class FPDF. Trong constructor của nó, chúng ta khởi tạo tiêu đề và dữ liệu sẽ được xuất ra.
  • Header và Footer: Chúng ta ghi đè các phương thức Header()Footer() để tạo tiêu đề và chân trang cho file PDF.
  • createPDF(): Phương thức này thêm trang vào PDF, thiết lập font chữ, và lặp qua từng dòng trong dữ liệu để xuất nó ra PDF.
  • Xuất PDF: Cuối cùng, phương thức Output() sẽ tạo file PDF và gửi nó đến trình duyệt.

Kết luận

Bài viết này đã cung cấp cho bạn một cách tăng cường để xuất dữ liệu ra file PDF bằng cách sử dụng class trong PHP với thư viện FPDF. Bạn có thể mở rộng class này với các tính năng nâng cao như thêm hình ảnh, bảng biểu, và các định dạng khác theo nhu cầu của mình. Chúc bạn thành công trong việc phát triển các ứng dụng PHP của mình!

Comments