oox/source/export/drawingml.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
New commits: commit d38d667025a070fadca4ff2f82e55f5dbb0ca481 Author: Karthik Godha <[email protected]> AuthorDate: Tue Nov 18 14:16:08 2025 +0530 Commit: Michael Stahl <[email protected]> CommitDate: Mon Dec 15 15:52:54 2025 +0100 tdf#169487: PPT->PPTX Fix export of a:ext In PPTX export `cx` and `cy` in a:ext can't be greater than 2147483647 Change-Id: I23ce1c79cda01c7ecd775eecb1d453f3e707bf9c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194150 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> (cherry picked from commit cc2de7418d6fce04e52e6bb70a3240e969946c5c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194230 Tested-by: Jenkins (cherry picked from commit 9dea9ed0a1d12474b120471f709d20035a8266d5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195640 Tested-by: Michael Stahl <[email protected]> diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index f93440647529..0627ac200b04 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -2301,12 +2301,15 @@ void DrawingML::WriteTransformation(const Reference< XShape >& xShape, const too sal_Int32 nChildLeft = nLeft; sal_Int32 nChildTop = nTop; + const sal_Int64 MAX_SIZE = std::numeric_limits<sal_Int32>::max(); + sal_Int32 nCx = std::min(oox::drawingml::convertHmmToEmu(rRect.GetWidth()), MAX_SIZE); + sal_Int32 nCy = std::min(oox::drawingml::convertHmmToEmu(rRect.GetHeight()), MAX_SIZE); + mpFS->singleElementNS(XML_a, XML_off, XML_x, OString::number(oox::drawingml::convertHmmToEmu(nLeft)), XML_y, OString::number(oox::drawingml::convertHmmToEmu(nTop))); - mpFS->singleElementNS(XML_a, XML_ext, - XML_cx, OString::number(oox::drawingml::convertHmmToEmu(rRect.GetWidth())), - XML_cy, OString::number(oox::drawingml::convertHmmToEmu(rRect.GetHeight()))); + mpFS->singleElementNS(XML_a, XML_ext, XML_cx, OString::number(nCx), XML_cy, + OString::number(nCy)); if (bIsGroupShape && (GetDocumentType() != DOCUMENT_DOCX || IsTopGroupObj(xShape))) {
