Skip to content

Adaptation Package

TCPDF-Next Adaptation
Adaptation · LGPL-3.0

Adaptation package cung cấp adapter tương thích ngược drop-in cho TCPDF 6.2.13. Nó ánh xạ 252 method cũ sang API hiện đại của TCPDF-Next, cho phép codebase TCPDF hiện có migration với thay đổi code tối thiểu.

Khi nào dùng Adaptation

Tình huốngKhuyến nghị
Codebase TCPDF hiện có (hàng trăm lời gọi)Dùng Adaptation — migration dần dần
Dự án mới bắt đầu từ đầuDùng Core trực tiếp — API sạch hơn
Ghi đè Header() / Footer()Dùng Adaptation — class non-final hỗ trợ override
Đang dùng helper class cũDùng Adaptation — cung cấp TCPDF_STATIC, TCPDF_FONTS, v.v.

Cài đặt

bash
composer require yeeefang/tcpdf-next-adaptation

Yêu cầu: yeeefang/tcpdf-next ^1.7

Bắt đầu nhanh

Thay import TCPDF và code hoạt động ngay:

php
// Trước (TCPDF cũ)
// use TCPDF;

// Sau (TCPDF-Next Adaptation)
use Yeeefang\TcpdfNext\Adaptation\TCPDF;

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8');
$pdf->SetCreator('My App');
$pdf->SetAuthor('Author');
$pdf->SetTitle('Document');
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
$pdf->Cell(0, 10, 'Hello World', 0, 1);
$pdf->Output('/path/to/output.pdf', 'F');

Mapped Method

Adapter ánh xạ 252 method TCPDF cũ sang tương đương TCPDF-Next, bao gồm:

Method cũTương đương TCPDF-Next
SetFont()setFont()
Cell()cell()
MultiCell()multiCell()
writeHTML()writeHtml()
Image()image()
Output()output()
SetProtection()setProtection()
setSignature()setSignature()

Class adapter TCPDF là non-final, nên bạn có thể override Header()Footer() giống TCPDF cũ:

php
class MyPdf extends TCPDF
{
    public function Header(): void
    {
        $this->SetFont('helvetica', 'B', 12);
        $this->Cell(0, 10, 'My Header', 0, 1, 'C');
    }

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

Helper Class cũ

Cho codebase tham chiếu helper class tĩnh của TCPDF:

Class cũTương đương Adaptation
TCPDF_STATICYeeefang\TcpdfNext\Adaptation\TCPDF_STATIC
TCPDF_FONTSYeeefang\TcpdfNext\Adaptation\TCPDF_FONTS
TCPDF_COLORSYeeefang\TcpdfNext\Adaptation\TCPDF_COLORS
TCPDF_IMAGESYeeefang\TcpdfNext\Adaptation\TCPDF_IMAGES

Chiến lược Migration

  1. Cài Adaptation package cùng code hiện có
  2. Đổi câu lệnh use từ TCPDF sang Yeeefang\TcpdfNext\Adaptation\TCPDF
  3. Chạy test hiện có — chúng nên pass mà không cần thay đổi
  4. Dần dần migration sang fluent API hiện đại khi thuận tiện
  5. Khi đã migration hoàn toàn, gỡ Adaptation package và dùng Core trực tiếp

Phân phối theo giấy phép LGPL-3.0-or-later.