Skip to content

Grafik (HasDrawing)

Trait HasDrawing menyediakan primitif gambar vektor untuk garis, persegi panjang, lingkaran, poligon, kurva, panah, dan sektor pie. Semua method mengembalikan static, sehingga setiap panggilan bisa di-chain.

Referensi Cepat

MethodBentuk
line()Garis lurus antara dua titik
rect()Persegi panjang
roundedRect()Persegi panjang dengan sudut membulat
circle()Lingkaran
ellipse()Elips
polygon()Poligon dari array titik
regularPolygon()Poligon beraturan (n sisi)
starPolygon()Bentuk bintang
arrow()Panah dengan kepala
pieSector()Sektor pie untuk grafik
curve()Kurva Bezier kubik
polyCurve()Kurva Bezier multi-segmen

Contoh Dasar

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

Parameter Style

Kebanyakan method gambar menerima string $style yang mengontrol rendering:

NilaiArti
SStroke (outline saja) — default
FFill saja
DF atau BDraw dan fill (keduanya)

Garis dan Persegi Panjang

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() menggambar dari titik (x1, y1) ke (x2, y2). rect() menggambar persegi panjang standar. roundedRect() menambahkan sudut membulat dengan radius $r.

Lingkaran dan Elips

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

circle() mengambil titik pusat dan radius. ellipse() menggunakan radius horizontal dan vertikal terpisah.

Poligon

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() menerima array koordinat datar [x1, y1, x2, y2, ...]. regularPolygon() menggambar poligon n-sisi yang inscribed dalam lingkaran radius $r. starPolygon() menggambar bintang dengan $nv titik dan faktor gap $ng.

Panah dan Sektor Pie

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() menggambar garis dengan kepala panah di tujuan. pieSector() menggambar sektor pie dari sudut $a ke $b (derajat), berguna untuk grafik:

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

Kurva 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() menggambar Bezier kubik dari (x0, y0) ke (x3, y3) dengan titik kontrol (x1, y1) dan (x2, y2). polyCurve() menghubungkan beberapa segmen Bezier dari array titik.

Style Garis

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

Array $style mendukung key: width (float), cap (butt, round, square), join (miter, round, bevel), dash (string atau array pattern), dan 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);

Tanda Potong dan Registrasi

Tambahkan tanda siap cetak untuk output profesional:

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

Didistribusikan di bawah lisensi LGPL-3.0-or-later.