HPDFDecodeHeadlessRichText
function HPDFDecodeHeadlessRichText(const XHTML: UnicodeString;
const Options: THPDFHeadlessRichTextDecodeOptions): THPDFHeadlessRichTextRuns;
XHTML body를 순서 있고 독립 소유인 네이티브 리치 텍스트 run으로 디코딩합니다. PDF를 로드하거나 문서를 바꾸지 않습니다
중첩 span 앞·안·뒤의 혼합 텍스트는 정확한 Unicode 순서를 유지합니다. 주석은 건너뛰고 CDATA와 문자 참조는 텍스트가 되며, 문단은 나눔을 유지하고 br은 캐리지 리턴이 됩니다
지원 스타일 프로필은 font-size, color, font-weight, font-style, font-family, text-decoration, text-align, line-height, letter/word spacing을 기존 네이티브 run 속성으로 매핑합니다. 속성마다 가장 높은 importance의 마지막 유효 선언이 독립적으로 이깁니다
상대 em과 백분율 크기는 감싸는 요소의 계산된 폰트 크기를 쓰므로, 한 요소 안에서 반복 선언이 누적되지 않습니다. 명시적 inherit은 semantic b, i, u 태그 기본값 뒤에서도 감싸는 속성을 복원합니다
뒤에 붙은 !important는 일반 선언보다 우선합니다. 공백과 CSS 주석이 토큰을 나눌 수 있고, 나중 유효 important 선언이 앞선 important 선언을 덮습니다
CSS 주석과 따옴표·괄호로 감싼 값은 선언 경계를 유지합니다. 잘못된 값과 지원하지 않는 속성은 앞선 유효 선언을 지우거나 텍스트를 버리지 않습니다
폰트 크기는 포인트, 96 dpi 픽셀, em, 백분율, 인치, 센티미터, 밀리미터, 파이카를 받고, 색은 16진수 RGB, 수치·백분율 rgb 구성요소, 16개 표준 CSS 색 이름을 받습니다
bold와 italic은 이 run이 이후 그려질 때 호출자가 공급한 스타일 폰트 프로그램을 고릅니다. 구성된 font-family 선언은 외부 폰트를 로드하지 않고 실제 공급된 이름 있는 패밀리를 고릅니다
모르거나 잘못된 CSS 선언은 텍스트와 남은 유효 스타일을 유지합니다. import 레이어와 supports 조건, 추가 상태 유사 클래스, 명시적 스코핑 루트, 목록, 테이블, 이미지, 수직 정렬, 일반 CSS 레이아웃은 활성 작업입니다
유계 폰트 shorthand는 리셋과 명시적 상속을 포함해 독립적으로 캐스케이드되는 폰트 크기, 굵기, 이탤릭, 공급 패밀리 구성요소를 적용합니다
내부 스타일시트는 실제 텍스트 소비 전에 type/class/ID와 속성 selector, 네 가지 combinator 전부, 구조 및 위치 유사 클래스, 복잡한 not/is/where 목록, 앵커된 has 관계, 필터된 nth-child 목록, Unicode 식별자 이스케이프를 캐스케이드합니다
정적 selector 프로파일은 리치 텍스트 루트의 :scope와 매칭되고, 대응하는 상호작용 상태 없이 hover, active, focus 유사 클래스를 받습니다. 부정, 논리 목록, 상대 selector와 support 질의는 같은 의미론을 씁니다
미디어 질의는 명시적 print/screen 호스트 능력, 유계 범위 식, 중첩 불리언 조건으로 내부 스타일을 조건화합니다
XHTML 네임스페이스가 필요합니다. 선택적 XML 1.0 선언, 한정된 네임스페이스 접두부, 미리 정의된 엔티티, scalar 문자 참조를 지원합니다
잘못된 XML·Unicode와 소진된 경계는 EHPDFHeadlessRichTextCodecError를 발생시킵니다. 취소는 EHPDFOperationCancelled를 유지합니다
외부 스타일시트는 명시적 호출자 리소스를 쓰고 같은 네이티브 캐스케이드에 참여합니다
유한 CSS 숫자 수학은 calc, min, max, clamp, 루트 상대 및 명시적 viewport 길이를 더하며, 줄과 간격 메트릭의 최종 폰트 계산과 실제 저장된 appearance를 갖춥니다
네이티브 support 질의는 지원되는 선언과 selector 프로파일로 @supports 그룹과 supports() 가져오기를 인정하며, 공유 경계와 취소 복구를 씁니다