CodeIgniter 패키지
CodeIgniter · LGPL-3.0CodeIgniter 패키지는 TCPDF-Next를 위한 CodeIgniter 4 통합을 제공합니다 — 서비스 등록, 컨트롤러용 Library 클래스, 큐 기반 비동기 생성, OWASP 보안 헤더가 포함된 HTTP 응답 헬퍼.
설치
bash
composer require yeeefang/tcpdf-next-codeigniter요구사항: CodeIgniter ^4.0, PHP ^8.5
설정
설정 파일을 퍼블리시하세요:
bash
php spark tcpdf-next:publishphp
// app/Config/TcpdfNext.php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class TcpdfNext extends BaseConfig
{
public string $fontsDirectory = WRITEPATH . 'fonts';
public string $defaultPageSize = 'A4';
public string $defaultOrientation = 'portrait';
public bool $autoPageBreak = true;
public float $marginBottom = 25.0;
}서비스 사용
컨트롤러에서 서비스를 사용하세요:
php
namespace App\Controllers;
use Yeeefang\TcpdfNext\CodeIgniter\Services\TcpdfNextService;
class InvoiceController extends BaseController
{
public function download(int $id)
{
$invoice = model('InvoiceModel')->find($id);
$pdf = service('tcpdfnext')->create()
->setTitle("Invoice #{$invoice->number}")
->addPage()
->setFont('Helvetica', '', 12)
->cell(0, 10, "Invoice #{$invoice->number}");
return service('tcpdfnext')->response($pdf, "invoice-{$invoice->number}.pdf");
}
}Library 사용
또는 Library 클래스를 사용할 수 있습니다:
php
namespace App\Controllers;
use Yeeefang\TcpdfNext\CodeIgniter\Libraries\PdfLibrary;
class ReportController extends BaseController
{
public function generate()
{
$pdfLib = new PdfLibrary();
$pdf = $pdfLib->create()
->setTitle('Monthly Report')
->addPage()
->setFont('Helvetica', 'B', 16)
->cell(0, 10, 'Monthly Report', newLine: true);
return $pdfLib->inline($pdf, 'report.pdf');
}
}HTTP 응답
응답 헬퍼에는 OWASP 권장 보안 헤더가 포함됩니다:
php
// 인라인 표시 (브라우저 미리보기)
return service('tcpdfnext')->inline($pdf, 'report.pdf');
// 강제 다운로드
return service('tcpdfnext')->download($pdf, 'report.pdf');큐 통합
PDF 생성을 CodeIgniter의 태스크 스케줄러에 디스패치하세요:
php
use Yeeefang\TcpdfNext\CodeIgniter\Queue\GeneratePdfJob;
$job = new GeneratePdfJob([
'template' => 'invoice',
'data' => ['invoice_id' => $invoice->id],
'output_path' => WRITEPATH . "pdfs/invoice-{$invoice->id}.pdf",
]);
service('queue')->push($job);패키지 구성
| 클래스 | 설명 |
|---|---|
TcpdfNextService | 서비스 등록 및 팩토리 |
PdfLibrary | 컨트롤러 사용을 위한 라이브러리 클래스 |
PdfResponse | 보안 헤더가 포함된 HTTP 응답 |
GeneratePdfJob | 백그라운드 생성을 위한 큐 잡 |
