Skip to content

Latest commit

 

History

History
37 lines (21 loc) · 3.19 KB

File metadata and controls

37 lines (21 loc) · 3.19 KB

Technical Decisions

1. 공통 모델은 format-neutral 단위만 사용한다

공통 document/layout model은 millimetre와 point 같은 물리 개념을 표현합니다. twip, DXA, half-point처럼 특정 파일 format에만 의미가 있는 단위는 public/domain representation에 노출하지 않습니다.

2. 상대 스타일은 렌더링 전에 한 번만 해석한다

사용자 입력 경계에서는 1.45 같은 상대 line-height를 허용할 수 있습니다. 그러나 Browser와 Word가 이를 독립적으로 해석하지 않도록 공통 resolver가 절대 point 값으로 확정합니다. 모든 adapter는 같은 resolved physical state를 소비합니다.

3. DOCX adapter가 OOXML 단위를 소유한다

mm → twip, pt → half-point/twip 변환과 반올림은 DOCX adapter의 책임입니다. A4 section geometry, margin, paragraph spacing, fixed table grid, numbering indent도 이 경계에서 OOXML 값으로 바뀝니다. 다른 renderer는 이 변환 규칙에 의존하지 않습니다.

4. Microsoft Word를 native verification renderer로 사용한다

OOXML package 생성과 Microsoft Word 렌더링은 별개의 사실입니다. Windows에서 Word COM ExportAsFixedFormat이 DOCX를 열고 PDF를 생성했으며 renderer metadata와 clean process termination이 확인돼야 Microsoft Word rendered 상태가 성립합니다. 다른 renderer의 성공을 Word 검증으로 표현하지 않습니다.

5. PDF는 source truth가 아니라 파생 증거다

Web HTML과 DOCX는 하나의 resolved model에서 생성됩니다. Edge PDF와 Word PDF는 각 renderer 결과를 측정하고 공유하기 위한 derivative artifact입니다. PDF를 다시 DOCX로 조립하거나 PDF를 canonical model로 취급하지 않습니다.

6. Anchor 비교의 증명 범위를 제한한다

비교기는 fixture configuration에 선언된 text anchor의 PDF 좌표와 page geometry를 측정합니다. 이는 선택한 fixture의 regression signal을 제공합니다. Pixel-perfect equality, 임의 문서 fidelity, 모든 줄의 동일성은 증명하지 않습니다. 출력 페이지 수가 같다는 사실도 explicit page break 보존의 충분한 증거가 아니므로 OOXML 구조를 별도로 검사합니다.

7. Automatic page flow는 renderer별 결과로 측정한다

명시적 page break가 없는 문서의 pagination은 현재 Edge와 Microsoft Word가 각각 수행합니다. 공통 resolved physical state가 같다는 이유로 page boundary까지 같다고 가정하지 않습니다. Page count, required content, renderer identity와 version을 fixture별 evidence로 기록하되, shared pagination engine이 없는 상태를 정확히 공개합니다.

8. 큰 DOCX 인라인 이미지 문단은 본문 exact 줄 간격을 상속하지 않는다

본문 문단의 deterministic physical line-height는 exact 규칙을 유지합니다. 그러나 inline drawing이 있는 문단은 기본 exact 규칙을 상속하면 Word에서 실제 그림이 line box로 clip될 수 있으므로 automatic line spacing을 명시합니다. OOXML image object와 extent 존재는 visible rendering 증거가 아니며, 진단 픽셀 측정과 native Word renderer provenance를 함께 요구합니다.