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