sw/qa/extras/ooxmlimport/data/tdf103664.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 19 +++++++++++++++++++ writerfilter/source/dmapper/DomainMapper.cxx | 2 ++ 3 files changed, 21 insertions(+)
New commits: commit 5ef66db91e87ef84724be22977acf4c9c472ad6b Author: Tamás Zolnai <tamas.zol...@collabora.com> Date: Fri Nov 4 21:53:56 2016 +0000 tdf#103664: FILEOPEN: DOCX: Wingdings symbols are imported as rectangles Change-Id: Ifd9ff26f2460e5570ec1b736308d48acdb3e56a8 Reviewed-on: https://gerrit.libreoffice.org/30575 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com> diff --git a/sw/qa/extras/ooxmlimport/data/tdf103664.docx b/sw/qa/extras/ooxmlimport/data/tdf103664.docx new file mode 100644 index 0000000..4d299a6 Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf103664.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 23d3aa3..ffc225e 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -56,6 +56,7 @@ #include <unotools/streamwrap.hxx> #include <comphelper/propertysequence.hxx> #include <com/sun/star/drawing/HomogenMatrix3.hpp> +#include <com/sun/star/awt/CharSet.hpp> class Test : public SwModelTestBase { @@ -1247,6 +1248,24 @@ DECLARE_OOXMLIMPORT_TEST(testTdf100830, "tdf100830.docx") CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(30), getProperty<sal_Int16>(getShape(1), "FillTransparence")); } +DECLARE_OOXMLIMPORT_TEST(testTdf103664, "tdf103664.docx") +{ + // Wingdings symbols was displayed as rectangles + uno::Reference<text::XTextRange> xPara(getParagraph(1)); + CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xf020), xPara->getString()[0] ); + CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xf0fc), xPara->getString()[1] ); + CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xf0dc), xPara->getString()[2] ); + CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xf081), xPara->getString()[3] ); + + uno::Reference<beans::XPropertySet> xRun(getRun(xPara,1), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(OUString("Wingdings"), getProperty<OUString>(xRun, "CharFontName")); + CPPUNIT_ASSERT_EQUAL(OUString("Wingdings"), getProperty<OUString>(xRun, "CharFontNameAsian")); + CPPUNIT_ASSERT_EQUAL(OUString("Wingdings"), getProperty<OUString>(xRun, "CharFontNameComplex")); + + // Make sure these special characters imported as symbols + CPPUNIT_ASSERT_EQUAL(awt::CharSet::SYMBOL, getProperty<sal_Int16>(xRun, "CharFontCharSet")); +} + // tests should only be added to ooxmlIMPORT *if* they fail round-tripping in ooxmlEXPORT diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index d69cf50..0cb770f 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -62,6 +62,7 @@ #include <com/sun/star/text/XTextColumns.hpp> #include <com/sun/star/uno/XComponentContext.hpp> #include <com/sun/star/text/FontEmphasis.hpp> +#include <com/sun/star/awt/CharSet.hpp> #include <comphelper/types.hxx> #include <comphelper/storagehelper.hxx> #include <comphelper/sequence.hxx> @@ -2665,6 +2666,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext ) rContext->Insert(PROP_CHAR_FONT_NAME, aVal); rContext->Insert(PROP_CHAR_FONT_NAME_ASIAN, aVal); rContext->Insert(PROP_CHAR_FONT_NAME_COMPLEX, aVal); + rContext->Insert(PROP_CHAR_FONT_CHAR_SET, uno::makeAny(awt::CharSet::SYMBOL)); utext( reinterpret_cast < const sal_uInt8 * >( &(aSymbolData.cSymbol) ), 1 ); } }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits