색상
TCPDF-Next는 HasColors 트레이트, Graphics\Color 값 객체, Graphics\ColorSpace 추상화를 통해 완전한 색상 관리를 제공합니다. 색상은 선, 채우기, 텍스트에 독립적으로 적용됩니다.
색상 설정
php
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->setDrawColor(255, 0, 0) // 빨간색 선
->setFillColor(0, 0, 255) // 파란색 채우기
->setTextColor(51, 51, 51); // 진한 회색 텍스트시그니처
php
setDrawColor(int $r, int $g = -1, int $b = -1): static // 선 색상
setFillColor(int $r, int $g = -1, int $b = -1): static // 채우기 색상
setTextColor(int $r, int $g = -1, int $b = -1): static // 텍스트 색상$r만 제공하면($g와 $b가 기본값 -1인 경우) 그레이스케일 값으로 처리됩니다(0 = 검정, 255 = 흰색).
색상 값 객체
php
use Yeeefang\TcpdfNext\Graphics\Color;
$red = Color::rgb(255, 0, 0);
$cyan = Color::cmyk(100, 0, 0, 0);
$gray = Color::gray(128);
$spot = Color::spot('Pantone 151 C', 0, 60, 100, 0);| 팩토리 메서드 | 매개변수 | 색상 공간 |
|---|---|---|
Color::rgb(r, g, b) | 채널당 0--255 | DeviceRGB |
Color::cmyk(c, m, y, k) | 채널당 0--100 | DeviceCMYK |
Color::gray(value) | 0--255 | DeviceGray |
Color::spot(name, c, m, y, k) | 이름 + CMYK 폴백 | Separation |
색상 공간
| 색상 공간 | 용도 |
|---|---|
| DeviceRGB | 화면 지향 출력 (웹, 프레젠테이션) |
| DeviceCMYK | 인쇄 지향 출력 (상업 인쇄) |
| DeviceGray | 그레이스케일 문서 |
| Separation | 브랜드 정확 인쇄를 위한 별색/팬톤 색상 |
CMYK 값은 PDF 스트림에 직접 기록됩니다. 색상 관리 워크플로의 경우 setColorProfile()을 통해 ICC 프로파일을 임베딩하십시오.
투명도
php
setAlpha(float $opacity = 1.0, string $blendMode = 'Normal'): staticphp
$pdf->setAlpha(0.5, 'Multiply') // 50% 불투명도, Multiply 블렌드
->rect(10, 10, 50, 30, 'F')
->setAlpha(1.0); // 완전 불투명으로 초기화후속 콘텐츠에 의도하지 않은 효과를 방지하기 위해 투명 섹션 이후에는 항상 불투명도를 초기화하십시오.
블렌드 모드
16가지 PDF 블렌드 모드를 모두 지원합니다:
| 모드 | 효과 |
|---|---|
Normal | 소스가 대상 위에 (기본값) |
Multiply | 어둡게 — 채널 값을 곱함 |
Screen | 밝게 — 역 곱셈 |
Overlay | Multiply와 Screen의 결합 |
Darken / Lighten | 채널당 더 어두운 / 밝은 값 유지 |
ColorDodge / ColorBurn | 대상을 밝게 / 어둡게 |
HardLight / SoftLight | 강한 / 미묘한 조명 효과 |
Difference / Exclusion | 채널 차이 (높은 / 낮은 대비) |
Hue / Saturation | 소스 색조 또는 채도, 대상 명도 |
Color / Luminosity | 소스 색상 또는 명도 |
그라데이션
네 가지 그라데이션 유형이 네이티브 PDF 셰이딩 객체로 렌더링됩니다:
php
$pdf->linearGradient(10, 10, 100, 50, '#ff0000', '#0000ff', [0, 0, 1, 1]); // 선형
$pdf->radialGradient(60, 60, 80, 80, '#ffffff', '#000000'); // 방사형
$pdf->coonsPatchMesh(10, 10, 100, 100, $colors, $coords); // Coons 패치 메시
$pdf->tensorProductPatchMesh(10, 10, 100, 100, $colors, $coords); // 텐서곱- 선형 — 방향 벡터를 따른 두 색상 그라데이션.
- 방사형 — 중심점에서 확장되는 두 색상 그라데이션.
- Coons 패치 메시 — 베지어 제어점으로 정의된 복잡한 다색 채우기.
- 텐서곱 패치 메시 — 추가 내부 제어점을 가진 Coons 확장.
완전한 예제
php
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->setDrawColor(255, 0, 0) // 빨간색 선
->setFillColor(0, 0, 255) // 파란색 채우기
->rect(10, 10, 50, 30, 'DF') // 그리기 + 채우기
->setAlpha(0.5, 'Multiply') // 50% 불투명도와 Multiply 블렌드
->setFillColor(255, 255, 0) // 노란색
->rect(30, 20, 50, 30, 'F') // 겹치는 반투명 사각형
->setAlpha(1.0); // 불투명도 초기화팁
- 화면용 PDF에는 DeviceRGB를, 상업 인쇄에는 DeviceCMYK를 사용하십시오.
- 별색은
SpotColorManager가 필요합니다 — 처음 사용 시 지연 초기화됩니다. - 투명 섹션 이후에는 항상 알파를
1.0으로 초기화하십시오. - 그라데이션 좌표는 현재 사용자 단위 시스템을 사용합니다(기본값: mm).