Việc chuyển đổi HTML sang PDF trong PHP có thể được thực hiện bằng nhiều thư viện khác nhau. Một trong những thư viện phổ biến nhất là TCPDF
, FPDF
, hoặc Dompdf
. Trong bài viết này, chúng ta sẽ tập trung vào cách tạo một lớp (class) để chuyển đổi HTML sang PDF bằng cách sử dụng thư viện Dompdf
.
Giới thiệu về Dompdf
Dompdf là một thư viện PHP mạnh mẽ được thiết kế để chuyển đổi HTML thành PDF. Nó hỗ trợ nhiều tính năng như định dạng văn bản, hình ảnh, và nhiều yếu tố khác trong HTML. Bài viết này sẽ hướng dẫn bạn cách tạo một lớp PHP giúp đơn giản hóa quá trình chuyển đổi này.
Cài đặt Dompdf
Trước khi bắt đầu viết lớp PHP của chúng ta, hãy đảm bảo rằng bạn đã cài đặt Dompdf
. Bạn có thể cài đặt nó qua Composer bằng cách chạy lệnh sau trong terminal:
composer require dompdf/dompdf
Tạo Class để Chuyển Đổi HTML Sang PDF
Bây giờ, chúng ta sẽ bắt đầu tạo lớp PHP. Lớp này sẽ bao gồm các phương thức để thiết lập nội dung, cấu hình PDF và xuất PDF.
<?php
require 'vendor/autoload.php';
use Dompdf\Dompdf;
use Dompdf\Options;
class PDFGenerator {
private $dompdf;
public function __construct() {
// Thiết lập tùy chọn cho Dompdf
$options = new Options();
$options->set('defaultFont', 'Arial');
// Khởi tạo Dompdf với các tùy chọn
$this->dompdf = new Dompdf($options);
}
public function loadHtml($html) {
// Tải HTML vào Dompdf
$this->dompdf->loadHtml($html);
}
public function setPaperSize($size = 'A4', $orientation = 'portrait') {
// Đặt kích thước và hướng giấy
$this->dompdf->setPaper($size, $orientation);
}
public function render() {
// Chuyển đổi HTML thành PDF
$this->dompdf->render();
}
public function output($filename = 'document.pdf') {
// Xuất PDF ra tệp
$this->dompdf->stream($filename, ['Attachment' => 0]);
}
}
Sử Dụng Class PDFGenerator
Sau khi đã tạo lớp PDFGenerator
, chúng ta có thể sử dụng nó để chuyển đổi HTML thành PDF. Dưới đây là một ví dụ về cách sử dụng lớp này.
$htmlContent = '
<!DOCTYPE html>
<html>
<head>
<title>Document Title</title>
<style>
body { font-family: Arial, sans-serif; }
h1 { color: navy; }
p { margin: 20px 0; }
</style>
</head>
<body>
<h1>Thông tin PDF</h1>
<p>Đây là một ví dụ về việc chuyển đổi HTML sang PDF bằng PHP.</p>
</body>
</html>
';
$pdf = new PDFGenerator();
$pdf->loadHtml($htmlContent);
$pdf->setPaperSize('A4', 'portrait');
$pdf->render();
$pdf->output('my_document.pdf');
Giải Thích Mã Nguồn
- Cài đặt thư viện: Chúng ta bao gồm autoload để có thể sử dụng các lớp từ thư viện Dompdf.
- Tạo lớp PDFGenerator: Trong lớp này, chúng ta đặt phương thức
__construct
để cấu hình Dompdf với các tùy chọn mặc định. - Tải HTML: Sử dụng phương thức
loadHtml
để truyền nội dung HTML muốn chuyển đổi. - Đặt kích thước giấy: Phương thức
setPaperSize
cho phép bạn tùy chỉnh kích thước và hướng giấy. - Render và Xuất: Cuối cùng, chúng ta render nội dung HTML và xuất nó thành một tệp PDF có tên mặc định.
Kết Luận
Việc tạo ra một lớp để chuyển đổi HTML sang PDF trong PHP là một cách tuyệt vời để tự động hóa quy trình tạo báo cáo, hóa đơn, và nhiều tài liệu khác. Thư viện Dompdf cung cấp nhiều tùy chọn để tùy chỉnh PDF của bạn theo nhu cầu riêng. Bạn có thể mở rộng lớp này để thêm các tính năng như chèn hình ảnh, mã vạch, và nhiều thứ khác mà bạn cần trong các tài liệu PDF của mình.
Hy vọng với bài hướng dẫn này, bạn đã có thể khởi động và sử dụng Dompdf để chuyển đổi HTML thành PDF một cách hiệu quả trong dự án của mình.
Comments