API Value Object
Mọi value object trong TCPDF-Next đều bất biến. Mọi method "modifier" trả về instance mới, giữ nguyên bản gốc. Điều này loại bỏ một loại lỗi do shared mutable state.
PageSize
Namespace: TcpdfNext\ValueObjects\PageSize
Biểu diễn kích thước trang. Nội bộ mọi phép đo được lưu bằng PDF point (1/72 inch).
Factory Method (ISO A Series)
Factory Method (ISO B Series)
Factory Method (Bắc Mỹ)
Tùy chỉnh & Tra cứu
Helper hướng trang
Thuộc tính
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
$width | float | Chiều rộng tính bằng point |
$height | float | Chiều cao tính bằng point |
$name | string | Tên dễ đọc (vd: 'A4', 'Letter') |
Method tiện lợi
Ví dụ
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
Biểu diễn margin trang bốn cạnh. Lưu trữ nội bộ bằng PDF point.
Factory Method
Thuộc tính
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
$top | float | Margin trên tính bằng point |
$right | float | Margin phải tính bằng point |
$bottom | float | Margin dưới tính bằng point |
$left | float | Margin trái tính bằng point |
Method Modifier
Method tính toán
Ví dụ
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
Cặp tọa độ x--y bất biến tính bằng PDF point.
Factory Method
Thuộc tính
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
$x | float | Tọa độ ngang tính bằng point |
$y | float | Tọa độ dọc tính bằng point |
Method
Ví dụ
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
Cặp chiều rộng--chiều cao bất biến tính bằng PDF point.
Factory Method
Thuộc tính
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
$width | float | Chiều rộng tính bằng point |
$height | float | Chiều cao tính bằng point |
Method
Ví dụ
use TcpdfNext\ValueObjects\Dimension;
$dim = Dimension::mm(width: 210, height: 297);
echo $dim->width; // 595.28
echo $dim->widthMm(); // 210.0
$swapped = $dim->swap(); // Tương đương 297 x 210 mmUnit
Namespace: TcpdfNext\ValueObjects\Unit
Class tiện ích static để chuyển đổi giữa đơn vị đo. Mọi chuyển đổi dựa trên chuẩn PDF 72 point mỗi inch.
Method chuyển đổi
Ví dụ
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
Biểu diễn màu bất biến hỗ trợ nhiều không gian màu. Mặc dù Color nằm trong package Graphics, nó được dùng rộng rãi xuyên suốt thư viện (màu text, màu vẽ, màu tô, màu bookmark, màu annotation).
Factory Method
Thuộc tính
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
$space | ColorSpace | Enum không gian màu (DeviceRGB, DeviceCMYK, DeviceGray, Separation) |
Method
Ví dụ
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'Xem thêm
- Tổng quan API -- Mọi package một cái nhìn
- Document API -- Method nhận các value object này
- Tham chiếu Enum -- ColorSpace, Orientation và enum liên quan khác
- Hướng dẫn Value Object -- Tổng quan khái niệm và pattern nâng cao