HPDFShapeHeadlessTextSpan
function HPDFShapeHeadlessTextSpan(const Context: UnicodeString;
FirstUnit, UnitCount: Integer; const FontBytes: SysUtils.TBytes;
MaximumGlyphs: Integer; CancellationToken: THPDFCancellationToken;
CharacterAdvance: Double = 0; WordAdvance: Double = 0;
ParagraphDirection: THPDFHeadlessTextDirection = htdAuto): THPDFHeadlessShapedGlyphs;
호출자의 실제 OpenType 폰트로 선택된 UTF-16 스팬만 셰이핑하되, 완전한 주위 문단을 HarfBuzz 사전 컨텍스트와 사후 컨텍스트로 유지합니다
FirstUnit은 0 기반 UTF-16 오프셋이고 UnitCount는 UTF-16 길이입니다. 어느 경계도 서러게이트 쌍을 쪼개면 안 되고, 길이 0 스팬은 글리프를 반환하지 않습니다
FriBidi가 완전한 문단에서 임베딩 레벨을 해석합니다. HarfBuzz는 해석된 스크립트를 받아 각 시각 run 안의 선택 항목을 셰이핑하며, Arabic 연결형과 미러된 문장 부호를 보존합니다
반환된 SourceOffset 값은 선택된 스팬에 상대적이고, UnicodeText는 실제 선택된 각 클러스터를 보존하며, 글리프 전진과 오프셋은 1000유닛 폰트 좌표를 씁니다
CharacterAdvance는 Unicode 방향 제어만 담은 클러스터를 제외하고 셰이핑된 클러스터마다 한 번 적용됩니다. WordAdvance는 U+0020 클러스터에 적용되며, 둘 다 유한해야 하고 Advance와 같은 좌표를 써야 합니다
ParagraphDirection은 원본 문단과 첫 강한 문자가 다른 물리 래핑 줄을 셰이핑할 때 기존 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽 문단을 보존할 수 있습니다
기존 입력과 글리프 예산, 폰트 커버리지 검사, 취소 토큰, 네이티브 런타임 의존성 요구도 이 함수에 적용됩니다
부분 스팬은 연결 컨텍스트를 유지하지만, 다른 폰트의 기반 글리프에 대해 다르게 스타일된 결합 마크를 독립적으로 배치하지는 않습니다. 한 폰트가 전체 클러스터를 커버하면 전체 클러스터 셰이핑을 쓰세요
HPDFShapeHeadlessText, HPDFResolveHeadlessTextOrder, 컨텍스트 리치 텍스트 appearance를 참고하세요