diff options
Diffstat (limited to 'sw/source/filter/ww8/wrtw8nds.cxx')
-rw-r--r-- | sw/source/filter/ww8/wrtw8nds.cxx | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index 87c27db44c89..23208e90a8fc 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -1173,6 +1173,25 @@ void SwWW8AttrIter::OutSwFormatRefMark(const SwFormatRefMark& rAttr) &rAttr.GetRefName(), 0 )); } +void SwWW8AttrIter::SplitRun( sal_Int32 nSplitEndPos ) +{ + for(auto aIter = maCharRuns.begin(); aIter != maCharRuns.end(); ++aIter) + { + if(aIter->mnEndPos == nSplitEndPos) + return; + else if (aIter->mnEndPos > nSplitEndPos) + { + CharRunEntry aNewEntry = *aIter; + aIter->mnEndPos = nSplitEndPos; + maCharRuns.insert( ++aIter, aNewEntry); + maCharRunIter = maCharRuns.begin(); + IterToCurrent(); + nAktSwPos = SearchNext(1); + break; + } + } +} + void WW8AttributeOutput::FieldVanish( const OUString& rText, ww::eField /*eType*/ ) { ww::bytes aItems; @@ -2163,6 +2182,10 @@ void MSWordExportBase::OutputTextNode( SwTextNode& rNode ) AppendBookmark( BookmarkToWord( sBkmkName ) ); } + // Call this before write out fields and runs + if(GetExportFormat() == ExportFormat::DOCX) + AttrOutput().GenerateBookmarksForSequenceField(rNode, aAttrIter); + const OUString& aStr( rNode.GetText() ); sal_Int32 nAktPos = 0; |