Setiap library PDF menyertakan sebuah "hello world", dan milik HotPDF layak dicermati pelan-pelan, karena program terkecil yang melakukan sesuatu pun sudah memaksa dua keputusan yang akan Anda ulangi di setiap dokumen sesudahnya: font mana yang disetel, dan di mana teks mendarat pada halaman. Benarkan keduanya dan sisa API-nya hanyalah variasi dari tema yang sama. Inilah keseluruhannya, sebuah program konsol yang menulis satu halaman yang menyapa pembaca dalam hampir selusin bahasa:
program HelloWorld;
{$APPTYPE CONSOLE}
uses
Winapi.Windows, // untuk DEFAULT_CHARSET; di Delphi pra-XE2 pakai Windows biasa
HPDFDoc; // unit utama HotPDF
procedure CreateHelloWorld(const FileName: string);
var
Pdf: THotPDF;
begin
Pdf := THotPDF.Create(nil);
try
Pdf.FileName := FileName;
Pdf.Compression := cmFlateDecode; // ciutkan content stream
Pdf.FontEmbedding := True; // sematkan face agar terrender di mana pun
Pdf.BeginDoc;
// Satu face yang mencakup banyak aksara. Argumen ke-4 adalah charset Windows;
// DEFAULT_CHARSET membiarkan sistem memilih glyph per string.
Pdf.CurrentPage.SetFont('Arial Unicode MS', [], 14, DEFAULT_CHARSET);
// TextOut mengukur dari sudut KIRI-BAWAH, dalam poin, Y bertambah ke atas.
Pdf.CurrentPage.TextOut(72, 760, 0, 'Hello, Delphi PDF world!'); // Inggris
Pdf.CurrentPage.TextOut(72, 730, 0, 'Hola, mundo Delphi PDF!'); // Spanyol
Pdf.CurrentPage.TextOut(72, 700, 0, 'Hallo, Delphi PDF Welt!'); // Jerman
Pdf.CurrentPage.TextOut(72, 670, 0, 'Bonjour, monde PDF Delphi!'); // Prancis
Pdf.CurrentPage.TextOut(72, 640, 0, 'Ciao, mondo Delphi PDF!'); // Italia
Pdf.CurrentPage.TextOut(72, 610, 0, 'Olá, mundo Delphi PDF!'); // Portugis
Pdf.CurrentPage.TextOut(72, 580, 0, 'Здравствуйте, Delphi PDF мир!'); // Rusia
Pdf.CurrentPage.TextOut(72, 550, 0, 'こんにちは、Delphi PDFの世界!'); // Jepang
Pdf.CurrentPage.TextOut(72, 520, 0, 'Merhaba, Delphi PDF dünyası!'); // Turki
Pdf.CurrentPage.TextOut(72, 490, 0, '你好,Delphi PDF世界'); // Tionghoa
Pdf.CurrentPage.TextOut(72, 460, 0, '여보세요, Delphi PDF 세계!'); // Korea
Pdf.EndDoc;
finally
Pdf.Free;
end;
end;
begin
CreateHelloWorld('HelloWorld.pdf');
Writeln('Wrote HelloWorld.pdf');
end.

Itulah keseluruhan contohnya. THotPDF.Create(nil) yang dipasangkan dengan try/finally ... Free adalah pola kepemilikan Delphi biasa, dan PDF tidak mengubahnya. Yang pantas diperhatikan adalah tulang punggung empat langkah di dalamnya: setel properti, BeginDoc, gambar, EndDoc. Urutannya tidak bisa ditukar
Setel properti dokumen sebelum BeginDoc
BeginDoc adalah saat HotPDF mengunci struktur dokumen, jadi apa pun yang memengaruhi keseluruhan berkas harus disetel sebelum itu. Compression := cmFlateDecode menyalakan FlateDecode untuk content stream, yang menjadi pembeda antara berkas ringkas dan berkas yang membengkak tanpa perlu. FontEmbedding := True mengemas font yang Anda pakai menggambar ke dalam berkas, sehingga tampilannya sama di mesin yang belum pernah memasang Arial Unicode MS seperti di mesin Anda. Berikan salah satunya setelah BeginDoc dan ia diam-diam tidak melakukan apa pun pada dokumen yang sedang berjalan, tanpa error yang memperingatkan Anda
SetFont, lalu TextOut, dan awasi titik asalnya
Dua hal tentang panggilan menggambar menjebak semua orang di halaman pertamanya. Yang pertama adalah urutan: SetFont harus dijalankan sebelum TextOut mana pun yang bergantung padanya, dan harus diulangi setelah setiap AddPage, karena font aktif tidak bertahan melewati pergantian halaman. Yang kedua adalah sistem koordinatnya. TextOut mengukur dari sudut kiri bawah halaman, bukan kiri atas, dengan Y bertambah saat Anda bergerak ke atas, dalam poin (1/72 inci). Itulah sebabnya baris-baris di sini berbaris turun dari 760, masing-masing 30 poin di bawah yang sebelumnya. Siapa pun yang datang dari grafik layar mengandaikan kebalikannya lalu menulis baris pertama tepat di luar tepi bawah
Satu font, banyak aksara
Alasan satu SetFont dapat membawa Latin, Kiril, Jepang, dan Tionghoa pada halaman yang sama adalah face-nya sendiri: Arial Unicode MS memaketkan glyph untuk hampir setiap aksara ke dalam satu berkas. Argumen keempat untuk SetFont adalah character set Windows, dan memberikan DEFAULT_CHARSET membiarkan sistem memilih glyph per string alih-alih memaku semuanya ke satu code page lawas. Dua peringatan menyertai kemudahan itu. Font-nya harus ada di mesin yang membangun PDF, karena HotPDF menyematkan apa pun yang diresolusi OS dari nama itu; jika Arial Unicode MS tidak ada, Windows diam-diam menukarnya dengan pengganti dan teks CJK Anda bisa keluar sebagai kotak kosong. Dan ia tidak mencakup setiap aksara secara setara: untuk tulisan kanan-ke-kiri seperti Arab dan Ibrani, atau apa pun yang memerlukan shaping kompleks, Anda beralih ke font khusus yang dimuat dengan RegisterUnicodeTTF beserta panggilan teks kanan-ke-kiri, yang merupakan topik tersendiri
Jalankan dan Anda mendapat HelloWorld.pdf di direktori kerja: satu halaman, beberapa baris teks multibahasa, terkompresi, dengan font tersemat. Langkah berikutnya yang jelas adalah memberi teks itu ukuran, gaya, dan rotasi, serta menempatkan lebih dari satu blok secara sengaja, keduanya ditelusuri oleh contoh TextOut. Ketika Anda ingin menggambar garis, kotak, dan gambar alih-alih sekadar teks, objek halaman yang sama juga menampung panggilan-panggilan itu
Panggilan TextOut, SetFont, dan panggilan dokumen yang ditunjukkan di sini adalah bagian dari HotPDF Delphi Component untuk Delphi dan C++Builder