Skip to content

색상

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--255DeviceRGB
Color::cmyk(c, m, y, k)채널당 0--100DeviceCMYK
Color::gray(value)0--255DeviceGray
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'): static
php
$pdf->setAlpha(0.5, 'Multiply')    // 50% 불투명도, Multiply 블렌드
    ->rect(10, 10, 50, 30, 'F')
    ->setAlpha(1.0);                // 완전 불투명으로 초기화

후속 콘텐츠에 의도하지 않은 효과를 방지하기 위해 투명 섹션 이후에는 항상 불투명도를 초기화하십시오.

블렌드 모드

16가지 PDF 블렌드 모드를 모두 지원합니다:

모드효과
Normal소스가 대상 위에 (기본값)
Multiply어둡게 — 채널 값을 곱함
Screen밝게 — 역 곱셈
OverlayMultiply와 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).

LGPL-3.0-or-later 라이선스로 배포됩니다.