oox/source/export/shapes.cxx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
New commits: commit 939cdbe62a6f141aad879f7f428eb5cd0361c1ae Author: Karthik Godha <[email protected]> AuthorDate: Mon Dec 15 09:35:58 2025 +0530 Commit: Xisco Fauli <[email protected]> CommitDate: Thu Jan 8 12:03:11 2026 +0100 tdf#169979: ODP->PPTX export missing p:pic element OLE objects when exported to PPTX should contain p:pic element in the XML. OLEs without graphic content don't export p:pic element, though this is a valid schema, PowerPoint doesn't accept this. Now empty p:pic element is exported for empty graphics Change-Id: Iac6fb988aa20e1bc9ae938d2a02dfc7b8dfae0c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195623 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> (cherry picked from commit 33a228978b109a05f05078bc430e9d61698798c9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196542 Tested-by: Jenkins Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196667 (cherry picked from commit 8c35a2d58b5d1a7326416a2c82a4f304bd23378f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196730 diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx index 8d7bd7910920..695629d40795 100644 --- a/oox/source/export/shapes.cxx +++ b/oox/source/export/shapes.cxx @@ -2780,6 +2780,25 @@ void ShapeExport::WriteMathShape(Reference<XShape> const& xShape) mpFS->endElementNS(XML_mc, XML_AlternateContent); } +static void WriteEmptyGraphic(FSHelperPtr const& pFS, sal_Int32 nGraphicId) +{ + pFS->startElementNS(XML_p, XML_pic); + pFS->startElementNS(XML_p, XML_nvPicPr); + pFS->startElementNS(XML_p, XML_cNvPr, XML_id, OUString::number(nGraphicId), XML_name, "", + XML_descr, ""); + pFS->endElementNS(XML_p, XML_cNvPr); + pFS->startElementNS(XML_p, XML_cNvPicPr); + pFS->endElementNS(XML_p, XML_cNvPicPr); + pFS->startElementNS(XML_p, XML_nvPr); + pFS->endElementNS(XML_p, XML_nvPr); + pFS->endElementNS(XML_p, XML_nvPicPr); + pFS->startElementNS(XML_p, XML_blipFill); + pFS->endElementNS(XML_p, XML_blipFill); + pFS->startElementNS(XML_p, XML_spPr); + pFS->endElementNS(XML_p, XML_spPr); + pFS->endElementNS(XML_p, XML_pic); +} + ShapeExport& ShapeExport::WriteOLE2Shape( const Reference< XShape >& xShape ) { Reference< XPropertySet > xPropSet( xShape, UNO_QUERY ); @@ -2997,6 +3016,8 @@ ShapeExport& ShapeExport::WriteOLE2Shape( const Reference< XShape >& xShape ) const Graphic* pGraphic = pOle2Obj->GetGraphic(); if (pGraphic) WriteGraphicObjectShapePart(xShape, pGraphic); + else // Required for MSO + WriteEmptyGraphic(mpFS, GetNewShapeID(xShape)); } mpFS->endElementNS( mnXmlNamespace, XML_oleObj );
