Skip to content

PPTX: honor manual chart title layout - #1438

Merged
developer0hye merged 1 commit into
mainfrom
fix/issue-1423-chart-title-layout
Aug 31, 2026
Merged

PPTX: honor manual chart title layout#1438
developer0hye merged 1 commit into
mainfrom
fix/issue-1423-chart-title-layout

Conversation

@developer0hye

@developer0hye developer0hye commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Summary

  • parse title-specific edge-mode c:manualLayout coordinates into ChartTitleLayout
  • place PowerPoint chart titles at their authored chart-relative anchors while preserving the existing title band
  • add parser and renderer regression coverage plus 300 DPI GT/before/after evidence for pages 8 and 11

Related issue

Fixes #1423

Testing

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • cargo check --target wasm32-unknown-unknown -p office2pdf
  • cargo check --target wasm32-unknown-unknown -p office2pdf --features wasm
  • cargo check --target wasm32-unknown-unknown -p office2pdf --features wasm-cjk-font
  • wasm-pack build crates/office2pdf --target web --features wasm
  • wasm-pack build crates/office2pdf --target web --features wasm-cjk-font
  • wasm-pack test --node --features wasm from crates/office2pdf: 10 passed
  • wasm-pack test --node --features wasm-cjk-font from crates/office2pdf: 11 passed
  • converted the 15-page PR fix(docx): honor in-cell picture row floors #1407 PPTX and rendered pages 8 and 11 at 300 DPI
  • final page 8 and 11 renders are pixel-identical to the committed after evidence source renders: AE 0
  • compare_layout.py --audit --json records zero painted-visibility mismatches on both compared pages
  • mandatory documentation freshness review: PASS

Visual impact

  • No rendered PDF change
  • Rendered PDF change or visual evidence added
  • Reason: PowerPoint chart titles with edge-mode manual layouts now use the authored position.

Visual audit

Visual comparison

GT Before After
GT Before After

Required inspection

  • Rendered all evidence at 150 DPI or higher
  • Stored progressive JPEG quality 86 assets with metadata stripped
  • Used Codex/Claude vision to inspect the full GT/output pages, diff, and matched crops
  • Inspected matched region crops at full resolution
  • Ran compare_layout.py --audit and dispositioned every large text-instance shift and painted-visibility mismatch
  • Ran compare_layout.py --audit and dispositioned every large text-instance shift
  • Ran the 5% fuzz pixel-difference sweep
  • Inventoried hairlines and border dash styles
  • Inventoried font weight, italic, and underline emphasis

Deviation audit

Check Result
Page count/order Matches GT: 15 pages overall and pages 8/11 compare in source order
Element presence Remaining: #1374 secondary-axis elements
Position/size Remaining: #1374, #1434, #1435, #1436, #1437, #1439; Fixed #1423 title anchors
Rotation/flip No deviation observed
Fill Matches GT
Stroke/border Remaining: #1374, #1437 chart grid geometry; title hairline matches GT
Shape outline geometry Remaining: #1437 automatic plot rectangle; #1439 legend-key dimensions
Text content Remaining: #1374 visible axis labels; trace-only findings #1415
Font family/weight/style Remaining: #1424
Text color Remaining: #1424
Alignment Fixed: #1423 title alignment; Remaining: #1434, #1435, #1436
Line/paragraph spacing Remaining: #1434 legend row pitch
Clipping/overflow Remaining: #1434, #1435 legend/tick overlap

Checklist

  • Commits include a Signed-off-by line
  • PR scope contains one root cause
  • Remaining visual deviations each reference an open issue

Signed-off-by: Yonghye Kwon <developer.0hye@gmail.com>
@developer0hye
developer0hye merged commit 2bee7c5 into main Aug 31, 2026
58 of 86 checks passed
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.

PPTX chart titles ignore title-specific manual layout and remain centered

1 participant