API объектов значений
Все объекты значений в TCPDF-Next неизменяемы. Каждый «модифицирующий» метод возвращает новый экземпляр, оставляя оригинал без изменений. Это устраняет категорию ошибок, вызванных общим мутабельным состоянием.
PageSize
Namespace: TcpdfNext\ValueObjects\PageSize
Представляет размеры страницы. Внутренне все измерения хранятся в пунктах PDF (1/72 дюйма).
Фабричные методы (серия ISO A)
Фабричные методы (серия ISO B)
Фабричные методы (североамериканские)
Пользовательские и поиск
Хелперы ориентации
Свойства
| Свойство | Тип | Описание |
|---|---|---|
$width | float | Ширина в пунктах |
$height | float | Высота в пунктах |
$name | string | Человекочитаемое имя (например, 'A4', 'Letter') |
Удобные методы
Пример
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
Представляет четырёхсторонние поля страницы. Внутреннее хранение в пунктах PDF.
Фабричные методы
Свойства
| Свойство | Тип | Описание |
|---|---|---|
$top | float | Верхнее поле в пунктах |
$right | float | Правое поле в пунктах |
$bottom | float | Нижнее поле в пунктах |
$left | float | Левое поле в пунктах |
Модифицирующие методы
Методы вычислений
Пример
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
Неизменяемая пара координат x--y в пунктах PDF.
Фабричные методы
Свойства
| Свойство | Тип | Описание |
|---|---|---|
$x | float | Горизонтальная координата в пунктах |
$y | float | Вертикальная координата в пунктах |
Методы
Пример
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
Неизменяемая пара ширина--высота в пунктах PDF.
Фабричные методы
Свойства
| Свойство | Тип | Описание |
|---|---|---|
$width | float | Ширина в пунктах |
$height | float | Высота в пунктах |
Методы
Пример
use TcpdfNext\ValueObjects\Dimension;
$dim = Dimension::mm(width: 210, height: 297);
echo $dim->width; // 595.28
echo $dim->widthMm(); // 210.0
$swapped = $dim->swap(); // 297 x 210 mm equivalentUnit
Namespace: TcpdfNext\ValueObjects\Unit
Статический утилитарный класс для преобразования между единицами измерения. Все преобразования основаны на стандарте PDF — 72 пункта на дюйм.
Методы преобразования
Пример
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
Неизменяемое представление цвета, поддерживающее множественные цветовые пространства. Хотя Color находится в пакете Graphics, он повсеместно используется по всей библиотеке (цвет текста, цвет обводки, цвет заливки, цвет закладок, цвет аннотаций).
Фабричные методы
Свойства
| Свойство | Тип | Описание |
|---|---|---|
$space | ColorSpace | Enum цветового пространства (DeviceRGB, DeviceCMYK, DeviceGray, Separation) |
Методы
Пример
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'См. также
- Обзор API -- Все пакеты одним взглядом
- API документа -- Методы, принимающие эти объекты значений
- Справочник Enums -- ColorSpace, Orientation и другие связанные enum-ы
- Руководство по объектам значений -- Концептуальный обзор и продвинутые паттерны