Đồ 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
| Method | Hì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
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 |
|---|---|
S | Stroke (chỉ outline) — mặc định |
F | Chỉ fill |
DF hoặc B | Vẽ và fill (cả hai) |
Đường thẳng và hình chữ nhật
$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
$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
$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
$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 đồ:
$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
$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ẻ
$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).
$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:
$pdf->cropMark(20, 20, 10, 10)
->registrationMark(105, 10)
->colorRegistrationBar(20, 280, 170, 5);