Skip to content

Пакет Adaptation

TCPDF-Next Adaptation
Adaptation · LGPL-3.0

Пакет Adaptation предоставляет обратно совместимый адаптер для TCPDF 6.2.13. Он отображает 252 устаревших метода на современный API TCPDF-Next, позволяя существующим кодовым базам TCPDF мигрировать с минимальными изменениями кода.

Когда использовать Adaptation

СценарийРекомендация
Существующая кодовая база TCPDF (сотни вызовов)Используйте Adaptation — мигрируйте инкрементально
Новый проект с нуляИспользуйте Core напрямую — более чистый API
Переопределение Header() / Footer()Используйте Adaptation — non-final класс поддерживает переопределения
Используются устаревшие хелпер-классыИспользуйте Adaptation — предоставляет TCPDF_STATIC, TCPDF_FONTS и др.

Установка

bash
composer require yeeefang/tcpdf-next-adaptation

Требования: yeeefang/tcpdf-next ^1.7

Быстрый старт

Замените импорт TCPDF, и ваш код работает как есть:

php
// Before (legacy TCPDF)
// use TCPDF;

// After (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');

Отображённые методы

Адаптер отображает 252 устаревших метода TCPDF на их эквиваленты TCPDF-Next, включая:

Устаревший методЭквивалент TCPDF-Next
SetFont()setFont()
Cell()cell()
MultiCell()multiCell()
writeHTML()writeHtml()
Image()image()
Output()output()
SetProtection()setProtection()
setSignature()setSignature()

Класс-адаптер TCPDF является non-final, поэтому вы можете переопределять Header() и Footer() как в устаревшем TCPDF:

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');
    }
}

Устаревшие хелпер-классы

Для кодовых баз, ссылающихся на статические хелпер-классы TCPDF:

Устаревший классЭквивалент 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

Стратегия миграции

  1. Установите пакет Adaptation рядом с существующим кодом
  2. Измените оператор use с TCPDF на Yeeefang\TcpdfNext\Adaptation\TCPDF
  3. Запустите ваши существующие тесты — они должны проходить без изменений
  4. Постепенно мигрируйте на современный fluent API, где это удобно
  5. После полной миграции удалите пакет Adaptation и используйте Core напрямую

Распространяется по лицензии LGPL-3.0-or-later.