Skip to content

Task #356 페이지 분기 오버플로 수정 (vpos 권위값/spacing 누적 오차)#360

Closed
planet6897 wants to merge 17 commits into
edwardkim:develfrom
planet6897:local/task356
Closed

Task #356 페이지 분기 오버플로 수정 (vpos 권위값/spacing 누적 오차)#360
planet6897 wants to merge 17 commits into
edwardkim:develfrom
planet6897:local/task356

Conversation

@planet6897

Copy link
Copy Markdown
Contributor

요약

samples/2022년 국립국어원 업무계획.hwp 페이지 3 에서 본문이 페이지 박스(933.5 px)를 초과하여 푸터 - 1 - 가 SVG 영역 밖으로 밀려나는 버그를 수정.

근본 원인은 두 가지 누적된 문제:

  1. 인접 문단 간 vpos 리셋 신호 미사용 — HWP 가 권위값(LINE_SEG.vertical_pos)으로 새 페이지에 보낸 문단(예: pi=40 vpos=500, prev pi=39 vpos=66281)의 신호를 px 누적 평가가 무시.
  2. TAC 표 측정 누적 drift — 페이지 3 의 TAC 표 4개 측정값이 HWP 권위값보다 누적 140 px 작아 pi=39 (vpos 70761 HU > body 70014 HU)가 잘못 fits 판정.

변경 사항

1. detect_inter_paragraph_vpos_reset 헬퍼 신설

src/renderer/pagination/engine.rs:

pub fn detect_inter_paragraph_vpos_reset(prev: &Paragraph, cur: &Paragraph) -> bool {
    // 둘 다 line_segs 보유 + 같은 column_start (다단 단 변경 구분) +
    // cur.first.vertical_pos < prev.first.vertical_pos (페이지/단 변경 신호)
}

단위 테스트 6개 추가.

2. 페이지네이션 엔진 통합

3. TypesetState 확장 + HWP 권위값 검증

src/renderer/typeset.rs:

  • 신규 필드:
    • page_vpos_base: Option<i32> — 페이지 첫 항목의 first_vpos
    • suppress_next_inter_para_advance: bool — force_advance 후 다음 문단 inter-para 검사 한 번 스킵
  • 메인 루프: current_items[0] 으로부터 page_vpos_base 유도 (표 처리 도중 reset 으로 사라져도 복구)
  • 메인 루프 가드: prev_was_partial (PartialParagraph 직후) / suppress_next_inter_para_advance 시 inter-para 검사 스킵
  • typeset_paragraph 에 두 가지 보정 추가:
    • (a) HWP 권위값 overflow → 강제 advance: last_seg.vpos+lh+ls > body 이고 px-fits 이며 fresh-fits 인 경우
    • (b) drift 보정: (first_vpos - base) 의 px 환산값이 누적 current_height 보다 크면 끌어올림

결과

본 샘플 (2022년 국립국어원 업무계획.hwp)

항목 Before After
페이지 수 35 37 (PDF 일치)
페이지 3 마지막 항목 pi=42 (overflow) → pi=39 (잔존) pi=38 (Table) ✅
페이지 4 시작 pi=40 → pi=40 (잔존 후) pi=39 ✅
LAYOUT_OVERFLOW 경고 5+ 0

다중 샘플 회귀

샘플 베이스라인 본 PR
2022년 국립국어원 업무계획.hwp 35p / 5+ 37p / 0
aift.hwp 74p / 30 overflow 83p / 4 (overflow 87% 감소)
exam_eng.hwp (다단) 8p / 0 8p / 0
exam_math.hwp 20p / 0 20p / 0
2010-01-06.hwp 6p / 0 7p / 0 (페이지 분배 미세 변화, overflow 0 유지)

테스트

테스트 결과
cargo test --release (lib 1014 + integration 14 + 25 + 6 + 1 + 1) PASS (전체 1061, 회귀 0)
신규 inter_para_vpos_reset_tests (6개) 6/6 PASS
골든 SVG (tests/golden_svg/) — form-002, issue-147/157/267, table-text, 결정성 6/6 PASS

변경 파일

  • src/renderer/pagination/engine.rs — 헬퍼 함수 + 단위 테스트 + 페이지네이션 통합
  • src/renderer/pagination.rspub use detect_inter_paragraph_vpos_reset 재내보내기
  • src/renderer/typeset.rs — TypesetState 확장 + HWP 권위값 검증 + drift 보정 + 가드

문서

  • mydocs/plans/task_m05x_356.md — 수행계획서
  • mydocs/plans/task_m05x_356_impl.md — 구현계획서
  • mydocs/working/task_m05x_356_stage1.md — 재현·정량 진단
  • mydocs/working/task_m05x_356_stage2.md — 헬퍼 + 단위 테스트
  • mydocs/working/task_m05x_356_stage3.md — 페이지네이션 통합
  • mydocs/working/task_m05x_356_stage4.md — 통합 검증
  • mydocs/working/task_m05x_356_stage6.md — HWP 권위값 overflow 검증 추가
  • mydocs/report/task_m05x_356_report.md — 최종 보고서

커밋

300c44c Task #356 단계 6: HWP 권위값 overflow 검증 + drift 보정 (페이지 3 잔존 2줄 제거)
0e808c8 Task #356 단계 5: 최종 보고서 및 오늘할일 갱신
a50b84e Task #356 단계 4: 통합 검증 및 회귀 측정
da229ff Task #356 단계 3: 인접 문단 vpos 리셋 페이지네이션 통합
94c66e9 Task #356 단계 2: 인접 문단 vpos 리셋 감지 헬퍼 + 단위 테스트
8cf216c Task #356 단계 1: 재현 및 정량 진단 — vpos 리셋 신호 확인

잔여 과제 (별도 이슈로 추적 권장)

  • aift.hwp 잔여 4건 overflow (베이스라인 30 → 4, 87% 감소). 모두 PartialTable/Table 표 분할 케이스로 본 PR 의 paragraph-level vpos 보정과 별개의 코드 경로(split_table_rows).
  • 2010-01-06.hwp 페이지 분배 미세 변화 (6p → 7p): overflow 0 유지, 시각적 회귀 없으나 페이지 경계 이동. 추적 검토.

검증 체크리스트

  • 이슈 명시 증상 (페이지 3 footer 가 body 박스 밖) 100% 해결
  • PDF 페이지 수 (37) 와 SVG 페이지 수 일치
  • LAYOUT_OVERFLOW 0건
  • 단위 테스트 6개 신규 추가
  • 전체 cargo test 통과 (1061개, 회귀 0)
  • 골든 SVG 회귀 0
  • 다단 샘플 (exam_eng) 회귀 없음
  • 작업지시자 추가 피드백 (페이지 3 잔존 2줄) 반영

planet6897 and others added 17 commits April 26, 2026 22:24
- 페이지 3 (pi=39 vpos_end=68681 → pi=40 vpos=500), 페이지 29 (pi=572 → pi=573 vpos=500) 두 지점에서 인접 문단 vpos 리셋 확인
- 현재 SVG 35페이지 vs PDF 37페이지, LAYOUT_OVERFLOW 5+건 발생
- 수행계획서/구현계획서/단계 1 보고서 작성
- detect_inter_paragraph_vpos_reset(prev, cur) 함수 추가
- 조건: 두 문단 모두 line_segs 보유, 같은 column_start, cur.vpos < prev.vpos_end
- 단위 테스트 6개 통과 (회귀 0)
- detect_inter_paragraph_vpos_reset 헬퍼 pub 으로 공개
- pagination::engine 메인 루프에 헬퍼 호출 추가 (process_page_break 직후)
- typeset.rs Task edwardkim#321 위치에 보조 트리거로 통합 (다단 회귀 방지)
- 헬퍼 정의 정제: prev.last.vpos_end → prev.first.vpos 비교
- 본 샘플 LAYOUT_OVERFLOW 5+건 → 0건
- exam_eng 다단 샘플 회귀 0
- aift.hwp overflow 30 → 16 (47% 감소, 12p 추가)
- cargo test --release 1014+14+25+6+1+1 PASS, 0 FAIL
- 본 샘플 SVG diff: 4개 파일만 변경 (page 3/4, 29/30) - vpos 리셋 지점과 정확 일치
- 골든 SVG 6/6 PASS, 픽셀 회귀 0
- 다중 샘플 비교: 본 샘플 100% 해결, exam_eng/math 회귀 없음
- aift 잔여 16건 overflow 분석: 12건 표분할 관련(별개 경로), 4건 page 35 별도 패턴
- 명시 증상 100% 해결, 회귀 0, 골든 SVG 0건 변경
- aift.hwp 부수 효과: +12 페이지 / overflow 47% 감소
- 잔여 과제: aift PartialTable 분할 (별도 이슈), PDF 페이지수 일치 (별도 추적)
- TypesetState 에 page_vpos_base, suppress_next_inter_para_advance 필드 추가
- typeset_paragraph 에 HWP authoritative overflow 검증 (last_seg.vpos+lh+ls > body) → 강제 advance
- vpos 권위값 기반 current_height drift 보정 (TAC 표 누적 drift 해소)
- prev_was_partial / suppress 플래그 가드로 분할 후 / force_advance 후 인접 문단 inter-para 검사 회귀 방지
- 본 샘플 페이지 수 35 → 37 (PDF 일치), pi=39 page 3 → page 4 이동
- aift overflow 16 → 4 (87% 감소)
- 골든 SVG / 다단 / 전체 회귀 0
- 본 fix 의 vpos 보정/force_advance 로 마지막 빈 문단(예: 본 샘플 pi=629 \\r 만 포함)이
  단독으로 새 페이지를 차지하는 현상 발생.
- typeset_section 종료 직전 cleanup: 마지막 페이지가 (단=1, 항목=1, FullParagraph,
  text 모두 공백/CR/LF, 컨트롤 없음) 이면 페이지 삭제.
- PartialParagraph 는 분할된 다행 문단 일부이므로 trim 대상 제외 (synthetic 테스트 보존).
- 본 샘플: 37 → 36 페이지 (마지막 빈 페이지 제거).
- cargo test 1014+14+25+6+1+1 PASS, 0 FAIL.
current_items 의 첫 항목에서 para_index 추출하는 .and_then(|item| match { ... Some(...) })
를 .map(|item| match { ... }) 로 단순화. 동작 동일.
…ape_item 이중 emit 제거

증상:
2025년 기부·답례품 실적 보고서_최종형태 확정.hwpx p7 의 pi=51 차트가
동일 좌표·동일 base64 데이터로 SVG 에 두 번 emit 되어 겹쳐 보임.

원인:
- paragraph_layout.rs:2008-2049 (빈 문단 + TAC offsets 분기) 가 인라인
  Picture 를 emit 하지만 set_inline_shape_position 미호출.
- layout.rs:2552-2596 의 Task edwardkim#347 분기가 같은 Picture 를 또 emit.
- 두 분기 모두 빈 문단·TAC Picture 케이스에서 동시에 발동.

수정 (A안):
- paragraph_layout 의 빈 문단 + TAC Picture 분기에서 emit 직후
  set_inline_shape_position 호출.
- layout_shape_item 의 Task edwardkim#347 분기에서 inline_shape_position 이
  이미 등록된 경우 ImageNode push 를 스킵하고 result_y 만 갱신.

검증:
- 기부 보고서 p7 차트 emit 1회 (pi=51 + pi=57 ci=1, 각 1회)
- cargo test --release: 1008+ passed, 0 failed
- form-002, k-water-rfp, exam_eng, exam_math, kps-ai 핵심 5종
  LAYOUT_OVERFLOW 신규 0건 (kps-ai 4건은 사전 존재)

closes edwardkim#376
증상:
"2025년 기부·답례품 실적 지자체 보고서_최종형태 확정.hwpx" p7 에 PDF
정답상 p8 의 원형 차트(pi=57 ci=1, bin_id=6) 가 (5)금액별 기부건수 표
바로 아래에 잘못 emit 되어 페이지 분리가 어긋남.

원인:
pi=57 은 빈 문단 안에 TAC Table(ctrl[0], ls[0]) + TAC Picture(ctrl[1],
ls[1]) 두 컨트롤. typeset.rs:994-1001 의 Shape/Picture/Equation 분기는
fit 체크 없이 무조건 PageItem::Shape 를 push 했다. 문단 시작부의
height_for_fit 가드도 composed.lines (빈 텍스트 → 1 line) 만 반영해
ls[1] (차트) 높이를 누락.

수정:
- TAC 컨트롤에 한해 자체 line_seg 의 line_height 를 산출
  (line_seg 인덱스 = 이전 TAC 컨트롤 수)
- current_height + ctrl_h > available_height 이면 advance + ensure_page
- ctrl_h 만큼 current_height 누적해 후속 항목의 fit 판단 보정

검증:
- 보고서 p7 차트 1개 (막대만, pi=51), p8 차트 1개 (원형, pi=57 ci=1)
- 보고서 LAYOUT_OVERFLOW 40 → 30 (개선)
- form-002, k-water-rfp, exam_eng, exam_math, kps-ai 회귀 0
- cargo test --release: 1008+ passed, 0 failed

closes edwardkim#378
증상:
2025년 기부·답례품 실적 보고서_최종형태 확정.hwpx p1 하단에 pi=22
(3x3, 헤더 셀 row_span=2 "<요약>") 의 헤더만 잘못 split 되어 표시.
PDF 정답은 표 전체를 p2 에 배치.

원인:
typeset_block_table 의 첫 행 fit 가드(line 1289) 가 row_heights[0]
(첫 행 단독 높이) 만 비교. row 0 에 row_span>1 셀이 있으면 그 셀의
실제 차지 높이는 row 0..rs 의 합인데, 이 점이 가드에 미반영 →
헤더만 fit 으로 판단 → split 진입 → rs 셀이 두 페이지에 걸쳐 깨짐.

수정:
- row 0 에서 출발하는 row_span>1 셀의 atomic 높이 (row_heights[0..rs].sum
  + cell_spacing*(rs-1)) 를 계산해 first_row_atomic_h 로 사용.
- 가드 비교를 atomic 기준으로 전환.
- 인트라-로우 분할도 row_span>1 이 있으면 비활성화 (atomic push 강제).

검증:
- 보고서 p1: pi=22 미배치, p2: pi=22 전체 표시 ✓
- 보고서 LAYOUT_OVERFLOW 30 (Task edwardkim#378 후 수치 유지)
- form-002, k-water-rfp, exam_eng, exam_math, kps-ai 회귀 0
- cargo test --release: 1008+ passed, 0 failed

closes edwardkim#379
…nt_height 에 반영

증상:
"2025년 기부·답례품 실적 보고서_최종형태 확정.hwpx" p21 의 (4)
연령대별 섹션(pi=191/192) 이 PDF 정답상 p22 에 배치되어야 하는데
rhwp 가 p21 에 잘못 배치 → 페이지 경계를 초과해 LAYOUT_OVERFLOW.

원인:
pi=172 의 비-TAC TopAndBottom 도형(차트, h=31470 HU = 419.6 px) 의
높이가 paragraph line_segs 에 미반영. typeset.rs:451 의 inline 컨트롤
처리는 PageItem::Shape 를 push 만 하고 current_height 누적 안 함 →
typeset 이 후속 항목 fit 을 과대평가하여 잘못된 페이지에 배치.

`compute_body_wide_top_reserve_for_para` 가 동일 계산을 하지만
multi-col col 1+ advance 한정(line 441 가드).

수정:
typeset_paragraph 직후, body-wide TopAndBottom non-TAC 도형 의 reserve
높이를 single-col 에서도 current_height 에 반영. 후속 항목의 fit/페이지
분배가 layout 의 실제 vpos-based 위치와 정합.

검증:
- 보고서 (4) 연령대별 섹션이 p21 → p22 로 이동
- LAYOUT_OVERFLOW 30 → 25 (pi=190..193 4건 해소)
- form-002, k-water-rfp, exam_eng, exam_math, kps-ai 회귀 0
- cargo test --release: 1008+ passed, 0 failed

비고:
AI 인사이트(pi=174) 의 시각 위치(p21 페이지 하단에 붙음) 는 layout 의
별도 결함 (Para-relative TopAndBottom 도형 의 y_offset 누적 이중 적용
가능성). 본 task 와 별개로 추후 분석 필요.

closes edwardkim#380
…hape/Picture 까지 확장

증상:
"2025년 기부·답례품 실적 보고서_최종형태 확정.hwpx" p21 의 AI 인사이트
(pi=174 table) 가 chart 바로 아래(y≈540) 가 아닌 페이지 하단 (y=937) 에
잘못 위치. LAYOUT_OVERFLOW 다수 발생 (pi=174..183).

원인:
layout.rs:1471 의 vpos_page_base 리셋 가드 가 Table 의 Para-rel
TopAndBottom non-TAC 만 예외 처리(is_para_float_table) 하고 Shape/Picture
는 누락. pi=172 의 chart(Para-rel TopAndBottom non-TAC Picture) 처리 후
vpos_page_base 가 리셋되어 후속 lazy_base 가 chart 의 물리 높이(419.6 px)
를 vpos 공간으로 오역 → 후속 문단들이 chart 높이만큼 추가로 밀려남.

수정:
PageItem::Shape 분기에서도 동일한 가드 적용:
- Control::Shape: TopAndBottom + vert_rel_to=Para + !treat_as_char
- Control::Picture: 위 조건 + !treat_as_char (TAC 는 line_seg 가 처리)

해당 조건이면 vpos_page_base 를 유지해 후속 항목의 vpos 보정 기준점이
정상 유지된다.

검증:
- 보고서 p21 AI 인사이트: y=937 → y=541 (chart 바로 아래) ✅
- 보고서 LAYOUT_OVERFLOW: 25 → **1** (대폭 개선)
- form-002, k-water-rfp, exam_eng, exam_math, kps-ai 회귀 0
- cargo test --release: 1008+ passed, 0 failed

closes edwardkim#380 (전체 회귀 해소)
@edwardkim

edwardkim commented Apr 27, 2026

Copy link
Copy Markdown
Owner

@planet6897 안녕하세요.

본 PR 의 검증 PDF (`samples/2022년 국립국어원 업무계획.pdf`, 3쪽) 의 생성 경위를 확인하고자 합니다.

배경: 같은 HWP 파일을 작업지시자의 한컴 프로그램에서 PDF 로 출력했을 때 본 PDF (3쪽) 와 페이지네이션이 다른 것이 발견되었습니다. 이는 한컴 자체의 환경 의존성 가능성을 시사하며, rhwp 의 페이지네이션 검증 기준에 영향을 줄 수 있어 정확한 정황 파악이 필요합니다.

다음 정보 부탁드립니다:

  1. PDF 생성 도구 + 버전:

    • 한컴 오피스 / 한글뷰어 / 다른 도구?
    • 정확한 버전 (예: 한컴오피스 2024, 한컴뷰어 2020 등)
  2. OS 환경:

    • Windows / macOS / Linux
    • OS 버전
  3. 출력 방법:

    • 한컴의 "PDF로 저장" 메뉴
    • "인쇄 → PDF 프린터" 사용
    • 다른 변환 도구 (예: hwp2pdf 외부 도구)
  4. 한컴 설정 (가능하면):

    • 폰트 폴백 설정
    • 페이지 설정 (용지, 여백)
    • "쪽 번호 다시 시작" / "빈 줄 감추기" 등 옵션 활성화 여부
  5. 사용한 폰트:

    • 한컴 기본 폰트 사용? 또는 특정 폰트 설치 후?
    • 함초롬바탕 등 한컴 번들 폰트 환경

본 PR 의 처리는 위 정보 확인 후 결정합니다. 회신 부탁드립니다.

감사합니다.

edwardkim added a commit that referenced this pull request Apr 27, 2026
PR #360 (Task #356) 의 검증용 PDF (컨트리뷰터 환경, 37쪽) 와
작업지시자의 한컴 프로그램 출력 PDF (35쪽) 의 페이지네이션 차이 발견.

한컴 자체의 환경 의존성 가능성을 시사하는 발견으로 검증 자료 보존:
- saved/pr360-edward.hwp: 동일 HWP 파일 (md5 일치)
- saved/pr360-edward.pdf: 작업지시자 한컴 출력 (35쪽)

PR #360 의 PDF (samples/2022년 국립국어원 업무계획.pdf, 37쪽) 와 비교 가능.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edwardkim added a commit that referenced this pull request Apr 27, 2026
PDF 와 함께 한컴 입력 HWP 도 검증 자료로 보존.
.gitignore 의 /saved/*.hwp 패턴에 예외 추가.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@edwardkim

edwardkim commented Apr 27, 2026

Copy link
Copy Markdown
Owner

참고 자료를 추가합니다.

작업지시자가 본인의 한컴 프로그램으로 동일 HWP 를 PDF 출력한 결과는 3쪽 입니다 (PR 의 검증 PDF 는 37쪽). 페이지네이션이 다릅니다.

저장소에 검증 자료를 보존했습니다:

raw 다운로드 (브라우저 열림 방지):

두 PDF 의 페이지네이션 차이는 한컴 자체의 환경 의존성 가능성을 시사하므로, 이전 댓글의 5가지 항목 (도구+버전, OS, 출력 방법, 한컴 설정, 폰트) 회신과 함께 두 환경 비교를 진행하고자 합니다.

본 PR 처리 방향은 위 정보 확인 + 두 PDF 비교 후 결정합니다.

edwardkim added a commit that referenced this pull request Apr 27, 2026
PR #374 (Task #362): kps-ai p56 외부 표 안 콘텐츠 클립 회귀 정정 PR.

본 결함은 메인테이너 Task #362 (8 항목 누적: vpos 가드, PartialTable nested
분할, Square wrap 어울림, hide_empty_line 등) 로 v0.7.7 에 정정 완료.
이슈 #362 도 CLOSED.

PR #374 의 vpos clamp 접근 (`vpos.min(remaining_room)`) 은 측정 의존 일반화
시멘틱으로 메인테이너의 nested 가드 (`has_nested_table` 분기) 보다 회귀 위험.
흡수 가치 없음 → close.

PR #360 검토 문서도 함께 commit (회신 대기 중).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@planet6897

Copy link
Copy Markdown
Contributor Author

PDF 생성 환경 정보

PDF 생성 도구 + 버전

  • 도구: 한컴오피스 한글 Viewer (한글뷰어)
  • 버전: 1.31.7 (빌드 6383)

OS 환경

  • OS: macOS Sequoia
  • 버전: 15.7.4

출력 방법

  • 메뉴 경로: 인쇄 → PDF로 저장
  • (한글뷰어 자체 "PDF로 저장" 기능이 아닌, macOS 인쇄 다이얼로그의 PDF 저장 사용)

한글뷰어 설정

  • 보기 옵션:
    • 교정부호: 표시
    • 표시/숨기기 → 교정부호: 활성화
    • 그림: 활성화 (그림만 표시)
    • 쪽윤곽: 활성화
  • 페이지 설정: 미확인 (기본값 추정)
  • 기타 옵션 (쪽 번호 다시 시작 / 빈 줄 감추기 등): 미확인

사용 폰트

  • 기본 폰트만 사용 (한컴 번들 폰트 — 함초롬바탕 등)
  • 별도 폰트 설치 없음

윈도우에서 한글2022로 PDF로 출력해서 다시 확인해 보겠습니다.

edwardkim added a commit that referenced this pull request Apr 27, 2026
PR #360 정황에서 발견: 동일 HWP 의 한컴 PDF 페이지 수가 환경별로 다름
(컨트리뷰터 37쪽 vs 작업지시자 35쪽). 페이지 분할 자체가 환경 의존적.

결정: PDF 가 정답지로서 신뢰성이 입증되기 전까지 검증 기준으로 수용 불가.

변경:
- CONTRIBUTING.md: PR 검증의 PDF 한계 + 신뢰 기준 명시
- mydocs/troubleshootings/hancom_pdf_environment_dependency.md: 트러블슈팅
- mydocs/feedback/issue_253_environment_dependency_review.md: 영향 분석

연계 조치:
- 이슈 #253 (한컴 PDF Visual Diff 파이프라인) close
- 메모리 등록: feedback_pdf_not_authoritative.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@edwardkim

edwardkim commented Apr 27, 2026

Copy link
Copy Markdown
Owner

회신 감사합니다. 정보 정리합니다.

검증 환경 차이

항목 컨트리뷰터 (PR PDF) 작업지시자 (정답지)
도구 한컴 한글 Viewer v1.31.7 한컴 2010 + 한컴 2022 (편집기)
출력 방법 macOS 인쇄 다이얼로그 → PDF 저장 한컴 편집기 자체 PDF 출력
OS macOS Sequoia 15.7.4 (Windows 11)
PDF 페이지 수 37 35

작업지시자 정답지 정책

작업지시자는 한컴 2010 + 한컴 2022 (편집기) 의 PDF 출력을 페이지네이션 정답지로 사용합니다. 다음은 정답지 아닙니다:

  • 한글 Viewer (편집기와 다른 코드 경로 가능)
  • 외부 변환 도구 (hwp2pdf 등)
  • macOS 인쇄 다이얼로그 (한컴 외부 PDF 출력 경로)

다음 단계

말씀하신 윈도우 + 한글2022 재검증 결과를 기다립니다. 그 결과가 작업지시자의 35쪽과 같으면:

  • 컨트리뷰터의 macOS 한글뷰어 + 인쇄 다이얼로그 출력 경로가 한컴 편집기와 다른 페이지 분할을 만들었음 (출력 경로 차이)
  • 한컴 편집기 자체는 일관됨

다르면:

  • 한컴 편집기 자체도 환경별 (버전/OS) 다름

본 PR 의 처리는 재검증 결과 + 작업지시자의 정답지 환경 (한컴 2010/2022) 에서 메인테이너 누적 작업 (Task #359, #361, #362) 의 효과 측정 후 결정합니다.

참고:

@planet6897

Copy link
Copy Markdown
Contributor Author

2022년 국립국어원 업무계획.pdf
윈도우즈 11, 한컴오피스 2022 한글에서 "PDF로 저장하기"로 출력한 파일입니다.
한컴 편집기 자체도 환경별(버전/OS) 구현이 다르기 때문에 발생한 문제인 것 같습니다.
close 하겠습니다.

@planet6897 planet6897 closed this Apr 27, 2026
edwardkim added a commit that referenced this pull request Apr 27, 2026
PR #360 (close) 처리 과정에서 수집한 한컴 PDF 환경 의존성 검증 자료.

samples/:
- 2022년 국립국어원 업무계획.hwp: PR #360 의 핵심 결함 재현 샘플 (md5 일치 확인)
- 2022년 국립국어원 업무계획.pdf: 컨트리뷰터 macOS 한글 Viewer 출력 (37쪽)
- 2022년 국립국어원 업무계획.txt: 보조 자료

saved/:
- pr360-planet-win-hancom2022.pdf: 컨트리뷰터 윈도우 한컴2022 편집기 출력 (35쪽)
  - 작업지시자 출력 (saved/pr360-edward.pdf, 35쪽) 과 페이지 수 일치
  - Windows 한컴 편집기의 일관성 입증 자료

PR #360 의 검증 정황은 Wiki 페이지 "한컴 PDF 환경 의존성" 에 정리됨.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@planet6897 planet6897 deleted the local/task356 branch April 30, 2026 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants