PDFium Delphi Component Docs

AddCidType2Text metoda

Komponenta: TPdf  ·  Jednotka: PDFium

Syntaxe

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;

Popis

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ů

Vkládání a subsetování

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

Unicode a ověření

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

Volby a report

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

Atomicita a výkon

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

Viz také

BuildToUnicodeCMap, AddShapedText, AddText, GetStructuredText