Svaka biblioteka za PDF dolazi s "hello world" primjerom, a HotPDF-ov je vrijedan detaljnijeg proučavanja jer najmanji program koji radi bilo što već zahtijeva dvije odluke koje ćete ponavljati u svakom dokumentu nakon toga: koji font postaviti i gdje na stranici smjestiti tekst. Ako to dvoje ispravno postavite, ostatak API-ja samo su varijacije na temu. Evo cijelog koda, konzolnog programa koji ispisuje jednu stranicu s pozdravom čitatelju na gotovo desetak jezika:
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 mir!'); // 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.

To je cijeli primjer. THotPDF.Create(nil) u kombinaciji s try/finally ... Free predstavlja uobičajeni Delphi obrazac upravljanja vlasništvom, a PDF ga ne mijenja. Ono što zaslužuje pozornost je struktura od četiri koraka unutar koda: postavljanje svojstava, BeginDoc, crtanje i EndDoc. Redoslijed se ne može mijenjati.
Postavite svojstva dokumenta prije poziva BeginDoc
BeginDoc je trenutak kada HotPDF definira strukturu dokumenta, tako da se sve što utječe na cijelu datoteku mora postaviti prije toga. Compression := cmFlateDecode uključuje FlateDecode za tokove sadržaja, što čini razliku između kompaktne datoteke i nepotrebno prevelike datoteke. FontEmbedding := True ugrađuje font kojim crtate u samu datoteku, pa ona izgleda jednako na računalu koje nikada nije imalo instaliran Arial Unicode MS kao i na vašem. Ako bilo koje od ovih svojstava dodijelite nakon BeginDoc, to neće imati utjecaja na dokument koji je već u izradi, i to bez ikakve poruke o pogrešci.
Pozovite SetFont, zatim TextOut i pazite na ishodište
Dvije stvari kod poziva za crtanje zbunjuju svakoga na njihovoj prvoj stranici. Prva je redoslijed: SetFont se mora pokrenuti prije bilo kojeg poziva TextOut koji ovisi o njemu, te se mora ponoviti nakon svakog poziva AddPage, jer trenutni font ne preživljava prijelom stranice. Druga je koordinatni sustav. TextOut mjeri udaljenost od donjeg lijevog kuta stranice, a ne od gornjeg lijevog, pri čemu se Y povećava prema gore, u točkama (1/72 inča). Zato se linije ovdje pomiču prema dolje od 760, svaka 30 točaka ispod prethodne. Svatko tko dolazi iz svijeta grafike na zaslonu pretpostavlja suprotno i piše prvu liniju izvan donjeg ruba.
Jedan font, mnogo pisama
Razlog zašto jedan poziv SetFont može podržati latinicu, ćirilicu, japansko i kinesko pismo na istoj stranici leži u samom fontu: Arial Unicode MS objedinjuje glifove za gotovo svako pismo u jednoj datoteci. Četvrti argument za SetFont je Windows skup znakova, a prosljeđivanje vrijednosti DEFAULT_CHARSET omogućuje sustavu odabir glifova po nizu znakova umjesto vezanja svega uz jednu zastarjelu kodnu stranicu. Dvije napomene prate ovu pogodnost. Font mora biti prisutan na računalu koje gradi PDF, jer HotPDF ugrađuje ono što operacijski sustav razriješi pod tim nazivom; ako Arial Unicode MS nedostaje, Windows će tiho postaviti zamjenski font pa bi se vaš CJK tekst mogao prikazati kao prazni kvadratići. Također, to ne pokriva svako pismo podjednako: za pisanje zdesna nalijevo poput arapskog i hebrejskog, ili bilo što što zahtijeva složeno oblikovanje, trebat ćete namjenski font učitan pomoću RegisterUnicodeTTF i pozive za tekst zdesna nalijevo, što je tema za sebe.
Pokrenite ga i dobit ćete HelloWorld.pdf u radnom direktoriju: jedna stranica, nekoliko redaka višejezičnog teksta, sažeto, s ugrađenim fontom. Očigledni sljedeći koraci su dodavanje veličine, stila i rotacije tom tekstu, te namjerno postavljanje više blokova teksta, što je detaljno opisano u TextOut primjeru. Kada želite crtati crte, okvire i slike umjesto samog teksta, isti objekt stranice sadrži i te pozive.
Pozivi TextOut, SetFont i dokumenti prikazani ovdje dio su HotPDF komponente za Delphi i C++Builder.