API Value Objects
Tous les value objects dans TCPDF-Next sont immuables. Chaque méthode "modificatrice" retourne une nouvelle instance, laissant l'original inchangé. Cela élimine une catégorie de bugs causés par l'état mutable partagé.
PageSize
Namespace: TcpdfNext\ValueObjects\PageSize
Représente les dimensions d'une page. En interne toutes les mesures sont stockées en points PDF (1/72 pouce).
Méthodes factory (Série A ISO)
Méthodes factory (Série B ISO)
Méthodes factory (Nord-américain)
Personnalisé et recherche
Helpers d'orientation
Propriétés
| Propriété | Type | Description |
|---|---|---|
$width | float | Largeur en points |
$height | float | Hauteur en points |
$name | string | Nom lisible (ex., 'A4', 'Letter') |
Méthodes de commodité
Exemple
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
Représente les marges de page à quatre côtés. Stockage interne en points PDF.
Méthodes factory
Propriétés
| Propriété | Type | Description |
|---|---|---|
$top | float | Marge haute en points |
$right | float | Marge droite en points |
$bottom | float | Marge basse en points |
$left | float | Marge gauche en points |
Méthodes modificatrices
Méthodes de calcul
Exemple
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
Une paire de coordonnées x-y immuable en points PDF.
Méthodes factory
Propriétés
| Propriété | Type | Description |
|---|---|---|
$x | float | Coordonnée horizontale en points |
$y | float | Coordonnée verticale en points |
Méthodes
Exemple
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
Une paire largeur-hauteur immuable en points PDF.
Méthodes factory
Propriétés
| Propriété | Type | Description |
|---|---|---|
$width | float | Largeur en points |
$height | float | Hauteur en points |
Méthodes
Exemple
use TcpdfNext\ValueObjects\Dimension;
$dim = Dimension::mm(width: 210, height: 297);
echo $dim->width; // 595.28
echo $dim->widthMm(); // 210.0
$swapped = $dim->swap(); // équivalent 297 x 210 mmUnit
Namespace: TcpdfNext\ValueObjects\Unit
Classe utilitaire statique pour convertir entre unités de mesure. Toutes les conversions sont basées sur le standard PDF de 72 points par pouce.
Méthodes de conversion
Exemple
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
Représentation couleur immuable supportant plusieurs espaces colorimétriques. Bien que Color vive dans le package Graphics, elle est utilisée de manière omniprésente dans la bibliothèque (couleur texte, couleur dessin, couleur remplissage, couleur signet, couleur annotation).
Méthodes factory
Propriétés
| Propriété | Type | Description |
|---|---|---|
$space | ColorSpace | L'enum espace colorimétrique (DeviceRGB, DeviceCMYK, DeviceGray, Separation) |
Méthodes
Exemple
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'Voir aussi
- Vue d'ensemble API -- Tous les packages en un coup d'œil
- API Document -- Méthodes acceptant ces value objects
- Référence Enums -- ColorSpace, Orientation et autres enums liés
- Guide Value Objects -- Vue conceptuelle et patterns avancés