20 #ifndef INCLUDED_SW_SOURCE_FILTER_WW8_WRTWW8_HXX
21 #define INCLUDED_SW_SOURCE_FILTER_WW8_WRTWW8_HXX
50 #include <string_view>
64 namespace editeng {
class SvxBorderLine; }
128 namespace sw::mark {
class IFieldmark; }
131 typedef std::map<const css::embed::XEmbeddedObject*, sal_Int32>
WW8OleMap;
134 #define GRF_MAGIC_1 0x12 // 3 magic bytes for PicLocFc attribute
135 #define GRF_MAGIC_2 0x34
136 #define GRF_MAGIC_3 0x56
137 #define GRF_MAGIC_321 0x563412L
139 #define OLE_PREVIEW_AS_EMF //If we want to export ole2 previews as emf in ww8+
181 sal_uLong nLnRestart, ::std::optional<sal_uInt16> oPgRestart = std::nullopt,
182 const SwNode* pNd =
nullptr,
bool bIsFirstPara =
false )
183 : pPageDesc( pPD ), pSectionFormat( pFormat ), pPDNd( pNd ),
184 nLnNumRestartNo( nLnRestart ), oPgRestartNo( oPgRestart ),
185 bIsFirstParagraph( bIsFirstPara )
214 bool bIsFirstParagraph =
false );
282 std::vector<std::unique_ptr<WW8_WrPc>>
m_Pcts;
308 rtl_TextEncoding eChrSet);
323 std::vector< const wwFont* >
AsVector()
const;
352 unsigned int nHdFtIndex)
353 : mnCp(nCp), mnShapeId(0), maContent(rContent), maParentPos(aParentPos),
354 mnThick(0), mnDirection(nDir), mnHdFtIndex(nHdFtIndex) {}
367 sal_uInt32 nLen)
const = 0;
373 const Point& rNdTopLeft );
374 int size() {
return maDrawObjs.size(); };
388 sal_uInt32 nLen)
const override;
401 sal_uInt32 nLen)
const override;
618 return m_aFontHelper.
GetId(rFont);
623 m_aFontHelper.
GetId(rFont);
629 return static_cast<const T&
>(
GetItem(sal_uInt16(nWhich)));
640 void OutputItemSet(
const SfxItemSet& rSet,
bool bPapFormat,
bool bChpFormat, sal_uInt16 nScript,
bool bExportParentItemSet );
665 OUString
const& rListId,
670 sal_uInt16 nLevelNum,
671 sal_uInt16 nStartAt);
722 void OutputFormat(
const SwFormat& rFormat,
bool bPapFormat,
bool bChpFormat,
bool bFlyFormat =
false );
771 OUString& rFontName )
const;
792 virtual void WriteFormData( const ::sw::mark::IFieldmark& rFieldmark ) = 0;
795 virtual void DoComboBox(
const OUString &rName,
796 const OUString &rHelp,
797 const OUString &ToolTip,
798 const OUString &rSelected,
799 const css::uno::Sequence<OUString> &rListItems) = 0;
879 bool NearestBookmark( sal_Int32& rNearest,
const sal_Int32 nCurrentPos,
bool bNextPositionOnly );
888 void NearestAnnotationMark( sal_Int32& rNearest,
const sal_Int32 nCurrentPos,
bool bNextPositionOnly );
936 SwWW8Writer(
const OUString& rFltName,
const OUString& rBaseURL);
951 rtl_TextEncoding eCodeSet);
965 bool bAddZero, rtl_TextEncoding eCodeSet);
986 std::unique_ptr<ww::bytes>
pO;
993 std::unique_ptr<WW8_WrPlcFootnoteEdn>
pEdn;
994 std::unique_ptr<WW8_WrPlcSepx>
pSepx;
1034 void DoComboBox(css::uno::Reference<css::beans::XPropertySet>
const & xPropSet);
1086 sal_Int32& rlcbSttbf);
1093 void OutSwString(
const OUString&, sal_Int32 nStt, sal_Int32 nLen);
1100 { pO->insert( pO->end(), pBytes, pBytes+nSiz ); }
1112 sal_uInt16 nDist, sal_uInt16 nSprmNo, sal_uInt16 nSprmNoVer9,
1121 sal_uInt16 nDist,
bool bShadow);
1153 SwDoc& rDocument, std::shared_ptr<SwUnoCursor> & pCurrentPam,
SwPaM* pOriginalPam,
1157 virtual void DoComboBox(
const OUString &rName,
1158 const OUString &rHelp,
1159 const OUString &ToolTip,
1160 const OUString &rSelected,
1161 const css::uno::Sequence<OUString> &rListItems)
override;
1168 virtual void WriteFormData( const ::sw::mark::IFieldmark& rFieldmark )
override;
1169 virtual void WriteHyperlinkData( const ::sw::mark::IFieldmark& rFieldmark )
override;
1222 sal_Int32& rTextCnt,
WW8_FC& rRefStt, sal_Int32& rRefCnt )
const;
1224 virtual const std::vector<sal_uInt32>*
GetShapeIdArr()
const;
1284 virtual const std::vector<sal_uInt32>*
GetShapeIdArr()
const override;
1298 std::vector<const void*>::const_iterator it
1309 std::vector<std::unique_ptr<WW8_WrFkp>>
m_Fkps;
1336 sal_uInt16
Count()
const {
return aPos.size(); }
1357 :
WW8_WrPlc1( nStructSz ), nTextTyp( nTTyp ), nResults(0)
1384 : maFly(rFly), mnPos(0), mnWid(nWid), mnHei(nHei)
1390 (mnWid == rIn.
mnWid) && (mnHei == rIn.
mnHei) &&
1407 sal_uInt16 mm, sal_uInt16 nWidth, sal_uInt16 nHeight,
1411 const ww8::Frame &rFly, sal_uInt16 nWidth, sal_uInt16 nHeight);
1423 {
return (mnIdx < maDetails.size()) ? maDetails[mnIdx++].mnPos : 0; }
1472 void OutParaAttr(
bool bCharAttr,
const std::set<sal_uInt16>* pWhichsToIgnore =
nullptr);
1479 void OutAttr( sal_Int32 nSwPos );
1538 void OutAttr( sal_Int32 nSwPos,
bool bWriteCombinedChars );
1551 OUString
GetSnippet(
const OUString &rStr, sal_Int32 nCurrentPos,
1552 sal_Int32 nLen)
const;
1558 void SplitRun( sal_Int32 nSplitEndPos );
1587 void GetStyleData(
SwFormat* pFormat,
bool& bFormatColl, sal_uInt16& nBase, sal_uInt16& nNext );
1617 OString
const &
GetStyleId(sal_uInt16 nId)
const;
1625 #define MSWORD_MAX_STYLES_LIMIT 4091
1645 #endif // INCLUDED_SW_SOURCE_FILTER_WW8_WRTWW8_HXX
std::map< wwFont, sal_uInt16 > maFonts
Keep track of fonts that need to be exported.
std::shared_ptr< NfKeywordTable > m_pKeyMap
o3tl::sorted_vector< const SwRedlineData * > maProcessedRedlines
bool WriteGenericText(WW8Export &rWrt, sal_uInt8 nTTyp, WW8_CP &rCount)
std::map< size_t, std::map< size_t, size_t > > m_ListLevelOverrides
Map of maps for list levels overrides listid -> level number -> restart value.
sal_uInt16 CurrentNumberOfColumns(const SwDoc &rDoc) const
Number of columns based on the most recent WW8_SepInfo.
virtual void WriteCR(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner=ww8::WW8TableNodeInfoInner::Pointer_t())=0
Starts a section of nodes in the document model.
virtual void RegisterWithFib(WW8Fib &rFib, sal_uInt32 nStart, sal_uInt32 nLen) const override
OUString GetSnippet(const OUString &rStr, sal_Int32 nCurrentPos, sal_Int32 nLen) const
RedlineFlags m_nOrigRedlineFlags
Remember the original redline mode.
static sal_uInt16 GetWWId(const SwFormat &rFormat)
static void InsUInt32(ww::bytes &rO, sal_uInt32 n)
Exporter of the binary Word file formats.
ErrCode WriteStorageImpl()
void OutAttr(sal_Int32 nSwPos)
MSWordExportBase(SwDoc &rDocument, std::shared_ptr< SwUnoCursor > &pCurrentPam, SwPaM *pOriginalPam)
static void Out_BorderLine(ww::bytes &rO, const ::editeng::SvxBorderLine *pLine, sal_uInt16 nDist, sal_uInt16 nSprmNo, sal_uInt16 nSprmNoVer9, bool bShadow)
Gets passed a WW8Bytes*, so the function also can be used for the table border.
virtual AttributeOutputBase & AttrOutput() const =0
Access to the attribute output class.
virtual void OutputOLENode(const SwOLENode &)=0
Output SwOLENode.
WW8_WrPlcSubDoc & operator=(const WW8_WrPlcSubDoc &)=delete
virtual void SectionBreaksAndFrames(const SwTextNode &rNode)=0
void SetHdFtIndex(unsigned int nHdFtIndex)
sal_Int32 WhereNext() const
const SwFormat * GetSwFormat(sal_uInt16 nId) const
const sw::BroadcastingModify * m_pOutFormatNode
WW8_WrPlcField(sal_uInt16 nStructSz, sal_uInt8 nTTyp)
void WriteProperties(const SwFormat *pFormat, bool bPap, sal_uInt16 nPos, bool bInsDefCharSiz)
Outputs attributes of one style.
WW8_WrPlcAnnotations & operator=(WW8_WrPlcAnnotations const &)=delete
Class to collect and output the sections/headers/footers.
virtual void AppendSmartTags(SwTextNode &)
std::unique_ptr< ww::bytes > pO
Buffer.
void GetCurrentItems(ww::bytes &rItems) const
std::unique_ptr< SvxMSExportOLEObjects > m_pOLEExp
MSWordSections & operator=(const MSWordSections &)
bool m_bLinkedTextboxesHelperInitialized
Represents the style of a paragraph.
sal_uInt16 AddRedlineAuthor(std::size_t nId)
unsigned int GetHdFtIndex() const
virtual ~SwWW8Writer() override
The class that has handlers for various resource types when exporting as DOCX.
virtual sal_uLong ReplaceCr(sal_uInt8 nChar) override
ReplaceCr() is used for Pagebreaks and Pagedescs.
void AddRangeStartPosition(const OUString &rName, WW8_CP nStartCp, bool bIgnoreEmpty)
void OutSwString(const OUString &, sal_Int32 nStt, sal_Int32 nLen)
MainTextPlcDrawObj & operator=(const MainTextPlcDrawObj &)=delete
void MoveFieldMarks(WW8_CP nFrom, WW8_CP nTo)
WW8_WrPlcTextBoxes & operator=(WW8_WrPlcTextBoxes const &)=delete
WW8_WrMagicTable & operator=(const WW8_WrMagicTable &)=delete
void OutEEField(const SfxPoolItem &rHt)
std::unique_ptr< WW8_WrPlcField > m_pFieldHFTextBxs
std::unique_ptr< WW8Fib > pFib
File Information Block.
virtual AttributeOutputBase & AttrOutput() const override
memory leak #i120098#, to hold the reference to unnamed SotStorage obj
sal_uInt32 GetSdrOrdNum(const SwFrameFormat &rFormat) const
const SfxPoolItem & GetItem(sal_uInt16 nWhich) const
std::unique_ptr< WW8_WrPlcField > m_pFieldHdFt
Pagedescriptor Client of SwPageDesc that is "described" by the attribute.
void SetStyleDefaults(const SwFormat &rFormat, bool bPap)
FKP - Formatted disK Page.
void WriteStringAsPara(const OUString &rText)
const ww8::Frame * pOldFlyFormat
rtl_TextEncoding GetNodeCharSet() const
RndStdIds m_eNewAnchorType
bool m_bSubstituteBullets
bool HasRange() const
An annotation has a range if start != end or the m_bIgnoreEmpty flag is cleared.
void OutputStyle(SwFormat *pFormat, sal_uInt16 nPos)
Outputs one style - called (in a loop) from OutputStylesTable().
SvStream & WriteInt32(sal_Int32 nInt32)
sal_uInt16 GetId(const SwTextFormatColl &rColl) const
Return the numeric id of the style.
bool m_bFootnoteAtTextEnd
const SwFormatDrop & mrSwFormatDrop
sal_uInt16 GetId(const SvxFontItem &rFont)
Return the numeric id of the font (and add it to the font list if needed)
virtual void OutputEndNode(const SwEndNode &)
Output SwEndNode.
virtual void AppendBookmarks(const SwTextNode &rNd, sal_Int32 nCurrentPos, sal_Int32 nLen) override
static void WriteString_xstz(SvStream &rStrm, const OUString &rStr, bool bAddZero)
virtual bool FieldsQuoted() const =0
Determines if the import filter already quoted fields or not.
const SfxItemPool * pEditPool
std::vector< const SwTOXType * > m_aTOXArr
void OutParaAttr(bool bCharAttr, const std::set< sal_uInt16 > *pWhichsToIgnore=nullptr)
static sal_uLong GetSectionLineNo(const SfxItemSet *pSet, const SwNode &rNd)
Line number of the section start.
void OutputStylesTable()
Output the styles table.
void AddListLevelOverride(sal_uInt16 nListId, sal_uInt16 nLevelNum, sal_uInt16 nStartAt)
Store list level overrides (restart of list)
void SetShapeDetails(sal_uInt32 nId, sal_Int32 nThick)
bool DocumentIsProtected() const
const SwRedlineData * GetParagraphLevelRedline()
std::vector< sal_uInt8 > bytes
std::vector< const SwFrameFormat * > aSpareFormats
std::unique_ptr< WW8_WrPlcField > m_pFieldMain
void WriteAsStringTable(const std::vector< OUString > &, sal_Int32 &rfcSttbf, sal_Int32 &rlcbSttbf)
virtual void SaveData(sal_uLong nStt, sal_uLong nEnd)
Remember some of the members so that we can recurse in WriteText().
virtual ErrCode ExportDocument_Impl()=0
Format-dependent part of the actual export.
void WriteFontTable(SvStream *pTableStream, WW8Fib &pFib)
const SwAttrSet * m_pStyAttr
Base class of all fields.
static void WritePICBulletFHeader(SvStream &rStrm, const Graphic &rGrf, sal_uInt16 mm, sal_uInt16 nWidth, sal_uInt16 nHeight)
rtl_TextEncoding meChrSet
SwWW8Writer & operator=(const SwWW8Writer &)=delete
void SetCharSet(const EECharAttrib &rTextAttr, bool bStart)
bool MiserableFormFieldExportHack(const SwFrameFormat &rFrameFormat)
void WritePlcHdd(WW8Export &rWrt) const
void WriteFootnoteEndText(WW8Export &rWrt, sal_uLong nCpStt)
bool bOldWriteAll
WW8Export only.
bool m_bOutPageDescs
PageDescs (section properties) are being written.
const EditTextObject * pEditObj
virtual void OutputLinkedOLE(const OUString &)=0
virtual bool FieldsQuoted() const override
Determines if the import filter already quoted fields or not.
virtual bool CollapseScriptsforWordOk(sal_uInt16 nScript, sal_uInt16 nWhich)=0
Guess the script (asian/western).
std::stack< sal_Int32 > m_aCurrentCharPropStarts
To remember the position in a run.
virtual WW8_CP GetCpOffset(const WW8Fib &rFib) const override
sal_uInt16 BuildGetSlot(const SwNumRule &)
void WriteRtf(const RtfAttributeOutput *rAttrOutput) const
bool NeedSectionBreak(const SwNode &rNd) const
sal_uInt16 m_nCharFormatStart
WW8_WrPlcTextBoxes(sal_uInt8 nTTyp)
virtual void WriteNumbering() override
Output the numbering table.
std::shared_ptr< SwUnoCursor > pOldPam
static void WriteString8(SvStream &rStrm, std::u16string_view rStr, bool bAddZero, rtl_TextEncoding eCodeSet)
virtual void RegisterWithFib(WW8Fib &rFib, sal_uInt32 nStart, sal_uInt32 nLen) const =0
Content, content of frame (header, footer, fly).
Structure that is used to save some of the WW8Export/DocxExport data.
sal_uInt16 m_nStyleBeforeFly
style number of the node
OUString const & GetFamilyName() const
void ExportDopTypography(WW8DopTypography &rTypo)
sal_Int32 m_nLinkedTextboxesChainId
WW8_CP Fc2Cp(sal_uLong nFc) const
void BuildStyleIds()
Based on pFormatA, fill in m_aStyleIds with unique, MS-like names.
std::unique_ptr< WW8_WrPlcField > m_pFieldTextBxs
MSWordStyles(const MSWordStyles &)=delete
static sal_uLong FillUntil(SvStream &rStrm, sal_uLong nEndPos=0)
void OutputItemSet(const SfxItemSet &rSet, bool bPapFormat, bool bChpFormat, sal_uInt16 nScript, bool bExportParentItemSet)
Use OutputItem() on an item set according to the parameters.
void AppendFlyInFlys(const ww8::Frame &rFrameFormat, const Point &rNdTopLeft)
DrawObjVector & GetObjArr()
virtual const std::vector< sal_uInt32 > * GetShapeIdArr() const
Used to export formatted text associated to drawings.
friend bool operator<(const wwFont &r1, const wwFont &r2)
virtual void AppendSmartTags(SwTextNode &rTextNode) override
virtual bool HeaderFooterWritten() override
std::vector< const wwFont * > AsVector() const
Convert from fast insertion map to linear vector in the order that we want to write.
void Write(WW8Export &rExport)
std::map< const css::embed::XEmbeddedObject *, sal_Int32 > WW8OleMap
const SwNumRule * GetSwNumRule(sal_uInt16 nId) const
Get numbering rule of the nId-th style.
::std::optional< sal_uInt16 > oPgRestartNo
const SfxItemSet * GetCurItemSet() const
Getter for pISet.
std::unique_ptr< SwMSConvertControls > m_pOCXExp
void WritePc(WW8Export &rWrt)
rtl_TextEncoding meChrSet
virtual const SfxPoolItem * HasTextItem(sal_uInt16 nWhich) const override
std::unique_ptr< WW8_WrPlcField > m_pFieldEdn
OUString FieldString(ww::eField eIndex)
WW8_CP Fc2Cp(sal_uLong nFc) const
virtual ExportFormat GetExportFormat() const =0
std::shared_ptr< SvxBrushItem > TrueFrameBgBrush(const SwFrameFormat &rFlyFormat) const
std::unique_ptr< WW8_WrPlcField > m_pFieldAtn
OString const & GetStyleId(sal_uInt16 nId) const
Get styleId of the nId-th style (nId is its position in pFormatA).
IDocumentSettingAccess & getIDocumentSettingAccess()
virtual WW8_CP GetCpOffset(const WW8Fib &) const override
IMarkVector m_rSortedAnnotationMarksEnd
static void SetHeaderFlag(sal_uInt8 &rHeadFootFlags, const SwFormat &rFormat, sal_uInt8 nFlag)
WW8_WrPlcAnnotations * m_pAtn
std::vector< sal_uInt32 > aShapeIds
bool GetNumberFormat(const SwField &rField, OUString &rStr)
sal_Int32 WhereNext() const
sal_uInt16 GetScript() const
void SectionProperties(const WW8_SepInfo &rSectionInfo, WW8_PdAttrDesc *pA=nullptr)
Write section properties.
static void WritePICFHeader(SvStream &rStrm, const ww8::Frame &rFly, sal_uInt16 mm, sal_uInt16 nWidth, sal_uInt16 nHeight, const SwAttrSet *pAttrSet=nullptr)
void AddLinkTarget(const OUString &rURL)
void WriteText()
Iterate through the nodes and call the appropriate OutputNode() on them.
std::vector< WW8_SepInfo > aSects
virtual ExportFormat GetExportFormat() const override
WW8_WrPlcField(const WW8_WrPlcField &)=delete
std::unique_ptr< WW8_WrPlcField > m_pFieldFootnote
virtual void OutputOLENode(const SwOLENode &) override
Output SwOLENode.
virtual ErrCode WriteMedium(SfxMedium &) override
WW8_WrPlcSepx & operator=(const WW8_WrPlcSepx &)=delete
void WritePlc(WW8Export &rWrt) const
virtual void OutputField(const SwField *pField, ww::eField eFieldType, const OUString &rFieldCmd, FieldFlags nMode=FieldFlags::All) override
Write the field.
virtual void AppendBookmarks(const SwTextNode &rNd, sal_Int32 nCurrentPos, sal_Int32 nLen)=0
SwWW8AttrIter(const SwWW8AttrIter &)=delete
MSWordExportBase & m_rExport
std::map< OUString, LinkedTextboxInfo > m_aLinkedTextboxesHelper
Class to collect and output the styles table.
const SwFrameFormat * m_pFirstPageFormat
void OutputFormat(const SwFormat &rFormat, bool bPapFormat, bool bChpFormat, bool bFlyFormat=false)
Output attributes.
The class that has handlers for various resource types when exporting as RTF.
std::shared_ptr< SwUnoCursor > & m_pCurPam
void WritePlc(WW8Export &rWrt) const
WW8Export & rWrt
for access to the variables
std::vector< WW8_CP > aPos
const SvxBrushItem * GetCurrentPageBgBrush() const
MSWordAttrIter * m_pChpIter
sal_Int32 SearchNext(sal_Int32 nStartPos)
std::vector< DrawObj > DrawObjVector
bool Append(WW8Export const &, WW8_CP nCp, const ww8::Frame &rFormat, const Point &rNdTopLeft)
void Append(WW8_CP nCp, const SwPostItField *pPostIt)
WW8_WrPlc1(const WW8_WrPlc1 &)=delete
void WritePostItBegin(ww::bytes *pO=nullptr)
const SwTextNode * m_pTopNodeOfHdFtPage
Top node of host page when in hd/ft.
void Finish(sal_uLong nLastCp, sal_uLong nStartCp)
bool SetCurrentPageDescFromNode(const SwNode &rNd)
void OutGrf(const ww8::Frame &rFrame)
void Write(SvStream *pTableStram) const
MainTextPlcDrawObj * m_pSdrObjs
static WW8_BRCVer9 TranslateBorderLine(const ::editeng::SvxBorderLine &pLine, sal_uInt16 nDist, bool bShadow)
void WriteChar(sal_Unicode c) override
std::map< sal_uInt16, const SwNumRule * > m_aNumRules
Slot <-> List style map.
bool IsNewRedlineComment(const SwRedlineData *pRedLine)
virtual void AppendAnnotationMarks(const SwWW8AttrIter &rAttrs, sal_Int32 nCurrentPos, sal_Int32 nLen) override
WW8_WrPlcTextBoxes * m_pTextBxs
static void UpdateTocSectionNodeProperties(const SwSectionNode &rSectionNode)
void handleToggleProperty(SfxItemSet &rExportSet, const SwFormatCharFormat *pCharFormatItem, sal_uInt16 nWhich, const SfxPoolItem *pValue)
void WriteGraphicNode(SvStream &rStrm, const GraphicDetails &rItem)
ww8::WW8TableInfo::Pointer_t m_pTableInfo
bool FormatHdFtContainsChapterField(const SwFrameFormat &rFormat) const
MSWordStyles & operator=(const MSWordStyles &)=delete
bool m_bHeaderFooterWritten
rtl_TextEncoding GetCharSet() const
Collects and outputs fonts.
std::map< size_t, std::pair< size_t, size_t > > m_OverridingNums
overriding numdef index -> (existing numdef index, abstractnumdef index)
virtual void SetupSectionPositions(WW8_PdAttrDesc *)
Setup the pA's info.
sal_uInt16 DuplicateAbsNum(OUString const &rListId, SwNumRule const &rAbstractRule)
check if a new abstractNum is needed for this list
SvxFrameDirection mnDirection
virtual void ExportGrfBullet(const SwTextNode &rNd) override
virtual void DoFormText(const SwInputField *pField)=0
void Append(WW8_CP nCp, sal_uLong nData)
void GetSortedAnnotationMarks(const SwWW8AttrIter &rAttrs, sal_Int32 nCurrentPos, sal_Int32 nLen)
sal_uInt16 m_nFormatCollStart
void Write(WW8Export &rWrt)
void Write(WW8Export &rWrt)
SwMSConvertControls & GetOCXExp()
static void WriteString16(SvStream &rStrm, const OUString &rStr, bool bAddZero)
void OutGrfBullets(const ww8::Frame &rFrame)
sal_uInt8 * CopyLastSprms(sal_uInt8 &rLen)
int CollectGrfsOfBullets()
Populates m_vecBulletPic with all the bullet graphics used by numberings.
void GetId(const wwFont &rFont)
std::unique_ptr< ww::bytes > pOOld
WW8Export only.
virtual sal_uLong ReplaceCr(sal_uInt8 nChar)=0
std::vector< GraphicDetails > maDetails
virtual void SetupSectionPositions(WW8_PdAttrDesc *pA) override
Setup the pA's info.
PaM is Point and Mark: a selection of the document model.
virtual bool PreferPageBreakBefore() const override
If saving page break is preferred as a paragraph attribute (yes) or as a special character (no)...
const SwTextNode * GetHdFtPageRoot() const
Top node of host page when in header/footer.
virtual void DoComboBox(const OUString &rName, const OUString &rHelp, const OUString &ToolTip, const OUString &rSelected, const css::uno::Sequence< OUString > &rListItems)=0
WW8_WrPlc1 & operator=(const WW8_WrPlc1 &)=delete
virtual ~MSWordSections()
std::unique_ptr< WW8_WrPlcPn > m_pPapPlc
SwNumRule * DuplicateNumRuleImpl(const SwNumRule *pRule)
In case of numbering restart.
std::shared_ptr< WW8TableInfo > Pointer_t
virtual ~WW8_WrPlcSubDoc()
void OutputSectionNode(const SwSectionNode &)
Output SwSectionNode.
const OutlinerParaObject * mpRichText
SwWW8AttrIter & operator=(const SwWW8AttrIter &)=delete
sal_Int32 GetNextPos(SwWW8AttrIter const *pAttrIter, const SwTextNode &rNode, sal_Int32 nCurrentPos)
Get the next position in the text node to output.
void SplitRun(sal_Int32 nSplitEndPos)
virtual void RestoreData()
Restore what was saved in SaveData().
virtual ~MSWordAttrIter()
void WritePlcSed(WW8Export &rWrt) const
void SetCurItemSet(const SfxItemSet *pS)
Setter for pISet.
tools::SvRef< SotStorage > xEscherStg
const SwSectionFormat * pSectionFormat
std::map< sal_uInt16, const SfxPoolItem *, sw::util::ItemSort > PoolItems
STL container of SfxPoolItems (Attributes)
void BuildStylesTable()
Create the style table, called from the constructor.
static sal_uInt16 NumberOfColumns(const SwDoc &rDoc, const WW8_SepInfo &rInfo)
Number of columns of the provided WW8_SepInfo.
std::vector< Frame >::iterator FrameIter
STL iterator for Frames.
std::unique_ptr< WW8_WrPlcSepx > pSepx
Sections/headers/footers.
void SubstituteBullet(OUString &rNumStr, rtl_TextEncoding &rChrSet, OUString &rFontName) const
WW8_WrPlcField & operator=(const WW8_WrPlcField &)=delete
std::vector< WW8_CP > aCps
SwWW8WrGrf(const SwWW8WrGrf &)=delete
MSWordExportBase & operator=(const MSWordExportBase &)=delete
void NearestAnnotationMark(sal_Int32 &rNearest, const sal_Int32 nCurrentPos, bool bNextPositionOnly)
Find the nearest annotation mark from the current position.
void UpdatePosition(SwWW8AttrIter *pAttrIter, sal_Int32 nCurrentPos)
Update the information for GetNextPos().
WW8_WrPlcSepx(const WW8_WrPlcSepx &)=delete
For the output of sections.
virtual const SfxPoolItem * HasTextItem(sal_uInt16 nWhich) const override
virtual void WriteNumbering()=0
Output the numbering table.
sal_uInt16 m_nUniqueList
current number for creating unique list names
FlyProcessingState OutFlys(sal_Int32 nSwPos)
void WriteDocx(DocxAttributeOutput *rAttrOutput) const
virtual bool DisallowInheritingOutlineNumbering(const SwFormat &rFormat)=0
Return value indicates if an inherited outline numbering is suppressed.
void CheckForFacinPg(const WW8Export &rWrt) const
WW8_WrPct(WW8_FC nStartFc)
std::unique_ptr< WW8Dop > pDop
Document Properties.
virtual void OutputTextNode(SwTextNode &)
Output SwTextNode.
bool m_bFirstTOCNodeWithSection
sw::util::CharRuns maCharRuns
void EndCommentOutput(std::u16string_view rName)
void OutputContentNode(SwContentNode &)
Call the right (virtual) function according to the type of the item.
std::unique_ptr< WW8_WrPlc0 > pTextPos
virtual void ExportGrfBullet(const SwTextNode &rNd)=0
bool mbDocumentIsProtected
sal_uInt16 GetPos(const void *p) const
std::vector< rtl_TextEncoding > aChrSetArr
virtual void RegisterWithFib(WW8Fib &rFib, sal_uInt32 nStart, sal_uInt32 nLen) const override
void WriteGrfFromGrfNode(SvStream &rStrm, const SwGrfNode &rNd, const ww8::Frame &rFly, sal_uInt16 nWidth, sal_uInt16 nHeight)
bool WriteText(WW8Export &rWrt)
vector_type::size_type size_type
static void WriteShort(SvStream &rStrm, sal_Int16 nVal)
virtual bool PreferPageBreakBefore() const =0
If saving page break is preferred as a paragraph attribute (yes) or as a special character (no)...
std::unique_ptr< SwFormat *[]> m_pFormatA
Slot <-> Character and paragraph style array (0 for list styles).
int GetGrfIndex(const SvxBrushItem &rBrush)
Returns the index of a picture bullet, used in numberings.
const ww8::Frame * m_pParentFrame
std::vector< const void * > aContent
static sal_uInt8 GetNumId(sal_uInt16 eNumType)
Converts the SVX numbering type to MSONFC.
The writer class that gets called for the WW8 filter.
rtl_TextEncoding eNdChrSet
const WW8_SepInfo * CurrentSectionInfo()
The most recent WW8_SepInfo.
void AppendBookmarkEndWithCorrection(const OUString &rName)
bool HasRefToAttr(const OUString &rName)
Find the reference.
const SwRedlineData * GetRunLevelRedline(sal_Int32 nPos)
void MiserableRTLFrameFormatHack(SwTwips &rLeft, SwTwips &rRight, const ww8::Frame &rFrameFormat)
Nasty swap for bidi if necessary.
void DoComboBox(css::uno::Reference< css::beans::XPropertySet > const &xPropSet)
SvxFrameDirection GetDefaultFrameDirection() const
bool RefersToSameFrameAs(const Frame &rOther) const
Does this ww8::Frame refer to the same writer content as another.
void InsInt16(sal_Int16 n)
virtual bool HeaderFooterWritten()
virtual void OutputField(const SwField *pField, ww::eField eFieldType, const OUString &rFieldCmd, FieldFlags nMode=FieldFlags::All)=0
Write the field.
void AppendSep(WW8_CP nStartCp, const SwPageDesc *pPd, const SwSectionFormat *pSectionFormat, sal_uLong nLnNumRestartNo)
virtual bool AddSectionBreaksForTOX() const override
Determines the Section Breaks are to be added for TOX Section.
std::vector< sal_uLong > m_aChapterFieldLocs
std::vector< OString > m_aStyleIds
We need to build style id's for DOCX export; ideally we should roundtrip that, but this is good enoug...
sal_uLong nLnNumRestartNo
virtual void WriteCR(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner=ww8::WW8TableNodeInfoInner::Pointer_t()) override
HdFtPlcDrawObj & operator=(const HdFtPlcDrawObj &)=delete
WW8_SepInfo(const SwPageDesc *pPD, const SwSectionFormat *pFormat, sal_uLong nLnRestart,::std::optional< sal_uInt16 > oPgRestart=std::nullopt, const SwNode *pNd=nullptr, bool bIsFirstPara=false)
SwWW8Writer & GetWriter() const
sal_Int16 GetWordFirstLineOffset(const SwNumFormat &rFormat)
wwFont(const OUString &rFamilyName, FontPitch ePitch, FontFamily eFamily, rtl_TextEncoding eChrSet)
MSWord_SdrAttrIter & operator=(const MSWord_SdrAttrIter &)=delete
static void SetFooterFlag(sal_uInt8 &rHeadFootFlags, const SwFormat &rFormat, sal_uInt8 nFlag)
WW8_WrPlcTextBoxes(const WW8_WrPlcTextBoxes &)=delete
static void CorrectTabStopInSet(SfxItemSet &rSet, sal_Int32 nAbsLeft)
bool m_bListStyles
If list styles are requested to be exported as well.
virtual bool AddSectionBreaksForTOX() const =0
Determines the Section Breaks are to be added for TOX Section.
void WriteGenericPlc(WW8Export &rWrt, sal_uInt8 nTTyp, WW8_FC &rTextStt, sal_Int32 &rTextCnt, WW8_FC &rRefStt, sal_Int32 &rRefCnt) const
virtual void SectionBreaksAndFrames(const SwTextNode &rNode) override
void OutputSectionBreaks(const SfxItemSet *pSet, const SwNode &rNd, bool isCellOpen=false)
Start new section.
MSWordExportBase & m_rExport
std::vector< std::unique_ptr< WW8_WrFkp > > m_Fkps
bool WriteText(WW8Export &rWrt)
void InsUInt16(sal_uInt16 n)
unsigned int m_nHdFtIndex
void Out_CellRangeBorders(const SvxBoxItem *pBox, sal_uInt8 nStart, sal_uInt8 nLimit)
virtual void OutputGrfNode(const SwGrfNode &)=0
Output SwGrfNode.
static bool HasBorderItem(const SwFormat &rFormat)
Should we output borders?
const SwRangeRedline * pCurRedline
void SetHdFtPageRoot(const SwTextNode *pNd)
Top node of host page when in header/footer.
void InsUInt32(sal_uInt32 n)
HdFtPlcDrawObj * m_pHFSdrObjs
void OutHeaderFooter(WW8Export &rWrt, bool bHeader, const SwFormat &rFormat, sal_uLong &rCpPos, sal_uInt8 nHFFlags, sal_uInt8 nFlag, sal_uInt8 nBreakCode)
IMarkVector m_rSortedAnnotationMarksStart
void SetCurPam(sal_uLong nStt, sal_uLong nEnd)
bool m_bOrigShowChanges
Remember the original Show Changes mode.
void GetSortedBookmarks(const SwTextNode &rNd, sal_Int32 nCurrentPos, sal_Int32 nLen)
virtual const SfxPoolItem & GetItem(sal_uInt16 nWhich) const =0
const NfKeywordTable & GetNfKeywordTable()
static OString CreateStyleId(const OUString &rName)
create style id using only ASCII characters of the style name
SwWW8Writer * m_pWriter
Pointer to the writer.
std::vector< std::shared_ptr< WW8_PdAttrDesc > > m_SectionAttributes
virtual ~WW8_WrPlcAnnotations() override
virtual ErrCode ExportDocument_Impl() override
Format-dependent part of the actual export.
void setCvBack(sal_uInt32 cvBack)
WW8_WrPlcTextBoxes * m_pHFTextBxs
virtual MSWordSections & Sections() const override
Access to the sections/headers/footres.
void WriteHeaderFooterText(const SwFormat &rFormat, bool bHeader)
Write header/footer text.
virtual bool CollapseScriptsforWordOk(sal_uInt16 nScript, sal_uInt16 nWhich) override
Guess the script (asian/western).
virtual void OutputGrfNode(const SwGrfNode &) override
Output SwGrfNode.
DrawObj(const ww8::Frame &rContent, WW8_CP nCp, Point aParentPos, SvxFrameDirection nDir, unsigned int nHdFtIndex)
void GatherChapterFields()
Setup the chapter fields (maChapterFieldLocs).
void Out_SwFormatBox(const SvxBoxItem &rBox, bool bShadow)
is for all boxes except in tables.
void AppendSection(const SwPageDesc *pPd, const SwSectionFormat *pSectionFormat, sal_uLong nLnNumRestartNo, bool bIsFirstParagraph=false)
void NeedsDocumentProtected(const WW8_SepInfo &rInfo)
bool ContentContainsChapterField(const SwFormatContent &rContent) const
sal_uInt16 GetNumberingId(const SwNumRule &rNumRule)
Return the numeric id of the numbering rule.
GraphicDetails(const ww8::Frame &rFly, sal_uInt16 nWid, sal_uInt16 nHei)
virtual const std::vector< sal_uInt32 > * GetShapeIdArr() const override
void Finish(WW8_CP nEndCp)
void OutSwFormatRefMark(const SwFormatRefMark &rAttr)
sal_uInt16 BuildGetSlot(const SwFormat &rFormat)
Get slot number during building the style table.
SwTextNode is a paragraph in the document model.
virtual void WriteHyperlinkData(const ::sw::mark::IFieldmark &rFieldmark) override
virtual MSWordSections & Sections() const =0
Access to the sections/headers/footres.
SwWW8WrGrf(WW8Export &rW)
OUString BookmarkToWord(const OUString &rBookmark)
void Append(const SdrObject &rObj, sal_uInt32 nShapeId)
void OutputStartNode(const SwStartNode &)
Output SwStartNode.
IMarkVector m_rSortedBookmarksEnd
const SwPageDesc * m_pCurrentPageDesc
virtual ~WW8Export() override
const SwPageDesc * pPageDesc
void Append(WW8_CP nCp, const void *pData)
std::unique_ptr< SwNumRuleTable > m_pUsedNumTable
bool HasFlysAt(sal_Int32 nSwPos) const
virtual const SfxPoolItem & GetItem(sal_uInt16 nWhich) const override
const T & GetItem(TypedWhichId< T > nWhich) const
sal_uInt16 m_nLastFormatId
Style of last TextNode in normal range.
virtual void PrepareNewPageDesc(const SfxItemSet *pSet, const SwNode &rNd, const SwFormatPageDesc *pNewPgDescFormat, const SwPageDesc *pNewPgDesc) override
Helper method for OutputSectionBreaks() and OutputFollowPageDesc().
virtual ErrCode Write(SwPaM &, const css::uno::Reference< css::embed::XStorage > &, const OUString *, SfxMedium *=nullptr) override
FlyProcessingState
enum to state the present state of the fly
Make exporting a Writer Frame easy.
std::unique_ptr< SwWW8WrGrf > m_pGrf
bool IsDropCap(int nSwPos)
WW8Export(SwWW8Writer *pWriter, SwDoc &rDocument, std::shared_ptr< SwUnoCursor > &pCurrentPam, SwPaM *pOriginalPam, bool bDot)
Setup the exporter.
sal_uInt16 m_aHeadingParagraphStyles[MAXLEVEL]
sal_uInt16 GetHeadingParagraphStyleId(sal_uInt16 nLevel) const
void GetStyleData(SwFormat *pFormat, bool &bFormatColl, sal_uInt16 &nBase, sal_uInt16 &nNext)
Return information about one style.
bool IncludeEndOfParaCRInRedlineProperties(sal_Int32 nPos) const
void WriteSpecialText(sal_uLong nStart, sal_uLong nEnd, sal_uInt8 nTTyp)
Set the pCurPam appropriately and call WriteText().
virtual void Write(Writer &rWrt) override
void OutSprmBytes(sal_uInt8 *pBytes, sal_uInt16 nSiz)
const o3tl::enumarray< SvxAdjust, unsigned short > aSvxToUnoAdjust USHRT_MAX
bool IsTextAttr(sal_Int32 nSwPos)
std::vector< EECharAttrib > aTextAtrArr
virtual void AppendAnnotationMarks(const SwWW8AttrIter &rAttrs, sal_Int32 nCurrentPos, sal_Int32 nLen)=0
bool bLoadAllFonts
If true, all fonts are loaded before processing the document.
virtual bool DisallowInheritingOutlineNumbering(const SwFormat &rFormat) override
Return value indicates if an inherited outline numbering is suppressed.
SvStream * pDataStrm
Streams for WW97 Export.
std::unique_ptr< WW8_WrtFactoids > m_pFactoids
bool WriteKFText(WW8Export &rWrt)
MSWord_SdrAttrIter(const MSWord_SdrAttrIter &)=delete
virtual void OutputLinkedOLE(const OUString &) override
virtual ~WW8_WrPlcSepx() override
SwWW8Writer(const OUString &rFltName, const OUString &rBaseURL)
MSWordAttrIter & operator=(const MSWordAttrIter &)=delete
SvStream & WriteInt16(sal_Int16 nInt16)
std::pair< OUString, sal_uLong > aBookmarkPair
sw::util::CharRuns::const_iterator maCharRunIter
bool m_bHideTabLeaderAndPageNumbers
void WriteFootnoteBegin(const SwFormatFootnote &rFootnote, ww::bytes *pO=nullptr)
virtual void SaveData(sal_uLong nStt, sal_uLong nEnd) override
Remember some of the members so that we can recurse in WriteText().
virtual void AppendBookmark(const OUString &rName) override
void NumberingDefinitions()
Write static data of SwNumRule - LSTF.
WW8_Annotation(const SwPostItField *pPostIt, WW8_CP nRangeStart, WW8_CP nRangeEnd)
void WriteSdrTextObj(const SdrTextObj &rObj, sal_uInt8 nTyp)
void IncrementHdFtIndex()
bool NearestBookmark(sal_Int32 &rNearest, const sal_Int32 nCurrentPos, bool bNextPositionOnly)
Find the nearest bookmark from the current position.
sal_uInt16 GetId(const SvxFontItem &rFont)
FIB - the File Information Block.
std::shared_ptr< WW8TableNodeInfoInner > Pointer_t
sal_uInt16 ResultCount() const
bool TestOleNeedsGraphic(const SwAttrSet &rSet, tools::SvRef< SotStorage > const &xOleStg, const tools::SvRef< SotStorage > &xObjStg, OUString const &rStorageName, SwOLENode *pOLENd)
void WriteSepx(SvStream &rStrm) const
std::unique_ptr< WW8_WrPlc0 > pTextPos
sal_uInt16 GetSlot(const SwFormat *pFormat) const
Get id of the style (rFormat).
virtual void AppendSection(const SwPageDesc *pPageDesc, const SwSectionFormat *pFormat, sal_uLong nLnNum) override
void AppendFkpEntry(WW8_FC nEndFc, short nVarLen=0, const sal_uInt8 *pSprms=nullptr)
sal_uInt16 OverrideNumRule(SwNumRule const &rExistingRule, OUString const &rListId, SwNumRule const &rAbstractRule)
Create a overriding numbering definition (if it does not yet exist)
bool GetBookmarks(const SwTextNode &rNd, sal_Int32 nStt, sal_Int32 nEnd, IMarkVector &rArr)
std::vector< WW8_CP > aCps
static void InsUInt16(ww::bytes &rO, sal_uInt16 n)
bool GetAnnotationMarks(const SwWW8AttrIter &rAttrs, sal_Int32 nStt, sal_Int32 nEnd, IMarkVector &rArr)
SwWW8WrGrf & operator=(const SwWW8WrGrf &)=delete
WW8_WrPlcPn & operator=(const WW8_WrPlcPn &)=delete
void InitFontTable(const SwDoc &rDoc)
rDoc used only to get the initial standard font(s) in use.
void StartCommentOutput(std::u16string_view rName)
WW8_WrPlcField * CurrentFieldPlc() const
Fields.
virtual void PrepareNewPageDesc(const SfxItemSet *pSet, const SwNode &rNd, const SwFormatPageDesc *pNewPgDescFormat, const SwPageDesc *pNewPgDesc)=0
static void InsAsString8(ww::bytes &O, std::u16string_view rStr, rtl_TextEncoding eCodeSet)
std::unique_ptr< sal_uInt8[]> pData
void Write(SvStream &rStrm)
void OutOverrideListTab()
void ExportPoolItemsToCHP(ww8::PoolItems &rItems, sal_uInt16 nScript, const SvxFontItem *pFont, bool bWriteCombChars=false)
Export the pool items to attributes (through an attribute output class).
virtual const SfxPoolItem * HasTextItem(sal_uInt16 nWhich) const =0
virtual ErrCode Write(SwPaM &, SfxMedium &, const OUString *) override
bool OutputFollowPageDesc(const SfxItemSet *pSet, const SwTextNode *pNd)
The return value indicates, if a follow page desc is written.
std::vector< const EECharAttrib * > aChrTextAtrArr
bool m_bFontSizeWritten
Is font size written already as part of the current character properties?
virtual bool ignoreAttributeForStyleDefaults(sal_uInt16) const
Used to filter out attributes that can be e.g. written to .doc but not to .docx.
bool InitStd97CodecUpdateMedium(::msfilter::MSCodec_Std97 &rCodec)
void BulletDefinitions()
Write the numbering picture bullets.
void Insert(const ww8::Frame &rFly)
WW8Export & operator=(const WW8Export &)=delete
bool HasRefToFootOrEndnote(const bool isEndNote, const sal_uInt16 nSeqNo)
const SwFormat * m_pCurrentStyle
Base class for WW8Export and DocxExport.
sal_Int32 SearchNext(sal_Int32 nStartPos)
SwRedlineTable::size_type nCurRedlinePos
bool IsExportableAttr(sal_Int32 nSwPos) const
SvxFrameDirection GetCurrentPageDirection() const
Right to left?
const SwFormatDrop & GetSwFormatDrop() const
virtual void WriteHeadersFooters(sal_uInt8 nHeadFootFlags, const SwFrameFormat &rFormat, const SwFrameFormat &rLeftFormat, const SwFrameFormat &rFirstPageFormat, sal_uInt8 nBreakCode)=0
Output the actual headers and footers.
Ends a section of nodes in the document model.
static OUString GetBookmarkName(sal_uInt16 nTyp, const OUString *pName, sal_uInt16 nSeqNo)
Find the bookmark name.
virtual void WriteHeadersFooters(sal_uInt8 nHeadFootFlags, const SwFrameFormat &rFormat, const SwFrameFormat &rLeftFormat, const SwFrameFormat &rFirstPageFormat, sal_uInt8 nBreakCode) override
Output the actual headers and footers.
const SfxItemSet * m_pISet
o3tl::sorted_vector< sal_Int32 > SwSoftPageBreakList
const SwTextNode & GetNode() const
std::vector< CharRunEntry > CharRuns
void WriteOutliner(const OutlinerParaObject &rOutliner, sal_uInt8 nTyp)
virtual const SfxPoolItem & GetItem(sal_uInt16 nWhich) const override
rtl_TextEncoding GetNextCharSet() const
void SetItemsThatDifferFromStandard(bool bCharAttr, SfxItemSet &rSet)
static void Out_SwFormatTableBox(ww::bytes &rO, const SvxBoxItem *rBox)
FormatBox2() is for TC structures in tables.
const SfxPoolItem * HasItem(sal_uInt16 nWhich) const
Handles export of smart tags.
std::vector< DrawObj * > DrawObjPointerVector
MSWordAttrIter(const MSWordAttrIter &)=delete
virtual void WriteHyperlinkData(const ::sw::mark::IFieldmark &rFieldmark)=0
static bool NoPageBreakSection(const SfxItemSet *pSet)
std::map< const OUString, std::pair< WW8_CP, bool > > m_aRangeStartPositions
void AppendPc(WW8_FC nStartFc)
virtual WW8_CP GetCpOffset(const WW8Fib &rFib) const =0
const SwPageDesc * pOldPageDesc
void WritePlc(WW8Export &rWrt) const
bool operator==(const GraphicDetails &rIn) const
virtual void DoFormText(const SwInputField *pField) override
std::vector< ::sw::mark::IMark * > IMarkVector
Used to split the runs according to the bookmarks start and ends.
virtual void AppendBookmark(const OUString &rName)=0
PlcDrawObj & operator=(const PlcDrawObj &)=delete
SwTwips CurrentPageWidth(SwTwips &rLeft, SwTwips &rRight) const
WW8_WrtBookmarks * m_pBkmks
virtual ~MSWordExportBase()
MSWordSections(const MSWordSections &)
void OutAttr(sal_Int32 nSwPos, bool bWriteCombinedChars)
WW8_WrPlcPn(const WW8_WrPlcPn &)=delete
virtual void RestoreData() override
Restore what was saved in SaveData().
bool IsTextAttr(sal_Int32 nSwPos) const
virtual void WriteFormData(const ::sw::mark::IFieldmark &rFieldmark)=0
Write the data of the form field.
int OutAttrWithRange(const SwTextNode &rNode, sal_Int32 nPos)
void WriteGrfForBullet(SvStream &rStrm, const Graphic &rGrf, sal_uInt16 nWidth, sal_uInt16 nHeight)
The class MSWordAttrIter is a helper class to build the Fkp.chpx.
static void WriteLong(SvStream &rStrm, sal_Int32 nVal)
static void FillCount(SvStream &rStrm, sal_uLong nCount)
std::unique_ptr< WW8_WrMagicTable > m_pMagicTable
bool IsInTable() const
Return whether currently exported node is in table.
bool NeedTextNodeSplit(const SwTextNode &rNd, SwSoftPageBreakList &pList) const
std::stack< MSWordSaveData > m_aSaveData
Stack to remember the nesting (see MSWordSaveData for more)
virtual void WriteChar(sal_Unicode c)=0
void NextPara(sal_Int32 nPar)
virtual void AppendSection(const SwPageDesc *pPageDesc, const SwSectionFormat *pFormat, sal_uLong nLnNum)=0
virtual void WriteFormData(const ::sw::mark::IFieldmark &rFieldmark) override
Write the data of the form field.
WW8_WrtRedlineAuthor * m_pRedlAuthors
std::unique_ptr< WW8_WrPlcPn > m_pChpPlc
wwFontHelper m_aFontHelper
SvxFrameDirection TrueFrameDirection(const SwFrameFormat &rFlyFormat) const
Right to left?
IMarkVector m_rSortedBookmarksStart
static void InsAsString16(ww::bytes &rO, const OUString &rStr)
std::vector< std::unique_ptr< WW8_WrPc > > m_Pcts
std::unique_ptr< SvxBrushItem > getBackground()
Get background color of the document, if there is one.
void CollectOutlineBookmarks(const SwDoc &rDoc)
std::vector< const Graphic * > m_vecBulletPic
Vector to record all the graphics of bullets.
std::vector< aBookmarkPair > m_aImplicitBookmarks
std::vector< Frame > Frames
STL container of Frames.
static const SwSectionFormat * GetSectionFormat(const SwNode &rNd)
Format of the section.
bool m_bDot
Template or document.
void AbstractNumberingDefinitions()
Write all Levels for all SwNumRules - LVLF.
bool IsAnchorLinkedToThisNode(sal_uLong nNodePos)
static bool TransBrush(const Color &rCol, WW8_SHD &rShd)
TransBrush converts SW-Brushes to WW.
std::unique_ptr< MSWordStyles > m_pStyles
std::unique_ptr< WW8_WrPlcFootnoteEdn > pEdn
Endnotes - structure to remember them, and output.
std::unique_ptr< WW8_WrPlcFootnoteEdn > pFootnote
Footnotes - structure to remember them, and output.
virtual ErrCode WriteStorage() override
ErrCode ExportDocument(bool bWriteAll)
The main function to export the document.
std::map< OUString, size_t > m_Lists
list-id -> abstractnumdef index
bool RequiresImplicitBookmark()
Base class of the Writer document model elements.
void NumberingLevel(SwNumRule const &rRule, sal_uInt8 nLvl)
Write one numbering level.
void setCvFore(sal_uInt32 cvFore)
std::unique_ptr< WW8AttributeOutput > m_pAttrOutput
Converting attributes to stream data.