From 1b167f3e0b1afec7c257f458db7505d8d8f177b3 Mon Sep 17 00:00:00 2001 From: Tibor Nagy Date: Thu, 3 Nov 2022 16:10:11 +0100 Subject: tdf#142291 PPTX export: fix table border styles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Export border style subset used by the PPTX import, ::table::BorderLineStyle::SOLID, DOTTED, DASHED, DASH_DOT and DASH_DOT_DOT. See also tablecell.cxx:applyLineAttributes(). Change-Id: I5e4d631f7ca410beb76155579ea5b21a6eb66350 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142240 Tested-by: László Németh Reviewed-by: László Németh --- oox/source/export/shapes.cxx | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'oox') diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx index d102880af7bd..88be4362b228 100644 --- a/oox/source/export/shapes.cxx +++ b/oox/source/export/shapes.cxx @@ -24,6 +24,7 @@ #include #include +#include #include #include #include @@ -65,6 +66,7 @@ #include #include #include +#include #include #include #include @@ -2290,7 +2292,30 @@ void ShapeExport::WriteBorderLine(const sal_Int32 XML_line, const BorderLine2& r mpFS->singleElementNS(XML_a, XML_noFill); else DrawingML::WriteSolidFill( ::Color(ColorTransparency, rBorderLine.Color) ); - mpFS->endElementNS( XML_a, XML_line ); + + OUString sBorderStyle; + sal_Int16 nStyle = rBorderLine.LineStyle; + mAny.setValue(&nStyle, cppu::UnoType::get()); + switch (*o3tl::doAccess(mAny)) + { + case ::table::BorderLineStyle::SOLID: + sBorderStyle = "solid"; + break; + case ::table::BorderLineStyle::DOTTED: + sBorderStyle = "dot"; + break; + case ::table::BorderLineStyle::DASHED: + sBorderStyle = "dash"; + break; + case ::table::BorderLineStyle::DASH_DOT: + sBorderStyle = "dashDot"; + break; + case ::table::BorderLineStyle::DASH_DOT_DOT: + sBorderStyle = "sysDashDotDot"; + break; + } + mpFS->singleElementNS(XML_a, XML_prstDash, XML_val, sBorderStyle); + mpFS->endElementNS(XML_a, XML_line); } else if( nBorderWidth == 0) { -- cgit