Unicode 행바꿈
HPDFUnicodeLineBreaks는 체크인된 Line_Break, General_Category, East_Asian_Width, Extended_Pictographic 속성으로 Unicode 17.0.0 기본 행바꿈 기회를 구현합니다
이식 가능한 구현은 조합 시퀀스, 문맥 부호, 수치 표현, 한글, 브라흐미 계열 정서법 음절, emoji 모디파이어, 짝 지은 지역 인디케이터를 세그멘테이션 DLL 없이 풉니다
함수는 첫 scalar 앞과 모든 scalar 뒤의 위치를 0부터 시작하는 UTF-16 오프셋으로 반환하고, 각 위치는 금지·허용·필수로 분류됩니다
텍스트 끝은 빈 입력도 포함해 필수이고, 비어 있지 않은 텍스트 시작은 금지이며, 짝 지은 서러게이트 안에는 내부 위치가 없습니다
기본 동남아시아 처리는 일반 SA 문자를 AL로, SA 조합 기호를 CM으로 풉니다. 언어 사전과 하이픈네기는 별도 tailoring 서비스입니다
HPDFUnicodeLineBreakClass는 개별 코드 포인트의 raw 또는 LB1 해결 속성을 노출합니다. THPDFUnicodeLineBreakClass 이름은 Unicode 17 속성 약어를 모두 유지합니다
기존 HPDFComputeLineBreaks와 HPDFLineBreakClassOf 문서 API는 Delphi 2009 이상과 지원 FPC 타깃에서 같은 완전한 테이블을 소비하며, 기존 enum 서수와 빈 입력 동작을 유지합니다
잘못된 UTF-16과 1~1048576 밖의 코드 단위 예산은 EArgumentException을 발생시킵니다. 취소는 할당 전, 디코딩 중, 경계 평가 중에 검사됩니다
실제 리치 필드 레이아웃
래핑된 typed 리치 run은 합법적인 기본 기회를 소비하고, nonbreaking-space 그룹과 여는 부호를 함께 유지하며, CRLF, NEL, LINE SEPARATOR, PARAGRAPH SEPARATOR를 명시적 행바꿈으로 존중합니다
원본 구분자는 V와 canonical RV에 남습니다. 행 구분자는 그려진 글리프 조각에서 생략되고, 너무 넓은 그룹은 기존 온전한 그래펨 비상 래핑을 씁니다
같은 실제 행의 독립 조각은 측정된 어드밴스로 이어집니다. 합법적 행바꿈은 맞춤이 선택하지 않는 한 별도 물리 행을 요구하지 않습니다
온전한 문단 기회는 스타일 변경을 넘어 합법적 그룹을 유지하고 갈라진 CRLF를 합칩니다. 온전한 그룹이 새 행으로 옮겨가는 시점은 실제 스타일 어드밴스가 결정합니다
스타일을 넘나드는 그래펨 비상 맞춤과 문맥 셰이핑, 혼합 스타일 문단 bidi, 임의 XHTML, 언어별 tailoring은 진행 중인 통합 대상입니다
적합성
HotPDFUnicodeLineBreakTests는 공식 Unicode 17 LineBreakTest 사례 19338개를 모두 소비하고 발표된 모든 위치를 비교합니다. 필수 끝과 잘못된 입력, 예산, 취소 동작은 별도 검사로 다룹니다
Build-UnicodeLineBreakTables.py --check는 재현성과 세 개 추가 UCD 속성 입력의 SHA-256 핀을 검증합니다
Unicode 17 행바꿈 규칙 · 경계 함수 · 반환 위치 · 리치 필드 통합