画像
TCPDF-Nextは、PDFドキュメントへのラスター画像とベクター画像の埋め込みをサポートしています。画像サブシステムはGraphicsモジュールに含まれ、Document のフルエントAPIを通じてアクセスします。
サポートされる形式
| 形式 | 拡張子 | アルファ | 備考 |
|---|---|---|---|
| JPEG | .jpg、.jpeg | なし | ベースラインおよびプログレッシブ |
| PNG | .png | あり | 8ビット、24ビット、透過付き32ビット |
| WebP | .webp | あり | 非可逆および可逆 |
| AVIF | .avif | あり | AVIFサポート付きのGDまたはImagickが必要 |
| SVG | .svg | -- | ベクター — SvgParser でレンダリング |
| EPS | .eps、.ai | -- | PostScript — EpsParser でレンダリング |
image()
php
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->image('/path/to/logo.png', 10, 10, 50, 0); // 幅=50mm、高さ自動シグネチャ
php
image(
string $file, // ファイルパス、URL、または @base64文字列
float $x = '', // X位置('' = 現在のX)
float $y = '', // Y位置('' = 現在のY)
float $w = 0, // 幅 (0 = アスペクト比から自動)
float $h = 0, // 高さ(0 = アスペクト比から自動)
string $type = '', // 形式を強制:'JPEG'、'PNG'、'WebP' など
mixed $link = '', // URLまたは内部リンク識別子
string $align = '', // 画像後の配置:T, M, B, N
bool $resize = false,
int $dpi = 300,
string $palign = '', // セル内の画像配置:L, C, R
bool $fitbox = false,
bool $fitonpage = false
): static位置指定とスケーリング
php
$pdf->image('/path/to/photo.jpg', 10, 60, 100, 80); // 絶対位置:(10,60)に100x80mm
$pdf->image('/path/to/banner.png', 10, 10, 190, 0); // 幅から自動高さ
$pdf->image('/path/to/portrait.jpg', 10, 10, 0, 100); // 高さから自動幅
$pdf->image('/path/to/photo.jpg', 10, 10, 80, 60, fitbox: true); // ボックス内にフィット
$pdf->image('/path/to/chart.png', 10, 10, 0, 0, fitonpage: true); // ページ内にフィット- 絶対位置 — 明示的な
$x、$y座標を指定します(デフォルト単位:mm)。 - 自動高さ/幅 — 一方の寸法を
0に設定すると、アスペクト比から他方が計算されます。 - ボックス内にフィット(
fitbox: true) — アスペクト比を保ちながら$wx$hに収まるようにスケーリングします。 - ページ内にフィット(
fitonpage: true) — 画像が印刷可能領域を超えないようにします。
DPIと解像度
$dpi パラメータは、$w と $h の両方が 0 の場合にピクセルから物理サイズへの変換を制御します:
php
$pdf->image('/path/to/scan.jpg', 10, 10, 0, 0, dpi: 150); // ページ上で大きく表示
$pdf->image('/path/to/scan.jpg', 10, 10, 0, 0, dpi: 300); // ページ上で小さく表示文字列またはURLからの画像
php
$pdf->image('https://example.com/logo.png', 10, 10, 50, 0); // URLから
$pdf->image('@' . base64_encode($imageData), 10, 10, 50, 0, 'PNG'); // base64からbase64文字列から読み込む場合は、パーサーが形式を認識できるよう $type パラメータを指定してください。
リンク付き画像
php
$pdf->image('/path/to/logo.png', 10, 10, 40, 0, link: 'https://example.com');SVG画像
imageSvg() はSVGをネイティブPDFベクターパスとしてレンダリングします — ラスタライゼーションは行いません:
php
imageSvg(string $file, float $x, float $y, float $w, float $h, mixed $link = '', string $align = '', string $palign = '', mixed $border = 0): staticphp
$pdf->imageSvg('/path/to/diagram.svg', 10, 150, 180, 100);EPS / PostScript画像
php
imageEps(string $file, float $x, float $y, float $w, float $h, mixed $link = '', bool $useBBox = true, string $align = '', string $palign = '', mixed $border = 0): staticphp
$pdf->imageEps('/path/to/illustration.eps', 10, 10, 80, 60);完全な例
php
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->image('/path/to/logo.png', 10, 10, 50, 0)
->image('/path/to/photo.jpg', 10, 60, 100, 80)
->imageSvg('/path/to/diagram.svg', 10, 150, 180, 100)
->save('output.pdf');ヒント
- PNGのアルファチャンネルはPDF出力で完全に保持されます。
- 最高の印刷品質を得るには、300 DPI以上の画像を使用してください。
- SVGレンダリングはほとんどの静的機能をサポートしています。アニメーションとJavaScriptは無視されます。
- 多数の画像を埋め込む場合は、メモリ使用量を制御するために大きなファイルを事前にリサイズすることを検討してください。