Kaydet (Commit) 64dc8acb authored tarafından Miklos Vajna's avatar Miklos Vajna

DocxSdrExport: there is no DML syntax for watermarks

At least what we wrote previously is not accepted by Word and even Word
2013 writes watermarks as VML-only.

This fixes testWatermark in CppunitTest_sw_ooxmlexport when DML export is
enabled in non-experimental mode.

Change-Id: I231014dd7ad60b5a4b0d79e76cdc3386641af032
üst 944a086d
......@@ -351,20 +351,31 @@ void DocxSdrExport::Impl::writeDMLDrawing(const SdrObject* pSdrObject, const SwF
void DocxSdrExport::writeDMLAndVMLDrawing(const SdrObject* sdrObj, const SwFrmFmt& rFrmFmt,const Point& rNdTopLeft, int nAnchorId)
{
m_pImpl->m_pSerializer->startElementNS(XML_mc, XML_AlternateContent, FSEND);
// Depending on the shape type, we actually don't write the shape as DML.
OUString sShapeType;
sal_uInt32 nMirrorFlags = 0;
uno::Reference<drawing::XShape> xShape(const_cast<SdrObject*>(sdrObj)->getUnoShape(), uno::UNO_QUERY_THROW);
MSO_SPT eShapeType = EscherPropertyContainer::GetCustomShapeType(xShape, nMirrorFlags, sShapeType);
const SdrObjGroup* pObjGroup = PTR_CAST(SdrObjGroup, sdrObj);
m_pImpl->m_pSerializer->startElementNS(XML_mc, XML_Choice,
XML_Requires, (pObjGroup ? "wpg" : "wps"),
FSEND);
m_pImpl->writeDMLDrawing(sdrObj, &rFrmFmt, nAnchorId);
m_pImpl->m_pSerializer->endElementNS(XML_mc, XML_Choice);
if (eShapeType != ESCHER_ShpInst_TextPlainText)
{
m_pImpl->m_pSerializer->startElementNS(XML_mc, XML_AlternateContent, FSEND);
const SdrObjGroup* pObjGroup = PTR_CAST(SdrObjGroup, sdrObj);
m_pImpl->m_pSerializer->startElementNS(XML_mc, XML_Choice,
XML_Requires, (pObjGroup ? "wpg" : "wps"),
FSEND);
m_pImpl->writeDMLDrawing(sdrObj, &rFrmFmt, nAnchorId);
m_pImpl->m_pSerializer->endElementNS(XML_mc, XML_Choice);
m_pImpl->m_pSerializer->startElementNS(XML_mc, XML_Fallback, FSEND);
writeVMLDrawing(sdrObj, rFrmFmt, rNdTopLeft);
m_pImpl->m_pSerializer->endElementNS(XML_mc, XML_Fallback);
m_pImpl->m_pSerializer->startElementNS(XML_mc, XML_Fallback, FSEND);
writeVMLDrawing(sdrObj, rFrmFmt, rNdTopLeft);
m_pImpl->m_pSerializer->endElementNS(XML_mc, XML_Fallback);
m_pImpl->m_pSerializer->endElementNS(XML_mc, XML_AlternateContent);
m_pImpl->m_pSerializer->endElementNS(XML_mc, XML_AlternateContent);
}
else
writeVMLDrawing(sdrObj, rFrmFmt, rNdTopLeft);
}
void DocxSdrExport::writeDiagram(const SdrObject* sdrObject, const Size& size)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment