Cara tercepat untuk memeriksa apakah HotPDF dikonfigurasi dengan benar adalah menghasilkan file PDF minimal yang dapat Anda buka di viewer. Contoh hello world di bawah ini melakukannya dalam satu prosedur, yang dapat disalin langsung ke project baru atau dipotong ke bagian yang relevan untuk penggunaan produksi
Program lengkapnya adalah aplikasi konsol yang membuat satu halaman, memilih font Unicode, menulis sapaan dengan TextOut, lalu menyimpan file terkompresi. Detail kecil ini menjadi pola yang sama untuk dokumen HotPDF yang lebih besar: font harus dipilih sebelum teks dan koordinat mengikuti origin kiri-bawah PDF
Penyiapan
Sebelum mengompilasi, pastikan direktori sumber HotPDF ada di library path kompiler. Komponen itu sendiri tidak perlu dijatuhkan ke form; Anda dapat mengalokasikannya secara dinamis seperti objek Pascal lainnya. Untuk project yang ingin menggunakannya di waktu desain, instal package BPL terlebih dahulu dari subdirektori distribusi yang sesuai dengan versi IDE Anda
Prosedur CreateHelloWorld
procedure TForm1.CreateHelloWorld;
var
PDF: THotPDF;
begin
PDF := THotPDF.Create(nil);
try
PDF.FileName := 'hello_world.pdf';
PDF.Compression := cmFlateDecode;
PDF.FontEmbedding := True;
PDF.BeginDoc;
PDF.CurrentPage.SetFont('Arial', [], 24);
PDF.CurrentPage.TextOut(72, 700, 0, 'Hello, World!');
PDF.EndDoc;
finally
PDF.Free;
end;
end;
Cara kerja kode
THotPDF.Create(nil) mengalokasikan komponen tanpa owner VCL. Meneruskan nil membuat lifetime eksplisit: objek hidup sampai blok finally yang memanggil PDF.Free. Meneruskan Self (form) juga berhasil dan mendelegasikan pembersihan ke form, tetapi untuk kode yang menghasilkan satu dokumen dan selesai, scope eksplisit lebih bersih
PDF.FileName menetapkan path output. Ini bisa berupa path relatif dari direktori kerja aplikasi atau path absolut. BeginDoc membuka aliran penulis dan mengkomit opsi tingkat dokumen seperti Compression dan FontEmbedding; menetapkan properti tersebut setelah BeginDoc tidak berpengaruh
SetFont di CurrentPage memilih nama font, style ([] berarti regular), dan ukuran dalam poin. TextOut menerima empat argumen: X, Y, sudut rotasi, dan teks. Sistem koordinat HotPDF mengukur dari sudut kiri-bawah halaman, dengan Y bertambah ke atas. Ukuran halaman Letter default adalah 612 × 792 poin, sehingga pasangan 72, 700 menempatkan teks kira-kira satu inci dari kiri dan satu inci dari atas pada halaman Letter
EndDoc memfinalkan struktur internal PDF, menulis tabel cross-reference, dan menutup file. Jika Anda perlu membuat file yang dapat langsung dibuka di viewer setelah panggilan ini, Anda dapat menyetel PDF.AutoLaunch := True sebelum EndDoc, tetapi flag itu tidak cocok untuk kode produksi yang berjalan di server atau sebagai bagian dari alur batch
Menjalankan contoh
Kompilasi dan jalankan project, lalu cari hello_world.pdf di direktori kerja yang sama dengan executable Anda. Jika file tidak muncul, periksa bahwa PDF.FileName menunjuk ke direktori yang dapat ditulis dan bahwa tidak ada exception yang dilempar sebelum EndDoc. Menempatkan breakpoint pada EndDoc dan menjalankan dengan debugger terlampir adalah cara tercepat untuk mengonfirmasi dokumen ditutup dengan bersih
Setelah verifikasi ini berhasil, Anda dapat memperluas prosedur dengan menambahkan halaman (PDF.AddPage), menyematkan gambar (PDF.CurrentPage.DrawImage), atau menggambar path vektor. Setiap halaman baru menjadi halaman saat ini setelah AddPage, dan properti font serta warna harus ditetapkan ulang karena tidak ada state grafis yang terbawa antar halaman kecuali Anda melakukannya secara eksplisit