설치
시스템 요구사항
| 요구사항 | 버전 | 용도 |
|---|---|---|
| PHP | ^8.5 | 읽기 전용 클래스, Backed 열거형, 프로퍼티 훅, #[\SensitiveParameter] |
| ext-openssl | * | AES-256 암호화, PKCS#7 디지털 서명, OCSP/TSA 요청 |
| ext-zlib | * | PDF 스트림 Flate 압축 |
| ext-mbstring | * | 유니코드 문자열 처리 |
| ext-gd | * | 이미지 처리 (JPEG, PNG, WebP, AVIF) |
| ext-curl | * | OCSP 응답자 및 TSA 서버에 대한 HTTP 요청 |
| ext-intl | * | ICU 줄 바꿈 및 로케일 인식 서식 지정 |
모든 확장 검증:
bash
php -r "foreach(['openssl','zlib','mbstring','gd','curl','intl'] as \$e){echo \$e.': '.(extension_loaded(\$e)?'OK':'MISSING').PHP_EOL;}"Core 패키지
bash
composer require yeeefang/tcpdf-next의존성: phpseclib/phpseclib ^3.0 (RSASSA-PSS, ASN.1, X.509)
Artisan 패키지 (Chrome CDP)
bash
composer require yeeefang/tcpdf-nextartisan추가 요구사항:
chrome-php/chrome ^1.15- 시스템에 Chrome 또는 Chromium 브라우저 설치
bash
# Ubuntu/Debian
apt-get install chromium-browser
# macOS
brew install --cask chromium
# 또는 환경 변수 사용
export CHROME_PATH=/usr/bin/google-chromeLaravel 패키지
bash
composer require yeeefang/tcpdf-nextlaravel요구사항: Laravel ^12.0
ServiceProvider는 자동 감지됩니다. 설정 파일 공개:
bash
php artisan vendor:publish --tag=tcpdf-next-configPro 패키지 (상용)
bash
composer require yeeefang/tcpdf-nextpro라이선스: 애플리케이션당 $1,000 USD, 메이저 버전별 영구 라이선스.
추가 의존성: phpseclib/phpseclib ^3.0 | 선택적: ext-pkcs11
라이선스 키 설정:
bash
# .env
TCPDF_PRO_LICENSE_KEY=your-license-keyDocker 설정
🐳 Docker for Legacy PHP Environments
프로덕션 서버가 PHP < 8.5를 실행하는 경우, Docker를 사용하여 TCPDF-Next를 격리하세요.
dockerfile
FROM php:8.5-cli
RUN apt-get update && apt-get install -y \
libicu-dev libpng-dev libjpeg-dev libwebp-dev libzip-dev \
&& docker-php-ext-configure gd --with-jpeg --with-webp \
&& docker-php-ext-install gd intl zip
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY . /app
WORKDIR /app
RUN composer install --no-dev --optimize-autoloaderChrome (Artisan 패키지)용:
dockerfile
FROM php:8.5-cli
RUN apt-get update && apt-get install -y \
libicu-dev libpng-dev libjpeg-dev libwebp-dev chromium \
&& docker-php-ext-configure gd --with-jpeg --with-webp \
&& docker-php-ext-install gd intl
ENV CHROME_PATH=/usr/bin/chromium
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY . /app
WORKDIR /app
RUN composer install --no-dev --optimize-autoloader설치 검증
php
<?php
require 'vendor/autoload.php';
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()->addPage()->setFont('Helvetica', '', 12)->cell(0, 10, 'OK');
echo "TCPDF-Next is working. Classes loaded: " . count(get_declared_classes()) . "\n";