sw/source/filter/html/css1atr.cxx        |  628 +++++++++++---------------
 sw/source/filter/html/htmlatr.cxx        |  742 +++++++++++++++----------------
 sw/source/filter/html/htmldrawwriter.cxx |   14 
 sw/source/filter/html/htmlfldw.cxx       |   47 -
 sw/source/filter/html/htmlflywriter.cxx  |  374 +++++++--------
 sw/source/filter/html/htmlforw.cxx       |   47 -
 sw/source/filter/html/htmlftn.cxx        |   41 -
 sw/source/filter/html/htmlnumwriter.cxx  |    4 
 sw/source/filter/html/htmlplug.cxx       |   92 +--
 sw/source/filter/html/htmltabw.cxx       |  109 ++--
 sw/source/filter/html/wrthtml.cxx        |   32 -
 sw/source/filter/html/wrthtml.hxx        |   46 -
 sw/source/filter/inc/wrt_fn.hxx          |    7 
 sw/source/filter/writer/wrt_fn.cxx       |    4 
 14 files changed, 1028 insertions(+), 1159 deletions(-)

New commits:
commit 60d9e89f5a18b437016cead0c5fb688d202bc90e
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri Mar 3 08:36:05 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Fri Mar 3 07:57:48 2023 +0000

    reduce casting in writer html export filter
    
    Change-Id: I8e690eea423a60a5009376a222d18ac214c77bc1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148154
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/source/filter/html/css1atr.cxx 
b/sw/source/filter/html/css1atr.cxx
index fe922c884ce5..99fffb76d6b3 100644
--- a/sw/source/filter/html/css1atr.cxx
+++ b/sw/source/filter/html/css1atr.cxx
@@ -119,44 +119,44 @@ namespace o3tl {
 
 #define DOT_LEADERS_MAX_WIDTH   18
 
-static Writer& OutCSS1_SwFormat( Writer& rWrt, const SwFormat& rFormat,
+static SwHTMLWriter& OutCSS1_SwFormat( SwHTMLWriter& rWrt, const SwFormat& 
rFormat,
                               IDocumentStylePoolAccess /*SwDoc*/ *pDoc, SwDoc 
*pTemplate );
-static Writer& OutCSS1_SwPageDesc( Writer& rWrt, const SwPageDesc& rFormat,
+static SwHTMLWriter& OutCSS1_SwPageDesc( SwHTMLWriter& rWrt, const SwPageDesc& 
rFormat,
                                    IDocumentStylePoolAccess /*SwDoc*/ *pDoc, 
SwDoc *pTemplate,
                                    sal_uInt16 nRefPoolId, bool bExtRef,
                                    bool bPseudo=true );
-static Writer& OutCSS1_SwFootnoteInfo( Writer& rWrt, const SwEndNoteInfo& 
rInfo,
+static SwHTMLWriter& OutCSS1_SwFootnoteInfo( SwHTMLWriter& rWrt, const 
SwEndNoteInfo& rInfo,
                                   SwDoc *pDoc, bool bHasNotes, bool bEndNote );
 static void OutCSS1_SwFormatDropAttrs( SwHTMLWriter& rHWrt,
                                     const SwFormatDrop& rDrop,
                                      const SfxItemSet 
*pCharFormatItemSet=nullptr );
-static Writer& OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( Writer& rWrt,
+static SwHTMLWriter& OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( SwHTMLWriter& rWrt,
                     const SvxUnderlineItem *pUItem,
                     const SvxOverlineItem *pOItem,
                     const SvxCrossedOutItem *pCOItem,
                     const SvxBlinkItem *pBItem );
-static Writer& OutCSS1_SvxFontWeight( Writer& rWrt, const SfxPoolItem& rHt );
-static Writer& OutCSS1_SvxPosture( Writer& rWrt, const SfxPoolItem& rHt );
-static Writer& OutCSS1_SvxULSpace( Writer& rWrt, const SfxPoolItem& rHt );
-static Writer& OutCSS1_SvxFirstLineIndent(Writer& rWrt, const SfxPoolItem& 
rHt);
-static Writer& OutCSS1_SvxTextLeftMargin(Writer& rWrt, const SfxPoolItem& rHt);
-static Writer& OutCSS1_SvxRightMargin(Writer& rWrt, const SfxPoolItem& rHt);
-static Writer& OutCSS1_SvxLRSpace( Writer& rWrt, const SfxPoolItem& rHt );
-static Writer& OutCSS1_SvxULSpace_SvxLRSpace( Writer& rWrt,
+static SwHTMLWriter& OutCSS1_SvxFontWeight( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt );
+static SwHTMLWriter& OutCSS1_SvxPosture( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt );
+static SwHTMLWriter& OutCSS1_SvxULSpace( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt );
+static SwHTMLWriter& OutCSS1_SvxFirstLineIndent(SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt);
+static SwHTMLWriter& OutCSS1_SvxTextLeftMargin(SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt);
+static SwHTMLWriter& OutCSS1_SvxRightMargin(SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt);
+static SwHTMLWriter& OutCSS1_SvxLRSpace( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt );
+static SwHTMLWriter& OutCSS1_SvxULSpace_SvxLRSpace( SwHTMLWriter& rWrt,
                                         const SvxULSpaceItem *pULSpace,
                                         const SvxLRSpaceItem *pLRSpace );
-static Writer& OutCSS1_SvxULSpace_SvxLRSpace( Writer& rWrt,
+static SwHTMLWriter& OutCSS1_SvxULSpace_SvxLRSpace( SwHTMLWriter& rWrt,
                                         const SfxItemSet& rItemSet );
-static Writer& OutCSS1_SvxBrush( Writer& rWrt, const SfxPoolItem& rHt,
+static SwHTMLWriter& OutCSS1_SvxBrush( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt,
                                  sw::Css1Background nMode,
                                  const OUString *pGraphicName );
-static Writer& OutCSS1_SvxBrush( Writer& rWrt, const SfxPoolItem& rHt );
-static Writer& OutCSS1_SwFormatFrameSize( Writer& rWrt, const SfxPoolItem& rHt,
+static SwHTMLWriter& OutCSS1_SvxBrush( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt );
+static SwHTMLWriter& OutCSS1_SwFormatFrameSize( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt,
                                      Css1FrameSize nMode );
-static Writer& OutCSS1_SvxFormatBreak_SwFormatPDesc_SvxFormatKeep( Writer& 
rWrt,
+static SwHTMLWriter& OutCSS1_SvxFormatBreak_SwFormatPDesc_SvxFormatKeep( 
SwHTMLWriter& rWrt,
                                         const SfxItemSet& rItemSet,
                                         bool bDeep );
-static Writer& OutCSS1_SwFormatLayoutSplit( Writer& rWrt, const SfxPoolItem& 
rHt );
+static SwHTMLWriter& OutCSS1_SwFormatLayoutSplit( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt );
 
 namespace
 {
@@ -1232,7 +1232,7 @@ bool SwHTMLWriter::HasScriptDependentItems( const 
SfxItemSet& rItemSet,
     return false;
 }
 
-static bool OutCSS1Rule( SwHTMLWriter& rHTMLWrt, const OUString& rSelector,
+static bool OutCSS1Rule( SwHTMLWriter& rWrt, const OUString& rSelector,
                     const SfxItemSet& rItemSet, bool bHasClass,
                      bool bCheckForPseudo  )
 {
@@ -1259,9 +1259,9 @@ static bool OutCSS1Rule( SwHTMLWriter& rHTMLWrt, const 
OUString& rSelector,
             // rule for all properties that aren't style dependent and
             // some class rule for the additional style dependen properties
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_NO_SCRIPT|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_NO_SCRIPT|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
                                      &rSelector );
-                rHTMLWrt.OutCSS1_SfxItemSet( rItemSet, false );
+                rWrt.OutCSS1_SfxItemSet( rItemSet, false );
             }
 
             //sequence of (start, end) property ranges we want to
@@ -1275,23 +1275,23 @@ static bool OutCSS1Rule( SwHTMLWriter& rHTMLWrt, const 
OUString& rSelector,
 
             OUString aNewSelector = OUString::Concat(aSelector) + ".western" + 
aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_WESTERN|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_WESTERN|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
                                      &aNewSelector );
-                rHTMLWrt.OutCSS1_SfxItemSet( aScriptItemSet, false );
+                rWrt.OutCSS1_SfxItemSet( aScriptItemSet, false );
             }
 
             aNewSelector = OUString::Concat(aSelector) + ".cjk" + aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_CJK|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_CJK|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
                                      &aNewSelector );
-                rHTMLWrt.OutCSS1_SfxItemSet( aScriptItemSet, false );
+                rWrt.OutCSS1_SfxItemSet( aScriptItemSet, false );
             }
 
             aNewSelector = OUString::Concat(aSelector) + ".ctl" + aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_CTL|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_CTL|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
                                      &aNewSelector );
-                rHTMLWrt.OutCSS1_SfxItemSet( aScriptItemSet, false );
+                rWrt.OutCSS1_SfxItemSet( aScriptItemSet, false );
             }
         }
         else
@@ -1301,23 +1301,23 @@ static bool OutCSS1Rule( SwHTMLWriter& rHTMLWrt, const 
OUString& rSelector,
             // scripts
             OUString aNewSelector = OUString::Concat(aSelector) + "-western" + 
aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_WESTERN|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_WESTERN|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
                                      &aNewSelector );
-                rHTMLWrt.OutCSS1_SfxItemSet( rItemSet, false );
+                rWrt.OutCSS1_SfxItemSet( rItemSet, false );
             }
 
             aNewSelector = OUString::Concat(aSelector) + "-cjk" + aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_CJK|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_CJK|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
                                      &aNewSelector );
-                rHTMLWrt.OutCSS1_SfxItemSet( rItemSet, false );
+                rWrt.OutCSS1_SfxItemSet( rItemSet, false );
             }
 
             aNewSelector = OUString::Concat(aSelector) + "-ctl" + aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_CTL|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_CTL|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
                                      &aNewSelector );
-                rHTMLWrt.OutCSS1_SfxItemSet( rItemSet, false );
+                rWrt.OutCSS1_SfxItemSet( rItemSet, false );
             }
         }
     }
@@ -1327,17 +1327,17 @@ static bool OutCSS1Rule( SwHTMLWriter& rHTMLWrt, const 
OUString& rSelector,
         // exported in one step. For hyperlinks only, a script information
         // must be there, because these two chr formats don't support
         // script dependencies by now.
-        SwCSS1OutMode aMode( rHTMLWrt,
-                rHTMLWrt.m_nCSS1Script|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
+        SwCSS1OutMode aMode( rWrt,
+                rWrt.m_nCSS1Script|CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
                              &rSelector );
-        rHTMLWrt.OutCSS1_SfxItemSet( rItemSet, false );
+        rWrt.OutCSS1_SfxItemSet( rItemSet, false );
     }
 
     return bScriptDependent;
 }
 
 static void OutCSS1DropCapRule(
-                    SwHTMLWriter& rHTMLWrt, const OUString& rSelector,
+                    SwHTMLWriter& rWrt, const OUString& rSelector,
                     const SwFormatDrop& rDrop, bool bHasClass,
                      bool bHasScriptDependencies  )
 {
@@ -1361,38 +1361,38 @@ static void OutCSS1DropCapRule(
             // rule for all properties that aren't style dependent and
             // some class rule for the additional style dependen properties
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_NO_SCRIPT|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_NO_SCRIPT|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
                                      &rSelector );
-                OutCSS1_SwFormatDropAttrs( rHTMLWrt, rDrop );
+                OutCSS1_SwFormatDropAttrs( rWrt, rDrop );
             }
 
             SfxItemSetFixed<RES_CHRATR_FONT, RES_CHRATR_FONTSIZE,
                            RES_CHRATR_LANGUAGE, RES_CHRATR_POSTURE,
                            RES_CHRATR_WEIGHT, RES_CHRATR_WEIGHT,
                            RES_CHRATR_CJK_FONT, RES_CHRATR_CTL_WEIGHT>
-                aScriptItemSet( rHTMLWrt.m_pDoc->GetAttrPool() );
+                aScriptItemSet( rWrt.m_pDoc->GetAttrPool() );
             if( pDCCharFormat )
                 aScriptItemSet.Set( pDCCharFormat->GetAttrSet() );
 
             OUString aNewSelector = OUString::Concat(aSelector) + ".western" + 
aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_WESTERN|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_WESTERN|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
                                      &aNewSelector );
-                OutCSS1_SwFormatDropAttrs(  rHTMLWrt, rDrop, &aScriptItemSet );
+                OutCSS1_SwFormatDropAttrs(  rWrt, rDrop, &aScriptItemSet );
             }
 
             aNewSelector = OUString::Concat(aSelector) + ".cjk" + aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_CJK|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_CJK|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
                                      &aNewSelector );
-                OutCSS1_SwFormatDropAttrs(  rHTMLWrt, rDrop, &aScriptItemSet );
+                OutCSS1_SwFormatDropAttrs(  rWrt, rDrop, &aScriptItemSet );
             }
 
             aNewSelector = OUString::Concat(aSelector) + ".ctl" + aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_CTL|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_CTL|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
                                      &aNewSelector );
-                OutCSS1_SwFormatDropAttrs(  rHTMLWrt, rDrop, &aScriptItemSet );
+                OutCSS1_SwFormatDropAttrs(  rWrt, rDrop, &aScriptItemSet );
             }
         }
         else
@@ -1402,23 +1402,23 @@ static void OutCSS1DropCapRule(
             // scripts
             OUString aNewSelector = OUString::Concat(aSelector) + "-western" + 
aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_WESTERN|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_WESTERN|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
                                      &aNewSelector );
-                OutCSS1_SwFormatDropAttrs(  rHTMLWrt, rDrop );
+                OutCSS1_SwFormatDropAttrs(  rWrt, rDrop );
             }
 
             aNewSelector = OUString::Concat(aSelector) + "-cjk" + aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_CJK|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_CJK|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
                                      &aNewSelector );
-                OutCSS1_SwFormatDropAttrs(  rHTMLWrt, rDrop );
+                OutCSS1_SwFormatDropAttrs(  rWrt, rDrop );
             }
 
             aNewSelector = OUString::Concat(aSelector) + "-ctl" + aPseudo;
             {
-                SwCSS1OutMode aMode( rHTMLWrt, 
CSS1_OUTMODE_CTL|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
+                SwCSS1OutMode aMode( rWrt, 
CSS1_OUTMODE_CTL|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
                                      &aNewSelector );
-                OutCSS1_SwFormatDropAttrs(  rHTMLWrt, rDrop );
+                OutCSS1_SwFormatDropAttrs(  rWrt, rDrop );
             }
         }
     }
@@ -1428,18 +1428,16 @@ static void OutCSS1DropCapRule(
         // exported in one step. For hyperlinks only, a script information
         // must be there, because these two chr formats don't support
         // script dependencies by now.
-        SwCSS1OutMode aMode( rHTMLWrt,
-                rHTMLWrt.m_nCSS1Script|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
+        SwCSS1OutMode aMode( rWrt,
+                rWrt.m_nCSS1Script|CSS1_OUTMODE_RULE|CSS1_OUTMODE_DROPCAP,
                              &rSelector );
-        OutCSS1_SwFormatDropAttrs( rHTMLWrt, rDrop );
+        OutCSS1_SwFormatDropAttrs( rWrt, rDrop );
     }
 }
 
-static Writer& OutCSS1_SwFormat( Writer& rWrt, const SwFormat& rFormat,
+static SwHTMLWriter& OutCSS1_SwFormat( SwHTMLWriter& rWrt, const SwFormat& 
rFormat,
                               IDocumentStylePoolAccess/*SwDoc*/ *pDoc, SwDoc 
*pTemplate )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     bool bCharFormat = false;
     switch( rFormat.Which() )
     {
@@ -1518,29 +1516,29 @@ static Writer& OutCSS1_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
         if( !bCharFormat )
         {
             const SvxULSpaceItem& rULItem = pRefFormat->GetULSpace();
-            rHTMLWrt.m_nDfltTopMargin = rULItem.GetUpper();
-            rHTMLWrt.m_nDfltBottomMargin = rULItem.GetLower();
+            rWrt.m_nDfltTopMargin = rULItem.GetUpper();
+            rWrt.m_nDfltBottomMargin = rULItem.GetLower();
         }
     }
     else if( CSS1_FMT_ISTAG==nDeep && !bCharFormat )
     {
         // set Default-distance above and below (for the
         // case that there is no reference template)
-        rHTMLWrt.m_nDfltTopMargin = 0;
-        rHTMLWrt.m_nDfltBottomMargin = HTML_PARSPACE;
+        rWrt.m_nDfltTopMargin = 0;
+        rWrt.m_nDfltBottomMargin = HTML_PARSPACE;
         if( USER_FMT & nPoolFormatId )
         {
             // user templates
             const OUString& aNm(rFormat.GetName());
 
             if (aNm == "DD 1" || aNm == "DT 1")
-                rHTMLWrt.m_nDfltBottomMargin = 0;
+                rWrt.m_nDfltBottomMargin = 0;
             else if (aNm == OOO_STRING_SVTOOLS_HTML_listing)
-                rHTMLWrt.m_nDfltBottomMargin = 0;
+                rWrt.m_nDfltBottomMargin = 0;
             else if (aNm == OOO_STRING_SVTOOLS_HTML_preformtxt)
-                rHTMLWrt.m_nDfltBottomMargin = 0;
+                rWrt.m_nDfltBottomMargin = 0;
             else if (aNm == OOO_STRING_SVTOOLS_HTML_xmp)
-                rHTMLWrt.m_nDfltBottomMargin = 0;
+                rWrt.m_nDfltBottomMargin = 0;
         }
         else
         {
@@ -1553,13 +1551,13 @@ static Writer& OutCSS1_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
             case RES_POOLCOLL_HEADLINE4:
             case RES_POOLCOLL_HEADLINE5:
             case RES_POOLCOLL_HEADLINE6:
-                rHTMLWrt.m_nDfltTopMargin = HTML_HEADSPACE;
+                rWrt.m_nDfltTopMargin = HTML_HEADSPACE;
                 break;
             case RES_POOLCOLL_SEND_ADDRESS:
             case RES_POOLCOLL_HTML_DT:
             case RES_POOLCOLL_HTML_DD:
             case RES_POOLCOLL_HTML_PRE:
-                rHTMLWrt.m_nDfltBottomMargin = 0;
+                rWrt.m_nDfltBottomMargin = 0;
                 break;
             }
         }
@@ -1578,16 +1576,16 @@ static Writer& OutCSS1_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
 
     // export now the Attributes (incl. selector)
     bool bHasScriptDependencies = false;
-    if( OutCSS1Rule( rHTMLWrt, aSelector, aItemSet, CSS1_FMT_ISTAG != nDeep,
+    if( OutCSS1Rule( rWrt, aSelector, aItemSet, CSS1_FMT_ISTAG != nDeep,
                       bCheckForPseudo ) )
     {
         if( bCharFormat )
-            rHTMLWrt.m_aScriptTextStyles.insert( rFormat.GetName() );
+            rWrt.m_aScriptTextStyles.insert( rFormat.GetName() );
         else
         {
             if( nPoolFormatId==RES_POOLCOLL_TEXT )
-                rHTMLWrt.m_aScriptParaStyles.insert( 
pDoc->GetTextCollFromPool( RES_POOLCOLL_STANDARD, false )->GetName() );
-            rHTMLWrt.m_aScriptParaStyles.insert( rFormat.GetName() );
+                rWrt.m_aScriptParaStyles.insert( pDoc->GetTextCollFromPool( 
RES_POOLCOLL_STANDARD, false )->GetName() );
+            rWrt.m_aScriptParaStyles.insert( rFormat.GetName() );
         }
         bHasScriptDependencies = true;
     }
@@ -1597,19 +1595,17 @@ static Writer& OutCSS1_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
     {
         OUString sOut = aSelector +
             ":" + OStringToOUString( sCSS1_first_letter, 
RTL_TEXTENCODING_ASCII_US );
-        OutCSS1DropCapRule( rHTMLWrt, sOut, *pDrop, CSS1_FMT_ISTAG != nDeep, 
bHasScriptDependencies );
+        OutCSS1DropCapRule( rWrt, sOut, *pDrop, CSS1_FMT_ISTAG != nDeep, 
bHasScriptDependencies );
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SwPageDesc( Writer& rWrt, const SwPageDesc& rPageDesc,
+static SwHTMLWriter& OutCSS1_SwPageDesc( SwHTMLWriter& rWrt, const SwPageDesc& 
rPageDesc,
                                    IDocumentStylePoolAccess/*SwDoc*/ *pDoc, 
SwDoc *pTemplate,
                                    sal_uInt16 nRefPoolId, bool bExtRef,
                                    bool bPseudo )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     const SwPageDesc* pRefPageDesc = nullptr;
     if( !bExtRef )
         pRefPageDesc = pDoc->GetPageDescFromPool( nRefPoolId, false );
@@ -1631,7 +1627,7 @@ static Writer& OutCSS1_SwPageDesc( Writer& rWrt, const 
SwPageDesc& rPageDesc,
             aSelector += ":" + OStringToOUString( pPseudo, 
RTL_TEXTENCODING_ASCII_US );
     }
 
-    SwCSS1OutMode aMode( rHTMLWrt, CSS1_OUTMODE_RULE_ON|CSS1_OUTMODE_TEMPLATE,
+    SwCSS1OutMode aMode( rWrt, CSS1_OUTMODE_RULE_ON|CSS1_OUTMODE_TEMPLATE,
                          &aSelector );
 
     // Size: If the only difference is the Landscape-Flag,
@@ -1661,7 +1657,7 @@ static Writer& OutCSS1_SwPageDesc( Writer& rWrt, const 
SwPageDesc& rPageDesc,
     {
         if( bRefLandscape != rPageDesc.GetLandscape() )
         {
-            rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_size,
+            rWrt.OutCSS1_PropertyAscii( sCSS1_P_size,
                 rPageDesc.GetLandscape() ? sCSS1_PV_landscape
                                          : sCSS1_PV_portrait );
         }
@@ -1669,10 +1665,10 @@ static Writer& OutCSS1_SwPageDesc( Writer& rWrt, const 
SwPageDesc& rPageDesc,
     else
     {
         OStringBuffer sVal;
-        AddUnitPropertyValue(sVal, rSz.Width(), rHTMLWrt.GetCSS1Unit());
+        AddUnitPropertyValue(sVal, rSz.Width(), rWrt.GetCSS1Unit());
         sVal.append(' ');
-        AddUnitPropertyValue(sVal, rSz.Height(), rHTMLWrt.GetCSS1Unit());
-        rHTMLWrt.OutCSS1_PropertyAscii(sCSS1_P_size, sVal);
+        AddUnitPropertyValue(sVal, rSz.Height(), rWrt.GetCSS1Unit());
+        rWrt.OutCSS1_PropertyAscii(sCSS1_P_size, sVal);
     }
 
     // Export the distance-Attributes as normally
@@ -1692,25 +1688,23 @@ static Writer& OutCSS1_SwPageDesc( Writer& rWrt, const 
SwPageDesc& rPageDesc,
     // If for a Pseudo-Selector no Property had been set, we still
     // have to export something, so that the corresponding template is
     // created on the next import.
-    if( rHTMLWrt.m_bFirstCSS1Property && bPseudo )
+    if( rWrt.m_bFirstCSS1Property && bPseudo )
     {
-        rHTMLWrt.OutNewLine();
+        rWrt.OutNewLine();
         OString sTmp(OUStringToOString(aSelector, RTL_TEXTENCODING_UTF8));
         rWrt.Strm().WriteOString( sTmp ).WriteCharPtr( " {" );
-        rHTMLWrt.m_bFirstCSS1Property = false;
+        rWrt.m_bFirstCSS1Property = false;
     }
 
-    if( !rHTMLWrt.m_bFirstCSS1Property )
+    if( !rWrt.m_bFirstCSS1Property )
         rWrt.Strm().WriteCharPtr( sCSS1_rule_end );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SwFootnoteInfo( Writer& rWrt, const SwEndNoteInfo& 
rInfo,
+static SwHTMLWriter& OutCSS1_SwFootnoteInfo( SwHTMLWriter& rWrt, const 
SwEndNoteInfo& rInfo,
                                   SwDoc *pDoc, bool bHasNotes, bool bEndNote )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     OUString aSelector;
 
     if( bHasNotes )
@@ -1718,11 +1712,11 @@ static Writer& OutCSS1_SwFootnoteInfo( Writer& rWrt, 
const SwEndNoteInfo& rInfo,
         aSelector = OUString::Concat(OOO_STRING_SVTOOLS_HTML_anchor ".") +
                     ( bEndNote ? std::u16string_view(u"" 
OOO_STRING_SVTOOLS_HTML_sdendnote_anc)
                                : std::u16string_view(u"" 
OOO_STRING_SVTOOLS_HTML_sdfootnote_anc) );
-        SwCSS1OutMode aMode( rHTMLWrt, CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
+        SwCSS1OutMode aMode( rWrt, CSS1_OUTMODE_RULE|CSS1_OUTMODE_TEMPLATE,
                              &aSelector );
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_font_size,
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_font_size,
                                         sHTML_FTN_fontheight );
-        rHTMLWrt.Strm().WriteCharPtr( sCSS1_rule_end );
+        rWrt.Strm().WriteCharPtr( sCSS1_rule_end );
     }
 
     const SwCharFormat *pSymCharFormat = rInfo.GetCharFormat( *pDoc );
@@ -1736,9 +1730,9 @@ static Writer& OutCSS1_SwFootnoteInfo( Writer& rWrt, 
const SwEndNoteInfo& rInfo,
         // exported, so that Netscape displays the document correctly.
         // Otherwise it is sufficient, to export the differences to the
         // footnote and endnote template.
-        if( !bHasNotes && rHTMLWrt.m_xTemplate.is() )
+        if( !bHasNotes && rWrt.m_xTemplate.is() )
         {
-            SwFormat *pRefFormat = 
rHTMLWrt.m_xTemplate->getIDocumentStylePoolAccess().GetCharFormatFromPool(
+            SwFormat *pRefFormat = 
rWrt.m_xTemplate->getIDocumentStylePoolAccess().GetCharFormatFromPool(
                         static_cast< sal_uInt16 >(bEndNote ? 
RES_POOLCHR_ENDNOTE : RES_POOLCHR_FOOTNOTE) );
             if( pRefFormat )
                 SwHTMLWriter::SubtractItemSet( aItemSet, 
pRefFormat->GetAttrSet(),
@@ -1750,19 +1744,17 @@ static Writer& OutCSS1_SwFootnoteInfo( Writer& rWrt, 
const SwEndNoteInfo& rInfo,
                         ( bEndNote ? std::u16string_view(u"" 
OOO_STRING_SVTOOLS_HTML_sdendnote_sym)
                                    : std::u16string_view(
                                        u"" 
OOO_STRING_SVTOOLS_HTML_sdfootnote_sym));
-            if( OutCSS1Rule( rHTMLWrt, aSelector, aItemSet, true, false ))
-                rHTMLWrt.m_aScriptTextStyles.insert( pSymCharFormat->GetName() 
);
+            if( OutCSS1Rule( rWrt, aSelector, aItemSet, true, false ))
+                rWrt.m_aScriptTextStyles.insert( pSymCharFormat->GetName() );
         }
     }
 
     return rWrt;
 }
 
-Writer& OutCSS1_BodyTagStyleOpt( Writer& rWrt, const SfxItemSet& rItemSet )
+SwHTMLWriter& OutCSS1_BodyTagStyleOpt( SwHTMLWriter& rWrt, const SfxItemSet& 
rItemSet )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
-    SwCSS1OutMode aMode( rHTMLWrt, CSS1_OUTMODE_STYLE_OPT_ON |
+    SwCSS1OutMode aMode( rWrt, CSS1_OUTMODE_STYLE_OPT_ON |
                                    CSS1_OUTMODE_ENCODE|CSS1_OUTMODE_BODY, 
nullptr );
 
     // Only export the attributes of the page template.
@@ -1783,7 +1775,7 @@ Writer& OutCSS1_BodyTagStyleOpt( Writer& rWrt, const 
SfxItemSet& rItemSet )
         OutCSS1_SvxBox( rWrt, *pItem );
     }
 
-    if( !rHTMLWrt.m_bFirstCSS1Property )
+    if( !rWrt.m_bFirstCSS1Property )
     {
         // if a Property was exported as part of a Style-Option,
         // the Option still needs to be finished
@@ -1793,38 +1785,32 @@ Writer& OutCSS1_BodyTagStyleOpt( Writer& rWrt, const 
SfxItemSet& rItemSet )
     return rWrt;
 }
 
-Writer& OutCSS1_ParaTagStyleOpt( Writer& rWrt, const SfxItemSet& rItemSet )
+SwHTMLWriter& OutCSS1_ParaTagStyleOpt( SwHTMLWriter& rWrt, const SfxItemSet& 
rItemSet )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
-    SwCSS1OutMode aMode( rHTMLWrt, 
rHTMLWrt.m_nCSS1Script|CSS1_OUTMODE_STYLE_OPT |
+    SwCSS1OutMode aMode( rWrt, rWrt.m_nCSS1Script|CSS1_OUTMODE_STYLE_OPT |
                                    CSS1_OUTMODE_ENCODE|CSS1_OUTMODE_PARA, 
nullptr );
-    rHTMLWrt.OutCSS1_SfxItemSet( rItemSet, false );
+    rWrt.OutCSS1_SfxItemSet( rItemSet, false );
 
     return rWrt;
 }
 
-Writer& OutCSS1_TableBGStyleOpt( Writer& rWrt, const SfxPoolItem& rHt )
+SwHTMLWriter& OutCSS1_TableBGStyleOpt( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
-    SwCSS1OutMode aMode( rHTMLWrt, CSS1_OUTMODE_STYLE_OPT_ON |
+    SwCSS1OutMode aMode( rWrt, CSS1_OUTMODE_STYLE_OPT_ON |
                                    CSS1_OUTMODE_ENCODE|
                                    CSS1_OUTMODE_TABLEBOX, nullptr );
     OutCSS1_SvxBrush( rWrt, rHt, sw::Css1Background::TableRow, nullptr );
 
-    if (!rHTMLWrt.m_bFirstCSS1Property)
+    if (!rWrt.m_bFirstCSS1Property)
         rWrt.Strm().WriteChar(cCSS1_style_opt_end);
 
     return rWrt;
 }
 
-Writer& OutCSS1_NumberBulletListStyleOpt( Writer& rWrt, const SwNumRule& 
rNumRule,
+SwHTMLWriter& OutCSS1_NumberBulletListStyleOpt( SwHTMLWriter& rWrt, const 
SwNumRule& rNumRule,
                                     sal_uInt8 nLevel )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
-    SwCSS1OutMode aMode( rHTMLWrt, CSS1_OUTMODE_STYLE_OPT |
+    SwCSS1OutMode aMode( rWrt, CSS1_OUTMODE_STYLE_OPT |
                                    CSS1_OUTMODE_ENCODE|CSS1_OUTMODE_PARA, 
nullptr );
 
     const SwNumFormat& rNumFormat = rNumRule.Get( nLevel );
@@ -1839,15 +1825,15 @@ Writer& OutCSS1_NumberBulletListStyleOpt( Writer& rWrt, 
const SwNumRule& rNumRul
         nDfltFirstLineOffset = rPrevNumFormat.GetFirstLineOffset();
     }
 
-    if( rHTMLWrt.IsHTMLMode(HTMLMODE_LSPACE_IN_NUMBER_BULLET) &&
+    if( rWrt.IsHTMLMode(HTMLMODE_LSPACE_IN_NUMBER_BULLET) &&
         nLSpace != HTML_NUMBER_BULLET_MARGINLEFT )
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_margin_left, nLSpace );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_margin_left, nLSpace );
 
-    if( rHTMLWrt.IsHTMLMode(HTMLMODE_FRSTLINE_IN_NUMBER_BULLET) &&
+    if( rWrt.IsHTMLMode(HTMLMODE_FRSTLINE_IN_NUMBER_BULLET) &&
         nFirstLineOffset != nDfltFirstLineOffset )
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_text_indent, nFirstLineOffset );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_text_indent, nFirstLineOffset );
 
-    if( !rHTMLWrt.m_bFirstCSS1Property )
+    if( !rWrt.m_bFirstCSS1Property )
         rWrt.Strm().WriteChar( '\"' );
 
     return rWrt;
@@ -2226,13 +2212,12 @@ void SwHTMLWriter::OutCSS1_FrameFormatBackground( const 
SwFrameFormat& rFrameFor
     OutCSS1_PropertyAscii(sCSS1_P_background, GetCSS1_Color(aColor));
 }
 
-static Writer& OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( Writer& rWrt,
+static SwHTMLWriter& OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( SwHTMLWriter& rWrt,
                     const SvxUnderlineItem *pUItem,
                     const SvxOverlineItem *pOItem,
                     const SvxCrossedOutItem *pCOItem,
                     const SvxBlinkItem *pBItem )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
     bool bNone = false;
 
     const char *pUStr = nullptr;
@@ -2246,11 +2231,11 @@ static Writer& OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( 
Writer& rWrt,
         case LINESTYLE_DONTKNOW:
             break;
         default:
-            if( !rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+            if( !rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
             {
                 // this also works in HTML does not need to be written as
                 // a STYLE-Options, and must not be written as Hint
-                OSL_ENSURE( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT) || 
rHTMLWrt.mbReqIF,
+                OSL_ENSURE( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT) || 
rWrt.mbReqIF,
                         "write underline as Hint?" );
                 pUStr = sCSS1_PV_underline;
             }
@@ -2269,11 +2254,11 @@ static Writer& OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( 
Writer& rWrt,
         case LINESTYLE_DONTKNOW:
             break;
         default:
-            if( !rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+            if( !rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
             {
                 // this also works in HTML does not need to be written as
                 // a STYLE-Options, and must not be written as Hint
-                OSL_ENSURE( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
+                OSL_ENSURE( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
                         "write overline as Hint?" );
                 pOStr = sCSS1_PV_overline;
             }
@@ -2292,11 +2277,11 @@ static Writer& OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( 
Writer& rWrt,
         case STRIKEOUT_DONTKNOW:
             break;
         default:
-            if( !rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+            if( !rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
             {
                 // this also works in HTML does not need to be written as
                 // a STYLE-Options, and must not be written as Hint
-                OSL_ENSURE( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT) || 
rHTMLWrt.mbReqIF,
+                OSL_ENSURE( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT) || 
rWrt.mbReqIF,
                         "write crossedOut as Hint?" );
                 pCOStr = sCSS1_PV_line_through;
             }
@@ -2311,11 +2296,11 @@ static Writer& OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( 
Writer& rWrt,
         {
             bNone = true;
         }
-        else if( !rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+        else if( !rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
         {
             // this also works in HTML does not need to be written as
             // a STYLE-Options, and must not be written as Hint
-            OSL_ENSURE( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
+            OSL_ENSURE( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
                     "write blink as Hint?" );
             pBStr = sCSS1_PV_blink;
         }
@@ -2347,33 +2332,31 @@ static Writer& OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( 
Writer& rWrt,
     }
 
     if (!sOut.isEmpty())
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_text_decoration, sOut );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_text_decoration, sOut );
     else if( bNone )
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_text_decoration, sCSS1_PV_none 
);
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_text_decoration, sCSS1_PV_none );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxCaseMap( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxCaseMap( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     switch( static_cast<const SvxCaseMapItem&>(rHt).GetCaseMap() )
     {
     case SvxCaseMap::NotMapped:
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_font_variant, sCSS1_PV_normal 
);
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_font_variant, sCSS1_PV_normal );
         break;
     case SvxCaseMap::SmallCaps:
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_font_variant, 
sCSS1_PV_small_caps );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_font_variant, sCSS1_PV_small_caps 
);
         break;
     case SvxCaseMap::Uppercase:
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_text_transform, 
sCSS1_PV_uppercase );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_text_transform, sCSS1_PV_uppercase 
);
         break;
     case SvxCaseMap::Lowercase:
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_text_transform, 
sCSS1_PV_lowercase );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_text_transform, sCSS1_PV_lowercase 
);
         break;
     case SvxCaseMap::Capitalize:
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_text_transform, 
sCSS1_PV_capitalize );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_text_transform, 
sCSS1_PV_capitalize );
         break;
     default:
         ;
@@ -2382,44 +2365,40 @@ static Writer& OutCSS1_SvxCaseMap( Writer& rWrt, const 
SfxPoolItem& rHt )
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxColor( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxColor( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // Colors do not need to be exported for Style-Option.
-    if( rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) &&
-        !rHTMLWrt.m_bCfgPreferStyles )
+    if( rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) &&
+        !rWrt.m_bCfgPreferStyles )
         return rWrt;
-    OSL_ENSURE( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
+    OSL_ENSURE( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
             "write color as Hint?" );
 
     Color aColor( static_cast<const SvxColorItem&>(rHt).GetValue() );
     if( COL_AUTO == aColor )
         aColor = COL_BLACK;
 
-    rHTMLWrt.OutCSS1_PropertyAscii(sCSS1_P_color, GetCSS1_Color(aColor));
+    rWrt.OutCSS1_PropertyAscii(sCSS1_P_color, GetCSS1_Color(aColor));
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxCrossedOut( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxCrossedOut( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
     // This function only exports Hints!
     // Otherwise OutCSS1_SvxTextLn_SvxCrOut_SvxBlink() is called directly.
 
-    if( static_cast<SwHTMLWriter&>(rWrt).IsCSS1Source(CSS1_OUTMODE_HINT) )
+    if( rWrt.IsCSS1Source(CSS1_OUTMODE_HINT) )
         OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( rWrt,
                 nullptr, nullptr, static_cast<const SvxCrossedOutItem 
*>(&rHt), nullptr );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxFont( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxFont( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // No need to export Fonts for the Style-Option.
-    if( rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+    if( rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
         return rWrt;
 
     sal_uInt16 nScript = CSS1_OUTMODE_WESTERN;
@@ -2428,32 +2407,30 @@ static Writer& OutCSS1_SvxFont( Writer& rWrt, const 
SfxPoolItem& rHt )
     case RES_CHRATR_CJK_FONT:   nScript = CSS1_OUTMODE_CJK; break;
     case RES_CHRATR_CTL_FONT:   nScript = CSS1_OUTMODE_CTL; break;
     }
-    if( !rHTMLWrt.IsCSS1Script( nScript ) )
+    if( !rWrt.IsCSS1Script( nScript ) )
         return rWrt;
 
-    OSL_ENSURE( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
+    OSL_ENSURE( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
             "write Font as Hint?" );
 
     OUString sOut;
     // MS IE3b1 has problems with single quotes
-    sal_uInt16 nMode = rHTMLWrt.m_nCSS1OutMode & CSS1_OUTMODE_ANY_ON;
+    sal_uInt16 nMode = rWrt.m_nCSS1OutMode & CSS1_OUTMODE_ANY_ON;
     sal_Unicode cQuote = nMode == CSS1_OUTMODE_RULE_ON ? '\"' : '\'';
     SwHTMLWriter::PrepareFontList( static_cast<const SvxFontItem&>(rHt), sOut, 
cQuote,
                                    true );
 
-    rHTMLWrt.OutCSS1_Property( sCSS1_P_font_family, sOut );
+    rWrt.OutCSS1_Property( sCSS1_P_font_family, sOut );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxFontHeight( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxFontHeight( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // Font-Height need not be exported in the Style-Option.
     // For Drop-Caps another Font-Size is exported.
-    if( rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) ||
-        rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_DROPCAP ) )
+    if( rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) ||
+        rWrt.IsCSS1Source( CSS1_OUTMODE_DROPCAP ) )
         return rWrt;
 
     sal_uInt16 nScript = CSS1_OUTMODE_WESTERN;
@@ -2462,27 +2439,25 @@ static Writer& OutCSS1_SvxFontHeight( Writer& rWrt, 
const SfxPoolItem& rHt )
     case RES_CHRATR_CJK_FONTSIZE:   nScript = CSS1_OUTMODE_CJK; break;
     case RES_CHRATR_CTL_FONTSIZE:   nScript = CSS1_OUTMODE_CTL; break;
     }
-    if( !rHTMLWrt.IsCSS1Script( nScript ) )
+    if( !rWrt.IsCSS1Script( nScript ) )
         return rWrt;
 
     sal_uInt32 nHeight = static_cast<const 
SvxFontHeightItem&>(rHt).GetHeight();
     OString sHeight(OString::number(nHeight/20) + sCSS1_UNIT_pt);
-    rHTMLWrt.OutCSS1_PropertyAscii(sCSS1_P_font_size, sHeight);
+    rWrt.OutCSS1_PropertyAscii(sCSS1_P_font_size, sHeight);
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxPosture( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxPosture( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     sal_uInt16 nScript = CSS1_OUTMODE_WESTERN;
     switch( rHt.Which() )
     {
     case RES_CHRATR_CJK_POSTURE:    nScript = CSS1_OUTMODE_CJK; break;
     case RES_CHRATR_CTL_POSTURE:    nScript = CSS1_OUTMODE_CTL; break;
     }
-    if( !rHTMLWrt.IsCSS1Script( nScript ) )
+    if( !rWrt.IsCSS1Script( nScript ) )
         return rWrt;
 
     const char *pStr = nullptr;
@@ -2491,11 +2466,11 @@ static Writer& OutCSS1_SvxPosture( Writer& rWrt, const 
SfxPoolItem& rHt )
     case ITALIC_NONE:       pStr = sCSS1_PV_normal;     break;
     case ITALIC_OBLIQUE:    pStr = sCSS1_PV_oblique;    break;
     case ITALIC_NORMAL:
-        if( !rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+        if( !rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
         {
             // this also works in HTML does not need to be written as
             // a STYLE-Options, and must not be written as Hint
-            OSL_ENSURE( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
+            OSL_ENSURE( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
                     "write italic as Hint?" );
             pStr = sCSS1_PV_italic;
         }
@@ -2505,15 +2480,13 @@ static Writer& OutCSS1_SvxPosture( Writer& rWrt, const 
SfxPoolItem& rHt )
     }
 
     if( pStr )
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_font_style, pStr );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_font_style, pStr );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxKerning( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxKerning( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     sal_Int16 nValue = static_cast<const SvxKerningItem&>(rHt).GetValue();
     if( nValue )
     {
@@ -2529,24 +2502,22 @@ static Writer& OutCSS1_SvxKerning( Writer& rWrt, const 
SfxPoolItem& rHt )
         sOut.append(OString::number(nValue  / 10) + "." + 
OString::number(nValue % 10) +
                     sCSS1_UNIT_pt);
 
-        rHTMLWrt.OutCSS1_PropertyAscii(sCSS1_P_letter_spacing, sOut);
+        rWrt.OutCSS1_PropertyAscii(sCSS1_P_letter_spacing, sOut);
         sOut.setLength(0);
     }
     else
     {
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_letter_spacing,
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_letter_spacing,
                                         sCSS1_PV_normal );
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxLanguage( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxLanguage( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // Only export Language rules
-    if( rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+    if( rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
         return rWrt;
 
     sal_uInt16 nScript = CSS1_OUTMODE_WESTERN;
@@ -2555,10 +2526,10 @@ static Writer& OutCSS1_SvxLanguage( Writer& rWrt, const 
SfxPoolItem& rHt )
     case RES_CHRATR_CJK_LANGUAGE:   nScript = CSS1_OUTMODE_CJK; break;
     case RES_CHRATR_CTL_LANGUAGE:   nScript = CSS1_OUTMODE_CTL; break;
     }
-    if( !rHTMLWrt.IsCSS1Script( nScript ) )
+    if( !rWrt.IsCSS1Script( nScript ) )
         return rWrt;
 
-    OSL_ENSURE( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
+    OSL_ENSURE( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
             "write Language as Hint?" );
 
     LanguageType eLang = static_cast<const SvxLanguageItem 
&>(rHt).GetLanguage();
@@ -2567,56 +2538,52 @@ static Writer& OutCSS1_SvxLanguage( Writer& rWrt, const 
SfxPoolItem& rHt )
 
     OUString sOut = LanguageTag::convertToBcp47( eLang );
 
-    rHTMLWrt.OutCSS1_Property( sCSS1_P_so_language, sOut );
+    rWrt.OutCSS1_Property( sCSS1_P_so_language, sOut );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxUnderline( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxUnderline( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
     // This function only exports Hints!
     // Otherwise OutCSS1_SvxTextLn_SvxCrOut_SvxBlink() is called directly.
 
-    if( static_cast<SwHTMLWriter&>(rWrt).IsCSS1Source(CSS1_OUTMODE_HINT) )
+    if( rWrt.IsCSS1Source(CSS1_OUTMODE_HINT) )
         OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( rWrt,
                 static_cast<const SvxUnderlineItem *>(&rHt), nullptr, nullptr, 
nullptr );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxOverline( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxOverline( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
     // This function only exports Hints!
     // Otherwise OutCSS1_SvxTextLn_SvxCrOut_SvxBlink() is called directly.
 
-    if( static_cast<SwHTMLWriter&>(rWrt).IsCSS1Source(CSS1_OUTMODE_HINT) )
+    if( rWrt.IsCSS1Source(CSS1_OUTMODE_HINT) )
         OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( rWrt,
                 nullptr, static_cast<const SvxOverlineItem *>(&rHt), nullptr, 
nullptr );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxHidden( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxHidden( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     if ( static_cast<const SvxCharHiddenItem&>(rHt).GetValue() )
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_display, sCSS1_PV_none );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_display, sCSS1_PV_none );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxFontWeight( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxFontWeight( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     sal_uInt16 nScript = CSS1_OUTMODE_WESTERN;
     switch( rHt.Which() )
     {
     case RES_CHRATR_CJK_WEIGHT: nScript = CSS1_OUTMODE_CJK; break;
     case RES_CHRATR_CTL_WEIGHT: nScript = CSS1_OUTMODE_CTL; break;
     }
-    if( !rHTMLWrt.IsCSS1Script( nScript ) )
+    if( !rWrt.IsCSS1Script( nScript ) )
         return rWrt;
 
     const char *pStr = nullptr;
@@ -2628,11 +2595,11 @@ static Writer& OutCSS1_SvxFontWeight( Writer& rWrt, 
const SfxPoolItem& rHt )
     case WEIGHT_NORMAL:     pStr = sCSS1_PV_normal;         break;
     case WEIGHT_SEMIBOLD:   pStr = sCSS1_PV_demi_bold;      break;
     case WEIGHT_BOLD:
-        if( !rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+        if( !rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
         {
             // this also works in HTML does not need to be written as
             // a STYLE-Options, and must not be written as Hint
-            OSL_ENSURE( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
+            OSL_ENSURE( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT),
                     "write bold as Hint?" );
             pStr = sCSS1_PV_bold;
         }
@@ -2643,31 +2610,29 @@ static Writer& OutCSS1_SvxFontWeight( Writer& rWrt, 
const SfxPoolItem& rHt )
     }
 
     if( pStr )
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_font_weight, pStr );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_font_weight, pStr );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxBlink( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxBlink( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt )
 {
     // This function only exports Hints!
     // Otherwise OutCSS1_SvxTextLn_SvxCrOut_SvxBlink() is called directly.
 
-    if( static_cast<SwHTMLWriter&>(rWrt).IsCSS1Source(CSS1_OUTMODE_HINT) )
+    if( rWrt.IsCSS1Source(CSS1_OUTMODE_HINT) )
         OutCSS1_SvxTextLn_SvxCrOut_SvxBlink( rWrt,
                 nullptr, nullptr, nullptr, static_cast<const SvxBlinkItem 
*>(&rHt) );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxLineSpacing( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxLineSpacing( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // Netscape4 has big problems with cell heights if the line spacing is
     // changed within a table and the width of the table is not calculated
     // automatically (== if there is a WIDTH-Option)
-    if( rHTMLWrt.m_bOutTable && rHTMLWrt.m_bCfgNetscape4 )
+    if( rWrt.m_bOutTable && rWrt.m_bCfgNetscape4 )
         return rWrt;
 
     const SvxLineSpacingItem& rLSItem = static_cast<const 
SvxLineSpacingItem&>(rHt);
@@ -2703,24 +2668,22 @@ static Writer& OutCSS1_SvxLineSpacing( Writer& rWrt, 
const SfxPoolItem& rHt )
     }
 
     if( nHeight )
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_line_height, 
static_cast<tools::Long>(nHeight) );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_line_height, 
static_cast<tools::Long>(nHeight) );
     else if( nPercentHeight &&
-        !(nPercentHeight < 115 && rHTMLWrt.m_bParaDotLeaders )) // avoid HTML 
scrollbars and missing descenders
+        !(nPercentHeight < 115 && rWrt.m_bParaDotLeaders )) // avoid HTML 
scrollbars and missing descenders
     {
         OString sHeight(OString::number(nPercentHeight) + "%");
-        rHTMLWrt.OutCSS1_PropertyAscii(sCSS1_P_line_height, sHeight);
+        rWrt.OutCSS1_PropertyAscii(sCSS1_P_line_height, sHeight);
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxAdjust( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxAdjust( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // Export Alignment in Style-Option only if the Tag does not allow 
ALIGN=xxx
-    if( rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) &&
-        !rHTMLWrt.m_bNoAlign)
+    if( rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) &&
+        !rWrt.m_bNoAlign)
         return rWrt;
 
     const char* pStr = nullptr;
@@ -2735,51 +2698,43 @@ static Writer& OutCSS1_SvxAdjust( Writer& rWrt, const 
SfxPoolItem& rHt )
     }
 
     if( pStr )
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_text_align, pStr );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_text_align, pStr );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxFormatSplit( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxFormatSplit( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     const char *pStr = static_cast<const SvxFormatSplitItem&>(rHt).GetValue()
                             ? sCSS1_PV_auto
                             : sCSS1_PV_avoid;
-    rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_page_break_inside, pStr );
+    rWrt.OutCSS1_PropertyAscii( sCSS1_P_page_break_inside, pStr );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SwFormatLayoutSplit( Writer& rWrt, const SfxPoolItem& 
rHt )
+static SwHTMLWriter& OutCSS1_SwFormatLayoutSplit( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     const char *pStr = static_cast<const SwFormatLayoutSplit&>(rHt).GetValue()
                             ? sCSS1_PV_auto
                             : sCSS1_PV_avoid;
-    rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_page_break_inside, pStr );
+    rWrt.OutCSS1_PropertyAscii( sCSS1_P_page_break_inside, pStr );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxWidows( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxWidows( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     OString aStr(OString::number(static_cast<const 
SvxWidowsItem&>(rHt).GetValue()));
-    rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_widows, aStr );
+    rWrt.OutCSS1_PropertyAscii( sCSS1_P_widows, aStr );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxOrphans( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxOrphans( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     OString aStr(OString::number(static_cast<const 
SvxOrphansItem&>(rHt).GetValue()));
-    rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_orphans, aStr );
+    rWrt.OutCSS1_PropertyAscii( sCSS1_P_orphans, aStr );
 
     return rWrt;
 }
@@ -2810,36 +2765,32 @@ static void OutCSS1_SwFormatDropAttrs( SwHTMLWriter& 
rHWrt,
 
 }
 
-static Writer& OutCSS1_SwFormatDrop( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SwFormatDrop( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // never export as an Option of a paragraph, but only as Hints
-    if( !rHTMLWrt.IsCSS1Source(CSS1_OUTMODE_HINT) )
+    if( !rWrt.IsCSS1Source(CSS1_OUTMODE_HINT) )
         return rWrt;
 
-    if( rHTMLWrt.m_bTagOn )
+    if( rWrt.m_bTagOn )
     {
-        SwCSS1OutMode aMode( rHTMLWrt,
-                             
rHTMLWrt.m_nCSS1Script|CSS1_OUTMODE_SPAN_TAG1_ON|CSS1_OUTMODE_ENCODE|
+        SwCSS1OutMode aMode( rWrt,
+                             
rWrt.m_nCSS1Script|CSS1_OUTMODE_SPAN_TAG1_ON|CSS1_OUTMODE_ENCODE|
                              CSS1_OUTMODE_DROPCAP, nullptr );
 
-        OutCSS1_SwFormatDropAttrs( rHTMLWrt, static_cast<const 
SwFormatDrop&>(rHt) );
+        OutCSS1_SwFormatDropAttrs( rWrt, static_cast<const SwFormatDrop&>(rHt) 
);
         // A "> is already printed by the calling OutCSS1_HintAsSpanTag.
     }
     else
     {
-        HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rHTMLWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_span), false );
+        HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_span), false );
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SwFormatFrameSize( Writer& rWrt, const SfxPoolItem& rHt,
+static SwHTMLWriter& OutCSS1_SwFormatFrameSize( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt,
                                      Css1FrameSize nMode )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     const SwFormatFrameSize& rFSItem = static_cast<const 
SwFormatFrameSize&>(rHt);
 
     if( nMode & Css1FrameSize::Width )
@@ -2848,16 +2799,16 @@ static Writer& OutCSS1_SwFormatFrameSize( Writer& rWrt, 
const SfxPoolItem& rHt,
         if( nPercentWidth )
         {
             OString sOut(OString::number(nPercentWidth) + "%");
-            rHTMLWrt.OutCSS1_PropertyAscii(sCSS1_P_width, sOut);
+            rWrt.OutCSS1_PropertyAscii(sCSS1_P_width, sOut);
         }
         else if( nMode & Css1FrameSize::Pixel )
         {
-            rHTMLWrt.OutCSS1_PixelProperty( sCSS1_P_width,
+            rWrt.OutCSS1_PixelProperty( sCSS1_P_width,
                                             rFSItem.GetSize().Width(), false );
         }
         else
         {
-            rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_width,
+            rWrt.OutCSS1_UnitProperty( sCSS1_P_width,
                                            rFSItem.GetSize().Width() );
         }
     }
@@ -2865,10 +2816,8 @@ static Writer& OutCSS1_SwFormatFrameSize( Writer& rWrt, 
const SfxPoolItem& rHt,
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxFirstLineIndent(Writer & rWrt, SfxPoolItem const& 
rHt)
+static SwHTMLWriter& OutCSS1_SvxFirstLineIndent(SwHTMLWriter & rWrt, 
SfxPoolItem const& rHt)
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     const SvxFirstLineIndentItem & rFirstLine(static_cast<const 
SvxFirstLineIndentItem&>(rHt));
 
     // No Export of a firm attribute is needed if the new values
@@ -2876,131 +2825,121 @@ static Writer& OutCSS1_SvxFirstLineIndent(Writer & 
rWrt, SfxPoolItem const& rHt)
 
     // The LineIndent of the first line might contain the room for numbering
     tools::Long nFirstLineIndent = 
static_cast<tools::Long>(rFirstLine.GetTextFirstLineOffset())
-            - rHTMLWrt.m_nFirstLineIndent;
-    if (rHTMLWrt.m_nDfltFirstLineIndent != nFirstLineIndent)
+            - rWrt.m_nFirstLineIndent;
+    if (rWrt.m_nDfltFirstLineIndent != nFirstLineIndent)
     {
-        rHTMLWrt.OutCSS1_UnitProperty(sCSS1_P_text_indent, nFirstLineIndent);
+        rWrt.OutCSS1_UnitProperty(sCSS1_P_text_indent, nFirstLineIndent);
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxTextLeftMargin(Writer & rWrt, SfxPoolItem const& rHt)
+static SwHTMLWriter& OutCSS1_SvxTextLeftMargin(SwHTMLWriter & rWrt, 
SfxPoolItem const& rHt)
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     const SvxTextLeftMarginItem& rLeftMargin(static_cast<const 
SvxTextLeftMarginItem&>(rHt));
 
     // No Export of a firm attribute is needed if the new values
     // match that of the current template
 
     // A left margin can exist because of a list nearby
-    tools::Long nLeftMargin = rLeftMargin.GetTextLeft() - 
rHTMLWrt.m_nLeftMargin;
-    if (rHTMLWrt.m_nDfltLeftMargin != nLeftMargin)
+    tools::Long nLeftMargin = rLeftMargin.GetTextLeft() - rWrt.m_nLeftMargin;
+    if (rWrt.m_nDfltLeftMargin != nLeftMargin)
     {
-        rHTMLWrt.OutCSS1_UnitProperty(sCSS1_P_margin_left, nLeftMargin);
+        rWrt.OutCSS1_UnitProperty(sCSS1_P_margin_left, nLeftMargin);
 
         // max-width = max-width - margin-left for TOC paragraphs with dot 
leaders
-        if (rHTMLWrt.m_bParaDotLeaders)
-            rHTMLWrt.OutCSS1_UnitProperty(sCSS1_P_max_width, 
tools::Long(DOT_LEADERS_MAX_WIDTH/2.54*72*20) - nLeftMargin);
+        if (rWrt.m_bParaDotLeaders)
+            rWrt.OutCSS1_UnitProperty(sCSS1_P_max_width, 
tools::Long(DOT_LEADERS_MAX_WIDTH/2.54*72*20) - nLeftMargin);
 
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxRightMargin(Writer & rWrt, SfxPoolItem const& rHt)
+static SwHTMLWriter& OutCSS1_SvxRightMargin(SwHTMLWriter & rWrt, SfxPoolItem 
const& rHt)
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     const SvxRightMarginItem& rRightMargin(static_cast<const 
SvxRightMarginItem&>(rHt));
 
     // No Export of a firm attribute is needed if the new values
     // match that of the current template
 
-    if (rHTMLWrt.m_nDfltRightMargin != rRightMargin.GetRight())
+    if (rWrt.m_nDfltRightMargin != rRightMargin.GetRight())
     {
-        rHTMLWrt.OutCSS1_UnitProperty(sCSS1_P_margin_right, 
rRightMargin.GetRight());
+        rWrt.OutCSS1_UnitProperty(sCSS1_P_margin_right, 
rRightMargin.GetRight());
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxLRSpace( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxLRSpace( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     const SvxLRSpaceItem& rLRItem = static_cast<const SvxLRSpaceItem&>(rHt);
 
     // No Export of a firm attribute is needed if the new values
     // match that of the current template
 
     // A left margin can exist because of a list nearby
-    tools::Long nLeftMargin = rLRItem.GetTextLeft() - rHTMLWrt.m_nLeftMargin;
-    if( rHTMLWrt.m_nDfltLeftMargin != nLeftMargin )
+    tools::Long nLeftMargin = rLRItem.GetTextLeft() - rWrt.m_nLeftMargin;
+    if( rWrt.m_nDfltLeftMargin != nLeftMargin )
     {
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_margin_left, nLeftMargin );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_margin_left, nLeftMargin );
 
         // max-width = max-width - margin-left for TOC paragraphs with dot 
leaders
-        if( rHTMLWrt.m_bParaDotLeaders )
-            rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_max_width, 
tools::Long(DOT_LEADERS_MAX_WIDTH/2.54*72*20) - nLeftMargin );
+        if( rWrt.m_bParaDotLeaders )
+            rWrt.OutCSS1_UnitProperty( sCSS1_P_max_width, 
tools::Long(DOT_LEADERS_MAX_WIDTH/2.54*72*20) - nLeftMargin );
 
     }
 
-    if( rHTMLWrt.m_nDfltRightMargin != rLRItem.GetRight() )
+    if( rWrt.m_nDfltRightMargin != rLRItem.GetRight() )
     {
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_margin_right, 
rLRItem.GetRight() );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_margin_right, rLRItem.GetRight() );
     }
 
     // The LineIndent of the first line might contain the room for numbering
     tools::Long nFirstLineIndent = 
static_cast<tools::Long>(rLRItem.GetTextFirstLineOffset()) -
-        rHTMLWrt.m_nFirstLineIndent;
-    if( rHTMLWrt.m_nDfltFirstLineIndent != nFirstLineIndent )
+        rWrt.m_nFirstLineIndent;
+    if( rWrt.m_nDfltFirstLineIndent != nFirstLineIndent )
     {
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_text_indent,
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_text_indent,
                                      nFirstLineIndent );
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxULSpace( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxULSpace( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     const SvxULSpaceItem& rULItem = static_cast<const SvxULSpaceItem&>(rHt);
 
-    if( rHTMLWrt.m_nDfltTopMargin != rULItem.GetUpper() )
+    if( rWrt.m_nDfltTopMargin != rULItem.GetUpper() )
     {
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_margin_top,
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_margin_top,
                                      
static_cast<tools::Long>(rULItem.GetUpper()) );
     }
 
-    if( rHTMLWrt.m_nDfltBottomMargin != rULItem.GetLower() )
+    if( rWrt.m_nDfltBottomMargin != rULItem.GetLower() )
     {
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_margin_bottom,
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_margin_bottom,
                                      
static_cast<tools::Long>(rULItem.GetLower()) );
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxULSpace_SvxLRSpace( Writer& rWrt,
+static SwHTMLWriter& OutCSS1_SvxULSpace_SvxLRSpace( SwHTMLWriter& rWrt,
                                         const SvxULSpaceItem *pULItem,
                                         const SvxLRSpaceItem *pLRItem )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     if( pLRItem && pULItem &&
         pLRItem->GetLeft() == pLRItem->GetRight() &&
         pLRItem->GetLeft() == pULItem->GetUpper() &&
         pLRItem->GetLeft() == pULItem->GetLower() &&
-        pLRItem->GetLeft() != rHTMLWrt.m_nDfltLeftMargin &&
-        pLRItem->GetRight() != rHTMLWrt.m_nDfltRightMargin &&
-        pULItem->GetUpper() != rHTMLWrt.m_nDfltTopMargin &&
-        pULItem->GetLower() != rHTMLWrt.m_nDfltBottomMargin )
+        pLRItem->GetLeft() != rWrt.m_nDfltLeftMargin &&
+        pLRItem->GetRight() != rWrt.m_nDfltRightMargin &&
+        pULItem->GetUpper() != rWrt.m_nDfltTopMargin &&
+        pULItem->GetLower() != rWrt.m_nDfltBottomMargin )
     {
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_margin, pLRItem->GetLeft() );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_margin, pLRItem->GetLeft() );
     }
     else
     {
@@ -3013,7 +2952,7 @@ static Writer& OutCSS1_SvxULSpace_SvxLRSpace( Writer& 
rWrt,
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxULSpace_SvxLRSpace( Writer& rWrt,
+static SwHTMLWriter& OutCSS1_SvxULSpace_SvxLRSpace( SwHTMLWriter& rWrt,
                                         const SfxItemSet& rItemSet )
 {
     const SvxLRSpaceItem *pLRSpace = rItemSet.GetItemIfSet( RES_LR_SPACE, 
false/*bDeep*/ );
@@ -3025,14 +2964,12 @@ static Writer& OutCSS1_SvxULSpace_SvxLRSpace( Writer& 
rWrt,
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxFormatBreak_SwFormatPDesc_SvxFormatKeep( Writer& 
rWrt,
+static SwHTMLWriter& OutCSS1_SvxFormatBreak_SwFormatPDesc_SvxFormatKeep( 
SwHTMLWriter& rWrt,
                                         const SvxFormatBreakItem *pBreakItem,
                                         const SwFormatPageDesc *pPDescItem,
                                         const SvxFormatKeepItem *pKeepItem )
 {
-    SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
-    if( !rHTMLWrt.IsHTMLMode(HTMLMODE_PRINT_EXT) )
+    if( !rWrt.IsHTMLMode(HTMLMODE_PRINT_EXT) )
         return rWrt;
 
     const char *pBreakBefore = nullptr;
@@ -3082,32 +3019,31 @@ static Writer& 
OutCSS1_SvxFormatBreak_SwFormatPDesc_SvxFormatKeep( Writer& rWrt,
         }
     }
 
-    if (rHTMLWrt.mbSkipHeaderFooter)
+    if (rWrt.mbSkipHeaderFooter)
         // No page break when writing only a fragment.
         return rWrt;
 
     if( pBreakBefore )
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_page_break_before,
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_page_break_before,
                                         pBreakBefore );
     if( pBreakAfter )
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_page_break_after,
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_page_break_after,
                                         pBreakAfter );
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxFormatBreak_SwFormatPDesc_SvxFormatKeep( Writer& 
rWrt,
+static SwHTMLWriter& OutCSS1_SvxFormatBreak_SwFormatPDesc_SvxFormatKeep( 
SwHTMLWriter& rWrt,
                                         const SfxItemSet& rItemSet,
                                         bool bDeep )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
     const SvxFormatBreakItem *pBreakItem = rItemSet.GetItemIfSet( RES_BREAK, 
bDeep );
 
     const SwFormatPageDesc *pPDescItem = nullptr;
-    if( !rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) ||
-        !rHTMLWrt.m_bCSS1IgnoreFirstPageDesc ||
-        rHTMLWrt.m_pStartNdIdx->GetIndex() !=
-                    rHTMLWrt.m_pCurrentPam->GetPoint()->GetNodeIndex() )
+    if( !rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) ||
+        !rWrt.m_bCSS1IgnoreFirstPageDesc ||
+        rWrt.m_pStartNdIdx->GetIndex() !=
+                    rWrt.m_pCurrentPam->GetPoint()->GetNodeIndex() )
         pPDescItem = rItemSet.GetItemIfSet( RES_PAGEDESC, bDeep );
 
     const SvxFormatKeepItem *pKeepItem = rItemSet.GetItemIfSet( RES_KEEP, 
bDeep );
@@ -3120,22 +3056,20 @@ static Writer& 
OutCSS1_SvxFormatBreak_SwFormatPDesc_SvxFormatKeep( Writer& rWrt,
 }
 
 // Wrapper for OutCSS1_SfxItemSet etc.
-static Writer& OutCSS1_SvxBrush( Writer& rWrt, const SfxPoolItem& rHt )
+static SwHTMLWriter& OutCSS1_SvxBrush( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt )
 {
     OutCSS1_SvxBrush( rWrt, rHt, sw::Css1Background::Attr, nullptr );
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxBrush( Writer& rWrt, const SfxPoolItem& rHt,
+static SwHTMLWriter& OutCSS1_SvxBrush( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt,
                                  sw::Css1Background nMode,
                                  const OUString* pGraphicName)
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // The Character-Attribute is skipped, if we are about to
     // exporting options
     if( rHt.Which() < RES_CHRATR_END &&
-        rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+        rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
         return rWrt;
 
     // start getting a few values
@@ -3144,7 +3078,7 @@ static Writer& OutCSS1_SvxBrush( Writer& rWrt, const 
SfxPoolItem& rHt,
     OUString aLink = pGraphicName ? *pGraphicName
                             : static_cast<const SvxBrushItem 
&>(rHt).GetGraphicLink();
     SvxGraphicPosition ePos = static_cast<const SvxBrushItem 
&>(rHt).GetGraphicPos();
-    if( sw::Css1Background::Page == nMode && !rHTMLWrt.mbEmbedImages )
+    if( sw::Css1Background::Page == nMode && !rWrt.mbEmbedImages )
     {
         // page style images are exported if not tiled
         if( aLink.isEmpty() || GPOS_TILED==ePos )
@@ -3167,19 +3101,19 @@ static Writer& OutCSS1_SvxBrush( Writer& rWrt, const 
SfxPoolItem& rHt,
 
     // Embedded Graphic -> export WriteEmbedded
     const Graphic* pGrf = nullptr;
-    if( rHTMLWrt.mbEmbedImages || aLink.isEmpty())
+    if( rWrt.mbEmbedImages || aLink.isEmpty())
     {
         pGrf = static_cast<const SvxBrushItem &>(rHt).GetGraphic();
         if( pGrf )
         {
             if( !XOutBitmap::GraphicToBase64(*pGrf, aGraphicInBase64) )
             {
-                rHTMLWrt.m_nWarn = WARN_SWG_POOR_LOAD;
+                rWrt.m_nWarn = WARN_SWG_POOR_LOAD;
             }
         }
         aLink.clear();
     }
-    else if( !pGraphicName && rHTMLWrt.m_bCfgCpyLinkedGrfs )
+    else if( !pGraphicName && rWrt.m_bCfgCpyLinkedGrfs )
     {
         OUString aGraphicAsLink = aLink;
         rWrt.CopyLocalFileToINet( aGraphicAsLink );
@@ -3305,20 +3239,20 @@ static Writer& OutCSS1_SvxBrush( Writer& rWrt, const 
SfxPoolItem& rHt,
 
     if( !sOut.isEmpty() )
     {
-        rHTMLWrt.OutCSS1_Property(sCSS1_P_background, std::string_view(), 
&sOut,
+        rWrt.OutCSS1_Property(sCSS1_P_background, std::string_view(), &sOut,
                                   nMode);
     }
 
     return rWrt;
 }
 
-static void OutCSS1_SvxBorderLine( SwHTMLWriter& rHTMLWrt,
+static void OutCSS1_SvxBorderLine( SwHTMLWriter& rWrt,
                                    const char *pProperty,
                                    const SvxBorderLine *pLine )
 {
     if( !pLine || pLine->isEmpty() )
     {
-        rHTMLWrt.OutCSS1_PropertyAscii( pProperty, sCSS1_PV_none );
+        rWrt.OutCSS1_PropertyAscii( pProperty, sCSS1_PV_none );
         return;
     }
 
@@ -3384,28 +3318,26 @@ static void OutCSS1_SvxBorderLine( SwHTMLWriter& 
rHTMLWrt,
     // and also the color
     sOut.append(GetCSS1_Color(pLine->GetColor()));
 
-    rHTMLWrt.OutCSS1_PropertyAscii(pProperty, sOut);
+    rWrt.OutCSS1_PropertyAscii(pProperty, sOut);
 }
 
-Writer& OutCSS1_SvxBox( Writer& rWrt, const SfxPoolItem& rHt )
+SwHTMLWriter& OutCSS1_SvxBox( SwHTMLWriter& rWrt, const SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // Avoid interference between character and paragraph attributes
     if( rHt.Which() < RES_CHRATR_END &&
-        rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
+        rWrt.IsCSS1Source( CSS1_OUTMODE_PARA ) )
         return rWrt;
 
     if( rHt.Which() == RES_CHRATR_BOX )
     {
-        if( rHTMLWrt.m_bTagOn )
+        if( rWrt.m_bTagOn )
         {
             // Inline-block to make the line height changing correspond to the 
character border
-            rHTMLWrt.OutCSS1_PropertyAscii(sCSS1_P_display, "inline-block");
+            rWrt.OutCSS1_PropertyAscii(sCSS1_P_display, "inline-block");
         }
         else
         {
-            HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rHTMLWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_span), false );
+            HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_span), false );
             return rWrt;
         }
     }
@@ -3422,15 +3354,15 @@ Writer& OutCSS1_SvxBox( Writer& rWrt, const 
SfxPoolItem& rHt )
     {
         // all Lines are set and equal, or all Lines are not set
         // => border : ...
-        OutCSS1_SvxBorderLine( rHTMLWrt, sCSS1_P_border, pTop );
+        OutCSS1_SvxBorderLine( rWrt, sCSS1_P_border, pTop );
     }
     else
     {
         // otherwise export all Lines separately
-        OutCSS1_SvxBorderLine( rHTMLWrt, sCSS1_P_border_top, pTop );
-        OutCSS1_SvxBorderLine( rHTMLWrt, sCSS1_P_border_bottom, pBottom );
-        OutCSS1_SvxBorderLine( rHTMLWrt, sCSS1_P_border_left, pLeft );
-        OutCSS1_SvxBorderLine( rHTMLWrt, sCSS1_P_border_right, pRight );
+        OutCSS1_SvxBorderLine( rWrt, sCSS1_P_border_top, pTop );
+        OutCSS1_SvxBorderLine( rWrt, sCSS1_P_border_bottom, pBottom );
+        OutCSS1_SvxBorderLine( rWrt, sCSS1_P_border_left, pLeft );
+        OutCSS1_SvxBorderLine( rWrt, sCSS1_P_border_right, pRight );
     }
 
     tools::Long nTopDist = pTop ? rBoxItem.GetDistance( SvxBoxItemLine::TOP ) 
: 0;
@@ -3441,31 +3373,29 @@ Writer& OutCSS1_SvxBox( Writer& rWrt, const 
SfxPoolItem& rHt )
     if( nTopDist == nBottomDist && nLeftDist == nRightDist )
     {
         OStringBuffer sVal;
-        AddUnitPropertyValue(sVal, nTopDist, rHTMLWrt.GetCSS1Unit());
+        AddUnitPropertyValue(sVal, nTopDist, rWrt.GetCSS1Unit());
         if( nTopDist != nLeftDist )
         {
             sVal.append(' ');
-            AddUnitPropertyValue(sVal, nLeftDist, rHTMLWrt.GetCSS1Unit());
+            AddUnitPropertyValue(sVal, nLeftDist, rWrt.GetCSS1Unit());
         }
-        rHTMLWrt.OutCSS1_PropertyAscii(sCSS1_P_padding, sVal);
+        rWrt.OutCSS1_PropertyAscii(sCSS1_P_padding, sVal);
     }
     else
     {
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_padding_top, nTopDist );
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_padding_bottom, nBottomDist );
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_padding_left, nLeftDist );
-        rHTMLWrt.OutCSS1_UnitProperty( sCSS1_P_padding_right, nRightDist );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_padding_top, nTopDist );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_padding_bottom, nBottomDist );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_padding_left, nLeftDist );
+        rWrt.OutCSS1_UnitProperty( sCSS1_P_padding_right, nRightDist );
     }
 
     return rWrt;
 }
 
-static Writer& OutCSS1_SvxFrameDirection( Writer& rWrt, const SfxPoolItem& rHt 
)
+static SwHTMLWriter& OutCSS1_SvxFrameDirection( SwHTMLWriter& rWrt, const 
SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast< SwHTMLWriter& >( rWrt  );
-
     // Language will be exported rules only
-    if( !rHTMLWrt.IsCSS1Source( CSS1_OUTMODE_TEMPLATE ) )
+    if( !rWrt.IsCSS1Source( CSS1_OUTMODE_TEMPLATE ) )
         return rWrt;
 
     SvxFrameDirection nDir =
@@ -3488,7 +3418,7 @@ static Writer& OutCSS1_SvxFrameDirection( Writer& rWrt, 
const SfxPoolItem& rHt )
     }
 
     if( pStr )
-        rHTMLWrt.OutCSS1_PropertyAscii( sCSS1_P_direction, pStr );
+        rWrt.OutCSS1_PropertyAscii( sCSS1_P_direction, pStr );
 
     return rWrt;
 }
@@ -3726,32 +3656,28 @@ void SwHTMLWriter::OutCSS1_SfxItemSet( const 
SfxItemSet& rItemSet,
         Strm().WriteOString( sOut );
 }
 
-Writer& OutCSS1_HintSpanTag( Writer& rWrt, const SfxPoolItem& rHt )
+SwHTMLWriter& OutCSS1_HintSpanTag( SwHTMLWriter& rWrt, const SfxPoolItem& rHt )
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
-    SwCSS1OutMode aMode( rHTMLWrt, CSS1_OUTMODE_SPAN_TAG |
+    SwCSS1OutMode aMode( rWrt, CSS1_OUTMODE_SPAN_TAG |
                                    CSS1_OUTMODE_ENCODE|CSS1_OUTMODE_HINT, 
nullptr );
 
     Out( aCSS1AttrFnTab, rHt, rWrt );
 
-    if( !rHTMLWrt.m_bFirstCSS1Property  && rHTMLWrt.m_bTagOn )
+    if( !rWrt.m_bFirstCSS1Property  && rWrt.m_bTagOn )
         rWrt.Strm().WriteCharPtr( sCSS1_span_tag_end );
 
     return rWrt;
 }
 
-Writer& OutCSS1_HintStyleOpt( Writer& rWrt, const SfxPoolItem& rHt )
+SwHTMLWriter& OutCSS1_HintStyleOpt( SwHTMLWriter& rWrt, const SfxPoolItem& rHt 
)
 {
-    SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
-
-    SwCSS1OutMode aMode( rHTMLWrt, CSS1_OUTMODE_STYLE_OPT_ON |
+    SwCSS1OutMode aMode( rWrt, CSS1_OUTMODE_STYLE_OPT_ON |
                                    CSS1_OUTMODE_ENCODE|
                                    CSS1_OUTMODE_HINT, nullptr );
 
     Out( aCSS1AttrFnTab, rHt, rWrt );
 
-    if( !rHTMLWrt.m_bFirstCSS1Property )
+    if( !rWrt.m_bFirstCSS1Property )
         rWrt.Strm().WriteChar( '\"' );
 
     return rWrt;
diff --git a/sw/source/filter/html/htmlatr.cxx 
b/sw/source/filter/html/htmlatr.cxx
index 5988270e615c..a3b1335501a7 100644
--- a/sw/source/filter/html/htmlatr.cxx
+++ b/sw/source/filter/html/htmlatr.cxx
@@ -91,7 +91,7 @@ HTMLOutEvent const aAnchorEventTable[] =
     { nullptr, nullptr, SvMacroItemId::NONE }
 };
 
-static Writer& OutHTML_SvxAdjust( Writer& rWrt, const SfxPoolItem& rHt );
+static SwHTMLWriter& OutHTML_SvxAdjust( SwHTMLWriter& rWrt, const SfxPoolItem& 
rHt );
 
 sal_uInt16 SwHTMLWriter::GetDefListLvl( std::u16string_view rNm, sal_uInt16 
nPoolId )
 {
@@ -421,15 +421,13 @@ SwHTMLFormatInfo::~SwHTMLFormatInfo()
 {
 }
 
-static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
+static void OutHTML_SwFormat( SwHTMLWriter& rWrt, const SwFormat& rFormat,
                     const SfxItemSet *pNodeItemSet,
                     SwHTMLTextCollOutputInfo& rInfo )
 {
     OSL_ENSURE( RES_CONDTXTFMTCOLL==rFormat.Which() || 
RES_TXTFMTCOLL==rFormat.Which(),
             "not a paragraph style" );
 
-    SwHTMLWriter & rHWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // First, some flags
     sal_uInt16 nNewDefListLvl = 0;
     sal_uInt16 nNumStart = USHRT_MAX;
@@ -441,11 +439,11 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
     rInfo.bParaPossible = false;    // a <P> may be additionally output
     bool bNoEndTag = false;         // don't output an end tag
 
-    rHWrt.m_bNoAlign = false;       // no ALIGN=... possible
+    rWrt.m_bNoAlign = false;       // no ALIGN=... possible
 
-    if (rHWrt.mbXHTML)
+    if (rWrt.mbXHTML)
     {
-        rHWrt.m_bNoAlign = true;
+        rWrt.m_bNoAlign = true;
     }
 
     sal_uInt8 nBulletGrfLvl = 255;  // The bullet graphic we want to output
@@ -454,10 +452,10 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
     const SwTextNode* pTextNd = 
rWrt.m_pCurrentPam->GetPointNode().GetTextNode();
 
     SwHTMLNumRuleInfo aNumInfo;
-    if( rHWrt.GetNextNumInfo() )
+    if( rWrt.GetNextNumInfo() )
     {
-        aNumInfo = *rHWrt.GetNextNumInfo();
-        rHWrt.ClearNextNumInfo();
+        aNumInfo = *rWrt.GetNextNumInfo();
+        rWrt.ClearNextNumInfo();
     }
     else
     {
@@ -490,7 +488,7 @@ static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
             {
                 nNumStart = static_cast< sal_uInt16 
>(pTextNd->GetActualListStartValue());
             }
-            OSL_ENSURE( rHWrt.m_nLastParaToken == HtmlTokenId::NONE,
+            OSL_ENSURE( rWrt.m_nLastParaToken == HtmlTokenId::NONE,
                 "<PRE> was not closed before <LI>." );
         }
     }
@@ -498,18 +496,18 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
     // Now, we're getting the token and, if necessary, the class
     std::unique_ptr<SwHTMLFormatInfo> pTmpInfo(new SwHTMLFormatInfo(&rFormat));
     SwHTMLFormatInfo *pFormatInfo;
-    SwHTMLFormatInfos::iterator it = rHWrt.m_TextCollInfos.find( pTmpInfo );
-    if (it != rHWrt.m_TextCollInfos.end())
+    SwHTMLFormatInfos::iterator it = rWrt.m_TextCollInfos.find( pTmpInfo );
+    if (it != rWrt.m_TextCollInfos.end())
     {
         pFormatInfo = it->get();
     }
     else
     {
-        pFormatInfo = new SwHTMLFormatInfo( &rFormat, rWrt.m_pDoc, 
rHWrt.m_xTemplate.get(),
-                                      rHWrt.m_bCfgOutStyles, rHWrt.m_eLang,
-                                      rHWrt.m_nCSS1Script );
-        
rHWrt.m_TextCollInfos.insert(std::unique_ptr<SwHTMLFormatInfo>(pFormatInfo));
-        if( rHWrt.m_aScriptParaStyles.count( rFormat.GetName() ) )
+        pFormatInfo = new SwHTMLFormatInfo( &rFormat, rWrt.m_pDoc, 
rWrt.m_xTemplate.get(),
+                                      rWrt.m_bCfgOutStyles, rWrt.m_eLang,
+                                      rWrt.m_nCSS1Script );
+        
rWrt.m_TextCollInfos.insert(std::unique_ptr<SwHTMLFormatInfo>(pFormatInfo));
+        if( rWrt.m_aScriptParaStyles.count( rFormat.GetName() ) )
             pFormatInfo->bScriptDependent = true;
     }
 
@@ -525,12 +523,12 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
         if (rInfo.aToken == OOO_STRING_SVTOOLS_HTML_address)
         {
             rInfo.bParaPossible = true;
-            rHWrt.m_bNoAlign = true;
+            rWrt.m_bNoAlign = true;
         }
         else if (rInfo.aToken == OOO_STRING_SVTOOLS_HTML_blockquote)
         {
             rInfo.bParaPossible = true;
-            rHWrt.m_bNoAlign = true;
+            rWrt.m_bNoAlign = true;
         }
         else if (rInfo.aToken == OOO_STRING_SVTOOLS_HTML_parabreak)
         {
@@ -538,14 +536,14 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
         }
         else if (rInfo.aToken == OOO_STRING_SVTOOLS_HTML_preformtxt)
         {
-            if (HtmlTokenId::PREFORMTXT_ON == rHWrt.m_nLastParaToken)
+            if (HtmlTokenId::PREFORMTXT_ON == rWrt.m_nLastParaToken)
             {
                 bOutNewLine = true;
             }
             else
             {
                 nToken = HtmlTokenId::PREFORMTXT_ON;
-                rHWrt.m_bNoAlign = true;
+                rWrt.m_bNoAlign = true;
                 bNoEndTag = true;
             }
         }
@@ -553,7 +551,7 @@ static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
         {
             bDT = rInfo.aToken == OOO_STRING_SVTOOLS_HTML_dt;
             rInfo.bParaPossible = !bDT;
-            rHWrt.m_bNoAlign = true;
+            rWrt.m_bNoAlign = true;
             bForceDL = true;
         }
     }
@@ -587,18 +585,18 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
         pNodeItemSet ? pNodeItemSet->Get(RES_UL_SPACE)
                      : rFormat.GetULSpace();
 
-    if( (rHWrt.m_bOutHeader &&
+    if( (rWrt.m_bOutHeader &&
          rWrt.m_pCurrentPam->GetPoint()->GetNodeIndex() ==
             rWrt.m_pCurrentPam->GetMark()->GetNodeIndex()) ||
-         rHWrt.m_bOutFooter )
+         rWrt.m_bOutFooter )
     {
-        if( rHWrt.m_bCfgOutStyles )
+        if( rWrt.m_bCfgOutStyles )
         {
             SvxULSpaceItem aULSpaceItem( rULSpace );
-            if( rHWrt.m_bOutHeader )
-                aULSpaceItem.SetLower( rHWrt.m_nHeaderFooterSpace );
+            if( rWrt.m_bOutHeader )
+                aULSpaceItem.SetLower( rWrt.m_nHeaderFooterSpace );
             else
-                aULSpaceItem.SetUpper( rHWrt.m_nHeaderFooterSpace );
+                aULSpaceItem.SetUpper( rWrt.m_nHeaderFooterSpace );
 
             if (!rInfo.moItemSet)
             {
@@ -606,8 +604,8 @@ static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
             }
             rInfo.moItemSet->Put( aULSpaceItem );
         }
-        rHWrt.m_bOutHeader = false;
-        rHWrt.m_bOutFooter = false;
+        rWrt.m_bOutHeader = false;
+        rWrt.m_bOutFooter = false;
     }
 
     if( bOutNewLine )
@@ -628,7 +626,7 @@ static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
 
     // Consider the lower spacing of the paragraph? (never in the last
     // paragraph of tables)
-    bool bUseParSpace = !rHWrt.m_bOutTable ||
+    bool bUseParSpace = !rWrt.m_bOutTable ||
                         (rWrt.m_pCurrentPam->GetPoint()->GetNodeIndex() !=
                          rWrt.m_pCurrentPam->GetMark()->GetNodeIndex());
     // If styles are exported, indented paragraphs become definition lists
@@ -638,7 +636,7 @@ static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
     SvxTextLeftMarginItem const& rTextLeftMargin(
         pNodeItemSet ? pNodeItemSet->Get(RES_MARGIN_TEXTLEFT)
                      : rFormat.GetTextLeftMargin());
-    if( (!rHWrt.m_bCfgOutStyles || bForceDL) && !rInfo.bInNumberBulletList )
+    if( (!rWrt.m_bCfgOutStyles || bForceDL) && !rInfo.bInNumberBulletList )
     {
         sal_Int32 nLeftMargin;
         if( bForceDL )
@@ -648,10 +646,10 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
                 ? rTextLeftMargin.GetTextLeft() - pFormatInfo->nLeftMargin
                 : 0;
 
-        if( nLeftMargin > 0 && rHWrt.m_nDefListMargin > 0 )
+        if( nLeftMargin > 0 && rWrt.m_nDefListMargin > 0 )
         {
-            nNewDefListLvl = static_cast< sal_uInt16 >((nLeftMargin + 
(rHWrt.m_nDefListMargin/2)) /
-                                                    rHWrt.m_nDefListMargin);
+            nNewDefListLvl = static_cast< sal_uInt16 >((nLeftMargin + 
(rWrt.m_nDefListMargin/2)) /
+                                                    rWrt.m_nDefListMargin);
             if( nNewDefListLvl == 0 && bForceDL && !bDT )
                 nNewDefListLvl = 1;
         }
@@ -672,32 +670,32 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
             // Instead of a DD we must use a DT from the level above this one.
             nNewDefListLvl++;
         }
-        else if( !nNewDefListLvl && !rHWrt.m_bCfgOutStyles && bPara &&
+        else if( !nNewDefListLvl && !rWrt.m_bCfgOutStyles && bPara &&
                  rULSpace.GetLower()==0 &&
-                 ((bUseParSpace && bIsNextTextNode) || rHWrt.m_nDefListLvl==1) 
&&
+                 ((bUseParSpace && bIsNextTextNode) || rWrt.m_nDefListLvl==1) 
&&
                  (!pAdjItem || SvxAdjust::Left==pAdjItem->GetAdjust()) )
         {
             // Export paragraphs without a lower spacing as DT
             nNewDefListLvl = 1;
             bDT = true;
             rInfo.bParaPossible = false;
-            rHWrt.m_bNoAlign = true;
+            rWrt.m_bNoAlign = true;
         }
     }
 
-    if( nNewDefListLvl != rHWrt.m_nDefListLvl )
-        rHWrt.OutAndSetDefList( nNewDefListLvl );
+    if( nNewDefListLvl != rWrt.m_nDefListLvl )
+        rWrt.OutAndSetDefList( nNewDefListLvl );
 
     bool bAtLeastOneNumbered = false;
     // if necessary, start a bulleted or numbered list
     if( rInfo.bInNumberBulletList )
     {
-        OSL_ENSURE( !rHWrt.m_nDefListLvl, "DL cannot be inside OL!" );
-        OutHTML_NumberBulletListStart( rHWrt, aNumInfo, bAtLeastOneNumbered );
+        OSL_ENSURE( !rWrt.m_nDefListLvl, "DL cannot be inside OL!" );
+        OutHTML_NumberBulletListStart( rWrt, aNumInfo, bAtLeastOneNumbered );
 
         if( bNumbered )
         {
-            if( !rHWrt.m_aBulletGrfs[nBulletGrfLvl].isEmpty()  )
+            if( !rWrt.m_aBulletGrfs[nBulletGrfLvl].isEmpty()  )
                 bNumbered = false;
             else
                 nBulletGrfLvl = 255;
@@ -706,64 +704,64 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
 
     // Take the defaults of the style, because they don't need to be
     // exported
-    rHWrt.m_nDfltLeftMargin = pFormatInfo->nLeftMargin;
-    rHWrt.m_nDfltRightMargin = pFormatInfo->nRightMargin;
-    rHWrt.m_nDfltFirstLineIndent = pFormatInfo->nFirstLineIndent;
+    rWrt.m_nDfltLeftMargin = pFormatInfo->nLeftMargin;
+    rWrt.m_nDfltRightMargin = pFormatInfo->nRightMargin;
+    rWrt.m_nDfltFirstLineIndent = pFormatInfo->nFirstLineIndent;
 
     if( rInfo.bInNumberBulletList )
     {
-        if( !rHWrt.IsHTMLMode( HTMLMODE_LSPACE_IN_NUMBER_BULLET ) )
-            rHWrt.m_nDfltLeftMargin = rTextLeftMargin.GetTextLeft();
+        if( !rWrt.IsHTMLMode( HTMLMODE_LSPACE_IN_NUMBER_BULLET ) )
+            rWrt.m_nDfltLeftMargin = rTextLeftMargin.GetTextLeft();
 
         // In numbered lists, don't output a first line indent.
-        rHWrt.m_nFirstLineIndent = rFirstLine.GetTextFirstLineOffset();
+        rWrt.m_nFirstLineIndent = rFirstLine.GetTextFirstLineOffset();
     }
 
-    if( rInfo.bInNumberBulletList && bNumbered && bPara && 
!rHWrt.m_bCfgOutStyles )
+    if( rInfo.bInNumberBulletList && bNumbered && bPara && 
!rWrt.m_bCfgOutStyles )
     {
         // a single LI doesn't have spacing
-        rHWrt.m_nDfltTopMargin = 0;
-        rHWrt.m_nDfltBottomMargin = 0;
+        rWrt.m_nDfltTopMargin = 0;
+        rWrt.m_nDfltBottomMargin = 0;
     }
-    else if( rHWrt.m_nDefListLvl && bPara )
+    else if( rWrt.m_nDefListLvl && bPara )
     {
         // a single DD doesn't have spacing, as well
-        rHWrt.m_nDfltTopMargin = 0;
-        rHWrt.m_nDfltBottomMargin = 0;
+        rWrt.m_nDfltTopMargin = 0;
+        rWrt.m_nDfltBottomMargin = 0;
     }
     else
     {
-        rHWrt.m_nDfltTopMargin = pFormatInfo->nTopMargin;
+        rWrt.m_nDfltTopMargin = pFormatInfo->nTopMargin;
         // if in the last paragraph of a table the lower paragraph spacing
         // is changed, Netscape doesn't get it. That's why we don't
         // export anything here for now, by setting this spacing to the
         // default value.
-        if( rHWrt.m_bCfgNetscape4 && !bUseParSpace )
-            rHWrt.m_nDfltBottomMargin = rULSpace.GetLower();
+        if( rWrt.m_bCfgNetscape4 && !bUseParSpace )
+            rWrt.m_nDfltBottomMargin = rULSpace.GetLower();
         else
-            rHWrt.m_nDfltBottomMargin = pFormatInfo->nBottomMargin;
+            rWrt.m_nDfltBottomMargin = pFormatInfo->nBottomMargin;
     }
 
-    if( rHWrt.m_nDefListLvl )
+    if( rWrt.m_nDefListLvl )
     {
-        rHWrt.m_nLeftMargin =
-            (rHWrt.m_nDefListLvl-1) * rHWrt.m_nDefListMargin;
+        rWrt.m_nLeftMargin =
+            (rWrt.m_nDefListLvl-1) * rWrt.m_nDefListMargin;
     }
 
-    if( rHWrt.m_bLFPossible && !rHWrt.m_bFirstLine )
-        rHWrt.OutNewLine(); // paragraph tag on a new line
+    if( rWrt.m_bLFPossible && !rWrt.m_bFirstLine )
+        rWrt.OutNewLine(); // paragraph tag on a new line
     rInfo.bOutPara = false;
 
     // this is now our new token
-    rHWrt.ChangeParaToken( nToken );
+    rWrt.ChangeParaToken( nToken );
 
     bool bHasParSpace = bUseParSpace && rULSpace.GetLower() > 0;
     // XHTML doesn't allow character children for <blockquote>.
-    bool bXhtmlBlockQuote = rHWrt.mbXHTML && rInfo.aToken == 
OOO_STRING_SVTOOLS_HTML_blockquote;
+    bool bXhtmlBlockQuote = rWrt.mbXHTML && rInfo.aToken == 
OOO_STRING_SVTOOLS_HTML_blockquote;
 
     // if necessary, start a new list item
     bool bNumberedForListItem = bNumbered;
-    if (!bNumberedForListItem && rHWrt.mbXHTML && bAtLeastOneNumbered)
+    if (!bNumberedForListItem && rWrt.mbXHTML && bAtLeastOneNumbered)
     {
         // OutHTML_NumberBulletListEnd() will end a list item if at least one 
text node is numbered
         // in the list, so open the list item with the same condition here.
@@ -771,8 +769,8 @@ static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
     }
     if( rInfo.bInNumberBulletList && bNumberedForListItem )
     {
-        HtmlWriter html(rWrt.Strm(), rHWrt.maNamespace);
-        html.prettyPrint(rHWrt.m_bPrettyPrint);
+        HtmlWriter html(rWrt.Strm(), rWrt.maNamespace);
+        html.prettyPrint(rWrt.m_bPrettyPrint);
         html.start(OOO_STRING_SVTOOLS_HTML_li);
         if( USHRT_MAX != nNumStart )
             html.attribute(OOO_STRING_SVTOOLS_HTML_O_value, 
OString::number(nNumStart));
@@ -780,32 +778,32 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
         html.characters("");
     }
 
-    if( rHWrt.m_nDefListLvl > 0 && !bForceDL )
+    if( rWrt.m_nDefListLvl > 0 && !bForceDL )
     {
         OString aTag = bDT ? OOO_STRING_SVTOOLS_HTML_dt : 
OOO_STRING_SVTOOLS_HTML_dd;
-        HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rHWrt.GetNamespace() + aTag) );
+        HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rWrt.GetNamespace() + aTag) );
     }
 
     if( pAdjItem &&
-        rHWrt.IsHTMLMode( HTMLMODE_NO_CONTROL_CENTERING ) &&
-        rHWrt.HasControls() )
+        rWrt.IsHTMLMode( HTMLMODE_NO_CONTROL_CENTERING ) &&
+        rWrt.HasControls() )
     {
         // The align=... attribute does behave strange in netscape
         // if there are controls in a paragraph, because the control and
         // all text behind the control does not recognize this attribute.
-        OString sOut = "<" + rHWrt.GetNamespace() + 
OOO_STRING_SVTOOLS_HTML_division;
+        OString sOut = "<" + rWrt.GetNamespace() + 
OOO_STRING_SVTOOLS_HTML_division;
         rWrt.Strm().WriteOString( sOut );
 
-        rHWrt.m_bTextAttr = false;
-        rHWrt.m_bOutOpts = true;
+        rWrt.m_bTextAttr = false;
+        rWrt.m_bOutOpts = true;
         OutHTML_SvxAdjust( rWrt, *pAdjItem );
         rWrt.Strm().WriteChar( '>' );
         pAdjItem = nullptr;
-        rHWrt.m_bNoAlign = false;
+        rWrt.m_bNoAlign = false;
         rInfo.bOutDiv = true;
-        rHWrt.IncIndentLevel();
-        rHWrt.m_bLFPossible = true;
-        rHWrt.OutNewLine();
+        rWrt.IncIndentLevel();
+        rWrt.m_bLFPossible = true;
+        rWrt.OutNewLine();
     }
 
     // for BLOCKQUOTE, ADDRESS and DD we output another paragraph token, if
@@ -813,20 +811,20 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
     // - a lower spacing or a paragraph alignment exists
     // Also, XHTML does not allow character children in this context.
     OString aToken = rInfo.aToken;
-    if( (!rHWrt.m_bCfgOutStyles || rHWrt.mbXHTML) && rInfo.bParaPossible && 
!bPara &&
+    if( (!rWrt.m_bCfgOutStyles || rWrt.mbXHTML) && rInfo.bParaPossible && 
!bPara &&
         (bHasParSpace || bXhtmlBlockQuote || pAdjItem) )
     {
-        HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rHWrt.GetNamespace() + rInfo.aToken) );
+        HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rWrt.GetNamespace() + rInfo.aToken) );
         aToken = OOO_STRING_SVTOOLS_HTML_parabreak;
         bPara = true;
-        rHWrt.m_bNoAlign = false;
+        rWrt.m_bNoAlign = false;
     }
 
     LanguageType eLang;
     if (rInfo.moItemSet)
-        eLang = static_cast<const 
SvxLanguageItem&>(rInfo.moItemSet->Get(SwHTMLWriter::GetLangWhichIdFromScript(rHWrt.m_nCSS1Script))).GetLanguage();
+        eLang = static_cast<const 
SvxLanguageItem&>(rInfo.moItemSet->Get(SwHTMLWriter::GetLangWhichIdFromScript(rWrt.m_nCSS1Script))).GetLanguage();
     else
-        eLang = rHWrt.m_eLang;
+        eLang = rWrt.m_eLang;
 
     if( rInfo.moItemSet )
     {
@@ -842,7 +840,7 @@ static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
     }
 
     // and the text direction
-    SvxFrameDirection nDir = rHWrt.GetHTMLDirection(
+    SvxFrameDirection nDir = rWrt.GetHTMLDirection(
             (pNodeItemSet ? pNodeItemSet->Get( RES_FRAMEDIR )
                           : rFormat.GetFrameDir() ).GetValue() );
 
@@ -857,38 +855,38 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
     //      - a user format is exported, or
     //      - a paragraph attribute exists
     if( !bPara ||
-        (!rInfo.bInNumberBulletList && !rHWrt.m_nDefListLvl) ||
+        (!rInfo.bInNumberBulletList && !rWrt.m_nDefListLvl) ||
         (rInfo.bInNumberBulletList && !bNumbered) ||
-        (!rHWrt.m_bCfgOutStyles &&
+        (!rWrt.m_bCfgOutStyles &&
          (bHasParSpace || bXhtmlBlockQuote || pAdjItem ||
-          (eLang != LANGUAGE_DONTKNOW && eLang != rHWrt.m_eLang))) ||
-        nDir != rHWrt.m_nDirection ||
-        rHWrt.m_bCfgOutStyles )
+          (eLang != LANGUAGE_DONTKNOW && eLang != rWrt.m_eLang))) ||
+        nDir != rWrt.m_nDirection ||
+        rWrt.m_bCfgOutStyles )
     {
         // now, options are output
-        rHWrt.m_bTextAttr = false;
-        rHWrt.m_bOutOpts = true;
+        rWrt.m_bTextAttr = false;
+        rWrt.m_bOutOpts = true;
 
-        OString sOut = "<" + rHWrt.GetNamespace() + aToken;
+        OString sOut = "<" + rWrt.GetNamespace() + aToken;
 
-        if( eLang != LANGUAGE_DONTKNOW && eLang != rHWrt.m_eLang )
+        if( eLang != LANGUAGE_DONTKNOW && eLang != rWrt.m_eLang )
         {
             rWrt.Strm().WriteOString( sOut );
             sOut = "";
-            rHWrt.OutLanguage( eLang );
+            rWrt.OutLanguage( eLang );
         }
 
-        if( nDir != rHWrt.m_nDirection )
+        if( nDir != rWrt.m_nDirection )
         {
             if( !sOut.isEmpty() )
             {
                 rWrt.Strm().WriteOString( sOut );
                 sOut = "";
             }
-            rHWrt.OutDirection( nDir );
+            rWrt.OutDirection( nDir );
         }
 
-        if( rHWrt.m_bCfgOutStyles &&
+        if( rWrt.m_bCfgOutStyles &&
             (!pFormatInfo->aClass.isEmpty() || pFormatInfo->bScriptDependent) )
         {
             sOut += " " OOO_STRING_SVTOOLS_HTML_O_class "=\"";
@@ -899,7 +897,7 @@ static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
             {
                 if( !aClass.isEmpty() )
                    aClass += "-";
-                switch( rHWrt.m_nCSS1Script )
+                switch( rWrt.m_nCSS1Script )
                 {
                 case CSS1_OUTMODE_WESTERN:
                     aClass += "western";
@@ -919,19 +917,19 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
         sOut = "";
 
         // if necessary, output alignment
-        if( !rHWrt.m_bNoAlign && pAdjItem )
+        if( !rWrt.m_bNoAlign && pAdjItem )
             OutHTML_SvxAdjust( rWrt, *pAdjItem );
 
-        rHWrt.m_bParaDotLeaders = bPara && rHWrt.m_bCfgPrintLayout && 
rHWrt.indexOfDotLeaders(
+        rWrt.m_bParaDotLeaders = bPara && rWrt.m_bCfgPrintLayout && 
rWrt.indexOfDotLeaders(
                 pTextNd->GetAnyFormatColl().GetPoolFormatId(), 
pTextNd->GetText()) > -1;
 
         // and now, if necessary, the STYLE options
-        if (rHWrt.m_bCfgOutStyles && rInfo.moItemSet)
+        if (rWrt.m_bCfgOutStyles && rInfo.moItemSet)
         {
             OutCSS1_ParaTagStyleOpt( rWrt, *rInfo.moItemSet );
         }
 
-        if (rHWrt.m_bParaDotLeaders) {
+        if (rWrt.m_bParaDotLeaders) {
             sOut += " " OOO_STRING_SVTOOLS_HTML_O_class "=\""
                 sCSS2_P_CLASS_leaders "\"><"
                 OOO_STRING_SVTOOLS_HTML_O_span;
@@ -944,7 +942,7 @@ static void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
         // is a </P> supposed to be written?
         rInfo.bOutPara =
             bPara &&
-            ( rHWrt.m_bCfgOutStyles || bHasParSpace );
+            ( rWrt.m_bCfgOutStyles || bHasParSpace );
 
         // if no end tag is supposed to be written, delete it
         if( bNoEndTag )
@@ -957,79 +955,77 @@ static void OutHTML_SwFormat( Writer& rWrt, const 
SwFormat& rFormat,
         OSL_ENSURE( nBulletGrfLvl < MAXLEVEL, "There are not this many 
layers." );
         const SwNumFormat& rNumFormat = 
aNumInfo.GetNumRule()->Get(nBulletGrfLvl);
         OutHTML_BulletImage( rWrt, OOO_STRING_SVTOOLS_HTML_image, 
rNumFormat.GetBrush(),
-                rHWrt.m_aBulletGrfs[nBulletGrfLvl]);
+                rWrt.m_aBulletGrfs[nBulletGrfLvl]);
     }
 
-    rHWrt.GetNumInfo() = aNumInfo;
+    rWrt.GetNumInfo() = aNumInfo;
 
     // reset the defaults
-    rHWrt.m_nDfltLeftMargin = 0;
-    rHWrt.m_nDfltRightMargin = 0;
-    rHWrt.m_nDfltFirstLineIndent = 0;
-    rHWrt.m_nDfltTopMargin = 0;
-    rHWrt.m_nDfltBottomMargin = 0;
-    rHWrt.m_nLeftMargin = 0;
-    rHWrt.m_nFirstLineIndent = 0;
+    rWrt.m_nDfltLeftMargin = 0;
+    rWrt.m_nDfltRightMargin = 0;
+    rWrt.m_nDfltFirstLineIndent = 0;
+    rWrt.m_nDfltTopMargin = 0;
+    rWrt.m_nDfltBottomMargin = 0;
+    rWrt.m_nLeftMargin = 0;
+    rWrt.m_nFirstLineIndent = 0;
 }
 
-static void OutHTML_SwFormatOff( Writer& rWrt, const SwHTMLTextCollOutputInfo& 
rInfo )
+static void OutHTML_SwFormatOff( SwHTMLWriter& rWrt, const 
SwHTMLTextCollOutputInfo& rInfo )
 {
-    SwHTMLWriter & rHWrt = static_cast<SwHTMLWriter&>(rWrt);
-
     // if there is no token, we don't need to output anything
     if( rInfo.aToken.isEmpty() )
     {
-        rHWrt.FillNextNumInfo();
-        const SwHTMLNumRuleInfo& rNextInfo = *rHWrt.GetNextNumInfo();
+        rWrt.FillNextNumInfo();
+        const SwHTMLNumRuleInfo& rNextInfo = *rWrt.GetNextNumInfo();
         // a bulleted list must be closed in PRE as well
         if( rInfo.bInNumberBulletList )
         {
 
-            const SwHTMLNumRuleInfo& rNRInfo = rHWrt.GetNumInfo();
+            const SwHTMLNumRuleInfo& rNRInfo = rWrt.GetNumInfo();
             if( rNextInfo.GetNumRule() != rNRInfo.GetNumRule() ||
                 rNextInfo.GetDepth() != rNRInfo.GetDepth() ||
                 rNextInfo.IsNumbered() || rNextInfo.IsRestart() )
-                rHWrt.ChangeParaToken( HtmlTokenId::NONE );
-            OutHTML_NumberBulletListEnd( rHWrt, rNextInfo );
+                rWrt.ChangeParaToken( HtmlTokenId::NONE );
+            OutHTML_NumberBulletListEnd( rWrt, rNextInfo );
         }
         else if( rNextInfo.GetNumRule() != nullptr )
-            rHWrt.ChangeParaToken( HtmlTokenId::NONE );
+            rWrt.ChangeParaToken( HtmlTokenId::NONE );
 
         return;
     }
 
     if( rInfo.ShouldOutputToken() )
     {
-        if( rHWrt.m_bPrettyPrint && rHWrt.m_bLFPossible )
-            rHWrt.OutNewLine( true );
+        if( rWrt.m_bPrettyPrint && rWrt.m_bLFPossible )
+            rWrt.OutNewLine( true );
 
         // if necessary, for BLOCKQUOTE, ADDRESS and DD another paragraph token
         // is output, if
         // - no styles are written and
         // - a lower spacing exists
         if( rInfo.bParaPossible && rInfo.bOutPara )
-            HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rHWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_parabreak), false );
+            HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_parabreak), false );
 
-        HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), 
Concat2View(rHWrt.GetNamespace() + rInfo.aToken), false );
-        rHWrt.m_bLFPossible =

... etc. - the rest is truncated

Reply via email to