Symfony パッケージ
Symfony · LGPL-3.0Symfony パッケージは、TCPDF-Next のファーストクラス Symfony 7 統合を提供します — DI コンテナバインディング、PdfFactory サービス、Messenger ベースの非同期生成、OWASP セキュリティヘッダー付き HTTP レスポンスヘルパーを含みます。
インストール
bash
composer require yeeefang/tcpdf-next-symfony要件: Symfony ^7.0、PHP ^8.5
Bundle は Symfony Flex により自動設定されます。手動で登録する場合:
php
// config/bundles.php
return [
// ...
Yeeefang\TcpdfNext\Symfony\TcpdfNextBundle::class => ['all' => true],
];設定
yaml
# config/packages/tcpdf_next.yaml
tcpdf_next:
fonts_directory: '%kernel.project_dir%/resources/fonts'
default_page_size: A4
default_orientation: portrait
auto_page_break: true
margin_bottom: 25.0PdfFactory サービス
サービスやコントローラにファクトリを注入します:
php
use Yeeefang\TcpdfNext\Symfony\PdfFactory;
class InvoiceController extends AbstractController
{
public function __construct(
private readonly PdfFactory $pdfFactory,
) {}
#[Route('/invoice/{id}/pdf')]
public function download(Invoice $invoice): Response
{
$pdf = $this->pdfFactory->create()
->setTitle("Invoice #{$invoice->number}")
->addPage()
->setFont('Helvetica', '', 12)
->cell(0, 10, "Invoice #{$invoice->number}");
return $this->pdfFactory->response($pdf, "invoice-{$invoice->number}.pdf");
}
}HTTP レスポンス
PdfResponse クラスは OWASP 推奨のセキュリティヘッダー付きで PDF を返します:
php
use Yeeefang\TcpdfNext\Symfony\Http\PdfResponse;
// インライン表示(ブラウザプレビュー)
return PdfResponse::inline($pdf, 'report.pdf');
// 強制ダウンロード
return PdfResponse::download($pdf, 'report.pdf');Messenger 統合
PDF 生成を Messenger ワーカーにディスパッチします:
php
use Yeeefang\TcpdfNext\Symfony\Messenger\GeneratePdfMessage;
$this->bus->dispatch(new GeneratePdfMessage(
template: 'invoice',
data: ['invoice_id' => $invoice->id],
outputPath: "/tmp/invoice-{$invoice->id}.pdf",
));ワーカーセーフ(FrankenPHP / RoadRunner)
Bundle は DocumentFactory をシングルトンとして設定します — フォントレジストリと画像キャッシュは永続ワーカーのリクエスト間で保持されます。FrankenPHP、RoadRunner、およびすべての Symfony Runtime 実装で動作します。
パッケージ内容
| クラス | 説明 |
|---|---|
TcpdfNextBundle | Bundle の登録とサービスワイヤリング |
PdfFactory | DI 対応の PDF ドキュメント作成ファクトリ |
PdfResponse | セキュリティヘッダー付き HTTP レスポンス |
GeneratePdfMessage | 非同期生成用の Messenger メッセージ |
GeneratePdfMessageHandler | 非同期 PDF 生成のハンドラー |
