Skip to content

Picture flip/rotation 누락 회귀 — Task #519 정정이 devel 에 미머지 #618

@planet6897

Description

@planet6897

증상

samples/exam_eng.hwp 4페이지 28번 박스의 종이-말림(curl) 데코레이션 그림이 PDF 에서는 박스 왼쪽 상단에 보이지만, rhwp 의 SVG 출력에서는 잘못된 위치(원본 그대로 우하단)로 렌더되어 본문과 겹쳐 보이지 않음.

해당 그림 속성:

[s0 p189 c1] bin_id=2 flip=(h=true,v=true) rot=0
M=[-0.976,0.000,30614; 0.000,-0.881,30190]

본 증상은 이슈 #519 와 동일하며, 해당 이슈에서 이미 수정·검증·CLOSED 처리됨.

회귀 메커니즘

Task #519 의 코드 정정 (5 커밋 — 7ead89d Stage 2 + b5ccd27 Stage 3 + 2 머지 + 묶음 머지 a7e43f9) 은 local/devel 브랜치에 정상 머지되었으나, devel (= stream/devel) 으로의 승격이 한 번도 일어나지 않음.

$ git merge-base --is-ancestor 7ead89d stream/devel
NOT in stream/devel

$ git branch -a --contains 7ead89d
local/devel, local/task524..574, remotes/origin/local/devel, ...
(stream/devel / main 부재)

git log --first-parent stream/devel 첫부모 경로상 e3285b2 mydocs: Task #516 메모리 이후 devel 은 PR 체리픽 위주로만 진행되었고, Task #519 는 PR 로 다시 올라온 이력이 없어 누락됨.

코드 회귀 위치 (6 ImageNode 생성 지점)

Task #519 가 추가한 transform: extract_shape_transform(&pic.shape_attr)6 지점 모두 누락:

파일 라인 현재
src/renderer/layout.rs 2850 누락 (..ImageNode::new() → 항등 변환 기본값)
src/renderer/layout/picture_footnote.rs 107 누락
src/renderer/layout/picture_footnote.rs 317 누락
src/renderer/layout/paragraph_layout.rs 1823 누락
src/renderer/layout/paragraph_layout.rs 2097 누락
src/renderer/layout/paragraph_layout.rs 2207 누락
src/renderer/layout/table_cell_content.rs 644 명시적 ShapeTransform::default() (flip 정보 폐기)

extract_shape_transform 헬퍼 자체는 src/renderer/layout/utils.rs:109 에 그대로 살아있음 (현재는 shape_layout.rs:530 1 곳에서만 사용 중).

정량 증거

$ ./target/debug/rhwp export-svg samples/exam_eng.hwp -p 3 -o /tmp/p4/
$ grep -c '<g transform=' /tmp/p4/exam_eng_004.svg
0

Task #519 적용 시 28번 그림 1개에 <g transform> 래퍼가 추가되어야 함.

영향 범위

  • 회전·뒤집기가 적용된 모든 Picture 컨트롤이 잘못 렌더됨
  • 회귀 테스트 케이스: samples/exam_eng.hwp 4페이지 28번

수정 방향

Task #519 의 코드 정정 (4 파일 6 사이트) 을 stream/devel 기준으로 재적용. extract_shape_transform 헬퍼는 이미 존재하므로 신규 단위 변환 코드 0줄.

회귀 방지

이번 회귀처럼 local/develdevel 승격이 누락되지 않도록, 동일 묶음 머지 a7e43f9 (Task #517/#518/#519/#520/#521/#523/#528) 의 다른 task 들도 누락 가능성 점검 필요 (별도 이슈로 분리할 수 있음).

참고

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