19#ifndef INCLUDED_SW_SOURCE_FILTER_HTML_WRTHTML_HXX
20#define INCLUDED_SW_SOURCE_FILTER_HTML_WRTHTML_HXX
29#include <com/sun/star/container/XIndexContainer.hpp>
30#include <com/sun/star/form/XForm.hpp>
66namespace utl {
class TempFileNamed; }
70#define HTML_PARSPACE (o3tl::toTwips(5, o3tl::Length::mm))
116#define HTMLMODE_BLOCK_SPACER 0x00010000
117#define HTMLMODE_FLOAT_FRAME 0x00020000
118#define HTMLMODE_VERT_SPACER 0x00040000
119#define HTMLMODE_NBSP_IN_TABLES 0x00080000
120#define HTMLMODE_LSPACE_IN_NUMBER_BULLET 0x00100000
122#define HTMLMODE_PRINT_EXT 0x00400000
123#define HTMLMODE_ABS_POS_FLY 0x00800000
124#define HTMLMODE_ABS_POS_DRAW 0x01000000
125#define HTMLMODE_FLY_MARGINS 0x02000000
126#define HTMLMODE_BORDER_NONE 0x04000000
127#define HTMLMODE_FONT_GENERIC 0x08000000
128#define HTMLMODE_FRSTLINE_IN_NUMBER_BULLET 0x10000000
129#define HTMLMODE_NO_CONTROL_CENTERING 0x20000000
131#define HTML_DLCOLL_DD 0x4000
132#define HTML_DLCOLL_DT 0x8000
134#define CSS1_FMT_ISTAG (USHRT_MAX)
135#define CSS1_FMT_CMPREF (USHRT_MAX-1)
136#define CSS1_FMT_SPECIAL (USHRT_MAX-1)
141#define CSS1_OUTMODE_SPAN_NO_ON 0x0000U
142#define CSS1_OUTMODE_SPAN_TAG_ON 0x0001U
143#define CSS1_OUTMODE_STYLE_OPT_ON 0x0002U
144#define CSS1_OUTMODE_RULE_ON 0x0003U
145#define CSS1_OUTMODE_SPAN_TAG1_ON 0x0004U
146#define CSS1_OUTMODE_ANY_ON 0x0007U
149#define CSS1_OUTMODE_SPAN_NO_OFF 0x0000U
150#define CSS1_OUTMODE_SPAN_TAG_OFF (sal_uInt16(0x0001U << 3))
151#define CSS1_OUTMODE_STYLE_OPT_OFF (sal_uInt16(0x0002U << 3))
152#define CSS1_OUTMODE_RULE_OFF (sal_uInt16(0x0003U << 3))
153#define CSS1_OUTMODE_ANY_OFF (sal_uInt16(0x0007U << 3))
155#define CSS1_OUTMODE_ONOFF(a) (CSS1_OUTMODE_##a##_ON|CSS1_OUTMODE_##a##_OFF)
156#define CSS1_OUTMODE_SPAN_TAG CSS1_OUTMODE_ONOFF(SPAN_TAG)
157#define CSS1_OUTMODE_STYLE_OPT CSS1_OUTMODE_ONOFF(STYLE_OPT)
158#define CSS1_OUTMODE_RULE CSS1_OUTMODE_ONOFF(RULE)
162#define CSS1_OUTMODE_TEMPLATE 0x0000U
163#define CSS1_OUTMODE_BODY (sal_uInt16(0x0001U << 6))
164#define CSS1_OUTMODE_PARA (sal_uInt16(0x0002U << 6))
165#define CSS1_OUTMODE_HINT (sal_uInt16(0x0003U << 6))
166#define CSS1_OUTMODE_FRAME (sal_uInt16(0x0004U << 6))
167#define CSS1_OUTMODE_TABLE (sal_uInt16(0x0005U << 6))
168#define CSS1_OUTMODE_TABLEBOX (sal_uInt16(0x0006U << 6))
169#define CSS1_OUTMODE_DROPCAP (sal_uInt16(0x0007U << 6))
170#define CSS1_OUTMODE_SECTION (sal_uInt16(0x0008U << 6))
171#define CSS1_OUTMODE_SOURCE (sal_uInt16(0x000fU << 6))
174#define CSS1_OUTMODE_ENCODE (sal_uInt16(0x0001U << 10))
178#define CSS1_OUTMODE_ANY_SCRIPT 0x0000U
180#define CSS1_OUTMODE_WESTERN (sal_uInt16(0x0001U << 11))
182#define CSS1_OUTMODE_CJK (sal_uInt16(0x0002U << 11))
184#define CSS1_OUTMODE_CTL (sal_uInt16(0x0003U << 11))
186#define CSS1_OUTMODE_NO_SCRIPT (sal_uInt16(0x0004U << 11))
187#define CSS1_OUTMODE_SCRIPT (sal_uInt16(0x0007U << 11))
193 css::uno::Reference<css::container::XIndexContainer> xFormComps;
197 HTMLControl( css::uno::Reference<css::container::XIndexContainer> xForm, SwNodeOffset nIdx );
201 bool operator<( const HTMLControl& rCtrl ) const
203 return nNdIdx < rCtrl.nNdIdx;
207class HTMLControls : public o3tl::sorted_vector<std::unique_ptr<HTMLControl>, o3tl::less_uniqueptr_to<HTMLControl> > {
210struct SwHTMLFormatInfo
212 const SwFormat *pFormat;
217 std::optional<SfxItemSet> moItemSet;
219 sal_Int32 nLeftMargin;
220 sal_Int32 nRightMargin;
221 short nFirstLineIndent;
223 sal_uInt16 nTopMargin;
224 sal_uInt16 nBottomMargin;
226 bool bScriptDependent;
229 explicit SwHTMLFormatInfo( const SwFormat *pF ) :
236 bScriptDependent(false)
240 SwHTMLFormatInfo( const SwFormat *pFormat, SwDoc *pDoc, SwDoc *pTemplate,
241 bool bOutStyles, LanguageType eDfltLang=LANGUAGE_DONTKNOW,
242 sal_uInt16 nScript=CSS1_OUTMODE_ANY_SCRIPT );
245 friend bool operator<( const SwHTMLFormatInfo& rInfo1,
246 const SwHTMLFormatInfo& rInfo2 )
248 return reinterpret_cast<sal_IntPtr>(rInfo1.pFormat) < reinterpret_cast<sal_IntPtr>(rInfo2.pFormat);
253typedef std::set<std::unique_ptr<SwHTMLFormatInfo>,
254 comphelper::UniquePtrValueLess<SwHTMLFormatInfo>> SwHTMLFormatInfos;
256class IDocumentStylePoolAccess;
260enum class Css1Background
272class SW_DLLPUBLIC SwHTMLWriter : public Writer
274 SwHTMLPosFlyFrames m_aHTMLPosFlyFrames;
275 std::unique_ptr<SwHTMLNumRuleInfo> m_pNumRuleInfo;
276 std::unique_ptr<SwHTMLNumRuleInfo> m_pNextNumRuleInfo;
277 sal_uInt32 m_nHTMLMode;
279 FieldUnit m_eCSS1Unit;
281 sal_uInt16 OutHeaderAttrs();
282 const SwPageDesc *MakeHeader( sal_uInt16& rHeaderAtrs );
285 void AddLinkTarget( std::u16string_view aURL );
286 void CollectLinkTargets();
288 void SetupFilterOptions(std::u16string_view rFilterOptions);
291 ErrCode WriteStream() override;
292 void SetupFilterOptions(SfxMedium& rMedium) override;
293 void SetupFilterFromPropertyValues(
294 const css::uno::Sequence<css::beans::PropertyValue>& rPropertyValues);
297 std::vector<OUString> m_aImgMapNames;
298 std::set<OUString> m_aImplicitMarks;
299 std::set<OUString> m_aNumRuleNames;
300 std::set<OUString> m_aScriptParaStyles;
301 std::set<OUString> m_aScriptTextStyles;
302 std::vector<OUString> m_aOutlineMarks;
303 std::vector<SwNodeOffset> m_aOutlineMarkPoss;
304 HTMLControls m_aHTMLControls;
305 SwHTMLFormatInfos m_CharFormatInfos;
306 SwHTMLFormatInfos m_TextCollInfos;
307 std::vector<SwFormatINetFormat*> m_aINetFormats;
308 std::optional<std::vector<SwTextFootnote*>> m_xFootEndNotes;
310 OUString m_aCSS1Selector;
311 OUString m_aBulletGrfs[MAXLEVEL];
313 css::uno::Reference<css::container::XIndexContainer> mxFormComps;
315 rtl::Reference<SwDoc> m_xTemplate;
316 std::optional<Color> m_xDfltColor;
317 SwNodeIndex *m_pStartNdIdx;
318 const SwPageDesc *m_pCurrPageDesc;
319 const SwFormatFootnote *m_pFormatFootnote;
321 sal_uInt32 m_aFontHeights[7];
324 sal_uInt32 m_nLastLFPos;
326 HtmlTokenId m_nLastParaToken;
327 sal_Int32 m_nBkmkTabPos;
328 sal_uInt16 m_nImgMapCnt;
329 sal_uInt16 m_nFormCntrlCnt;
330 sal_uInt16 m_nEndNote;
331 sal_uInt16 m_nFootNote;
332 sal_Int32 m_nLeftMargin;
333 sal_Int32 m_nDfltLeftMargin;
334 sal_Int32 m_nDfltRightMargin;
335 short m_nFirstLineIndent;
336 short m_nDfltFirstLineIndent;
337 sal_uInt16 m_nDfltTopMargin;
338 sal_uInt16 m_nDfltBottomMargin;
339 sal_uInt16 m_nIndentLvl;
340 sal_Int32 m_nWishLineLen;
341 sal_uInt16 m_nDefListLvl;
342 sal_Int32 m_nDefListMargin;
343 sal_uInt16 m_nHeaderFooterSpace;
344 sal_uInt16 m_nTextAttrsToIgnore;
345 sal_uInt16 m_nExportMode;
346 sal_uInt16 m_nCSS1OutMode;
347 sal_uInt16 m_nCSS1Script;
349 SvxFrameDirection m_nDirection;
351 LanguageType m_eLang;
355 bool m_bCfgOutStyles : 1;
356 bool m_bCfgPreferStyles : 1;
357 bool m_bCfgFormFeed : 1;
358 bool m_bCfgStarBasic : 1;
359 bool m_bCfgCpyLinkedGrfs : 1;
363 bool m_bFirstLine : 1;
373 bool m_bTextAttr : 1;
377 bool m_bOutTable : 1;
378 bool m_bOutHeader : 1;
379 bool m_bOutFooter : 1;
380 bool m_bOutFlyFrame : 1;
384 bool m_bFirstCSS1Rule : 1;
385 bool m_bFirstCSS1Property : 1;
388 bool m_bCSS1IgnoreFirstPageDesc : 1;
393 bool m_bClearLeft : 1;
394 bool m_bClearRight : 1;
395 bool m_bLFPossible : 1;
399 bool m_bPreserveForm : 1;
401 bool m_bCfgNetscape4 : 1;
403 bool mbSkipImages : 1;
405 bool mbSkipHeaderFooter : 1;
406 bool mbEmbedImages : 1;
408 std::unique_ptr<utl::TempFileNamed> mpTempBaseURL;
410 bool mbXHTML = false;
414 bool mbReqIF = false;
416#define sCSS2_P_CLASS_leaders "leaders"
417 bool m_bCfgPrintLayout : 1;
418 bool m_bParaDotLeaders : 1;
419 bool m_bPrettyPrint : 1;
423 std::map<sal_uInt16, int> maStartedAttributes;
425 OUString m_aRTFOLEMimeType;
428 bool m_bExportImagesAsOLE = false;
431 std::optional<sal_Int32> m_nShapeDPI;
434 std::optional<sal_Int32> m_nLeadingTabWidth;
438 explicit SwHTMLWriter( const OUString& rBaseURL, std::u16string_view rFilterOptions = std::u16string_view() );
439 virtual ~SwHTMLWriter() override;
441 void Out_SwDoc( SwPaM* );
444 void OutAnchor( const OUString& rName );
446 void OutPointFieldmarks( const SwPosition& rPos );
447 void OutImplicitMark( std::u16string_view rMark, const char *pMarkType );
449 OUString convertHyperlinkHRefValue(const OUString& rURL);
451 void OutHyperlinkHRefValue( const OUString& rURL );
454 bool OutFlyFrame( SwNodeOffset nNdIdx, sal_Int32 nContentIdx,
456 void OutFrameFormat( AllHtmlFlags nType, const SwFrameFormat& rFormat,
457 const SdrObject *pSdrObj );
459 void OutForm( bool bTagOn=true, const SwStartNode *pStNd=nullptr );
460 void OutHiddenForms();
461 void OutHiddenForm( const css::uno::Reference<css::form::XForm>& rForm );
463 void OutForm( bool bOn, const css::uno::Reference<css::container::XIndexContainer>& rFormComps );
464 void OutHiddenControls( const css::uno::Reference<css::container::XIndexContainer>& rFormComps,
465 const css::uno::Reference<css::beans::XPropertySet>& rPropSet );
466 bool HasControls() const;
468 void OutFootEndNoteInfo();
469 void OutFootEndNotes();
470 OUString GetFootEndNoteSym( const SwFormatFootnote& rFormatFootnote );
471 void OutFootEndNoteSym( const SwFormatFootnote& rFormatFootnote, const OUString& rNum,
472 sal_uInt16 nScript );
474 void OutBasic(const SwHTMLWriter& rHTMLWrt);
477 void OutAndSetDefList( sal_uInt16 nNewLvl );
479 void OutStyleSheet( const SwPageDesc& rPageDesc );
481 inline void OutCSS1_PropertyAscii( std::string_view pProp,
482 std::string_view rVal );
483 inline void OutCSS1_Property( std::string_view pProp, const OUString& rVal );
484 void OutCSS1_Property( std::string_view pProp, std::string_view pVal,
485 const OUString *pSVal, std::optional<sw::Css1Background> oBackground = std::nullopt );
486 void OutCSS1_UnitProperty( std::string_view pProp, tools::Long nVal );
487 void OutCSS1_PixelProperty( std::string_view pProp, tools::Long nVal, bool bVert );
488 void OutCSS1_SfxItemSet( const SfxItemSet& rItemSet, bool bDeep=true );
491 void OutBasicBodyEvents();
494 void OutBackground( const SvxBrushItem *pBrushItem, bool bGraphic );
495 void OutBackground( const SfxItemSet& rItemSet, bool bGraphic );
497 void OutLanguage( LanguageType eLang );
498 SvxFrameDirection GetHTMLDirection( SvxFrameDirection nDir ) const;
499 SvxFrameDirection GetHTMLDirection( const SfxItemSet& rItemSet ) const;
500 void OutDirection( SvxFrameDirection nDir );
501 static OString convertDirection(SvxFrameDirection nDirection);
506 OString OutFrameFormatOptions( const SwFrameFormat& rFrameFormat, const OUString& rAltText,
507 HtmlFrmOpts nFrameOpts );
509 void writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameFormat& rFrameFormat, std::u16string_view rAltText, HtmlFrmOpts nFrameOpts);
512 void OutCSS1_TableFrameFormatOptions( const SwFrameFormat& rFrameFormat );
515 void OutCSS1_TableCellBordersAndBG(const SwFrameFormat& rFrameFormat, const SvxBrushItem *pBrushItem);
517 void OutCSS1_SectionFormatOptions( const SwFrameFormat& rFrameFormat, const SwFormatCol *pCol );
518 void OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat, HtmlFrmOpts nFrameOpts,
519 const SdrObject *pSdrObj=nullptr,
520 const SfxItemSet *pItemSet=nullptr );
521 void OutCSS1_FrameFormatBackground( const SwFrameFormat& rFrameFormat );
523 void ChangeParaToken( HtmlTokenId nNew );
525 void IncIndentLevel()
529 void DecIndentLevel()
531 if ( m_nIndentLvl ) m_nIndentLvl--;
533 OString GetIndentString(sal_uInt16 nIncLvl = 0);
535 sal_Int32 GetLineLen()
537 return static_cast<sal_Int32>(Strm().Tell()-m_nLastLFPos);
539 void OutNewLine( bool bCheck=false );
542 SwPaM* GetEndPaM() { return m_pOrigPam; }
543 void SetEndPaM( SwPaM* pPam ) { m_pOrigPam = pPam; }
545 static sal_uInt32 ToPixel( sal_uInt32 nVal, const bool bVert );
547 SwHTMLFrameType GuessFrameType( const SwFrameFormat& rFrameFormat,
548 const SdrObject*& rpStrObj );
549 static SwHTMLFrameType GuessOLENodeFrameType( const SwNode& rNd );
551 void CollectFlyFrames();
553 sal_uInt16 GetHTMLFontSize( sal_uInt32 nFontHeight ) const;
556 SwHTMLNumRuleInfo& GetNumInfo() { return *m_pNumRuleInfo; }
560 SwHTMLNumRuleInfo *GetNextNumInfo() { return m_pNextNumRuleInfo.get(); }
561 std::unique_ptr<SwHTMLNumRuleInfo> ReleaseNextNumInfo();
564 void SetNextNumInfo( std::unique_ptr<SwHTMLNumRuleInfo> pNxt );
567 void FillNextNumInfo();
570 void ClearNextNumInfo();
572 static const SdrObject* GetHTMLControl( const SwDrawFrameFormat& rFormat );
573 static const SdrObject* GetMarqueeTextObj( const SwDrawFrameFormat& rFormat );
574 static sal_uInt16 GetCSS1Selector( const SwFormat *pFormat, OString& rToken,
575 OUString& rClass, sal_uInt16& rRefPoolId,
576 OUString *pPseudo=nullptr );
578 static const SwFormat *GetTemplateFormat( sal_uInt16 nPoolId, IDocumentStylePoolAccess* pTemplate );
579 static const SwFormat *GetParentFormat( const SwFormat& rFormat, sal_uInt16 nDeep );
581 static void SubtractItemSet( SfxItemSet& rItemSet,
582 const SfxItemSet& rRefItemSet,
584 bool bClearSame = true,
585 const SfxItemSet *pRefScriptItemSet=nullptr );
586 static bool HasScriptDependentItems( const SfxItemSet& rItemSet,
587 bool bCheckDropCap );
589 static void GetEEAttrsFromDrwObj( SfxItemSet& rItemSet,
590 const SdrObject *pObj );
592 static sal_uInt16 GetDefListLvl( std::u16string_view rNm, sal_uInt16 nPoolId );
594 sal_uInt32 GetHTMLMode() const
598 bool IsHTMLMode( sal_uInt32 nMode ) const
600 return (m_nHTMLMode & nMode) != 0;
603 inline bool IsCSS1Source( sal_uInt16 n ) const;
604 inline bool IsCSS1Script( sal_uInt16 n ) const;
606 static const char *GetNumFormat( sal_uInt16 nFormat );
607 static void PrepareFontList( const SvxFontItem& rFontItem, OUString& rNames,
608 sal_Unicode cQuote, bool bGeneric );
609 static sal_uInt16 GetCSS1ScriptForScriptType( sal_uInt16 nScriptType );
610 static sal_uInt16 GetLangWhichIdFromScript( sal_uInt16 nScript );
612 FieldUnit GetCSS1Unit() const { return m_eCSS1Unit; }
614 sal_Int32 indexOfDotLeaders( sal_uInt16 nPoolId, std::u16string_view rText );
617 OString GetNamespace() const;
620inline bool SwHTMLWriter::IsCSS1Source( sal_uInt16 n ) const
622 return n == (m_nCSS1OutMode & CSS1_OUTMODE_SOURCE);
625inline bool SwHTMLWriter::IsCSS1Script( sal_uInt16 n ) const
627 sal_uInt16 nScript = (m_nCSS1OutMode & CSS1_OUTMODE_SCRIPT);
628 return CSS1_OUTMODE_ANY_SCRIPT == nScript || n == nScript;
631inline void SwHTMLWriter::OutCSS1_PropertyAscii( std::string_view pProp,
632 std::string_view rVal )
634 OutCSS1_Property( pProp, rVal, nullptr );
637inline void SwHTMLWriter::OutCSS1_Property( std::string_view pProp,
638 const OUString& rVal )
640 OutCSS1_Property( pProp, std::string_view(), &rVal );
653 std::shared_ptr<SwUnoCursor> pOldPam;
655 std::unique_ptr<SwHTMLNumRuleInfo> pOldNumRuleInfo;
656 std::unique_ptr<SwHTMLNumRuleInfo> pOldNextNumRuleInfo;
657 sal_uInt16 nOldDefListLvl;
658 SvxFrameDirection nOldDirection;
659 bool bOldWriteAll : 1;
660 bool bOldOutHeader : 1;
661 bool bOldOutFooter : 1;
662 bool bOldOutFlyFrame : 1;
665 HTMLSaveData( SwHTMLWriter&, SwNodeOffset nStt, SwNodeOffset nEnd,
667 const SwFrameFormat *pFrameFormat=nullptr );
672SwHTMLWriter& OutHTML_FrameFormatOLENode( SwHTMLWriter& rWrt, const SwFrameFormat& rFormat,
674SwHTMLWriter& OutHTML_FrameFormatOLENodeGrf( SwHTMLWriter& rWrt, const SwFrameFormat& rFormat,
675 bool bInCntnr, bool bWriteReplacementGraphic = true );
677SwHTMLWriter& OutHTML_SwTextNode( SwHTMLWriter&, const SwContentNode& );
678SwHTMLWriter& OutHTML_SwTableNode( SwHTMLWriter& , SwTableNode &, const SwFrameFormat *,
679 const OUString* pCaption=nullptr, bool bTopCaption=false );
681SwHTMLWriter& OutHTML_DrawFrameFormatAsControl( SwHTMLWriter& rWrt, const SwDrawFrameFormat& rFormat,
682 const SdrUnoObj& rSdrObj, bool bInCntnr );
683SwHTMLWriter& OutHTML_DrawFrameFormatAsMarquee( SwHTMLWriter& rWrt, const SwDrawFrameFormat& rFormat,
684 const SdrObject& rSdrObj );
686SwHTMLWriter& OutHTML_HeaderFooter( SwHTMLWriter& rWrt, const SwFrameFormat& rFrameFormat,
689SwHTMLWriter& OutHTML_ImageStart( HtmlWriter& rHtml, SwHTMLWriter&, const SwFrameFormat& rFormat,
690 const OUString& rGraphicURL,
691 Graphic const & rGraphic, const OUString& rAlternateText,
692 const Size& rRealSize, HtmlFrmOpts nFrameOpts,
693 const char *pMarkType,
694 const ImageMap *pGenImgMap,
695 std::u16string_view rMimeType = {} );
696SwHTMLWriter& OutHTML_ImageEnd( HtmlWriter& rHtml, SwHTMLWriter& );
698SwHTMLWriter& OutHTML_BulletImage( SwHTMLWriter& rWrt, const char *pTag,
699 const SvxBrushItem* pBrush,
700 const OUString& rGraphicURL);
702SwHTMLWriter& OutHTML_SwFormatField( SwHTMLWriter& rWrt, const SfxPoolItem& rHt );
703SwHTMLWriter& OutHTML_SwFormatFootnote( SwHTMLWriter& rWrt, const SfxPoolItem& rHt );
704SwHTMLWriter& OutHTML_SwFormatLineBreak(SwHTMLWriter& rWrt, const SfxPoolItem& rHt);
705SwHTMLWriter& OutHTML_INetFormat( SwHTMLWriter&, const SwFormatINetFormat& rINetFormat, bool bOn );
707SwHTMLWriter& OutCSS1_BodyTagStyleOpt( SwHTMLWriter& rWrt, const SfxItemSet& rItemSet );
708SwHTMLWriter& OutCSS1_ParaTagStyleOpt( SwHTMLWriter& rWrt, const SfxItemSet& rItemSet );
710SwHTMLWriter& OutCSS1_HintSpanTag( SwHTMLWriter& rWrt, const SfxPoolItem& rHt );
711SwHTMLWriter& OutCSS1_HintStyleOpt( SwHTMLWriter& rWrt, const SfxPoolItem& rHt );
714SwHTMLWriter& OutCSS1_TableBGStyleOpt( SwHTMLWriter& rWrt, const SfxPoolItem& rHt );
716SwHTMLWriter& OutCSS1_NumberBulletListStyleOpt( SwHTMLWriter& rWrt, const SwNumRule& rNumRule,
719SwHTMLWriter& OutHTML_NumberBulletListStart( SwHTMLWriter& rWrt,
720 const SwHTMLNumRuleInfo& rInfo );
721SwHTMLWriter& OutHTML_NumberBulletListEnd( SwHTMLWriter& rWrt,
722 const SwHTMLNumRuleInfo& rNextInfo );
724SwHTMLWriter& OutCSS1_SvxBox( SwHTMLWriter& rWrt, const SfxPoolItem& rHt );
726OString GetCSS1_Color(const Color& rColor);
729bool IgnorePropertyForReqIF(bool bReqIF, std::string_view rProperty, std::string_view rValue,
730 std::optional<sw::Css1Background> oBackground = std::nullopt);
Marks a node in the document model.
Starts a section of nodes in the document model.
FnAttrOut SwAttrFnTab[POOLATTR_END - POOLATTR_BEGIN]
@ Replacement
The graphic frame is a replacement image of an OLE object.
SwAttrFnTab aHTMLAttrFnTab