Skip to content

Đồ họa (HasDrawing)

Trait HasDrawing cung cấp các primitive vẽ vector cho đường thẳng, hình chữ nhật, hình tròn, đa giác, đường cong, mũi tên và pie sector. Mọi method trả về static, nên mỗi lệnh gọi có thể chain.

Tham chiếu nhanh

MethodHình dạng
line()Đường thẳng giữa hai điểm
rect()Hình chữ nhật
roundedRect()Hình chữ nhật bo góc
circle()Hình tròn
ellipse()Hình elip
polygon()Đa giác bất kỳ từ mảng điểm
regularPolygon()Đa giác đều (n cạnh)
starPolygon()Hình sao
arrow()Mũi tên có đầu
pieSector()Pie sector cho biểu đồ
curve()Đường cong Bezier bậc ba
polyCurve()Đường cong Bezier nhiều đoạn

Ví dụ cơ bản

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

Tham số Style

Hầu hết method vẽ chấp nhận chuỗi $style kiểm soát render:

Giá trịÝ nghĩa
SStroke (chỉ outline) — mặc định
FChỉ fill
DF hoặc BVẽ và fill (cả hai)

Đường thẳng và hình chữ nhật

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() vẽ từ điểm (x1, y1) đến (x2, y2). rect() vẽ hình chữ nhật chuẩn. roundedRect() thêm góc bo với bán kính $r.

Hình tròn và hình elip

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

circle() nhận điểm tâm và bán kính. ellipse() dùng bán kính ngang và dọc riêng.

Đa giác

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() chấp nhận mảng phẳng tọa độ [x1, y1, x2, y2, ...]. regularPolygon() vẽ đa giác n cạnh nội tiếp trong đường tròn bán kính $r. starPolygon() vẽ sao với $nv đỉnh và hệ số khoảng cách $ng.

Mũi tên và Pie Sector

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() vẽ đường thẳng có đầu mũi tên tại đích. pieSector() vẽ pie sector từ góc $a đến $b (độ), hữu ích cho biểu đồ:

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

Đường cong 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() vẽ Bezier bậc ba từ (x0, y0) đến (x3, y3) với điểm điều khiển (x1, y1) và (x2, y2). polyCurve() nối nhiều đoạn Bezier từ mảng điểm.

Style đường kẻ

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

Mảng $style hỗ trợ key: width (float), cap (butt, round, square), join (miter, round, bevel), dash (chuỗi hoặc mảng pattern) và color (mảng RGB).

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

Dấu cắt và đăng ký

Thêm dấu chuẩn bị in cho output chuyên nghiệp:

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

Phân phối theo giấy phép LGPL-3.0-or-later.