Skip to content

Grafica (HasDrawing)

Il trait HasDrawing fornisce primitive disegno vettoriale per linee, rettangoli, cerchi, poligoni, curve, frecce e settori torta. Tutti i metodi restituiscono static, quindi ogni chiamata può essere concatenata.

Riferimento Rapido

MetodoForma
line()Linea retta tra due punti
rect()Rettangolo
roundedRect()Rettangolo con angoli arrotondati
circle()Cerchio
ellipse()Ellisse
polygon()Poligono arbitrario da array punti
regularPolygon()Poligono regolare (n lati)
starPolygon()Forma stella
arrow()Freccia con punta
pieSector()Settore torta per grafici
curve()Curva Bezier cubica
polyCurve()Curva Bezier multi-segmento

Esempio Base

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');

Parametro Stile

La maggior parte dei metodi disegno accetta una stringa $style che controlla il rendering:

ValoreSignificato
STratto (solo contorno) — predefinito
FSolo riempimento
DF o BDisegna e riempi (entrambi)

Linee e Rettangoli

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() disegna dal punto (x1, y1) a (x2, y2). rect() disegna un rettangolo standard. roundedRect() aggiunge angoli arrotondati con raggio $r.

Cerchi ed Ellissi

php
$pdf->circle(float $x0, float $y0, float $r, string $style = '');
$pdf->ellipse(float $x0, float $y0, float $rx, float $ry, string $style = '');

circle() prende un punto centrale e raggio. ellipse() usa raggi orizzontale e verticale separati.

Poligoni

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() accetta un array piatto di coordinate [x1, y1, x2, y2, ...]. regularPolygon() disegna un poligono n-lati inscritto in un cerchio di raggio $r. starPolygon() disegna una stella con $nv vertici e fattore gap $ng.

Frecce e Settori Torta

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() disegna una linea con punta freccia alla destinazione. pieSector() disegna un settore torta dall'angolo $a a $b (gradi), utile per grafici:

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');

Curve 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() disegna una Bezier cubica da (x0, y0) a (x3, y3) con punti controllo (x1, y1) e (x2, y2). polyCurve() concatena segmenti Bezier multipli da un array punti.

Stili Linea

php
$pdf->setLineStyle(array $style);

L'array $style supporta chiavi: width (float), cap (butt, round, square), join (miter, round, bevel), dash (stringa o array pattern) e color (array RGB).

php
$pdf->setLineStyle([
    'width' => 0.5,
    'cap'   => 'round',
    'join'  => 'round',
    'dash'  => '3,2',
    'color' => [0, 0, 200],
])->line(10, 10, 190, 10);

Segni Rifilo e Registrazione

Aggiungi segni print-ready per output professionale:

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

Rilasciato sotto licenza LGPL-3.0-or-later.