Jokaisessa PDF-kirjastossa on "hello world" -esimerkki, mutta HotPDFin pienin toimiva ohjelma tekee jo kaksi valintaa, jotka toistuvat kaikissa myöhemmissä asiakirjoissa: käytettävä fontti ja tekstin sijainti sivulla. Kun nämä ovat oikein, muu API laajentaa samaa mallia. Alla oleva täydellinen konsoliohjelma luo yhden sivun ja tervehtii lukijaa lähes tusinalla kielellä:
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.

Siinä on koko esimerkki. THotPDF.Create(nil) yhdistettynä rakenteeseen try/finally ... Free on tavallinen Delphin omistajamalli, eikä PDF muuta sitä. Huomiota ansaitsee sen sisällä oleva nelivaiheinen runko: aseta ominaisuudet, BeginDoc, piirrä, EndDoc. Järjestystä ei voi vaihtaa keskenään
Asiakirjan ominaisuuksien asettaminen ennen BeginDoc-kutsua
BeginDoc on hetki, jolloin HotPDF sitoo asiakirjan rakenteen, joten kaikki, mikä vaikuttaa koko tiedostoon, on asetettava sitä ennen. Compression := cmFlateDecode ottaa käyttöön FlateDecode-pakkauksen sisältövirroille, mikä on ero kompaktin ja tarpeettoman paisuneen tiedoston välillä. FontEmbedding := True pakkaa piirtämiseen käyttämäsi fontin tiedostoon, joten se näyttää samalta koneella, johon ei ole koskaan asennettu Arial Unicode MS:ää, kuin omallasi. Määritä jompikumpi BeginDoc-kutsun jälkeen, niin se ei hiljaisesti tee mitään jo käynnissä olevalle asiakirjalle, eikä virhe varoita sinua
SetFont, sitten TextOut, ja tarkkaile origoa
Kaksi asiaa piirtokutsuissa yllättää kaikki heidän ensimmäisellä sivullaan. Ensimmäinen on järjestys: SetFont on suoritettava ennen mitään TextOut-kutsua, joka riippuu siitä, ja se on toistettava jokaisen AddPage-kutsun jälkeen, koska nykyinen fontti ei säily sivunvaihdon yli. Toinen on koordinaatisto. TextOut mittaa sivun vasemmasta alakulmasta, ei vasemmasta yläkulmasta, jolloin Y kasvaa ylöspäin siirryttäessä, pisteinä (1/72 tuumaa). Siksi tässä olevat rivit etenevät alaspäin 760:stä, kukin 30 pistettä edellisen alapuolella. Kuka tahansa ruutugrafiikasta saapuva olettaa päinvastaista ja kirjoittaa ensimmäisen rivin suoraan ulos alareunasta
Yksi fontti, monta kirjoitusjärjestelmää
Syy siihen, miksi yksittäinen SetFont voi kantaa latinalaista, kyrillistä, japanilaista ja kiinalaista tekstiä samalla sivulla, on itse kirjasin (face): Arial Unicode MS niputtaa lähes jokaisen kirjoitusjärjestelmän glyyfit yhteen tiedostoon. Neljäs argumentti menetelmälle SetFont on Windowsin merkistö (character set), ja arvon DEFAULT_CHARSET välittäminen antaa järjestelmän valita glyyfit merkkijonoa kohden sen sijaan, että kaikki kiinnitettäisiin yhteen vanhaan koodisivuun (code page). Tämän mukavuuden mukana tulee kaksi varoitusta. Fontin on oltava koneella, joka rakentaa PDF:n, koska HotPDF upottaa sen, mihin käyttöjärjestelmä ratkaisee nimen; jos Arial Unicode MS puuttuu, Windows vaihtaa hiljaisesti tilalle korvaavan fontin ja CJK-tekstisi (kiina, japani, korea) voi tulla ulos tyhjinä laatikkoina. Eikä se kata jokaista kirjoitusjärjestelmää yhtä lailla: oikealta vasemmalle kirjoitettavaan tekstiin, kuten arabiaan ja hepreaan, tai mihin tahansa, joka tarvitsee monimutkaista muotoilua (complex shaping), otat käyttöön erillisen fontin, joka on ladattu kutsulla RegisterUnicodeTTF, sekä oikealta vasemmalle -tekstikutsut, mikä on aivan oma aiheensa
Suorita se ja saat tiedoston HelloWorld.pdf työhakemistoon: yksi sivu, muutama rivi monikielistä tekstiä, pakattuna ja fontti upotettuna. Ilmeiset seuraavat vaiheet ovat antaa tekstille koko, tyyli ja kääntö sekä sijoittaa useampi kuin yksi sen lohko harkitusti, jotka molemmat käsitellään TextOut-esimerkissä. Kun haluat piirtää viivoja (rules), laatikoita ja kuvia pelkän tekstin sijaan, samassa sivuobjektissa on myös ne kutsut
Tässä näytetyt TextOut-, SetFont- ja asiakirjakutsut ovat osa HotPDF-komponenttia Delphille ja C++Builderille