summaryrefslogtreecommitdiff
path: root/sw/source/filter/ww8/docxattributeoutput.cxx
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-03-29 14:53:09 +0100
committerMiklos Vajna <vmiklos@suse.cz>2013-03-29 15:38:21 +0100
commit18f299a47fecda6570ff898d6da4207b1ddd9a45 (patch)
treea5f776fd9814310b57402bf41829cdff8c3e8289 /sw/source/filter/ww8/docxattributeoutput.cxx
parentf7f9b74163acd6811ccfaabb2a1d762225258e15 (diff)
fdo#48557 implement DOCX export of inner margin values for textbox text
Change-Id: I524e3bcd21731ad203a420f60dd328c6551f0eb7
Diffstat (limited to 'sw/source/filter/ww8/docxattributeoutput.cxx')
-rw-r--r--sw/source/filter/ww8/docxattributeoutput.cxx15
1 files changed, 14 insertions, 1 deletions
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index be4f9ed8c8f6..0ffc3a12267b 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -307,11 +307,14 @@ void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pT
m_bTextFrameSyntax = true;
m_pFlyAttrList = m_pSerializer->createAttrList( );
+ m_pTextboxAttrList = m_pSerializer->createAttrList();
m_aTextFrameStyle = "position:absolute";
m_rExport.OutputFormat( pParentFrame->GetFrmFmt(), false, false, true );
m_pFlyAttrList->add(XML_style, m_aTextFrameStyle.makeStringAndClear());
XFastAttributeListRef xFlyAttrList( m_pFlyAttrList );
m_pFlyAttrList = NULL;
+ XFastAttributeListRef xTextboxAttrList(m_pTextboxAttrList);
+ m_pTextboxAttrList = NULL;
m_bTextFrameSyntax = false;
m_pSerializer->startElementNS( XML_w, XML_r, FSEND );
@@ -324,7 +327,7 @@ void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pT
m_pFlyFillAttrList = NULL;
m_pSerializer->singleElementNS(XML_v, XML_fill, xFlyFillAttrList);
}
- m_pSerializer->startElementNS( XML_v, XML_textbox, FSEND );
+ m_pSerializer->startElementNS( XML_v, XML_textbox, xTextboxAttrList );
m_pSerializer->startElementNS( XML_w, XML_txbxContent, FSEND );
m_rExport.WriteText( );
m_pSerializer->endElementNS( XML_w, XML_txbxContent );
@@ -4671,6 +4674,14 @@ void DocxAttributeOutput::FormatBox( const SvxBoxItem& rBox )
sal_Int32 nWidth = sal_Int32(fConverted / 20);
m_pFlyAttrList->add(XML_strokeweight, OString::valueOf(nWidth) + "pt");
}
+
+ // v:textbox's inset attribute: inner margin values for textbox text
+ OStringBuffer aInset;
+ aInset.append(OString::number(double(rBox.GetDistance(BOX_LINE_LEFT))/20) + "pt,");
+ aInset.append(OString::number(double(rBox.GetDistance(BOX_LINE_TOP))/20) + "pt,");
+ aInset.append(OString::number(double(rBox.GetDistance(BOX_LINE_RIGHT))/20) + "pt,");
+ aInset.append(OString::number(double(rBox.GetDistance(BOX_LINE_BOTTOM))/20) + "pt");
+ m_pTextboxAttrList->add(XML_inset, aInset.makeStringAndClear());
return;
}
@@ -4842,6 +4853,7 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri
m_pHyperlinkAttrList( NULL ),
m_pFlyAttrList( NULL ),
m_pFlyFillAttrList( NULL ),
+ m_pTextboxAttrList( NULL ),
m_pFootnotesList( new ::docx::FootnotesList() ),
m_pEndnotesList( new ::docx::FootnotesList() ),
m_footnoteEndnoteRefTag( 0 ),
@@ -4882,6 +4894,7 @@ DocxAttributeOutput::~DocxAttributeOutput()
delete m_pParagraphSpacingAttrList, m_pParagraphSpacingAttrList = NULL;
delete m_pHyperlinkAttrList, m_pHyperlinkAttrList = NULL;
delete m_pFlyAttrList, m_pFlyAttrList = NULL;
+ delete m_pTextboxAttrList, m_pTextboxAttrList = NULL;
delete m_pFootnotesList, m_pFootnotesList = NULL;
delete m_pEndnotesList, m_pEndnotesList = NULL;