API drawing canvas HotPDF mencerminkan model path PDF ISO 32000-1: Anda membangun path satu segmen sekaligus, lalu menerapkan operasi stroke, fill, atau keduanya untuk membuat operasi rendering. Pendekatan itu berbeda dari canvas Windows yang menggambar segera setiap kali fungsi drawing dipanggil. Di HotPDF, Anda mengakumulasi path hingga Anda secara eksplisit memberi tahu renderer apa yang harus dilakukan dengannya
Seluruh permukaan gambar berada pada THotPDF.CurrentPage. Di antara BeginDoc dan EndDoc, Anda mengatur warna serta lebar garis, membangun geometri, lalu memakai Stroke atau Fill untuk menerapkannya. Empat primitive utama adalah MoveTo, LineTo, Rectangle, dan Circle
Sistem koordinat
Semua koordinat diukur dalam poin dari sudut kiri-bawah halaman. Y bertambah ke atas. Halaman letter default berukuran 612 × 792 poin (8,5 × 11 inci pada 72 poin per inci). Titik koordinat (0, 0) adalah sudut kiri-bawah; (612, 792) adalah sudut kanan-atas
Path garis dasar
// Menggambar segitiga yang di-stroke
PDF.CurrentPage.SetRGBStrokeColor(0.0, 0.0, 0.8); // biru
PDF.CurrentPage.MoveTo(100, 300);
PDF.CurrentPage.LineTo(200, 500);
PDF.CurrentPage.LineTo(300, 300);
PDF.CurrentPage.ClosePath;
PDF.CurrentPage.Stroke;
MoveTo memindahkan pena saat ini tanpa menggambar. LineTo menambahkan segmen garis lurus dari posisi saat ini ke titik yang ditentukan. ClosePath menambahkan segmen kembali ke titik MoveTo awal. Stroke merender path yang terakumulasi sebagai garis menggunakan warna stroke saat ini dan lebar garis
Path yang di-fill
PDF.CurrentPage.SetRGBFillColor(0.9, 0.2, 0.2); // merah
PDF.CurrentPage.MoveTo(100, 400);
PDF.CurrentPage.LineTo(200, 600);
PDF.CurrentPage.LineTo(300, 400);
PDF.CurrentPage.ClosePath;
PDF.CurrentPage.Fill;
Fill mengisi interior path dengan warna fill saat ini menggunakan aturan winding. Path tidak perlu secara eksplisit ditutup sebelum Fill; komponen secara otomatis menutup path terbuka sebelum mengisi
Stroke dan fill secara bersamaan
PDF.CurrentPage.SetRGBFillColor(0.8, 0.8, 1.0); // biru muda
PDF.CurrentPage.SetRGBStrokeColor(0.0, 0.0, 0.6); // biru tua
PDF.CurrentPage.Rectangle(72, 400, 200, 100); // x, y, lebar, tinggi
PDF.CurrentPage.FillAndStroke;
Rectangle adalah jalan pintas yang menambahkan path persegi panjang tanpa harus menentukan keempat titik sudutnya secara manual. FillAndStroke menerapkan kedua operasi dalam satu panggilan
Lingkaran
PDF.CurrentPage.SetRGBFillColor(0.2, 0.7, 0.2); // hijau
PDF.CurrentPage.Circle(300, 500, 60); // x-center, y-center, radius
PDF.CurrentPage.Fill;
Circle menggambar elips yang pusat dan radius-nya dalam poin. Seperti semua path, ini memerlukan panggilan Stroke, Fill, atau FillAndStroke berikutnya untuk dirender
Warna
SetRGBFillColor dan SetRGBStrokeColor masing-masing menerima tiga nilai Double dalam rentang 0,0..1,0 untuk komponen R, G, dan B. State warna tetap aktif untuk semua drawing berikutnya di halaman saat ini sampai diubah. Untuk mengatur ulang ke hitam: SetRGBStrokeColor(0, 0, 0) atau SetRGBFillColor(0, 0, 0)
Lebar garis
PDF.CurrentPage.SetLineWidth(2.5); // dalam poin
Nilai default adalah 1 poin. Atur ini sebelum operasi Stroke atau FillAndStroke. Seperti warna, pengaturan ini bertahan untuk halaman saat ini
Catatan koordinat penting
Sistem koordinat kiri-bawah berbeda dari koordinat GDI Windows yang bertambah ke bawah. Saat mengonversi kode yang menggambar ke bitmap atau kanvas layar, balikkan sumbu Y: Y_pdf = PageHeight - Y_screen. Untuk halaman letter, itu adalah Y_pdf = 792 - Y_screen. Aturan yang sama berlaku ketika memotong tata letak dari gambar atau kumpulan data yang menggunakan konvensi kiri-atas