Skip to content

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éthodeForme
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

php
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 :

ValeurSignification
SStroke (contour uniquement) — par défaut
FFill uniquement
DF ou BDraw and fill (les deux)

Lignes et rectangles

php
$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

php
$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

php
$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

php
$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 :

php
$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

php
$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

php
$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).

php
$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 :

php
$pdf->cropMark(20, 20, 10, 10)
    ->registrationMark(105, 10)
    ->colorRegistrationBar(20, 280, 170, 5);

Distribué sous licence LGPL-3.0-or-later.