배경
HWPX -> IR -> HWP 5.0 저장 POC 중 samples/hwpx/form-002.hwpx 변환 산출물이 한컴 에디터에서 계속 파일 손상으로 판정된다.
재현 파일
- 입력:
samples/hwpx/form-002.hwpx
- Stage 39 산출물:
output/poc/hwpx2hwp/stage39/all/form-002.hwp
- Stage 40 산출물:
output/poc/hwpx2hwp/stage40/form-002.hwp
관측 결과
- Stage 39 전수 변환 산출물 중
form-002.hwp가 한컴 에디터에서 파일 손상으로 판정됐다.
- 원본 HWPX에는 셀 내부 빈 문단에
Control::Form이 존재했다.
- Stage 39 저장본은 rhwp 재로드 시 같은 위치의 Form 컨트롤이 사라졌다.
- Stage 40에서
Control::Form 직렬화를 추가해 CTRL_HEADER(form) 및 HWPTAG_FORM_OBJECT 레코드를 기록했다.
- Stage 40 저장본은 rhwp 재로드 기준으로 Form 컨트롤 수와 페이지 수가 보존된다.
- 그러나 Stage 40 산출물도 한컴 에디터에서 파일 손상으로 판정된다.
Stage 40 내부 검증
cargo test --test hwpx_to_hwp_adapter stage40_hwpx_form_controls_are_serialized_for_hwp_save
1 passed
cargo test --test hwpx_to_hwp_adapter
44 passed
page_count_before=10
page_count_after_rhwp_reload=10
rhwp_recovered=true
현재 판정
Form 컨트롤 문자와 컨트롤 레코드 불일치는 실제 불일치였지만, 한컴 손상 판정의 단독 원인은 아니다.
Stage 40의 최소 Form 직렬화는 rhwp 재로드 기준 구조 보존을 회복했으나, 한컴 호환에는 다음 후보를 추가로 조사해야 한다.
- Form 컨트롤의
CTRL_DATA 세부 바이너리 정합성
HWPTAG_FORM_OBJECT 속성 문자열 및 record layout 정합성
form-002의 대형 표/셀 구조와 Form 컨트롤이 결합될 때의 한컴 저장 관례
관련 문서
mydocs/working/task_m100_841_stage40.md
mydocs/troubleshootings/task_m100_841_hwpx_to_hwp_poc_findings.md
완료 조건 제안
samples/hwpx/form-002.hwpx를 HWP 5.0으로 저장한 산출물이 한컴 에디터에서 손상 없이 열린다.
- rhwp 재로드 기준 Form 컨트롤 수가 보존된다.
- 기존 HWP 5.0 -> IR -> HWP 5.0 roundtrip 경로가 회귀하지 않는다.
배경
HWPX -> IR -> HWP 5.0 저장 POC 중
samples/hwpx/form-002.hwpx변환 산출물이 한컴 에디터에서 계속 파일 손상으로 판정된다.재현 파일
samples/hwpx/form-002.hwpxoutput/poc/hwpx2hwp/stage39/all/form-002.hwpoutput/poc/hwpx2hwp/stage40/form-002.hwp관측 결과
form-002.hwp가 한컴 에디터에서 파일 손상으로 판정됐다.Control::Form이 존재했다.Control::Form직렬화를 추가해CTRL_HEADER(form)및HWPTAG_FORM_OBJECT레코드를 기록했다.Stage 40 내부 검증
현재 판정
Form 컨트롤 문자와 컨트롤 레코드 불일치는 실제 불일치였지만, 한컴 손상 판정의 단독 원인은 아니다.
Stage 40의 최소 Form 직렬화는 rhwp 재로드 기준 구조 보존을 회복했으나, 한컴 호환에는 다음 후보를 추가로 조사해야 한다.
CTRL_DATA세부 바이너리 정합성HWPTAG_FORM_OBJECT속성 문자열 및 record layout 정합성form-002의 대형 표/셀 구조와 Form 컨트롤이 결합될 때의 한컴 저장 관례관련 문서
mydocs/working/task_m100_841_stage40.mdmydocs/troubleshootings/task_m100_841_hwpx_to_hwp_poc_findings.md완료 조건 제안
samples/hwpx/form-002.hwpx를 HWP 5.0으로 저장한 산출물이 한컴 에디터에서 손상 없이 열린다.