×

Cách viết class để tạo biểu mẫu PDF động trong PHP

Chào bạn, trong bài viết này, chúng ta sẽ cùng tìm hiểu chi tiết về cách viết một class để tạo biểu mẫu PDF động trong PHP. Việc tạo ra các biểu mẫu PDF có thể phục vụ nhiều mục đích khác nhau như lập hóa đơn, báo cáo, hoặc đơn xin việc... Sử dụng PHP cùng với thư viện thích hợp, chúng ta có thể đơn giản hóa quá trình này.

Để bắt đầu, chúng ta sẽ khảo sát những công cụ cần thiết và cách tổ chức class để tạo biểu mẫu PDF. Chúng ta sẽ sử dụng thư viện FPDF và FPDI, một trong những thư viện phổ biến để tạo và thao tác với PDF trong PHP.

Giới thiệu về FPDF và FPDI

FPDF là một thư viện PHP cho phép bạn tạo file PDF từ đầu mà không cần phải có Adobe Acrobat hoặc một phần mềm bên ngoài nào khác. Nó hỗ trợ nhiều tính năng như thêm văn bản, hình ảnh, và đồ họa. FPDI, mặt khác, cho phép bạn nhập và tái sử dụng các tài liệu PDF đã có sẵn.

Cài đặt FPDF và FPDI

Để làm việc với FPDF và FPDI, trước hết chúng ta cần cài đặt thư viện này. Bạn có thể làm điều này bằng cách sử dụng Composer hoặc tải xuống từ trang web chính thức.

  1. Sử dụng Composer:

    composer require setasign/fpdf
    composer require setasign/fpdi
  2. Tải xuống thủ công:

Sau khi tải xong, bạn cần bao gồm các file này trong dự án của mình.

Thiết kế Class PDFForm

Chúng ta sẽ tạo một class có tên là PDFForm để quản lý các hoạt động liên quan đến việc tạo ra biểu mẫu PDF.

Cấu trúc của Class

require('fpdf.php');
require('fpdi.php');

class PDFForm extends FPDI {
    private $templateFile;

    public function __construct($templateFile = null) {
        parent::__construct();
        if ($templateFile) {
            $this->setTemplate($templateFile);
        }
    }

    public function setTemplate($templateFile) {
        $this->templateFile = $templateFile;
        $this->AddPage();
        $this->setSourceFile($templateFile);
        $tplIdx = $this->importPage(1);
        $this->useTemplate($tplIdx);
    }

    public function addText($x, $y, $text, $fontSize = 12) {
        $this->SetFont('Arial', '', $fontSize);
        $this->SetXY($x, $y);
        $this->Cell(0, 10, $text);
    }

    public function addField($x, $y, $width, $height, $value = "") {
        // Trong trường hợp bạn muốn tạo một trường nhập liệu
        // Chúng ta sẽ cần cập nhật PDF để thêm vào field
        $this->Rect($x, $y, $width, $height);
        if (!empty($value)) {
            $this->SetXY($x, $y);
            $this->SetFont('Arial', '', 10);
            $this->Cell($width, $height, $value);
        }
    }

    public function outputPDF($fileName) {
        $this->Output($fileName, 'F');
    }
}

Sử dụng Class PDFForm

Sau khi đã xây dựng class PDFForm, chúng ta có thể sử dụng nó trong một ví dụ thực tế để tạo ra một biểu mẫu PDF động.

$pdf = new PDFForm('template.pdf'); // Đường dẫn đến file template PDF
$pdf->addText(10, 10, 'Họ và tên:');
$pdf->addField(10, 20, 100, 10); // Tạo trường nhập liệu cho tên

$pdf->addText(10, 35, 'Địa chỉ:');
$pdf->addField(10, 45, 100, 10); // Tạo trường nhập liệu cho địa chỉ

$pdf->outputPDF('output.pdf'); // Xuất file PDF

Kết luận

Với class PDFForm mà chúng ta đã tạo, giờ đây bạn có thể dễ dàng tạo ra bất kỳ biểu mẫu PDF nào theo nhu cầu của mình. Bằng việc kết hợp FPDF và FPDI, bạn có thể sử dụng các template có sẵn và thêm vào các trường nhập liệu để tạo ra các biểu mẫu động. Hãy thử nghiệm với các tính năng khác của FPDF để làm cho biểu mẫu của bạn phong phú hơn nhé!

Hy vọng bài viết này đã cung cấp cho bạn một cái nhìn rõ ràng về cách tạo biểu mẫu PDF động trong PHP. Hãy để lại câu hỏi hoặc ý kiến của bạn nếu bạn cần thêm thông tin chi tiết!

Comments