Skip to content

samples/21_언어 1쪽: 바탕쪽 글상자 중복 렌더 + 우측단 누락 #304

@planet6897

Description

@planet6897

증상

samples/21_언어_기출_편집가능본.hwprhwp export-svg로 출력한 SVG 1쪽이 PDF 원본과 크게 달라짐. 2쪽부터는 정상.

비교

항목 PDF (원본) SVG (현재)
1쪽 "언어이해" 제목 body 표 셀의 큰 제목만 (font≈53pt) 바탕쪽 글상자(33pt) + body(53pt) 2회 렌더
1쪽 "홀수형" 박스 body 표 우측 1회 바탕쪽 좌측 + body 우측 2회
1쪽 우측 단(column) 본문 정상 채워짐 비어 있음 (텍스트 누락)
2쪽+ 바탕쪽 헤더 `쪽# 언어이해

원인 분석 (초기)

이슈 A: 바탕쪽 1쪽 중복 렌더

  • 섹션 0에는 바탕쪽이 [0] Both, [1] Odd 2개 존재하며 각각 "언어이해" 제목, 페이지번호, "홀수형" 글상자를 가짐
  • 1쪽 body는 header 영역을 4×5 표로 구성(제목·수험번호 폼·제1교시·홀수형 박스 모두 포함)
  • 섹션 플래그 0xC0080004: hide_master_page 비트(0x0400) 없음 → 현재 코드는 바탕쪽을 1쪽에도 그림
  • 반면 PDF(한컴 원본)는 1쪽에서 바탕쪽 "언어이해/홀수형"을 숨기고 페이지번호만 표시
  • 바탕쪽 글상자 attr 비교:
    • Both: 0x146A2000, 0x146A2000, 0x146A2000, 0x146A2300, 0x142A2B00
    • Odd: 0x046A2000, 0x042A2000, 0x042A2000, 0x042A2300, 0x042A2300
    • 숨김 관련 비트 존재 가능성 → HWP 스펙 조사 필요

이슈 B: 1쪽 우측 단 누락

  • dump-pages -p 0 결과상 단0(items=12), 단1(items=2) — 페이지네이터는 우단에 배치 완료
  • 그러나 SVG 1쪽에는 우측 단 텍스트가 보이지 않음
  • 2쪽+는 단 배치가 정상이므로 1쪽 전용 문제로 보임 (상단 표의 wrap=TopAndBottom 영향 가능)

재현

cargo build --release
./target/release/rhwp export-svg samples/21_언어_기출_편집가능본.hwp -o output/svg/21_lang/
# output/svg/21_lang/21_언어_기출_편집가능본_001.svg 확인

작업 범위

  1. 바탕쪽 글상자 attr 비트 의미 조사 및 "첫쪽 숨김" 렌더 규칙 구현
  2. 1쪽 우측 단 누락 원인 추적 및 수정
  3. dump 명령에 글상자 attr/position 출력 보강 (디버깅)
  4. 회귀 방지 테스트 (exam_math 등 기존 샘플 영향 없음 확인)

관련

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions