API de Value Objects
Todos os value objects no TCPDF-Next são imutáveis. Cada método "modificador" retorna uma nova instância, deixando o original inalterado. Isso elimina uma categoria de bugs causados por estado mutável compartilhado.
PageSize
Namespace: TcpdfNext\ValueObjects\PageSize
Representa as dimensões de uma página. Internamente todas as medidas são armazenadas em pontos PDF (1/72 polegada).
Métodos de Fábrica (Série ISO A)
Métodos de Fábrica (Série ISO B)
Métodos de Fábrica (Norte-Americanos)
Personalizado e Busca
Auxiliares de Orientação
Propriedades
| Propriedade | Tipo | Descrição |
|---|---|---|
$width | float | Largura em pontos |
$height | float | Altura em pontos |
$name | string | Nome legível (ex: 'A4', 'Letter') |
Métodos de Conveniência
Exemplo
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 margens de página de quatro lados. Armazenamento interno em pontos PDF.
Métodos de Fábrica
Propriedades
| Propriedade | Tipo | Descrição |
|---|---|---|
$top | float | Margem superior em pontos |
$right | float | Margem direita em pontos |
$bottom | float | Margem inferior em pontos |
$left | float | Margem esquerda em pontos |
Métodos Modificadores
Métodos de Cálculo
Exemplo
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
Um par de coordenadas x--y imutável em pontos PDF.
Métodos de Fábrica
Propriedades
| Propriedade | Tipo | Descrição |
|---|---|---|
$x | float | Coordenada horizontal em pontos |
$y | float | Coordenada vertical em pontos |
Métodos
Exemplo
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
Um par largura--altura imutável em pontos PDF.
Métodos de Fábrica
Propriedades
| Propriedade | Tipo | Descrição |
|---|---|---|
$width | float | Largura em pontos |
$height | float | Altura em pontos |
Métodos
Exemplo
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 equivalenteUnit
Namespace: TcpdfNext\ValueObjects\Unit
Classe utilitária estática para conversão entre unidades de medida. Todas as conversões são baseadas no padrão PDF de 72 pontos por polegada.
Métodos de Conversão
Exemplo
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
Representação de cor imutável suportando múltiplos espaços de cor. Embora Color resida no pacote Graphics, é usado de forma pervasiva em toda a biblioteca (cor de texto, cor de traço, cor de preenchimento, cor de marcador, cor de anotação).
Métodos de Fábrica
Propriedades
| Propriedade | Tipo | Descrição |
|---|---|---|
$space | ColorSpace | O enum do espaço de cor (DeviceRGB, DeviceCMYK, DeviceGray, Separation) |
Métodos
Exemplo
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'Veja Também
- Visão Geral da API -- Todos os pacotes em resumo
- API do Document -- Métodos que aceitam esses value objects
- Referência de Enums -- ColorSpace, Orientation e outros enums relacionados
- Guia de Value Objects -- Visão conceitual e padrões avançados