증상
samples/table-vpos-01.hwpx (5쪽) 의 5쪽 마지막 큰 표(pi=34, "정부혁신 4대 추진전략 / 12대 추진과제" 박스) 가 SVG 출력에서 거의 전부 누락됨.
- PDF 권위(
pdf/table-vpos-01-2022.pdf) 5쪽: 큰 박스 안에 헤더 + 4대 그룹(참여소통/기본사회/공직혁신/공공 AX) × 3 항목 = 12 추진과제가 그리드로 표시
- 우리 SVG 5쪽 (
/tmp/tvpos01/table-vpos-01_005.svg, 20KB — 다른 페이지 200~450KB) : 참고 박스 + 빨간 타이틀 + 파란 부제까지만 표시, 그 아래 큰 표는 외곽선·셀·텍스트 모두 누락
근본 원인 분석
rhwp dump samples/table-vpos-01.hwpx -s 0 -p 34 권위값:
- pi=34 외부 표: 1행×1열, treat_as_char=true, wrap=TopAndBottom, size 638.8 × 778.8px (47913×58410 HU)
- pi=34 ls[0]: vpos=249088, lh=58692 HU ≈ 779px
- 외부 셀[0] h=50720 HU ≈ 676px, paras=2
- p[0] 내부 표 1x1 — 헤더 "정부혁신 4대 추진전략, 12대 추진과제"
- p[1] 내부 표 11x3 — 셀 23개 (1/2/3/4 그룹 헤더 + 12개 항목)
rhwp export-svg --debug-overlay 실측값 (/tmp/tvpos01_dbg/table-vpos-01_005.svg 라인 111):
<rect x=\"77.43\" y=\"229.85\" width=\"623.75\" height=\"57.72\" .../>
label: s0:pi=34 ci=0 1x1 y=229.9
| 항목 |
권위값 |
layout 계산 |
차이 |
| pi=34 표 height |
778.8px |
57.72px |
~14배 부족 |
| pi=34 표 width |
638.8px |
623.75px |
-15.1px |
→ 외부 1x1 표의 height 가 nested 11x3 그리드 분량을 누적하지 못해 작게 잡힘. 결과적으로 외곽선이 거의 안 보이고 셀 내부 nested 표 콘텐츠가 그려지지 않음.
의심 코드 영역
src/renderer/layout/table_layout.rs::layout_table() (line 127–)
layout_table_cells() (line 1148–) 의 nested table 분기 (line 1431–1439, 1901–1943)
- 셀 paragraphs 순회 시
Control::Table (treat_as_char=false) 의 누적 height 가 부모 셀 height 에 반영되지 않을 가능성, 또는 ls[0].lh 권위값이 채택되지 않고 단순 line height 합산만 사용될 가능성
부수 관찰 (별도 이슈 후보)
- 5쪽 시작 직전 페이지 1 마지막 문단 4.1px 오버플로우 (
LAYOUT_OVERFLOW: page=0, col=0, para=7, overflow=4.1px) — 본 이슈와 별개로 페이지네이션 미세 차이
dump-pages 페이지 2 hwp_used vs used diff = -791.9px, 페이지 3 = -1658.3px — 같은 계열일 가능성, 본 이슈 수정 후 재측정 필요
검증 자료
- 입력:
samples/table-vpos-01.hwpx
- 권위 PDF:
pdf/table-vpos-01-2022.pdf (한글 2022)
- 분석 SVG:
/tmp/tvpos01_dbg/table-vpos-01_005.svg
완료 기준 (DoD)
- pi=34 외부 표 외곽선이 5쪽에 778.8px ± 허용오차로 그려진다
- nested 1x1 헤더 박스("정부혁신 4대 추진전략, 12대 추진과제") 텍스트 표시
- nested 11x3 그리드의 4대 그룹 헤더 + 12개 추진과제 텍스트 모두 표시
- PDF 권위본 5쪽과 시각적으로 정합
- 다른 샘플에 회귀 없음 (회귀 검증 범위는 수행계획서에서 정의)
증상
samples/table-vpos-01.hwpx(5쪽) 의 5쪽 마지막 큰 표(pi=34, "정부혁신 4대 추진전략 / 12대 추진과제" 박스) 가 SVG 출력에서 거의 전부 누락됨.pdf/table-vpos-01-2022.pdf) 5쪽: 큰 박스 안에 헤더 + 4대 그룹(참여소통/기본사회/공직혁신/공공 AX) × 3 항목 = 12 추진과제가 그리드로 표시/tmp/tvpos01/table-vpos-01_005.svg, 20KB — 다른 페이지 200~450KB) : 참고 박스 + 빨간 타이틀 + 파란 부제까지만 표시, 그 아래 큰 표는 외곽선·셀·텍스트 모두 누락근본 원인 분석
rhwp dump samples/table-vpos-01.hwpx -s 0 -p 34권위값:rhwp export-svg --debug-overlay실측값 (/tmp/tvpos01_dbg/table-vpos-01_005.svg라인 111):→ 외부 1x1 표의 height 가 nested 11x3 그리드 분량을 누적하지 못해 작게 잡힘. 결과적으로 외곽선이 거의 안 보이고 셀 내부 nested 표 콘텐츠가 그려지지 않음.
의심 코드 영역
src/renderer/layout/table_layout.rs::layout_table()(line 127–)layout_table_cells()(line 1148–) 의 nested table 분기 (line 1431–1439, 1901–1943)Control::Table(treat_as_char=false) 의 누적 height 가 부모 셀 height 에 반영되지 않을 가능성, 또는 ls[0].lh 권위값이 채택되지 않고 단순 line height 합산만 사용될 가능성부수 관찰 (별도 이슈 후보)
LAYOUT_OVERFLOW: page=0, col=0, para=7, overflow=4.1px) — 본 이슈와 별개로 페이지네이션 미세 차이dump-pages페이지 2 hwp_used vs used diff = -791.9px, 페이지 3 = -1658.3px — 같은 계열일 가능성, 본 이슈 수정 후 재측정 필요검증 자료
samples/table-vpos-01.hwpxpdf/table-vpos-01-2022.pdf(한글 2022)/tmp/tvpos01_dbg/table-vpos-01_005.svg완료 기준 (DoD)