OpenType CFF annotation and field appearances

Native tvůrci appearance přijímají OpenType OTTO písma s obrysy CFF 1 vedle svého stávajícího TrueType vstupu

Plain, rich, shaped i family text appearances embedují kompletní původní OpenType soubor přes FontFile3 se Subtype OpenType a potomkem CIDFontType0

CFF klíčované názvem používá glyph indexy jako CID, zatímco CID-keyed CFF zachovává své skutečné mapování Registry, Ordering, Supplement a charset z glyph indexů na CID

Generovaná Encoding CMap mapuje znakové kódy textu na skutečné CID; šířky používají tyto CID, ToUnicode zachovává logický text a CIDFontType0 nedostává žádné CIDToGIDMap

Pozice a rozsahy glyfů používají metriky HarfBuzz OpenType, včetně bounds rich fragmentů a combining marks; rich fragmenty sdílejí neměnné per-style font readery a jeden embedded font resource

Metriky CFF vyžadují HarfBuzz knihovnu odpovídající architektury, i když je ShapeComplexText False; HOTPDF_HARFBUZZ_LIBRARY volí explicitní cestu a komplexní shaping navíc používá stávající závislost FriBidi

Viditelná FreeText annotace bez normal appearance může použít validní resource default appearance obsahující kompletní OpenType CFF písmo; platí stávající priorita resources, clipping, barvy a politika read-only embedování

Generování editovatelných polí nadále vyžaduje oprávnění installable nebo editable; read-only fallback dovoluje oprávnění preview-and-print, zatímco omezené nebo jen bitmapové obrysy zůstávají odmítnuté a no-subsetting zachovává každý původní font byte

Budgety font bajtů, glyfů, velikosti objektů, agregátních rich font, cancellation i nativního renderu zůstávají vynucené; poškozené CFF INDEX offsety, slovníky, rozsahy charset, duplicitní CID a chybějící kolekční řetězce se odmítnou před publikací

Mapování formátu následuje ISO 32000-1:2008 9.7.4.2 a 9.9, včetně explicitního mapování charsetu CID-keyed OpenType

Nativní rendering, MuPDF i Ghostscript projdou sparse-CID OpenType fixturami; testované backendy Poppler mají samostatnou nekompatibilitu mapování sparse-CID OpenType, zatímco Poppler identity-CID OpenType a sparse raw CIDFontType0C kontroly se renderují správně

Nezávislé čtečky můžou syntetizovat chybějící appearance annotace jinak; explicitně generované appearance se kontrolují odděleně od fallback chování každé čtečky

CFF2, holé defaultní písma Type1 i rekonstrukce raw Type1C nebo CIDFontType0C default-appearance písem zůstávají samostatnou prací; tato podpora dodané písmo nekonvertuje ani neokrádá, aby obešla rozdíly čteček

Viz HPDFBuildHeadlessTextAppearance a TryGetCompactFontTable