LibreOffice Module sw (master) 1
docxattributeoutput.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_SW_SOURCE_FILTER_WW8_DOCXATTRIBUTEOUTPUT_HXX
21#define INCLUDED_SW_SOURCE_FILTER_WW8_DOCXATTRIBUTEOUTPUT_HXX
22
23#include <memory>
24#include <string_view>
25
27#include "fields.hxx"
28#include <IMark.hxx>
29#include "docxexport.hxx"
30#include <wrtswtbl.hxx>
31#include <redline.hxx>
32
33#include <editeng/boxitem.hxx>
34#include <sax/fshelper.hxx>
35#include <sax/fastattribs.hxx>
36#include <vcl/vclenum.hxx>
37#include <svx/xenum.hxx>
38
39#include <fldbas.hxx>
40
41#include <vector>
42#include <optional>
47
48#include <com/sun/star/table/BorderLine2.hpp>
49#include <com/sun/star/drawing/FillStyle.hpp>
50
51class SwGrfNode;
52class SdrObject;
53enum class SvxBoxItemLine;
54enum class SwLineBreakClear;
56
57namespace docx { class FootnotesList; }
58namespace oox::drawingml { class DrawingML; }
59
61{
62 std::shared_ptr<const SwField> pField;
63 const ::sw::mark::IFieldmark* pFieldmark;
65 bool bOpen;
66 bool bSep;
67 bool bClose;
68 OUString sCmd;
70 : pFieldmark(nullptr), eType(ww::eUNKNOWN)
71 , bOpen(false), bSep(false), bClose(false)
72 {}
73};
74
76{
81};
82
94{
95 sal_Int32 tag = 0;
96 bool bUseStartEnd = false;
97 bool bWriteTag = true;
98 bool bWriteDistance = false;
99 SvxShadowLocation aShadowLocation = SvxShadowLocation::NONE;
100 std::shared_ptr<editeng::WordBorderDistances> pDistances;
101};
102
104
109{
112
115
117 sal_uInt32 m_nTableDepth;
118
120 : m_bTableCellOpen(false),
123 {
124 }
125};
126
131{
133 sal_Int32 m_nTableDepth;
137
138public:
140 : m_pFrame(nullptr)
141 , m_nTableDepth(0)
142 , m_bUseFrameBorders(true)
145 {}
146
147 ww8::Frame* Frame() { return m_pFrame; }
148 void SetFrame(ww8::Frame* pSet, sal_Int32 nTableDepth = -1);
149 bool UseFrameBorders(sal_Int32 nTableDepth);
150 void SetUseFrameBorders(bool bSet) { m_bUseFrameBorders = bSet; }
151 bool UseFrameBackground();
153 bool UseFrameTextDirection(sal_Int32 nTableDepth);
155};
156
158{
159public:
161 : m_nId(0)
162 , m_bStartedSdt(false)
163 , m_bShowingPlaceHolder(false)
164 , m_nTabIndex(0)
165 , m_nSdtPrToken(0)
166 {}
167
168 sal_Int32 m_nId;
174 OUString m_aColor;
178 OUString m_aAlias;
179 OUString m_aTag;
180 sal_Int32 m_nTabIndex;
181 OUString m_aLock;
182 sal_Int32 m_nSdtPrToken;
183
185
186 void WriteSdtBlock(const ::sax_fastparser::FSHelperPtr& pSerializer, bool bRunTextIsOn, bool bParagraphHasDrawing);
187 void WriteExtraParams(const ::sax_fastparser::FSHelperPtr& pSerializer);
188
190 void EndSdtBlock(const ::sax_fastparser::FSHelperPtr& pSerializer);
191
192 void GetSdtParamsFromGrabBag(const uno::Sequence<beans::PropertyValue>& aGrabBagSdt);
193};
194
197{
198public:
200 virtual void RTLAndCJKState( bool bIsRTL, sal_uInt16 nScript ) override;
201
203 virtual sal_Int32 StartParagraph(ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo,
204 bool bGenerateParaId) override;
205
207 virtual void EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner ) override;
208
210 virtual void EmptyParagraph() override;
211
213 virtual void SectionBreaks(const SwNode& rNode) override;
214
216 virtual void StartParagraphProperties() override;
217
219 virtual void EndParagraphProperties(const SfxItemSet& rParagraphMarkerProperties, const SwRedlineData* pRedlineData, const SwRedlineData* pRedlineParagraphMarkerDeleted, const SwRedlineData* pRedlineParagraphMarkerInserted) override;
220
222 virtual void StartRun( const SwRedlineData* pRedlineData, sal_Int32 nPos, bool bSingleEmptyRun = false ) override;
223
225 virtual void EndRun(const SwTextNode* pNode, sal_Int32 nPos, sal_Int32 nLen, bool bLastRun = false) override;
226
228 virtual void StartRunProperties() override;
229
231 virtual void EndRunProperties( const SwRedlineData* pRedlineData ) override;
232
233 virtual bool FootnoteEndnoteRefTag() override;
234
235 virtual void SectFootnoteEndnotePr() override;
236
237 virtual void WritePostitFieldReference() override;
238
240 virtual void RunText( const OUString& rText, rtl_TextEncoding eCharSet = RTL_TEXTENCODING_UTF8, const OUString& rSymbolFont = OUString() ) override;
241
243 virtual void RawText(const OUString& rText, rtl_TextEncoding eCharSet) override;
244
246 virtual void StartRuby( const SwTextNode& rNode, sal_Int32 nPos, const SwFormatRuby& rRuby ) override;
247
249 virtual void EndRuby(const SwTextNode& rNode, sal_Int32 nPos) override;
250
252 virtual bool StartURL( const OUString& rUrl, const OUString& rTarget ) override;
253
255 virtual bool EndURL(bool) override;
256
257 virtual void FieldVanish(const OUString& rText, ww::eField eType, OUString const*) override;
258
262 virtual void Redline( const SwRedlineData* pRedline ) override;
263
268 void StartRedline( const SwRedlineData * pRedlineData, bool bLastRun );
269
273 void EndRedline( const SwRedlineData * pRedlineData, bool bLastRun );
274
275 virtual void SetStateOfFlyFrame( FlyProcessingState nStateOfFlyFrame ) override;
276 virtual void SetAnchorIsLinkedToNode( bool bAnchorLinkedToNode ) override;
277 virtual bool IsFlyProcessingPostponed() override;
278 virtual void ResetFlyProcessingFlag() override;
279
280 virtual void FormatDrop( const SwTextNode& rNode, const SwFormatDrop& rSwFormatDrop, sal_uInt16 nStyle, ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner ) override;
281
283 virtual void ParagraphStyle( sal_uInt16 nStyle ) override;
284
285 virtual void TableInfoCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
286 virtual void TableInfoRow( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
287 virtual void TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
288 virtual void TableDefaultBorders( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
289 void TableDefaultCellMargins( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner );
290 virtual void TableBackgrounds( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
291 virtual void TableRowRedline( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
292 virtual void TableCellRedline( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
293 virtual void TableHeight( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
294 virtual void TableCanSplit( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
295 virtual void TableBidi( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
296 virtual void TableVerticalCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
297 virtual void TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner ) override;
298 virtual void TableOrientation( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
299 virtual void TableSpacing( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) override;
300 virtual void TableRowEnd( sal_uInt32 nDepth ) override;
301
303 virtual void StartStyles() override;
304
306 virtual void EndStyles( sal_uInt16 nNumberOfStyles ) override;
307
309 virtual void DefaultStyle() override;
310
312 void DocDefaults( );
313
315 void LatentStyles();
316
322 void OutputDefaultItem(const SfxPoolItem& rHt);
323
325 virtual void StartStyle( const OUString& rName, StyleType eType,
326 sal_uInt16 nBase, sal_uInt16 nNext, sal_uInt16 nLink, sal_uInt16 nWwId, sal_uInt16 nSlot,
327 bool bAutoUpdate ) override;
328
330 virtual void EndStyle() override;
331
333 virtual void StartStyleProperties( bool bParProp, sal_uInt16 nStyle ) override;
334
336 virtual void EndStyleProperties( bool bParProp ) override;
337
339 virtual void OutlineNumbering(sal_uInt8 nLvl) override;
340
343 virtual void PageBreakBefore( bool bBreak ) override;
344
348 virtual void SectionBreak( sal_uInt8 nC, bool bBreakAfter, const WW8_SepInfo* pSectionInfo = nullptr, bool bExtraPageBreak = false ) override;
349
350 // preserve DOCX page vertical alignment
351 virtual void TextVerticalAdjustment( const css::drawing::TextVerticalAdjust ) override;
352
354 virtual void StartSection() override;
355
357 virtual void EndSection() override;
358
360 virtual void SectionFormProtection( bool bProtected ) override;
361
363 virtual void SectionLineNumbering( sal_uLong nRestartNo, const SwLineNumberInfo& rLnNumInfo ) override;
364
366 virtual void SectionTitlePage() override;
367
369 virtual void SectionPageBorders( const SwFrameFormat* pFormat, const SwFrameFormat* pFirstPageFormat ) override;
370
372 virtual void SectionBiDi( bool bBiDi ) override;
373
376 virtual void SectionPageNumbering( sal_uInt16 nNumType, const ::std::optional<sal_uInt16>& oPageRestartNumber ) override;
377
379 virtual void SectionType( sal_uInt8 nBreakCode ) override;
380
382 void StartFont( const OUString& rFamilyName ) const;
383
385 void EndFont() const;
386
388 void FontAlternateName( const OUString& rName ) const;
389
391 void FontCharset( sal_uInt8 nCharSet, rtl_TextEncoding nEncoding ) const;
392
394 void FontFamilyType( FontFamily eFamily ) const;
395
397 void FontPitchType( FontPitch ePitch ) const;
398
400 void EmbedFont( std::u16string_view name, FontFamily family, FontPitch pitch );
401
403 virtual void NumberingDefinition( sal_uInt16 nId, const SwNumRule &rRule ) override;
404
406 virtual void OverrideNumberingDefinition( SwNumRule const& rRule,
407 sal_uInt16 nNum, sal_uInt16 nAbstractNum,
408 const std::map< size_t, size_t > & rLevelOverrides ) override;
409
411 virtual void StartAbstractNumbering( sal_uInt16 nId ) override;
412
414 virtual void EndAbstractNumbering() override;
415
417 virtual void NumberingLevel( sal_uInt8 nLevel,
418 sal_uInt16 nStart,
419 sal_uInt16 nNumberingType,
420 SvxAdjust eAdjust,
421 const sal_uInt8 *pNumLvlPos,
422 sal_uInt8 nFollow,
423 const wwFont *pFont,
424 const SfxItemSet *pOutSet,
425 sal_Int16 nIndentAt,
426 sal_Int16 nFirstLineIndex,
427 sal_Int16 nListTabPos,
428 const OUString &rNumberingString,
429 const SvxBrushItem* pBrush,
430 bool isLegal ) override;
431
432 void WriteField_Impl(const SwField* pField, ww::eField eType,
433 const OUString& rFieldCmd, FieldFlags nMode,
434 OUString const* pBookmarkName = nullptr);
435 void WriteFormData_Impl( const ::sw::mark::IFieldmark& rFieldmark );
436
437 void WriteBookmarks_Impl( std::vector< OUString >& rStarts, std::vector< OUString >& rEnds, const SwRedlineData* pRedlineData = nullptr );
438 void WriteFinalBookmarks_Impl( std::vector< OUString >& rStarts, std::vector< OUString >& rEnds );
439 void WriteAnnotationMarks_Impl( std::vector< OUString >& rStarts, std::vector< OUString >& rEnds );
441 void EndParaSdtBlock();
442
443 void WriteFloatingTable(ww8::Frame const* pParentFrame);
444
445private:
453
458
466
471
478 void FlyFrameGraphic( const SwGrfNode* pGrfNode, const Size& rSize, const SwFlyFrameFormat* pOLEFrameFormat, SwOLENode* pOLENode, const SdrObject* pSdrObj = nullptr);
479 void WriteSrcRect(const css::uno::Reference<css::beans::XPropertySet>& xShapePropSet,
480 const SwFrameFormat* pFrameFormat);
481 void WriteOLE2Obj( const SdrObject* pSdrObj, SwOLENode& rNode, const Size& rSize, const SwFlyFrameFormat* pFlyFrameFormat, const sal_Int8 nFormulaAlignment);
482 bool WriteOLEChart( const SdrObject* pSdrObj, const Size& rSize, const SwFlyFrameFormat* pFlyFrameFormat);
483 bool WriteOLEMath( const SwOLENode& rNode, const sal_Int8 nAlign );
484 void PostponeOLE( SwOLENode& rNode, const Size& rSize, const SwFlyFrameFormat* pFlyFrameFormat );
485 void WriteOLE( SwOLENode& rNode, const Size& rSize, const SwFlyFrameFormat* rFlyFrameFormat );
486 void WriteOLEShape(const SwFlyFrameFormat& rFrameFormat, const Size& rSize,
487 std::string_view rShapeId, const OUString& rImageId);
488 static OString GetOLEStyle(const SwFlyFrameFormat& rFormat, const Size& rSize);
489 void ExportOLESurround(const SwFormatSurround& rWrap);
490
491 void WriteActiveXControl(const SdrObject* pObject, const SwFrameFormat& rFrameFormat, bool bInsideRun);
492 bool ExportAsActiveXControl(const SdrObject* pObject) const;
493
494 void InitTableHelper( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner );
495 void StartTable( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner );
496 void StartTableRow( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner );
497 void StartTableCell( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner, sal_uInt32 nCell, sal_uInt32 nRow );
498 void TableCellProperties( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner, sal_uInt32 nCell, sal_uInt32 nRow );
499 void EndTableCell( sal_uInt32 nCell );
500 void EndTableRow( );
501 void EndTable();
502 void SyncNodelessCells(ww8::WW8TableNodeInfoInner::Pointer_t const & pInner, sal_Int32 nCell, sal_uInt32 nRow);
503 void PopulateFrameProperties(const SwFrameFormat* pFrameFormat, const Size& rSize);
504 static bool TextBoxIsFramePr(const SwFrameFormat& rFrameFormat);
506 void FinishTableRowCell( ww8::WW8TableNodeInfoInner::Pointer_t const & pInner, bool bForceEmptyParagraph = false );
507
508 void WriteFFData( const FieldInfos& rInfos );
510
511 void EmbedFontStyle( std::u16string_view name, int tag, FontFamily family, FontItalic italic, FontWeight weight,
512 FontPitch pitch );
513
521 static OString TransHighlightColor( sal_uInt8 nIco );
522protected:
523
525 virtual void OutputFlyFrame_Impl( const ww8::Frame& rFormat, const Point& rNdTopLeft ) override;
526
528 virtual void CharCaseMap( const SvxCaseMapItem& rCaseMap ) override;
529
531 virtual void CharColor( const SvxColorItem& rColor) override;
532
534 virtual void CharContour( const SvxContourItem& rContour ) override;
535
537 virtual void CharCrossedOut( const SvxCrossedOutItem& rCrossedOut ) override;
538
540 virtual void CharEscapement( const SvxEscapementItem& rEscapement ) override;
541
543 virtual void CharFont( const SvxFontItem& rFont ) override;
544
546 virtual void CharFontSize( const SvxFontHeightItem& rFontSize ) override;
547
549 virtual void CharKerning( const SvxKerningItem& rKerning ) override;
550
552 virtual void CharLanguage( const SvxLanguageItem& rLanguage ) override;
553
555 virtual void CharPosture( const SvxPostureItem& rPosture ) override;
556
558 virtual void CharShadow( const SvxShadowedItem& rShadow ) override;
559
561 virtual void CharUnderline( const SvxUnderlineItem& rUnderline ) override;
562
564 virtual void CharWeight( const SvxWeightItem& rWeight ) override;
565
567 virtual void CharAutoKern( const SvxAutoKernItem& ) override;
568
570 virtual void CharAnimatedText( const SvxBlinkItem& rBlink ) override;
571
573 virtual void CharBackground( const SvxBrushItem& rBrush ) override;
574
576 virtual void CharFontCJK( const SvxFontItem& rFont ) override;
577
579 virtual void CharFontSizeCJK( const SvxFontHeightItem& rFontSize ) override { CharFontSize( rFontSize ); }
580
582 virtual void CharLanguageCJK( const SvxLanguageItem& rLanguageItem ) override { CharLanguage( rLanguageItem ); }
583
585 virtual void CharPostureCJK( const SvxPostureItem& rPosture ) override;
586
588 virtual void CharWeightCJK( const SvxWeightItem& rWeight ) override;
589
591 virtual void CharFontCTL( const SvxFontItem& rFont ) override;
592
594 virtual void CharFontSizeCTL( const SvxFontHeightItem& rFontSize ) override { CharFontSize( rFontSize ); }
595
597 virtual void CharLanguageCTL( const SvxLanguageItem& rLanguageItem ) override { CharLanguage( rLanguageItem); }
598
600 virtual void CharPostureCTL( const SvxPostureItem& rWeight ) override;
601
603 virtual void CharWeightCTL( const SvxWeightItem& rWeight ) override;
604
606 virtual void CharBidiRTL( const SfxPoolItem& ) override;
607
609 virtual void CharIdctHint( const SfxPoolItem& ) override;
610
612 virtual void CharRotate( const SvxCharRotateItem& rRotate ) override;
613
615 virtual void CharEmphasisMark( const SvxEmphasisMarkItem& rEmphasisMark ) override;
616
618 virtual void CharTwoLines( const SvxTwoLinesItem& rTwoLines ) override;
619
621 virtual void CharScaleWidth( const SvxCharScaleWidthItem& rScaleWidth ) override;
622
624 virtual void CharRelief( const SvxCharReliefItem& rRelief) override;
625
627 virtual void CharHidden( const SvxCharHiddenItem& rHidden ) override;
628
630 virtual void CharBorder( const ::editeng::SvxBorderLine* pAllBorder, const sal_uInt16 nDist, const bool bShadow ) override;
631
633 virtual void CharHighlight( const SvxBrushItem& rHighlight ) override;
634
636 virtual void TextINetFormat( const SwFormatINetFormat& ) override;
637
639 virtual void TextCharFormat( const SwFormatCharFormat& ) override;
640
642 virtual void TextFootnote_Impl( const SwFormatFootnote& ) override;
643
646
648 virtual void ParaLineSpacing_Impl( short nSpace, short nMulti ) override;
649
651 virtual void ParaAdjust( const SvxAdjustItem& rAdjust ) override;
652
654 virtual void ParaSplit( const SvxFormatSplitItem& rSplit ) override;
655
657 virtual void ParaWidows( const SvxWidowsItem& rWidows ) override;
658
660 virtual void ParaTabStop( const SvxTabStopItem& rTabStop ) override;
661
663 virtual void ParaHyphenZone( const SvxHyphenZoneItem& ) override;
664
666 virtual void ParaNumRule_Impl( const SwTextNode *pTextNd, sal_Int32 nLvl, sal_Int32 nNumId ) override;
667
669 virtual void ParaScriptSpace( const SfxBoolItem& ) override;
670
672 virtual void ParaHangingPunctuation( const SfxBoolItem& ) override;
673
675 virtual void ParaForbiddenRules( const SfxBoolItem& ) override;
676
678 virtual void ParaVerticalAlign( const SvxParaVertAlignItem& rAlign ) override;
679
681 virtual void ParaSnapToGrid( const SvxParaGridItem& ) override;
682
684 virtual void FormatFrameSize( const SwFormatFrameSize& ) override;
685
687 virtual void FormatPaperBin( const SvxPaperBinItem& ) override;
688
690 virtual void FormatFirstLineIndent(const SvxFirstLineIndentItem & rFirstLine) override;
692 virtual void FormatTextLeftMargin(const SvxTextLeftMarginItem & rTextLeftMargin) override;
694 virtual void FormatRightMargin(const SvxRightMarginItem & rRightMargin) override;
695
697 virtual void FormatLRSpace( const SvxLRSpaceItem& rLRSpace ) override;
698
700 virtual void FormatULSpace( const SvxULSpaceItem& rULSpace ) override;
701
703 virtual void FormatSurround( const SwFormatSurround& ) override;
704
706 virtual void FormatVertOrientation( const SwFormatVertOrient& ) override;
707
709 virtual void FormatHorizOrientation( const SwFormatHoriOrient& ) override;
710
712 virtual void FormatAnchor( const SwFormatAnchor& ) override;
713
715 virtual void FormatBackground( const SvxBrushItem& ) override;
716
718 virtual void FormatFillStyle( const XFillStyleItem& ) override;
719
721 virtual void FormatFillGradient( const XFillGradientItem& ) override;
722
724 virtual void FormatBox( const SvxBoxItem& ) override;
725
727 virtual void FormatColumns_Impl( sal_uInt16 nCols, const SwFormatCol & rCol, bool bEven, SwTwips nPageSize ) override;
728
730 virtual void FormatKeep( const SvxFormatKeepItem& ) override;
731
733 virtual void FormatTextGrid( const SwTextGridItem& ) override;
734
736 virtual void FormatLineNumbering( const SwFormatLineNumber& ) override;
737
739 virtual void FormatFrameDirection( const SvxFrameDirectionItem& ) override;
740
742 virtual void ParaGrabBag( const SfxGrabBagItem& ) override;
743
745 virtual void CharGrabBag( const SfxGrabBagItem& ) override;
746
747 // Sfx item RES_PARATR_OUTLINELEVEL
748 virtual void ParaOutlineLevel( const SfxUInt16Item& ) override;
749
751 virtual void WriteExpand( const SwField* pField ) override;
752
753 virtual void RefField( const SwField& rField, const OUString& rRef ) override;
754 virtual void HiddenField( const SwField& rField ) override;
755 virtual void SetField( const SwField& rField, ww::eField eType, const OUString& rCmd ) override;
756 virtual void PostitField( const SwField* pField ) override;
757 virtual bool DropdownField( const SwField* pField ) override;
758 virtual bool PlaceholderField( const SwField* pField ) override;
759
760 virtual bool AnalyzeURL( const OUString& rURL, const OUString& rTarget, OUString* pLinkURL, OUString* pMark ) override;
761
762 virtual void WriteBookmarkInActParagraph( const OUString& rName, sal_Int32 nFirstRunPos, sal_Int32 nLastRunPos ) override;
763
764 void SectionRtlGutter( const SfxBoolItem& rRtlGutter) override;
765
766 void TextLineBreak(const SwFormatLineBreak& rLineBreak) override;
767
769 void WriteLineBreak();
770
771private:
772
773 void DoWriteBookmarkTagStart(std::u16string_view bookmarkName);
774 void DoWriteBookmarkTagEnd(sal_Int32 nId);
775 void DoWriteMoveRangeTagStart(std::u16string_view bookmarkName,
776 bool bFrom, const SwRedlineData* pRedlineData);
777 void DoWriteMoveRangeTagEnd(sal_Int32 nId, bool bFrom);
778 void DoWriteBookmarksStart(std::vector<OUString>& rStarts, const SwRedlineData* pRedlineData = nullptr);
779 void DoWriteBookmarksEnd(std::vector<OUString>& rEnds);
780 void DoWriteBookmarkStartIfExist(sal_Int32 nRunPos);
781 void DoWriteBookmarkEndIfExist(sal_Int32 nRunPos);
782
783 void DoWritePermissionTagStart(std::u16string_view permission);
784 void DoWritePermissionTagEnd(std::u16string_view permission);
787
790 void WritePostponedMath(const SwOLENode* pObject, sal_Int8 /*nAlign*/);
791 void WritePostponedFormControl(const SdrObject* pObject);
792 void WritePostponedActiveXControl(bool bInsideRun);
794 void WritePostponedChart();
795 void WritePostponedOLE();
798 void WriteFlyFrame(const ww8::Frame& rFrame);
799
800 void WriteFormDateStart(const OUString& sFullDate, const OUString& sDateFormat, const OUString& sLang, const uno::Sequence<beans::PropertyValue>& aGrabBagSdt);
801 void WriteSdtPlainText(const OUString& sValue, const uno::Sequence<beans::PropertyValue>& aGrabBagSdt);
802 void WriteSdtDropDownStart(const OUString& rName, OUString const& rSelected, uno::Sequence<OUString> const& rListItems);
803 void WriteSdtDropDownEnd(OUString const& rSelected, uno::Sequence<OUString> const& rListItems);
806
807 void StartField_Impl( const SwTextNode* pNode, sal_Int32 nPos, FieldInfos const & rInfos, bool bWriteRun = false );
808 void DoWriteCmd( std::u16string_view rCmd );
809 void CmdField_Impl( const SwTextNode* pNode, sal_Int32 nPos, FieldInfos const & rInfos, bool bWriteRun );
810 void CmdEndField_Impl( const SwTextNode* pNode, sal_Int32 nPos, bool bWriteRun );
811 void EndField_Impl( const SwTextNode* pNode, sal_Int32 nPos, FieldInfos& rInfos );
812 void DoWriteFieldRunProperties( const SwTextNode* pNode, sal_Int32 nPos, bool bWriteCombChars = false );
813
816
819
822
830 std::shared_ptr<SwContentControl> m_pContentControl;
841 std::unique_ptr<docx::FootnotesList> m_pFootnotesList;
842 std::unique_ptr<docx::FootnotesList> m_pEndnotesList;
845 std::unique_ptr< const WW8_SepInfo > m_pSectionInfo;
846
849
851 sal_Int32 m_nRedlineId;
852
857
860
864
867
870 std::vector< FieldInfos > m_Fields;
871 OUString m_sFieldBkm;
874
876 sal_Int32 m_nNextParaId = 1; // MUST be greater than 0
877
878 OUString m_sRawText;
879
884
886 std::vector<ww8::Frame> m_vPostponedFlys;
887
889 std::vector<OUString> m_rBookmarksStart;
890 std::vector<OUString> m_rBookmarksEnd;
892
894 std::vector<OUString> m_rFinalBookmarksStart;
895 std::vector<OUString> m_rFinalBookmarksEnd;
896
898 std::multimap<sal_Int32, OUString> m_aBookmarksOfParagraphStart;
899 std::multimap<sal_Int32, OUString> m_aBookmarksOfParagraphEnd;
900
902 std::vector<OUString> m_rPermissionsStart;
903 std::vector<OUString> m_rPermissionsEnd;
904
906 std::vector<OUString> m_rAnnotationMarksStart;
907 std::vector<OUString> m_rAnnotationMarksEnd;
908
910 std::map<OUString, sal_Int32> m_rOpenedBookmarksIds;
911
914
916 std::unordered_set<sal_Int32> m_rSavedBookmarksIds;
917
919 std::map<OUString, sal_Int32> m_rOpenedAnnotationMarksIds;
920
923
926 std::map<OUString, std::vector<OUString> > m_aSeqBookmarksNames;
927
929 std::vector<css::beans::PropertyValue> m_aTextEffectsGrabBag;
930
932 std::unique_ptr<SwWriteTable> m_xTableWrt;
933
935
941
942 // Remember that a column break has to be opened at the
943 // beginning of the next paragraph
945
946 // Remember that a page break has to be opened at the
947 // beginning of the next paragraph
949
950 // This paragraph must end with page break
951 bool m_bPageBreakAfter = false;
952
953 std::stack< std::vector<ww8::Frame> > m_aFramesOfParagraph;
956
957 // close of hyperlink needed
960 // Count nested HyperLinks
961 std::vector<sal_Int32> m_nHyperLinkCount;
963
964 // If the exported numbering rule defines the outlines
966
968 {
969 PostponedGraphic( const SwGrfNode* n, Size s, const SdrObject* sObj )
970 : grfNode( n ), size( s ), pSdrObj(sObj) {};
971
975 };
976 std::optional< std::vector<PostponedGraphic> > m_oPostponedGraphic;
978 {
979 PostponedDiagram( const SdrObject* o, const SwFrameFormat* frm ) : object( o ), frame( frm ) {};
982 };
983 std::optional< std::vector<PostponedDiagram> > m_oPostponedDiagrams;
984
986 {
987 PostponedDrawing( const SdrObject* sdrObj, const SwFrameFormat* frm) : object( sdrObj ), frame( frm ) {};
990 };
991 std::optional< std::vector<PostponedDrawing> > m_oPostponedDMLDrawings;
992 std::optional< std::vector<PostponedDrawing> > m_oPostponedCustomShape;
993
995 {
996 PostponedOLE( SwOLENode* rObject, const Size& rSize, const SwFlyFrameFormat* rFrame ) : object( rObject ), size( rSize ), frame( rFrame ) {};
998 const Size size;
1000 };
1001 std::optional< std::vector<PostponedOLE> > m_oPostponedOLEs;
1002
1004 {
1007 };
1008 std::vector<PostponedMathObjects> m_aPostponedMaths;
1010 unsigned int m_nChartCount;
1012 {
1013 PostponedChart( const SdrObject* sdrObject, const Size& rSize, const SwFlyFrameFormat* rFrame ) : object(sdrObject), size(rSize), frame(rFrame) {};
1015 const Size size;
1017 };
1018 std::vector<PostponedChart> m_aPostponedCharts;
1019 std::vector<const SdrObject*> m_aPostponedFormControls;
1020 std::vector<PostponedDrawing> m_aPostponedActiveXControls;
1022
1024 enum class ParentStatus
1025 {
1026 None,
1027 IsParent,
1028 HasParent
1029 };
1031 sal_Int32 id;
1032 sal_Int32 lastParaId = 0; // [MS-DOCX] 2.5.3.1 CT_CommentEx needs paraId attribute
1034 size_t parentIndex = 0;
1035 };
1037 std::vector<std::pair<const SwPostItField*, PostItDOCXData>> m_postitFields;
1043 {
1044 OString relId;
1045 OString fontKey;
1046 };
1047
1049
1050 std::map< OUString, EmbeddedFontRef > m_FontFilesMap; // font file url to data
1051
1052 // Remember first cell (used for default borders/margins) of each table
1053 std::vector<ww8::WW8TableNodeInfoInner::Pointer_t> m_TableFirstCells;
1054 // Remember last open and closed cells on each level
1055 std::vector<sal_Int32> m_LastOpenCell;
1056 std::vector<sal_Int32> m_LastClosedCell;
1057
1058 std::optional<css::drawing::FillStyle> m_oFillStyle;
1061
1063
1064 std::shared_ptr<DocxTableStyleExport> m_pTableStyleExport;
1065 // flag to check if auto spacing was set in original file
1067 // store hardcoded value which was set during import.
1069
1072
1075
1078
1079 std::vector<std::map<SvxBoxItemLine, css::table::BorderLine2>> m_aTableStyleConfs;
1080
1081 std::optional<SwLineBreakClear> m_oLineBreakClear;
1082
1083public:
1084 DocxAttributeOutput( DocxExport &rExport, const ::sax_fastparser::FSHelperPtr& pSerializer, oox::drawingml::DrawingML* pDrawingML );
1085
1086 virtual ~DocxAttributeOutput() override;
1087
1089 virtual DocxExport& GetExport() override;
1090 const DocxExport& GetExport() const { return const_cast< DocxAttributeOutput* >( this )->GetExport(); }
1091
1093 void SetSerializer( ::sax_fastparser::FSHelperPtr const & pSerializer );
1094
1096 const ::sax_fastparser::FSHelperPtr& GetSerializer( ) const { return m_pSerializer; }
1097
1099 bool HasFootnotes() const;
1100
1102 bool HasEndnotes() const;
1103
1105 void FootnotesEndnotes( bool bFootnotes );
1106
1108 static void WriteFootnoteEndnotePr( ::sax_fastparser::FSHelperPtr const & fs, int tag, const SwEndNoteInfo& info, int listtag );
1109
1110 bool HasPostitFields() const;
1111 enum class hasProperties { no, yes };
1114
1116 virtual void WriteOutliner(const OutlinerParaObject& rParaObj) override;
1117 virtual void WriteVMLTextBox(css::uno::Reference<css::drawing::XShape> xShape) override;
1119 virtual void WriteTextBox(css::uno::Reference<css::drawing::XShape> xShape) override;
1120 virtual css::uno::Reference<css::text::XTextFrame> GetUnoTextFrame(
1121 css::uno::Reference<css::drawing::XShape> xShape) override;
1122 virtual oox::drawingml::DrawingML& GetDrawingML() override;
1123 virtual bool MaybeOutputBrushItem(SfxItemSet const&) override;
1124
1125 void BulletDefinition(int nId, const Graphic& rGraphic, Size aSize) override;
1126
1127 void SetWritingHeaderFooter( bool bWritingHeaderFooter ) { m_bWritingHeaderFooter = bWritingHeaderFooter; }
1129 void SetAlternateContentChoiceOpen( bool bAltContentChoiceOpen ) { m_bAlternateContentChoiceOpen = bAltContentChoiceOpen; }
1131 void GetSdtEndBefore(const SdrObject* pSdrObj);
1132 bool IsFirstParagraph() const { return m_bIsFirstParagraph; }
1133
1138
1139 static OString convertToOOXMLHoriOrient(sal_Int16 nOrient, bool bIsPosToggle);
1140 static OString convertToOOXMLVertOrient(sal_Int16 nOrient);
1141 static OString convertToOOXMLVertOrientRel(sal_Int16 nOrientRel);
1142 static OString convertToOOXMLHoriOrientRel(sal_Int16 nOrientRel);
1143 static void ImplCellMargins( sax_fastparser::FSHelperPtr const & pSerializer, const SvxBoxItem& rBox, sal_Int32 tag, bool bUseStartEnd, const SvxBoxItem* pDefaultMargins = nullptr);
1144 template <class... Args>
1146 {
1147 if (!pAttrList)
1149 pAttrList->add(std::forward<Args>(args)...);
1150 }
1151
1152 static const sal_Int32 Tag_StartParagraph_1 = 1;
1153 static const sal_Int32 Tag_StartParagraph_2 = 2;
1154 static const sal_Int32 Tag_WriteSdtBlock = 3;
1155 static const sal_Int32 Tag_StartParagraphProperties = 4;
1156 static const sal_Int32 Tag_InitCollectedParagraphProperties = 5;
1157 static const sal_Int32 Tag_StartRun_1 = 6;
1158 static const sal_Int32 Tag_StartRun_2 = 7;
1159 static const sal_Int32 Tag_StartRun_3 = 8;
1160 static const sal_Int32 Tag_EndRun_1 = 9;
1161 static const sal_Int32 Tag_EndRun_2 = 10;
1162 static const sal_Int32 Tag_StartRunProperties = 11;
1163 static const sal_Int32 Tag_InitCollectedRunProperties = 12;
1164 static const sal_Int32 Tag_Redline_1 = 13;
1165 static const sal_Int32 Tag_Redline_2 = 14;
1166 static const sal_Int32 Tag_TableDefinition = 15;
1167 static const sal_Int32 Tag_OutputFlyFrame = 16;
1168 static const sal_Int32 Tag_StartSection = 17;
1169};
1170
1176{
1182 sal_uInt32 m_nTableDepth;
1183 sal_Int32 m_nHyperLinkCount = 0;
1186};
1187
1188namespace docx {
1189
1191
1192}
1193
1194#endif // INCLUDED_SW_SOURCE_FILTER_WW8_DOCXATTRIBUTEOUTPUT_HXX
1195
1196/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SvxBoxItemLine
The class that has handlers for various resource types when exporting as DOCX.
bool m_bRunTextIsOn
Flag indicating that the Run Text is being written.
virtual void EndStyle() override
End of a style in the styles table.
virtual bool StartURL(const OUString &rUrl, const OUString &rTarget) override
Output URL start.
rtl::Reference< sax_fastparser::FastAttributeList > m_pCharLangAttrList
std::vector< OUString > m_rBookmarksStart
Bookmarks to output.
std::map< OUString, sal_Int32 > m_rOpenedAnnotationMarksIds
Maps of the annotation marks ids.
std::vector< FieldInfos > m_Fields
virtual void CharColor(const SvxColorItem &rColor) override
Sfx item Sfx item RES_CHRATR_COLOR.
void WriteFFData(const FieldInfos &rInfos)
void FlyFrameGraphic(const SwGrfNode *pGrfNode, const Size &rSize, const SwFlyFrameFormat *pOLEFrameFormat, SwOLENode *pOLENode, const SdrObject *pSdrObj=nullptr)
Output graphic fly frames or replacement graphics for OLE nodes.
virtual void WriteBookmarkInActParagraph(const OUString &rName, sal_Int32 nFirstRunPos, sal_Int32 nLastRunPos) override
Insert a bookmark inside the currently processed paragraph.
void ExportOLESurround(const SwFormatSurround &rWrap)
DocxColBreakStatus m_nColBreakStatus
virtual void NumberingLevel(sal_uInt8 nLevel, sal_uInt16 nStart, sal_uInt16 nNumberingType, SvxAdjust eAdjust, const sal_uInt8 *pNumLvlPos, sal_uInt8 nFollow, const wwFont *pFont, const SfxItemSet *pOutSet, sal_Int16 nIndentAt, sal_Int16 nFirstLineIndex, sal_Int16 nListTabPos, const OUString &rNumberingString, const SvxBrushItem *pBrush, bool isLegal) override
All the numbering level information.
virtual void WritePostitFieldReference() override
for docx w:commentReference
std::vector< OUString > m_rAnnotationMarksStart
Annotation marks to output.
virtual void CharEmphasisMark(const SvxEmphasisMarkItem &rEmphasisMark) override
Sfx item RES_CHRATR_EMPHASIS_MARK.
void WriteOLE2Obj(const SdrObject *pSdrObj, SwOLENode &rNode, const Size &rSize, const SwFlyFrameFormat *pFlyFrameFormat, const sal_Int8 nFormulaAlignment)
std::vector< OUString > m_rPermissionsEnd
void WriteOLEShape(const SwFlyFrameFormat &rFrameFormat, const Size &rSize, std::string_view rShapeId, const OUString &rImageId)
bool m_bIgnoreNextFill
If FormatBox() already handled fill style / gradient.
void StartRedline(const SwRedlineData *pRedlineData, bool bLastRun)
Output redlining.
virtual void StartRuby(const SwTextNode &rNode, sal_Int32 nPos, const SwFormatRuby &rRuby) override
Output ruby start.
std::unique_ptr< docx::FootnotesList > m_pFootnotesList
OUString m_sLastOpenedBookmark
Name of the last opened bookmark.
void WriteFormData_Impl(const ::sw::mark::IFieldmark &rFieldmark)
std::vector< sal_Int32 > m_LastOpenCell
bool ExportAsActiveXControl(const SdrObject *pObject) const
virtual void StartRunProperties() override
Called before we start outputting the attributes.
rtl::Reference< sax_fastparser::FastAttributeList > m_pFontsAttrList
virtual bool IsFlyProcessingPostponed() override
Is processing of fly postponed ?
void EndTableCell(sal_uInt32 nCell)
void OutputDefaultItem(const SfxPoolItem &rHt)
Similar to OutputItem(), but write something only if it is not the default.
virtual void SectFootnoteEndnotePr() override
for footnote/endnote section properties
void WriteBookmarks_Impl(std::vector< OUString > &rStarts, std::vector< OUString > &rEnds, const SwRedlineData *pRedlineData=nullptr)
virtual void RunText(const OUString &rText, rtl_TextEncoding eCharSet=RTL_TEXTENCODING_UTF8, const OUString &rSymbolFont=OUString()) override
Output text (inside a run).
std::vector< OUString > m_rFinalBookmarksEnd
void WriteField_Impl(const SwField *pField, ww::eField eType, const OUString &rFieldCmd, FieldFlags nMode, OUString const *pBookmarkName=nullptr)
virtual void FormatVertOrientation(const SwFormatVertOrient &) override
Sfx item RES_VERT_ORIENT.
virtual void TableRowEnd(sal_uInt32 nDepth) override
virtual void SetField(const SwField &rField, ww::eField eType, const OUString &rCmd) override
rtl::Reference< sax_fastparser::FastAttributeList > m_pHyperlinkAttrList
virtual oox::drawingml::DrawingML & GetDrawingML() override
void WritePostponedMath(const SwOLENode *pObject, sal_Int8)
std::optional< std::vector< PostponedDrawing > > m_oPostponedCustomShape
std::vector< css::beans::PropertyValue > m_aTextEffectsGrabBag
GrabBag for text effects like glow, shadow, ...
const ::sax_fastparser::FSHelperPtr & GetSerializer() const
Occasionally need to use this serializer from the outside.
std::map< OUString, std::vector< OUString > > m_aSeqBookmarksNames
If there are bookmarks around sequence fields, this map contains the names of these bookmarks for eac...
virtual void ParaVerticalAlign(const SvxParaVertAlignItem &rAlign) override
Sfx item RES_PARATR_VERTALIGN.
void SetAlternateContentChoiceOpen(bool bAltContentChoiceOpen)
virtual void TableDefaultBorders(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void TextLineBreak(const SwFormatLineBreak &rLineBreak) override
RES_TXTATR_LINEBREAK, i.e. clearing breaks.
virtual void FormatSurround(const SwFormatSurround &) override
Sfx item RES_SURROUND.
virtual void FormatFillGradient(const XFillGradientItem &) override
Sfx item RES_FILL_GRADIENT.
virtual void CharHidden(const SvxCharHiddenItem &rHidden) override
Sfx item RES_CHRATR_HIDDEN.
const SwRedlineData * m_pRedlineData
Redline data to remember in the text run.
virtual void TableRowRedline(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
virtual void FormatColumns_Impl(sal_uInt16 nCols, const SwFormatCol &rCol, bool bEven, SwTwips nPageSize) override
Sfx item RES_COL.
static const sal_Int32 Tag_Redline_2
virtual void FormatKeep(const SvxFormatKeepItem &) override
Sfx item RES_KEEP.
bool WriteOLEMath(const SwOLENode &rNode, const sal_Int8 nAlign)
void EmbedFontStyle(std::u16string_view name, int tag, FontFamily family, FontItalic italic, FontWeight weight, FontPitch pitch)
std::optional< css::drawing::FillStyle > m_oFillStyle
void DoWriteBookmarkTagEnd(sal_Int32 nId)
virtual void OutlineNumbering(sal_uInt8 nLvl) override
Numbering rule and Id.
virtual void CharFontCTL(const SvxFontItem &rFont) override
Sfx item RES_CHRATR_CTL_FONT.
bool m_bWritingField
Flag indicating that multiple runs of a field are being written.
const DocxExport & GetExport() const
void WriteFloatingTable(ww8::Frame const *pParentFrame)
virtual void CharIdctHint(const SfxPoolItem &) override
Sfx item RES_CHRATR_IdctHint.
virtual void EndRuby(const SwTextNode &rNode, sal_Int32 nPos) override
Output ruby end.
void WriteFlyFrame(const ww8::Frame &rFrame)
void WritePostponedFormControl(const SdrObject *pObject)
virtual void CharLanguageCTL(const SvxLanguageItem &rLanguageItem) override
Sfx item RES_CHRATR_CTL_LANGUAGE.
virtual void CharEscapement(const SvxEscapementItem &rEscapement) override
Sfx item RES_CHRATR_ESCAPEMENT.
virtual void StartSection() override
Start of the section properties.
static OString GetOLEStyle(const SwFlyFrameFormat &rFormat, const Size &rSize)
static OString TransHighlightColor(sal_uInt8 nIco)
Translate an ico value to the corresponding HighlightColorValues enumaration item.
virtual void OutputFlyFrame_Impl(const ww8::Frame &rFormat, const Point &rNdTopLeft) override
Output frames - the implementation.
void popFromTableExportContext(DocxTableExportContext const &rContext)
Restores from the remembered state.
virtual void CharLanguageCJK(const SvxLanguageItem &rLanguageItem) override
Sfx item RES_CHRATR_CJK_LANGUAGE.
virtual void ParaAdjust(const SvxAdjustItem &rAdjust) override
Sfx item RES_PARATR_ADJUST.
virtual void EndParagraphProperties(const SfxItemSet &rParagraphMarkerProperties, const SwRedlineData *pRedlineData, const SwRedlineData *pRedlineParagraphMarkerDeleted, const SwRedlineData *pRedlineParagraphMarkerInserted) override
Called after we end outputting the attributes.
virtual void CharWeight(const SvxWeightItem &rWeight) override
Sfx item RES_CHRATR_WEIGHT.
void DoWriteBookmarkStartIfExist(sal_Int32 nRunPos)
void FontCharset(sal_uInt8 nCharSet, rtl_TextEncoding nEncoding) const
Font charset.
virtual void CharShadow(const SvxShadowedItem &rShadow) override
Sfx item RES_CHRATR_SHADOWED.
virtual sal_Int32 StartParagraph(ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, bool bGenerateParaId) override
Start of the paragraph.
virtual void FormatLineNumbering(const SwFormatLineNumber &) override
Sfx item RES_LINENUMBER.
virtual void EndStyles(sal_uInt16 nNumberOfStyles) override
End of the styles table.
void WriteSdtDropDownStart(const OUString &rName, OUString const &rSelected, uno::Sequence< OUString > const &rListItems)
static bool TextBoxIsFramePr(const SwFrameFormat &rFrameFormat)
void FootnotesEndnotes(bool bFootnotes)
Output the content of the footnotes.xml resp. endnotes.xml.
void EndRedline(const SwRedlineData *pRedlineData, bool bLastRun)
Output redlining.
virtual void EmptyParagraph() override
Empty paragraph.
void WriteActiveXControl(const SdrObject *pObject, const SwFrameFormat &rFrameFormat, bool bInsideRun)
static OString convertToOOXMLVertOrient(sal_Int16 nOrient)
std::multimap< sal_Int32, OUString > m_aBookmarksOfParagraphStart
Bookmarks of the current paragraph.
virtual bool DropdownField(const SwField *pField) override
virtual void FormatFrameDirection(const SvxFrameDirectionItem &) override
Sfx item RES_FRAMEDIR.
virtual void OverrideNumberingDefinition(SwNumRule const &rRule, sal_uInt16 nNum, sal_uInt16 nAbstractNum, const std::map< size_t, size_t > &rLevelOverrides) override
Numbering definition that overrides abstract numbering definition.
virtual void CharFontSize(const SvxFontHeightItem &rFontSize) override
Sfx item RES_CHRATR_FONTSIZE.
virtual void CharLanguage(const SvxLanguageItem &rLanguage) override
Sfx item RES_CHRATR_LANGUAGE.
void StartField_Impl(const SwTextNode *pNode, sal_Int32 nPos, FieldInfos const &rInfos, bool bWriteRun=false)
virtual void StartStyleProperties(bool bParProp, sal_uInt16 nStyle) override
Start of (paragraph or run) properties of a style.
void LatentStyles()
Write latent styles.
virtual void CharWeightCTL(const SvxWeightItem &rWeight) override
Sfx item RES_CHRATR_CTL_WEIGHT.
std::shared_ptr< DocxTableStyleExport > m_pTableStyleExport
void EndFont() const
End the font.
virtual void TableNodeInfoInner(ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner) override
virtual bool AnalyzeURL(const OUString &rURL, const OUString &rTarget, OUString *pLinkURL, OUString *pMark) override
void pushToTableExportContext(DocxTableExportContext &rContext)
Stores the table export state to the passed context and resets own state.
void EmbedFont(std::u16string_view name, FontFamily family, FontPitch pitch)
Write out the font into the document, if it's an embedded font.
virtual void SectionLineNumbering(sal_uLong nRestartNo, const SwLineNumberInfo &rLnNumInfo) override
Numbering of the lines in the document.
std::vector< ww8::Frame > m_vPostponedFlys
Stores the flys what are anchored inside a fly.
std::vector< sal_Int32 > m_nHyperLinkCount
virtual void WriteOutliner(const OutlinerParaObject &rParaObj) override
VMLTextExport.
virtual void TableDefinition(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
std::vector< PostponedMathObjects > m_aPostponedMaths
virtual void TextFootnote_Impl(const SwFormatFootnote &) override
Sfx item RES_TXTATR_FTN.
void WriteFinalBookmarks_Impl(std::vector< OUString > &rStarts, std::vector< OUString > &rEnds)
void WriteSdtPlainText(const OUString &sValue, const uno::Sequence< beans::PropertyValue > &aGrabBagSdt)
std::multimap< sal_Int32, OUString > m_aBookmarksOfParagraphEnd
virtual void DefaultStyle() override
Write default style.
void InitCollectedParagraphProperties()
Initialize the structures where we are going to collect some of the paragraph properties.
virtual void Redline(const SwRedlineData *pRedline) override
Output redlining.
static const sal_Int32 Tag_StartRun_1
void DocDefaults()
Write Doc Defaults.
void DoWriteBookmarkTagStart(std::u16string_view bookmarkName)
virtual void CharRotate(const SvxCharRotateItem &rRotate) override
Sfx item RES_CHRATR_ROTATE.
void DoWriteBookmarkEndIfExist(sal_Int32 nRunPos)
virtual void TableBackgrounds(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
std::map< OUString, sal_Int32 > m_rOpenedBookmarksIds
Maps of the bookmarks ids.
virtual void CharBidiRTL(const SfxPoolItem &) override
Sfx item RES_CHRATR_BidiRTL.
std::vector< OUString > m_rBookmarksEnd
virtual void ParaGrabBag(const SfxGrabBagItem &) override
Sfx item RES_PARATR_GRABBAG.
std::optional< SwLineBreakClear > m_oLineBreakClear
void InitCollectedRunProperties()
Initialize the structures where we are going to collect some of the run properties.
virtual void StartStyle(const OUString &rName, StyleType eType, sal_uInt16 nBase, sal_uInt16 nNext, sal_uInt16 nLink, sal_uInt16 nWwId, sal_uInt16 nSlot, bool bAutoUpdate) override
Start of a style in the styles table.
rtl::Reference< sax_fastparser::FastAttributeList > m_pColorAttrList
Attributes of the run color.
void SyncNodelessCells(ww8::WW8TableNodeInfoInner::Pointer_t const &pInner, sal_Int32 nCell, sal_uInt32 nRow)
editeng::WordPageMargins m_pageMargins
SwRedlineData * m_pMoveRedlineData
virtual void ParaWidows(const SvxWidowsItem &rWidows) override
Sfx item RES_PARATR_WIDOWS.
static const sal_Int32 Tag_StartParagraph_2
void FontPitchType(FontPitch ePitch) const
Font pitch.
void DoWriteBookmarksEnd(std::vector< OUString > &rEnds)
export the end bookmarks
void SetSerializer(::sax_fastparser::FSHelperPtr const &pSerializer)
For e.g. the output of the styles, we need to switch the serializer to another one.
virtual void StartAbstractNumbering(sal_uInt16 nId) override
Start of the abstract numbering definition instance.
bool HasEndnotes() const
Do we have any endnotes?
virtual void FieldVanish(const OUString &rText, ww::eField eType, OUString const *) override
virtual void FormatULSpace(const SvxULSpaceItem &rULSpace) override
Sfx item RES_UL_SPACE.
virtual void CharFontSizeCJK(const SvxFontHeightItem &rFontSize) override
Sfx item RES_CHRATR_CJK_FONTSIZE.
static const sal_Int32 Tag_Redline_1
rtl::Reference< sax_fastparser::FastAttributeList > m_pSectionSpacingAttrList
virtual ~DocxAttributeOutput() override
std::unordered_set< sal_Int32 > m_rSavedBookmarksIds
Set of ids of the saved bookmarks (used only for moveRange, yet)
virtual void NumberingDefinition(sal_uInt16 nId, const SwNumRule &rRule) override
Definition of a numbering instance.
virtual void ResetFlyProcessingFlag() override
Reset the flag for FlyProcessing.
virtual void TableInfoRow(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void StartTableRow(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner)
void DoWriteCmd(std::u16string_view rCmd)
void DoWriteMoveRangeTagStart(std::u16string_view bookmarkName, bool bFrom, const SwRedlineData *pRedlineData)
OUString m_aStartedParagraphSdtPrAlias
Same as m_aParagraphSdtPrAlias, but its content is available till the SDT is closed.
std::vector< ww8::WW8TableNodeInfoInner::Pointer_t > m_TableFirstCells
void DoWritePermissionsEnd()
export the end permissions
virtual void TableBidi(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
virtual void StartStyles() override
Start of the styles table.
void WriteOLE(SwOLENode &rNode, const Size &rSize, const SwFlyFrameFormat *rFlyFrameFormat)
virtual void TextINetFormat(const SwFormatINetFormat &) override
Sfx item RES_TXTATR_INETFMT.
std::vector< PostponedChart > m_aPostponedCharts
virtual void FormatFirstLineIndent(const SvxFirstLineIndentItem &rFirstLine) override
Sfx item RES_MARGIN_FIRSTLINE.
void EndParaSdtBlock()
End possibly opened paragraph sdt block.
virtual void FormatTextLeftMargin(const SvxTextLeftMarginItem &rTextLeftMargin) override
Sfx item RES_MARGIN_TEXTLEFT.
OUString m_sLastOpenedAnnotationMark
Name of the last opened annotation mark.
virtual void EndParagraph(ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner) override
End of the paragraph.
virtual void FormatDrop(const SwTextNode &rNode, const SwFormatDrop &rSwFormatDrop, sal_uInt16 nStyle, ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner) override
virtual void EndSection() override
End of the section properties.
rtl::Reference< sax_fastparser::FastAttributeList > m_pLRSpaceAttrList
void DoWriteMoveRangeTagEnd(sal_Int32 nId, bool bFrom)
void SetWritingHeaderFooter(bool bWritingHeaderFooter)
bool WriteOLEChart(const SdrObject *pSdrObj, const Size &rSize, const SwFlyFrameFormat *pFlyFrameFormat)
void BulletDefinition(int nId, const Graphic &rGraphic, Size aSize) override
Exports the definition (image, size) of a single numbering picture bullet.
virtual css::uno::Reference< css::text::XTextFrame > GetUnoTextFrame(css::uno::Reference< css::drawing::XShape > xShape) override
virtual void TextCharFormat(const SwFormatCharFormat &) override
Sfx item RES_TXTATR_CHARFMT.
virtual void FormatBox(const SvxBoxItem &) override
Sfx item RES_BOX.
virtual void CharCaseMap(const SvxCaseMapItem &rCaseMap) override
Sfx item Sfx item RES_CHRATR_CASEMAP.
virtual void CharFont(const SvxFontItem &rFont) override
Sfx item RES_CHRATR_FONT.
virtual void TableSpacing(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
virtual bool MaybeOutputBrushItem(SfxItemSet const &) override
virtual void WriteExpand(const SwField *pField) override
Write the expanded field.
std::optional< std::vector< PostponedOLE > > m_oPostponedOLEs
virtual void FormatPaperBin(const SvxPaperBinItem &) override
Sfx item RES_PAPER_BIN.
virtual void CharAnimatedText(const SvxBlinkItem &rBlink) override
Sfx item RES_CHRATR_BLINK.
void StartFont(const OUString &rFamilyName) const
Start the font.
virtual void RawText(const OUString &rText, rtl_TextEncoding eCharSet) override
Output text (without markup).
void CmdField_Impl(const SwTextNode *pNode, sal_Int32 nPos, FieldInfos const &rInfos, bool bWriteRun)
virtual void SectionTitlePage() override
Has different headers/footers for the title page.
virtual void FormatLRSpace(const SvxLRSpaceItem &rLRSpace) override
Sfx item RES_LR_SPACE.
sal_Int32 m_nNextParaId
[MS-DOCX] section 2.6.2.3
virtual void CharUnderline(const SvxUnderlineItem &rUnderline) override
Sfx item RES_CHRATR_UNDERLINE.
std::unique_ptr< SwWriteTable > m_xTableWrt
The current table helper.
o3tl::sorted_vector< const SwFrameFormat * > m_aFloatingTablesOfParagraph
virtual void FormatRightMargin(const SvxRightMarginItem &rRightMargin) override
Sfx item RES_MARGIN_RIGHT.
virtual void CharBorder(const ::editeng::SvxBorderLine *pAllBorder, const sal_uInt16 nDist, const bool bShadow) override
Sfx item RES_CHRATR_BOX.
virtual void TableHeight(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
std::vector< OUString > m_rAnnotationMarksEnd
static const sal_Int32 Tag_TableDefinition
bool m_bWritingHeaderFooter
Flag indicating that the header \ footer are being written.
virtual void CharBackground(const SvxBrushItem &rBrush) override
Sfx item RES_CHRATR_BACKGROUND.
void EndField_Impl(const SwTextNode *pNode, sal_Int32 nPos, FieldInfos &rInfos)
static const sal_Int32 Tag_InitCollectedRunProperties
void WriteCollectedRunProperties()
Output what we collected during the run properties output.
virtual void HiddenField(const SwField &rField) override
virtual void WriteTextBox(css::uno::Reference< css::drawing::XShape > xShape) override
DMLTextExport.
virtual void WriteVMLTextBox(css::uno::Reference< css::drawing::XShape > xShape) override
virtual void SectionBreaks(const SwNode &rNode) override
Called in order to output section breaks.
virtual void FormatFrameSize(const SwFormatFrameSize &) override
Sfx item RES_FRM_SIZE.
virtual void PageBreakBefore(bool bBreak) override
Page break As a paragraph property - the paragraph should be on the next page.
static OString convertToOOXMLVertOrientRel(sal_Int16 nOrientRel)
virtual void SetStateOfFlyFrame(FlyProcessingState nStateOfFlyFrame) override
Set the state of the Fly at current position.
bool m_bEndCharSdt
If the current SDT around runs should be ended before the current run.
virtual void TableInfoCell(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
std::vector< PostponedDrawing > m_aPostponedActiveXControls
::sax_fastparser::FSHelperPtr m_pSerializer
Fast serializer to output the data.
rtl::Reference< sax_fastparser::FastAttributeList > m_pParagraphSpacingAttrList
ParentStatus
Used to store the parent status of a PostIt (parent/child/neither)
std::unique_ptr< docx::FootnotesList > m_pEndnotesList
virtual void ParaNumRule_Impl(const SwTextNode *pTextNd, sal_Int32 nLvl, sal_Int32 nNumId) override
Sfx item RES_PARATR_NUMRULE.
virtual void SectionPageBorders(const SwFrameFormat *pFormat, const SwFrameFormat *pFirstPageFormat) override
Description of the page borders.
FlyProcessingState m_nStateOfFlyFrame
State of the Fly at current position.
void WriteFormDateStart(const OUString &sFullDate, const OUString &sDateFormat, const OUString &sLang, const uno::Sequence< beans::PropertyValue > &aGrabBagSdt)
virtual DocxExport & GetExport() override
Return the right export class.
void StartTableCell(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner, sal_uInt32 nCell, sal_uInt32 nRow)
virtual void ParaSnapToGrid(const SvxParaGridItem &) override
Sfx item RES_PARATR_SNAPTOGRID.
virtual bool FootnoteEndnoteRefTag() override
docx requires footnoteRef/endnoteRef tag at the beginning of each of them
sal_uInt32 m_nEmbedFlyLevel
The first frame (anchored to the main text) is 0.
static const sal_Int32 Tag_EndRun_1
std::vector< OUString > m_rPermissionsStart
Permissions to output.
oox::drawingml::DrawingML & m_rDrawingML
DrawingML access.
sal_Int32 m_nRedlineId
Id of the redline.
virtual void CharPostureCJK(const SvxPostureItem &rPosture) override
Sfx item RES_CHRATR_CJK_POSTURE.
bool m_bPreventDoubleFieldsHandling
Field data to remember in the text run.
hasProperties WritePostitFields()
static const sal_Int32 Tag_WriteSdtBlock
void TableCellProperties(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner, sal_uInt32 nCell, sal_uInt32 nRow)
virtual void TableVerticalCell(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
unsigned int m_postitFieldsMaxId
Number of postit fields which already have a commentReference written.
virtual void CharWeightCJK(const SvxWeightItem &rWeight) override
Sfx item RES_CHRATR_CJK_WEIGHT.
void WritePostponedActiveXControl(bool bInsideRun)
virtual void CharRelief(const SvxCharReliefItem &rRelief) override
Sfx item RES_CHRATR_RELIEF.
std::vector< std::pair< const SwPostItField *, PostItDOCXData > > m_postitFields
Maps postit fields to ID's, used in commentRangeStart/End, commentReference and comment....
void CmdEndField_Impl(const SwTextNode *pNode, sal_Int32 nPos, bool bWriteRun)
virtual void ParaHangingPunctuation(const SfxBoolItem &) override
Sfx item RES_PARATR_HANGINGPUNCTUATION.
std::map< OUString, EmbeddedFontRef > m_FontFilesMap
bool HasFootnotes() const
Do we have any footnotes?
virtual void SetAnchorIsLinkedToNode(bool bAnchorLinkedToNode) override
If the node has an anchor linked.
void WriteSrcRect(const css::uno::Reference< css::beans::XPropertySet > &xShapePropSet, const SwFrameFormat *pFrameFormat)
DocxExport & m_rExport
Reference to the export, where to get the data from.
static void AddToAttrList(rtl::Reference< sax_fastparser::FastAttributeList > &pAttrList, Args &&... args)
std::optional< std::vector< PostponedGraphic > > m_oPostponedGraphic
const SwField * m_PendingPlaceholder
bool IsAlternateContentChoiceOpen() const
void SectionRtlGutter(const SfxBoolItem &rRtlGutter) override
RES_RTL_GUTTER.
static const sal_Int32 Tag_StartParagraph_1
std::vector< OUString > m_rFinalBookmarksStart
Bookmarks to output at the end.
virtual void CharFontSizeCTL(const SvxFontHeightItem &rFontSize) override
Sfx item RES_CHRATR_CTL_FONTSIZE.
virtual void SectionBiDi(bool bBiDi) override
Columns populated from right/numbers on the right side?
virtual void FormatHorizOrientation(const SwFormatHoriOrient &) override
Sfx item RES_HORI_ORIENT.
virtual void CharAutoKern(const SvxAutoKernItem &) override
Sfx item RES_CHRATR_AUTOKERN.
virtual void CharTwoLines(const SvxTwoLinesItem &rTwoLines) override
Sfx item RES_CHRATR_TWO_LINES.
void FontFamilyType(FontFamily eFamily) const
Font family.
std::vector< sal_Int32 > m_LastClosedCell
static const sal_Int32 Tag_StartSection
std::vector< std::map< SvxBoxItemLine, css::table::BorderLine2 > > m_aTableStyleConfs
static const sal_Int32 Tag_StartRun_2
virtual void StartRun(const SwRedlineData *pRedlineData, sal_Int32 nPos, bool bSingleEmptyRun=false) override
Start of the text run.
unsigned int m_nChartCount
count charts consistently for unit tests
virtual void ParaLineSpacing_Impl(short nSpace, short nMulti) override
Sfx item RES_PARATR_LINESPACING.
virtual void TableCanSplit(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
virtual void TextVerticalAdjustment(const css::drawing::TextVerticalAdjust) override
void DoWritePermissionsStart()
Write the start permissions.
virtual void SectionPageNumbering(sal_uInt16 nNumType, const ::std::optional< sal_uInt16 > &oPageRestartNumber) override
The style of the page numbers.
virtual void CharCrossedOut(const SvxCrossedOutItem &rCrossedOut) override
Sfx item RES_CHRATR_CROSSEDOUT.
void FontAlternateName(const OUString &rName) const
Alternate name for the font.
std::optional< std::vector< PostponedDiagram > > m_oPostponedDiagrams
virtual void FormatAnchor(const SwFormatAnchor &) override
Sfx item RES_ANCHOR.
void WriteAnnotationMarks_Impl(std::vector< OUString > &rStarts, std::vector< OUString > &rEnds)
virtual void SectionFormProtection(bool bProtected) override
Protection of forms.
virtual void CharScaleWidth(const SvxCharScaleWidthItem &rScaleWidth) override
Sfx item RES_CHRATR_SCALEW.
virtual void CharContour(const SvxContourItem &rContour) override
Sfx item Sfx item RES_CHRATR_CONTOUR.
static void WriteFootnoteEndnotePr(::sax_fastparser::FSHelperPtr const &fs, int tag, const SwEndNoteInfo &info, int listtag)
writes the footnotePr/endnotePr (depending on tag) section
void WriteLineBreak()
Writes a clearing line break at the end of run properties, if there are any.
void PostponeOLE(SwOLENode &rNode, const Size &rSize, const SwFlyFrameFormat *pFlyFrameFormat)
virtual void CharPostureCTL(const SvxPostureItem &rWeight) override
Sfx item RES_CHRATR_CTL_POSTURE.
virtual void ParaSplit(const SvxFormatSplitItem &rSplit) override
Sfx item RES_PARATR_SPLIT.
virtual void EndAbstractNumbering() override
End of the abstract numbering definition instance.
virtual void CharHighlight(const SvxBrushItem &rHighlight) override
Sfx item RES_CHRATR_HIGHLIGHT.
virtual bool EndURL(bool) override
Output URL end.
void PopulateFrameProperties(const SwFrameFormat *pFrameFormat, const Size &rSize)
virtual void RTLAndCJKState(bool bIsRTL, sal_uInt16 nScript) override
Export the state of RTL/CJK.
virtual void CharFontCJK(const SvxFontItem &rFont) override
Sfx item RES_CHRATR_CJK_FONT.
virtual void SectionBreak(sal_uInt8 nC, bool bBreakAfter, const WW8_SepInfo *pSectionInfo=nullptr, bool bExtraPageBreak=false) override
Write a section break msword::ColumnBreak or msword::PageBreak bBreakAfter: the break must be schedul...
virtual void ParaHyphenZone(const SvxHyphenZoneItem &) override
Sfx item RES_PARATR_HYPHENZONE.
std::shared_ptr< SwContentControl > m_pContentControl
std::unique_ptr< const WW8_SepInfo > m_pSectionInfo
static void ImplCellMargins(sax_fastparser::FSHelperPtr const &pSerializer, const SvxBoxItem &rBox, sal_Int32 tag, bool bUseStartEnd, const SvxBoxItem *pDefaultMargins=nullptr)
void StartTable(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner)
virtual void ParagraphStyle(sal_uInt16 nStyle) override
Output style.
virtual void CharPosture(const SvxPostureItem &rPosture) override
Sfx item RES_CHRATR_POSTURE.
virtual void ParaTabStop(const SvxTabStopItem &rTabStop) override
Sfx item RES_PARATR_TABSTOP.
virtual void TableCellRedline(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
virtual void ParaOutlineLevel(const SfxUInt16Item &) override
std::optional< std::vector< PostponedDrawing > > m_oPostponedDMLDrawings
static const sal_Int32 Tag_StartParagraphProperties
void FinishTableRowCell(ww8::WW8TableNodeInfoInner::Pointer_t const &pInner, bool bForceEmptyParagraph=false)
End cell, row, and even the entire table if necessary.
void WriteCollectedParagraphProperties()
Output what we collected during the run properties output.
void DoWriteFieldRunProperties(const SwTextNode *pNode, sal_Int32 nPos, bool bWriteCombChars=false)
Writes properties for run that is used to separate field implementation.
virtual void SectionType(sal_uInt8 nBreakCode) override
The type of breaking.
static OString convertToOOXMLHoriOrientRel(sal_Int16 nOrientRel)
void GetSdtEndBefore(const SdrObject *pSdrObj)
virtual void FormatBackground(const SvxBrushItem &) override
Sfx item RES_BACKGROUND.
virtual void CharKerning(const SvxKerningItem &rKerning) override
Sfx item RES_CHRATR_KERNING.
void TableDefaultCellMargins(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner)
virtual void EndRunProperties(const SwRedlineData *pRedlineData) override
Called after we end outputting the attributes.
bool m_bHadSectPr
Did we have a section break in this paragraph? Set by StartSection(), reset by the next StartParagrap...
std::stack< std::vector< ww8::Frame > > m_aFramesOfParagraph
std::vector< const SdrObject * > m_aPostponedFormControls
rtl::Reference< sax_fastparser::FastAttributeList > m_pEastAsianLayoutAttrList
virtual bool PlaceholderField(const SwField *pField) override
void FootnoteEndnoteReference()
Output the footnote/endnote reference (if there's one to output).
void WriteSdtDropDownEnd(OUString const &rSelected, uno::Sequence< OUString > const &rListItems)
virtual void EndRun(const SwTextNode *pNode, sal_Int32 nPos, sal_Int32 nLen, bool bLastRun=false) override
End of the text run.
static const sal_Int32 Tag_StartRunProperties
static OString convertToOOXMLHoriOrient(sal_Int16 nOrient, bool bIsPosToggle)
virtual void ParaScriptSpace(const SfxBoolItem &) override
Sfx item RES_PARATR_SCRIPTSPACE.
static const sal_Int32 Tag_OutputFlyFrame
virtual void PostitField(const SwField *pField) override
static const sal_Int32 Tag_StartRun_3
virtual void TableOrientation(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
DocxAttributeOutput(DocxExport &rExport, const ::sax_fastparser::FSHelperPtr &pSerializer, oox::drawingml::DrawingML *pDrawingML)
virtual void ParaForbiddenRules(const SfxBoolItem &) override
Sfx item RES_PARATR_FORBIDDEN_RULES.
virtual void FormatTextGrid(const SwTextGridItem &) override
Sfx item RES_TEXTGRID.
void DoWritePermissionTagStart(std::u16string_view permission)
void InitTableHelper(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner)
virtual void EndStyleProperties(bool bParProp) override
End of (paragraph or run) properties of a style.
virtual void RefField(const SwField &rField, const OUString &rRef) override
rtl::Reference< sax_fastparser::FastAttributeList > m_pBackgroundAttrList
Attributes of the paragraph background.
bool m_bOpenedSectPr
Flag indicating that the section properties are being written.
void DoWriteBookmarksStart(std::vector< OUString > &rStarts, const SwRedlineData *pRedlineData=nullptr)
Write the start bookmarks.
virtual void FormatFillStyle(const XFillStyleItem &) override
Sfx item RES_FILL_STYLE.
static const sal_Int32 Tag_EndRun_2
virtual void StartParagraphProperties() override
Called before we start outputting the attributes.
virtual void CharGrabBag(const SfxGrabBagItem &) override
Sfx item RES_CHRATR_GRABBAG.
static const sal_Int32 Tag_InitCollectedParagraphProperties
void DoWritePermissionTagEnd(std::u16string_view permission)
The class that does all the actual DOCX export-related work.
Definition: docxexport.hxx:75
Using framePr, a paragraph can be enclosed in a frame described by its pPr paragraph settings,...
void SetUseFrameBorders(bool bSet)
bool UseFrameBorders(sal_Int32 nTableDepth)
ww8::Frame * Frame()
void SetUseFrameTextDirection(bool bSet)
bool UseFrameTextDirection(sal_Int32 nTableDepth)
void SetUseFrameBackground(bool bSet)
void SetFrame(ww8::Frame *pSet, sal_Int32 nTableDepth=-1)
rtl::Reference< sax_fastparser::FastAttributeList > m_pTokenChildren
rtl::Reference< sax_fastparser::FastAttributeList > m_pTokenAttributes
rtl::Reference< sax_fastparser::FastAttributeList > m_pTextAttrs
void WriteExtraParams(const ::sax_fastparser::FSHelperPtr &pSerializer)
rtl::Reference< sax_fastparser::FastAttributeList > m_pDataBindingAttrs
void GetSdtParamsFromGrabBag(const uno::Sequence< beans::PropertyValue > &aGrabBagSdt)
void EndSdtBlock(const ::sax_fastparser::FSHelperPtr &pSerializer)
Closes a currently open SDT block.
void WriteSdtBlock(const ::sax_fastparser::FSHelperPtr &pSerializer, bool bRunTextIsOn, bool bParagraphHasDrawing)
Stores the properties of a content control.
Base class of all fields.
Definition: fldbas.hxx:296
FlyAnchors.
Definition: fmtanchr.hxx:37
If SwFormatDrop is a Client, it is the CharFormat that describes the font for the DropCaps.
Definition: paratr.hxx:72
SfxPoolItem subclass for footnotes and endnotes, stored in the anchor text node.
Definition: fmtftn.hxx:47
Defines the horizontal position of a fly frame.
Definition: fmtornt.hxx:73
SfxPoolItem subclass that wraps an SwLineBreakClear.
Contains the line numbering properties of this paragraph.
Definition: fmtline.hxx:33
Defines the vertical position of a fly frame.
Definition: fmtornt.hxx:37
Style of a layout element.
Definition: frmfmt.hxx:72
< purpose of derivation from SwClient: character style for displaying the numbers.
Definition: lineinfo.hxx:39
Base class of the Writer document model elements.
Definition: node.hxx:98
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:112
static rtl::Reference< FastAttributeList > createAttrList()
Make exporting a Writer Frame easy.
std::shared_ptr< WW8TableInfo > Pointer_t
std::shared_ptr< WW8TableNodeInfoInner > Pointer_t
std::shared_ptr< WW8TableNodeInfo > Pointer_t
Collects and outputs fonts.
Definition: wrtww8.hxx:297
DocxColBreakStatus
@ COLBRK_WRITEANDPOSTPONE
@ COLBRK_POSTPONE
@ COLBRK_WRITE
@ COLBRK_NONE
EmbeddedObjectRef * pObject
FilterGroup & rTarget
DocumentType eType
FontPitch
FontItalic
FontFamily
SwLineBreakClear
Defines the location of a line break text wrapping restart.
const char * name
sal_Int64 n
sal_uInt16 nPos
sal_Int16 nNumType
rtl::Reference< FastAttributeList > SurroundToVMLWrap(SwFormatSurround const &rSurround)
None
args
std::shared_ptr< FastSerializerHelper > FSHelperPtr
FontWeight
StyleType
@HTML
eUNKNOWN
sal_Int16 nId
sal_uIntPtr sal_uLong
PostponedChart(const SdrObject *sdrObject, const Size &rSize, const SwFlyFrameFormat *rFrame)
PostponedDiagram(const SdrObject *o, const SwFrameFormat *frm)
PostponedDrawing(const SdrObject *sdrObj, const SwFrameFormat *frm)
PostponedGraphic(const SwGrfNode *n, Size s, const SdrObject *sObj)
PostponedOLE(SwOLENode *rObject, const Size &rSize, const SwFlyFrameFormat *rFrame)
All the information that should be stashed away when we're in the middle of of a table export and sti...
DocxAttributeOutput & m_rOutput
ww8::WW8TableInfo::Pointer_t m_pTableInfo
DocxTableExportContext(DocxAttributeOutput &rOutput)
std::shared_ptr< const SwField > pField
const ::sw::mark::IFieldmark * pFieldmark
A structure that holds information about the options selected when outputting a border to DOCX.
std::shared_ptr< editeng::WordBorderDistances > pDistances
SvxShadowLocation aShadowLocation
A structure that holds flags for the table export.
bool m_bTableCellOpen
Remember if we are in an open cell, or not.
sal_uInt32 m_nTableDepth
Remember the current table depth.
bool m_bTableCellParaSdtOpen
If paragraph sdt got opened in this table cell.
SvxShadowLocation
SvxAdjust
tools::Long SwTwips
Definition: swtypes.hxx:51
unsigned char sal_uInt8
signed char sal_Int8
FlyProcessingState
enum to state the present state of the fly
Definition: wrtww8.hxx:166
FieldFlags
Definition: wrtww8.hxx:143