function AddCidType2Text(const FontData: TBytes; const Glyphs: TPdfCidGlyphs; FontSize: Single; X, Y: Double; const Options: TPdfCidFontOptions; out Report: TPdfCidFontReport; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean;
Nahraje volajícím dodaná data TrueType nebo TrueType Collection přes nativní loader fontů CID Type 2 v PDFium a připojí jeden nebo více polohovaných textových objektů k aktivní stránce
Každý TPdfCidGlyph dodává identifikátor zdrojového glyfu, Unicode text, posuv a volitelný vodorovný nebo svislý ofset
Sekvenční CID izolují opakované instance glyfů, takže stejný identifikátor glyfu může nést různá mapování Unicode clusterů
pcfemFull vloží kompletní zvolený font, pcfemSubsetPreferred zkusí subset podle seznamu glyfů a v případě potřeby sáhne po kompletním fontu a pcfemSubsetRequired operaci odmítne, když se bezpečný subset nepodaří vytvořit
Subsetování vždy ponechá glyf nula, odmítne výstup, který by font zvětšil, a ověří, že každý požadovaný původní GID stále existuje, než data dorazí do PDFium
TTCIndex vybírá člena TrueType Collection a u samostatného fontu musí zůstat nula
Vygenerovaná CMap ToUnicode mapuje každý sekvenční CID na dodaný UnicodeText, včetně mapování ligatur a doplňkových rovin přes více kódových jednotek
Prázdné mapování se změní na U+200B, takže každý CID zůstává extrahovatelný a pozorovatelný
Když je zapnuté VerifyExtraction, metoda znovu otevře textový model stránky, čte jen vložené objekty, porovná výsledek s ExpectedText a při neshodě vrátí zpět všechny vložené objekty
TPdfCidFontOptions.Default volí pcfemSubsetPreferred jako EmbeddingMode, ověřuje extrakci, omezuje data fontu na 64 MiB, instance glyfů na 65,534 a MaxUnicodeCharacters na 1,048,576 mapovaných Unicode kódových jednotek
TPdfCidFontReport zaznamenává celkový počet glyfů a UniqueGlyphCount, OriginalFontBytes a EmbeddedFontBytes, SubsetAttempted, SubsetApplied, UsedFullFontFallback, SubsetErrorCode, FontEmbedded, očekávaný a extrahovaný text a ExtractionMatches
Pozice glyfů se generují v lineárním čase a glyfy sdílející jednu základní linii se vysílají jako jeden nativní textový objekt
Různé svislé ofsety používají izolované textové objekty a přitom zachovávají logické pořadí objektů
Validace i subsetování skončí před vkládáním a každé pozdější nativní selhání odstraní všechny objekty přidané voláním, než se obsah stránky znovu vygeneruje