API de Value Objects
Todos los value objects en TCPDF-Next son inmutables. Cada método "modificador" retorna una nueva instancia, dejando el original sin cambios. Esto elimina una categoría de bugs causados por estado mutable compartido.
PageSize
Namespace: TcpdfNext\ValueObjects\PageSize
Representa las dimensiones de una página. Internamente todas las medidas se almacenan en puntos PDF (1/72 de pulgada).
Métodos factory (Serie ISO A)
Métodos factory (Serie ISO B)
Métodos factory (Norteamericanos)
Personalizado y búsqueda
Helpers de orientación
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
$width | float | Ancho en puntos |
$height | float | Alto en puntos |
$name | string | Nombre legible (ej., 'A4', 'Letter') |
Métodos de conveniencia
Ejemplo
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
Representa márgenes de página en cuatro lados. El almacenamiento interno es en puntos PDF.
Métodos factory
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
$top | float | Margen superior en puntos |
$right | float | Margen derecho en puntos |
$bottom | float | Margen inferior en puntos |
$left | float | Margen izquierdo en puntos |
Métodos modificadores
Métodos de cálculo
Ejemplo
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
Un par de coordenadas x--y inmutable en puntos PDF.
Métodos factory
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
$x | float | Coordenada horizontal en puntos |
$y | float | Coordenada vertical en puntos |
Métodos
Ejemplo
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
Un par ancho--alto inmutable en puntos PDF.
Métodos factory
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
$width | float | Ancho en puntos |
$height | float | Alto en puntos |
Métodos
Ejemplo
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
Clase de utilidad estática para convertir entre unidades de medida. Todas las conversiones se basan en el estándar PDF de 72 puntos por pulgada.
Métodos de conversión
Ejemplo
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
Representación de color inmutable que soporta múltiples espacios de color. Aunque Color reside en el paquete Graphics, se usa de forma generalizada en toda la biblioteca (color de texto, color de trazo, color de relleno, color de marcador, color de anotación).
Métodos factory
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
$space | ColorSpace | El enum de espacio de color (DeviceRGB, DeviceCMYK, DeviceGray, Separation) |
Métodos
Ejemplo
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'Ver también
- Resumen API -- Todos los paquetes de un vistazo
- API de Document -- Métodos que aceptan estos value objects
- Referencia de Enums -- ColorSpace, Orientation y otros enums relacionados
- Guía de Value Objects -- Resumen conceptual y patrones avanzados