API Value Object
Semua value object di TCPDF-Next adalah immutable. Setiap method "modifier" mengembalikan instance baru, membiarkan yang asli tidak berubah. Ini menghilangkan kategori bug yang disebabkan oleh shared mutable state.
PageSize
Namespace: TcpdfNext\ValueObjects\PageSize
Merepresentasikan dimensi halaman. Secara internal semua pengukuran disimpan dalam PDF point (1/72 inci).
Factory Method (Seri A ISO)
Factory Method (Seri B ISO)
Factory Method (Amerika Utara)
Kustom & Lookup
Helper Orientasi
Property
| Property | Tipe | Deskripsi |
|---|---|---|
$width | float | Lebar dalam point |
$height | float | Tinggi dalam point |
$name | string | Nama yang bisa dibaca manusia (misalnya, 'A4', 'Letter') |
Method Convenience
Contoh
use TcpdfNext\ValueObjects\PageSize;
$a4 = PageSize::a4();
$landscape = $a4->landscape(); // 297 x 210 mm
$custom = PageSize::fromMm(140, 216, 'Half Letter');
$letter = PageSize::fromName('Letter');Margin
Namespace: TcpdfNext\ValueObjects\Margin
Merepresentasikan margin halaman empat sisi. Penyimpanan internal dalam PDF point.
Factory Method
Property
| Property | Tipe | Deskripsi |
|---|---|---|
$top | float | Margin atas dalam point |
$right | float | Margin kanan dalam point |
$bottom | float | Margin bawah dalam point |
$left | float | Margin kiri dalam point |
Method Modifier
Method Kalkulasi
Contoh
use TcpdfNext\ValueObjects\Margin;
use TcpdfNext\ValueObjects\PageSize;
$margin = Margin::mm(top: 15, right: 20, bottom: 15, left: 20);
$narrow = $margin->withLeft(36.0)->withRight(36.0);
$area = $margin->printableArea(PageSize::a4());
echo $area->widthMm(); // 170.0Position
Namespace: TcpdfNext\ValueObjects\Position
Pasangan koordinat x--y immutable dalam PDF point.
Factory Method
Property
| Property | Tipe | Deskripsi |
|---|---|---|
$x | float | Koordinat horizontal dalam point |
$y | float | Koordinat vertikal dalam point |
Method
Contoh
use TcpdfNext\ValueObjects\Position;
$pos = Position::mm(x: 25.4, y: 50.8);
$shifted = $pos->translate(dx: 10, dy: 20);
echo $shifted->xMm(); // ~28.9Dimension
Namespace: TcpdfNext\ValueObjects\Dimension
Pasangan lebar--tinggi immutable dalam PDF point.
Factory Method
Property
| Property | Tipe | Deskripsi |
|---|---|---|
$width | float | Lebar dalam point |
$height | float | Tinggi dalam point |
Method
Contoh
use TcpdfNext\ValueObjects\Dimension;
$dim = Dimension::mm(width: 210, height: 297);
echo $dim->width; // 595.28
echo $dim->widthMm(); // 210.0
$swapped = $dim->swap(); // Ekuivalen 297 x 210 mmUnit
Namespace: TcpdfNext\ValueObjects\Unit
Class utilitas statis untuk konversi antar unit pengukuran. Semua konversi didasarkan pada standar PDF yaitu 72 point per inci.
Method Konversi
Contoh
use TcpdfNext\ValueObjects\Unit;
$points = Unit::mmToPoints(210.0); // 595.28
$mm = Unit::pointsToMm(595.28); // 210.0
$points = Unit::inchesToPoints(8.5); // 612.0
$result = Unit::convert(1.0, 'in', 'mm'); // 25.4Color
Namespace: TcpdfNext\Graphics\Color
Representasi warna immutable yang mendukung beberapa color space. Meskipun Color berada di package Graphics, class ini digunakan secara luas di seluruh library (warna teks, warna draw, warna fill, warna bookmark, warna anotasi).
Factory Method
Property
| Property | Tipe | Deskripsi |
|---|---|---|
$space | ColorSpace | Enum color space (DeviceRGB, DeviceCMYK, DeviceGray, Separation) |
Method
Contoh
use TcpdfNext\Graphics\Color;
$brand = Color::hex('#0066CC');
$print = Color::cmyk(100, 0, 0, 0);
$spot = Color::spot('PANTONE 286 C', Color::cmyk(100, 66, 0, 2));
$faded = $brand->withAlpha(0.5);
echo $brand->toHex(); // '0066cc'Lihat Juga
- Ringkasan API -- Semua paket sekilas
- API Document -- Method yang menerima value object ini
- Referensi Enum -- ColorSpace, Orientation, dan enum terkait lainnya
- Panduan Value Object -- Ringkasan konseptual dan pola lanjutan