fix(docx): state a landscape page as landscape - #723
Merged
Merged
Conversation
Word draws a page from w:w and w:h but reads the orientation from w:orient for Page Setup and printing. The export wrote portrait for every page. A page wider than it is tall is now LANDSCAPE; a square page stays PORTRAIT.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
DocxSemanticBackend.applyPageGeometrywrote the page's real width and height intow:pgSzbut always setw:orient="portrait". Word draws the page fromw:w/w:h, so a landscape document opened the right shape — but Page Setup showed it as portrait, and printing reads the orientation fromw:orient, not from the dimensions.What changed
applyPageGeometrysetsLANDSCAPEwhen the canvas is wider than it is tall,PORTRAITotherwise. Width and height stay exactly as the layout gives them — Word does not swap them for landscape, it expectsw:w > w:htogether withorient="landscape".docs/recipes/docx-export.mdnames orientation alongside size and margins; CHANGELOG entry under v2.5.0.Verification
./mvnw -B -ntp clean verifyover the reactor → BUILD SUCCESS (1788 tests in the main run, 127 render-docx), then install + all examples regenerated (93 green).New
DocxPageOrientationTest(3 tests): an 842×595 page isLANDSCAPEwithw:w/w:hunchanged in twips; 595×842 isPORTRAIT; 600×600 isPORTRAIT. Reverting the one-line change fails the landscape test.Lane: shared-engine (render-docx) — page section properties only; no public API change.