Sdílet prostřednictvím


Použití náhradního písma

Poznámka

V tomto tématu všechny poznámky o ScriptShape platí stejně pro ScriptShapeOpenType.

 

Vaše aplikace musí při zobrazení textu použít záložní písmo, pokud některé znaky v řetězci nejsou podporovány ve fontu, nebo pokud aplikace používá složitý skript , který písmo nepodporuje. Požadavek na náhradní písmo se zjistí během procesu rozložení textu, když aplikace volá funkci ScriptShape. Informace o zobrazení textu viz Zobrazení textu s Uniscribe.

Určení potřeby náhradního písma pro nepodporované znaky

Pokud některé znaky v řetězci nejsou v požadovaném písmu podporované, volání aplikace na funkci ScriptShape proběhne úspěšně. Aplikace však musí prohledat výstupní vyrovnávací paměť glyfů pro přítomnost chybějících glyfů. Index glyf chybějícího glyfu lze určit pro konkrétní písmo voláním ScriptGetFontProperties. Pokud určitý glyf není dostupný, aplikace se musí vrátit k jinému písmu pro glyf nebo vykreslit grafický symbol, který označuje, že není k dispozici žádný glyf.

Určení potřeby záložního písma pro nepodporované složité skripty

Písmo, které aplikace preferuje pro zobrazení, nemusí podporovat složitý skript, který text vyžaduje. V tomto případě selže volání aplikace ScriptShape s chybovým kódem E_SCRIPT_NOT_IN_FONT.

Přiřazení náhradního písma

Jakmile zjistí, že se vyžaduje záložní písmo, musí aplikace přiřadit záložní písmo. Aplikace může vyzkoušet následující techniky:

  • Volání ScriptShape pro každé písmo v seznamu písem, dokud jeden z hovorů nevrátí přijatelný výsledek.
  • Volání ScriptShape s každým fontem v seznamu, dokud nebude možné určit, že žádný font nebude úspěšný. Pokud je kód chyby vždy E_SCRIPT_NOT_IN_FONT, písma nepodporují složitý skript. Buď vykreslujte grafický symbol, který označuje, že není k dispozici žádný glyf, nebo znovu zadejte skript jako nedefinovaný (bez zpracování skriptu) a spusťte to znovu. Chcete-li nastavit skript jako nedefinovaný, nastavte eScript člen struktury SCRIPT_ANALYSIS na SCRIPT_UNDEFINED.
  • Volat ScriptShape s každým písmem v seznamu, dokud se nezjistí, že žádné písmo neuspěje. Pokud kód chyby označuje, že některé znaky jsou namapované na chybějící glyfy, rozdělte řetězec do menších oblastí. Různá písma je možné přiřadit k dílčím uspořádáním, aby bylo možné vykreslit více znaků.

Generování informací o Glyphu

Jakmile aplikace přiřadí písmo, které bude úspěšné při volání ScriptShape, může volat ScriptPlace, aby vygenerovala informace o šířce postupu glyfů a dvourozměrném posunu z výstupu ScriptShape. Písmo by mělo být v těchto požadavcích úspěšné. Chyba písma při volání ScriptPlace po úspěchu při volání ScriptShape znamená, že písmo je poškozené.

Použití Uniscribe