글꼴 대체 사용
메모
이 항목에서는 ScriptShape에 대한 모든 설명이 ScriptShapeOpenType동일하게 적용될 있습니다.
문자열의 일부 문자가 글꼴에서 지원되지 않거나 애플리케이션에서 글꼴에서 지원되지 않는 복잡한 스크립트 사용하는 경우 애플리케이션은 텍스트 표시 중에 글꼴 대체를 사용해야 합니다. 글꼴 대체 요구 사항은 애플리케이션이 ScriptShape 함수를 호출할 때 텍스트 레이아웃 프로세스 중에 검색됩니다. 텍스트 표시에 대한 정보는 Uniscribe로 텍스트 표시을 참조하세요.
지원되지 않는 문자에 대한 글꼴 대체 필요 확인
문자열의 일부 문자가 요청된 글꼴에서 지원되지 않는 경우 ScriptShape 대한 애플리케이션 호출이 성공합니다. 그러나 애플리케이션은 문자 모양 출력 버퍼에서 누락된 문자 모양이 있는지 검사해야 합니다. ScriptGetFontProperties호출하여 누락된 문자 모양의 문자 모양 인덱스가 특정 글꼴에 대해 결정될 수 있습니다. 특정 문자 모양을 사용할 수 없는 경우 애플리케이션은 문자 모양에 대해 다른 글꼴로 대체하거나 문자 모양을 사용할 수 없음을 나타내는 그래픽 기호를 렌더링해야 합니다.
지원되지 않는 복잡한 스크립트에 대한 글꼴 대체의 필요성 확인
애플리케이션에서 표시를 선호하는 글꼴은 텍스트에 필요한 복잡한 스크립트를 지원하지 않을 수 있습니다. 이 경우, ScriptShape에 대한 애플리케이션 호출이 오류 코드 E_SCRIPT_NOT_IN_FONT로 실패합니다.
대체 글꼴 할당
글꼴 대체가 필요하다고 확인되면 애플리케이션에서 대체 글꼴을 할당해야 합니다. 애플리케이션은 다음 기술을 시도할 수 있습니다.
- 글꼴 목록에서 각 글꼴에 대해 ScriptShape을 호출하여, 허용되는 반환이 있을 때까지 계속 수행합니다.
- 목록의 각 글꼴로 스크립트 셰이프을 호출하여 어떤 글꼴도 성공할 수 없다는 결론이 날 때까지 시도합니다. 오류 코드가 항상 E_SCRIPT_NOT_IN_FONT 경우 복잡한 스크립트는 글꼴에서 지원되지 않습니다. 문자 모양을 사용할 수 없음을 나타내는 그래픽 기호를 렌더링하거나 스크립트를 정의되지 않은 것으로 다시 지정하고(스크립트 처리 없음) 다시 시작합니다. 스크립트를 정의되지 않은 것으로 설정하려면 SCRIPT_ANALYSIS 구조체의 eScript 멤버를 SCRIPT_UNDEFINED 설정합니다.
- 목록의 각 글꼴에 대해 스크립트 셰이프를 호출하여, 글꼴이 성공하지 않을 것으로 확인되기 전까지 반복합니다. 오류 코드에서 일부 문자가 누락된 문자 모양에 매핑되고 있음을 나타내는 경우 문자열을 더 작은 범위로 분할합니다. 더 많은 문자를 렌더링할 수 있도록 여러 글꼴을 하위 범위로 할당할 수 있습니다.
문자 모양 정보 생성
애플리케이션에서 ScriptShape호출에 성공하는 글꼴을 할당하면 ScriptPlace 호출하여 ScriptShape출력에서 문자 모양 선폭 및 2차원 오프셋 정보를 생성할 수 있습니다. 글꼴은 이러한 호출에서 성공해야 합니다. ScriptShape 호출에서 성공한 후 ScriptPlace 호출에서 글꼴 오류가 발생하면 글꼴이 손상되었음을 나타냅니다.
관련 항목