이미지
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는 무시됩니다.
- 많은 이미지를 임베딩할 때는 메모리 사용량을 제어하기 위해 대형 파일을 미리 리사이즈하는 것을 고려하십시오.