Graphiques (HasDrawing)
Le trait HasDrawing fournit des primitives de dessin vectoriel pour lignes, rectangles, cercles, polygones, courbes, flèches et secteurs circulaires. Toutes les méthodes retournent static, donc chaque appel peut être chaîné.
Référence rapide
| Méthode | Forme |
|---|---|
line() | Ligne droite entre deux points |
rect() | Rectangle |
roundedRect() | Rectangle avec coins arrondis |
circle() | Cercle |
ellipse() | Ellipse |
polygon() | Polygone arbitraire depuis tableau de points |
regularPolygon() | Polygone régulier (n côtés) |
starPolygon() | Forme étoile |
arrow() | Flèche avec tête |
pieSector() | Secteur circulaire pour graphiques |
curve() | Courbe Bezier cubique |
polyCurve() | Courbe Bezier multi-segments |
Exemple basique
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->setDrawColor(255, 0, 0)
->setFillColor(200, 220, 255)
->line(10, 10, 100, 10)
->rect(10, 20, 80, 40, 'DF')
->roundedRect(10, 70, 80, 40, 5, 'DF')
->circle(150, 40, 30, 'DF')
->ellipse(150, 100, 40, 20, 'DF')
->arrow(10, 140, 100, 140)
->regularPolygon(150, 160, 25, 6, 'DF')
->starPolygon(50, 200, 25, 5, 3, 'DF');Paramètre de style
La plupart des méthodes de dessin acceptent une chaîne $style qui contrôle le rendu :
| Valeur | Signification |
|---|---|
S | Stroke (contour uniquement) — par défaut |
F | Fill uniquement |
DF ou B | Draw and fill (les deux) |
Lignes et rectangles
$pdf->line(float $x1, float $y1, float $x2, float $y2);
$pdf->rect(float $x, float $y, float $w, float $h, string $style = '');
$pdf->roundedRect(float $x, float $y, float $w, float $h, float $r, string $style = '');line() dessine depuis le point (x1, y1) vers (x2, y2). rect() dessine un rectangle standard. roundedRect() ajoute des coins arrondis avec rayon $r.
Cercles et ellipses
$pdf->circle(float $x0, float $y0, float $r, string $style = '');
$pdf->ellipse(float $x0, float $y0, float $rx, float $ry, string $style = '');circle() prend un point central et un rayon. ellipse() utilise des rayons horizontal et vertical séparés.
Polygones
$pdf->polygon(array $points, string $style = '');
$pdf->regularPolygon(float $x0, float $y0, float $r, int $ns, string $style = '');
$pdf->starPolygon(float $x0, float $y0, float $r, int $nv, int $ng, string $style = '');polygon() accepte un tableau plat de coordonnées [x1, y1, x2, y2, ...]. regularPolygon() dessine un polygone à n côtés inscrit dans un cercle de rayon $r. starPolygon() dessine une étoile avec $nv sommets et facteur d'écart $ng.
Flèches et secteurs circulaires
$pdf->arrow(float $x0, float $y0, float $x1, float $y1);
$pdf->pieSector(float $xc, float $yc, float $r, float $a, float $b, string $style = '');arrow() dessine une ligne avec une pointe de flèche à la destination. pieSector() dessine un secteur circulaire de l'angle $a à $b (degrés), utile pour les graphiques :
$pdf->setFillColor(255, 100, 100)->pieSector(100, 100, 40, 0, 120, 'F')
->setFillColor(100, 255, 100)->pieSector(100, 100, 40, 120, 250, 'F')
->setFillColor(100, 100, 255)->pieSector(100, 100, 40, 250, 360, 'F');Courbes Bezier
$pdf->curve(float $x0, float $y0, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3);
$pdf->polyCurve(array $points);curve() dessine une Bezier cubique de (x0, y0) à (x3, y3) avec points de contrôle (x1, y1) et (x2, y2). polyCurve() enchaîne plusieurs segments Bezier depuis un tableau de points.
Styles de ligne
$pdf->setLineStyle(array $style);Le tableau $style supporte les clés : width (float), cap (butt, round, square), join (miter, round, bevel), dash (chaîne ou motif tableau) et color (tableau RGB).
$pdf->setLineStyle([
'width' => 0.5,
'cap' => 'round',
'join' => 'round',
'dash' => '3,2',
'color' => [0, 0, 200],
])->line(10, 10, 190, 10);Marques de recadrage et de repérage
Ajoutez des marques prêtes à imprimer pour sortie professionnelle :
$pdf->cropMark(20, 20, 10, 10)
->registrationMark(105, 10)
->colorRegistrationBar(20, 280, 170, 5);