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

sw: DOCX export of TextFrame shadow

Change-Id: Ia095a3adee271cf7235fb7c13824d7f265658897
üst f04bcdc4
......@@ -188,6 +188,7 @@ class FieldMarkParamsHelper
return bResult;
}
};
static OString impl_ConvertColor( const Color &rColor );
void DocxAttributeOutput::RTLAndCJKState( bool bIsRTL, sal_uInt16 /*nScript*/ )
{
if (bIsRTL)
......@@ -251,6 +252,35 @@ void DocxAttributeOutput::StartParagraph( ww8::WW8TableNodeInfo::Pointer_t pText
m_bParagraphOpened = true;
}
void lcl_TextFrameShadow(FSHelperPtr pSerializer, const SwFrmFmt& rFrmFmt)
{
SvxShadowItem aShadowItem = rFrmFmt.GetShadow();
if (aShadowItem.GetLocation() == SVX_SHADOW_NONE)
return;
OString aShadowWidth( OString::valueOf( double( aShadowItem.GetWidth() ) / 20) + "pt");
OString aOffset;
switch (aShadowItem.GetLocation())
{
case SVX_SHADOW_TOPLEFT: aOffset = "-" + aShadowWidth + ",-" + aShadowWidth; break;
case SVX_SHADOW_TOPRIGHT: aOffset = aShadowWidth + ",-" + aShadowWidth; break;
case SVX_SHADOW_BOTTOMLEFT: aOffset = "-" + aShadowWidth + "," + aShadowWidth; break;
case SVX_SHADOW_BOTTOMRIGHT: aOffset = aShadowWidth + "," + aShadowWidth; break;
case SVX_SHADOW_NONE:
case SVX_SHADOW_END:
break;
}
if (aOffset.isEmpty())
return;
OString aShadowColor = impl_ConvertColor(aShadowItem.GetColor());
pSerializer->singleElementNS(XML_v, XML_shadow,
XML_on, "t",
XML_color, "#" + aShadowColor,
XML_offset, aOffset,
FSEND);
}
void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner )
{
// write the paragraph properties + the run, already in the correct order
......@@ -284,6 +314,7 @@ void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pT
m_pSerializer->startElementNS( XML_w, XML_r, FSEND );
m_pSerializer->startElementNS( XML_w, XML_pict, FSEND );
m_pSerializer->startElementNS( XML_v, XML_rect, xFlyAttrList );
lcl_TextFrameShadow(m_pSerializer, rFrmFmt);
m_pSerializer->startElementNS( XML_v, XML_textbox, FSEND );
m_pSerializer->startElementNS( XML_w, XML_txbxContent, FSEND );
m_rExport.WriteText( );
......
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