Her PDF kütüphanesi bir "merhaba dünya (hello world)" ile birlikte gelir ve HotPDF'ninki üzerinde yavaşlamaya değerdir, çünkü herhangi bir şey yapan en küçük program sizi daha sonraki her belgede tekrarlayacağınız iki kararı vermeye zorlar: Hangi yazı tipinin (font) ayarlanacağı ve metnin sayfada nereye yerleşeceği. Bu ikisini doğru yaptığınızda API'nin geri kalanı bir temanın varyasyonları (çeşitlemeleri) olacaktır. Okuyucuyu bir düzineye yakın dilde selamlayan tek bir sayfa yazan konsol programı olan tüm her şey burada:
program HelloWorld;
{$APPTYPE CONSOLE}
uses
Winapi.Windows, // for DEFAULT_CHARSET; on pre-XE2 Delphi use plain Windows
HPDFDoc; // HotPDF main unit
procedure CreateHelloWorld(const FileName: string);
var
Pdf: THotPDF;
begin
Pdf := THotPDF.Create(nil);
try
Pdf.FileName := FileName;
Pdf.Compression := cmFlateDecode; // shrink the content streams
Pdf.FontEmbedding := True; // embed the face so it renders anywhere
Pdf.BeginDoc;
// One face covering many scripts. The 4th argument is the Windows charset;
// DEFAULT_CHARSET lets the system pick glyphs per string.
Pdf.CurrentPage.SetFont('Arial Unicode MS', [], 14, DEFAULT_CHARSET);
// TextOut measures from the BOTTOM-LEFT corner, in points, Y growing upward.
Pdf.CurrentPage.TextOut(72, 760, 0, 'Hello, Delphi PDF world!'); // English
Pdf.CurrentPage.TextOut(72, 730, 0, 'Hola, mundo Delphi PDF!'); // Spanish
Pdf.CurrentPage.TextOut(72, 700, 0, 'Hallo, Delphi PDF Welt!'); // German
Pdf.CurrentPage.TextOut(72, 670, 0, 'Bonjour, monde PDF Delphi!'); // French
Pdf.CurrentPage.TextOut(72, 640, 0, 'Ciao, mondo Delphi PDF!'); // Italian
Pdf.CurrentPage.TextOut(72, 610, 0, 'Olá, mundo Delphi PDF!'); // Portuguese
Pdf.CurrentPage.TextOut(72, 580, 0, 'Здравствуйте, Delphi PDF мир!'); // Russian
Pdf.CurrentPage.TextOut(72, 550, 0, 'こんにちは、Delphi PDFの世界!'); // Japanese
Pdf.CurrentPage.TextOut(72, 520, 0, 'Merhaba, Delphi PDF dünyası!'); // Turkish
Pdf.CurrentPage.TextOut(72, 490, 0, '你好,Delphi PDF世界'); // Chinese
Pdf.CurrentPage.TextOut(72, 460, 0, '여보세요, Delphi PDF 세계!'); // Korean
Pdf.EndDoc;
finally
Pdf.Free;
end;
end;
begin
CreateHelloWorld('HelloWorld.pdf');
Writeln('Wrote HelloWorld.pdf');
end.

İşte örneğin tamamı. try/finally ... Free ile eşleştirilen THotPDF.Create(nil) sıradan Delphi sahiplik modelidir (ownership pattern) ve PDF bunu değiştirmez. İçeride dikkat edilmesi gereken dört adımlı omurgadır: özellikleri ayarla, BeginDoc, çiz, EndDoc. Bu sıralama birbiriyle değiştirilemez
BeginDoc öncesi belge özelliklerini ayarlama
BeginDoc, HotPDF'in belgenin yapısını işlediği andır, bu nedenle tüm dosyayı etkileyen her şeyin öncesinde ayarlanması gerekir. Compression := cmFlateDecode içerik akışları (content streams) için FlateDecode'u açar; bu, sıkı bir dosya ile gereksiz yere şişirilmiş bir dosya arasındaki farktır. FontEmbedding := True, çizim yaptığınız yazı tipini dosyanın içine paketler, böylece daha önce hiç Arial Unicode MS yüklenmemiş bir makinede de sizinkinde göründüğü gibi görünür. BeginDoc'tan sonra bunlardan herhangi birini atarsanız, halihazırda işlemde olan belgeye sessizce hiçbir şey yapmaz ve sizi uyaracak bir hata vermez
Önce SetFont, sonra TextOut ve başlangıç noktasını izleyin
Çizim çağrılarıyla (drawing calls) ilgili iki şey ilk sayfalarında herkesin dikkatini çeker. İlki sıralamadır: SetFont, kendisine bağlı herhangi bir TextOut işleminden önce çalıştırılmalıdır ve her AddPage'den sonra tekrarlanmalıdır, çünkü mevcut yazı tipi (font) sayfa sonundan sonra hayatta kalmaz. İkincisi koordinat sistemidir. TextOut sayfanın sol üst köşesinden değil, sol alt köşesinden, nokta (1/72 inç) cinsinden, Y yukarı doğru hareket ettikçe artarak (increasing as you move up) ölçer. Buradaki çizgilerin 760'tan itibaren her biri bir öncekinin 30 nokta aşağısında olmak üzere aşağı doğru (downward) yürümesinin nedeni budur. Ekran grafiklerinden (screen graphics) gelen herkes tam tersini varsayar ve ilk satırı doğrudan alt kenarın dışına (straight off the bottom edge) yazar
Tek yazı tipi, birçok alfabe
Tek bir SetFont'un aynı sayfada Latin, Kiril, Japonca ve Çinceyi taşıyabilmesinin nedeni yazı tipinin kendisidir: Arial Unicode MS, neredeyse her alfabe için glifleri tek bir dosyada bir araya getirir. SetFont'un dördüncü argümanı Windows karakter setidir ve DEFAULT_CHARSET iletmek, sistemin her şeyi tek bir eski kod sayfasına (legacy code page) sabitlemek yerine her dizi (string) için glif seçmesine izin verir. İki uyarı, bu kolaylıkla birlikte gelir. Yazı tipi PDF'yi oluşturan makinede bulunmalıdır, çünkü işletim sistemi adı neye çözümlerse HotPDF onu gömer; eğer Arial Unicode MS eksikse Windows sessizce bir yedek ile değiştirir ve CJK metniniz boş kutular olarak çıkabilir. Ayrıca her alfabeyi aynı ölçüde kapsamaz: Arapça ve İbranice gibi sağdan sola (right-to-left) yazılar veya karmaşık şekillendirme (complex shaping) gerektiren herhangi bir şey için, RegisterUnicodeTTF ile yüklenen özel (dedicated) bir yazı tipine ve başlı başına bir konu olan sağdan sola metin çağrılarına (text calls) ulaşırsınız
Bunu çalıştırdığınızda çalışma dizininde HelloWorld.pdf'i elde edersiniz: tek sayfa, birkaç satır çok dilli metin, sıkıştırılmış, gömülü yazı tipi ile. Açık bir sonraki adım, o metne boyut, stil ve döndürme (rotation) vermek ve TextOut örneğinin (sample) üzerinde çalıştığı birden fazla bloğu kasıtlı (deliberately) olarak yerleştirmektir. Sadece metin değil de cetveller (rules), kutular (boxes) ve resimler (images) çizmek istediğinizde de aynı sayfa nesnesi bu çağrıları tutar
Burada gösterilen TextOut, SetFont ve belge çağrıları, Delphi ve C++Builder için HotPDF Bileşeninin (Component) bir parçasıdır