Skip to content

Adaptation 패키지

TCPDF-Next Adaptation
Adaptation · LGPL-3.0

Adaptation 패키지는 TCPDF 6.2.13을 위한 드롭인 하위 호환 어댑터를 제공합니다. 252개의 레거시 메서드를 TCPDF-Next의 모던 API에 매핑하여, 기존 TCPDF 코드베이스가 최소한의 코드 변경으로 마이그레이션할 수 있도록 합니다.

Adaptation 사용 시기

시나리오권장사항
기존 TCPDF 코드베이스 (수백 건의 호출)Adaptation 사용 — 점진적으로 마이그레이션
새 프로젝트를 처음부터 시작Core를 직접 사용 — 더 깔끔한 API
Header() / Footer() 오버라이드Adaptation 사용 — 비-final 클래스가 오버라이드 지원
레거시 헬퍼 클래스 사용 중Adaptation 사용TCPDF_STATIC, TCPDF_FONTS 등 제공

설치

bash
composer require yeeefang/tcpdf-next-adaptation

요구사항: yeeefang/tcpdf-next ^1.7

빠른 시작

TCPDF import를 교체하면 코드가 그대로 작동합니다:

php
// 이전 (레거시 TCPDF)
// use TCPDF;

// 이후 (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 어댑터 클래스는 비-final이므로, 레거시 TCPDF와 동일하게 Header()Footer()를 오버라이드할 수 있습니다:

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. 편리한 부분부터 모던 플루언트 API로 점진적으로 마이그레이션합니다
  5. 완전히 마이그레이션되면 Adaptation 패키지를 제거하고 Core를 직접 사용합니다

LGPL-3.0-or-later 라이선스로 배포됩니다.