tdf#146690: pptx export: fix endParaRPr size value for empty paragraphs

Fixes paragraphs made from a single new line, not getting the
correct sz(text size) value in EndParagraphRunProperties on pptx
export

Change-Id: I31ebb5735ad392e081aa2f43b0b60a845e4de9c2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128265
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@collabora.com>
This commit is contained in:
Sarper Akdemir
2022-02-20 13:48:34 +01:00
committed by Andras Timar
parent 2b80f5a164
commit c92aa69bc6
3 changed files with 25 additions and 0 deletions
Binary file not shown.
+21
View File
@@ -395,6 +395,27 @@ CPPUNIT_TEST_FIXTURE(Test, testReferToTheme)
"75000");
assertXPath(pXmlDoc, "//p:sp[3]/p:txBody/a:p/a:r/a:rPr/a:solidFill/a:schemeClr/a:lumOff", 0);
}
CPPUNIT_TEST_FIXTURE(Test, testTdf146690_endParagraphRunPropertiesNewLinesTextSize)
{
// Given a PPTX file that contains references to a theme:
OUString aURL
= m_directories.getURLFromSrc(DATA_DIRECTORY) + "endParaRPr-newline-textsize.pptx";
// When saving that document:
loadAndSave(aURL, "Impress Office Open XML");
std::unique_ptr<SvStream> pStream = parseExportStream(getTempFile(), "ppt/slides/slide1.xml");
xmlDocUniquePtr pXmlDoc = parseXmlStream(pStream.get());
// Then make sure the shape text color is a scheme color:
// Without the accompanying fix in place, this test would have failed with:
// - Expected: 500
// - Actual : 1800
// i.e. the endParaRPr 'size' wasn't exported correctly
assertXPath(pXmlDoc, "//p:sp[1]/p:txBody/a:p[1]/a:endParaRPr", "sz", "500");
assertXPath(pXmlDoc, "//p:sp[1]/p:txBody/a:p[2]/a:endParaRPr", "sz", "500");
assertXPath(pXmlDoc, "//p:sp[1]/p:txBody/a:p[3]/a:endParaRPr", "sz", "500");
}
}
CPPUNIT_PLUGIN_IMPLEMENT();
+4
View File
@@ -3142,7 +3142,11 @@ void DrawingML::WriteParagraph( const Reference< XTextContent >& rParagraph,
Reference< XPropertySet > xFirstRunPropSet (run, UNO_QUERY);
Reference< XPropertySetInfo > xFirstRunPropSetInfo = xFirstRunPropSet->getPropertySetInfo();
if( xFirstRunPropSetInfo->hasPropertyByName("CharHeight") )
{
fFirstCharHeight = xFirstRunPropSet->getPropertyValue("CharHeight").get<float>();
rnCharHeight = 100 * fFirstCharHeight;
rbOverridingCharHeight = true;
}
WriteParagraphProperties(rParagraph, fFirstCharHeight, XML_pPr);
bPropertiesWritten = true;
}