25#include <rtl/tencinfo.h>
45#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
46#include <com/sun/star/document/XDocumentProperties.hpp>
47#include <com/sun/star/frame/XModel.hpp>
75#include <rtl/strbuf.hxx>
81#include <osl/file.hxx>
85#include <officecfg/Office/Common.hxx>
86#include <officecfg/Office/Writer.hxx>
90#define MAX_INDENT_LEVEL 20
95 "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
101 , m_pStartNdIdx(nullptr)
102 , m_pCurrPageDesc(nullptr)
103 , m_pFormatFootnote(nullptr)
113 , m_nDfltLeftMargin(0)
114 , m_nDfltRightMargin(0)
115 , m_nFirstLineIndent(0)
116 , m_nDfltFirstLineIndent(0)
117 , m_nDfltTopMargin(0)
118 , m_nDfltBottomMargin(0)
122 , m_nDefListMargin(0)
123 , m_nHeaderFooterSpace(0)
124 , m_nTextAttrsToIgnore(0)
130 , m_bCfgOutStyles( false )
131 , m_bCfgPreferStyles( false )
132 , m_bCfgFormFeed( false )
133 , m_bCfgStarBasic( false )
134 , m_bCfgCpyLinkedGrfs( false )
137 , m_bTextAttr( false )
138 , m_bOutOpts( false )
139 , m_bOutTable( false )
140 , m_bOutHeader( false )
141 , m_bOutFooter( false )
142 , m_bOutFlyFrame( false )
143 , m_bFirstCSS1Rule( false )
144 , m_bFirstCSS1Property( false )
145 , m_bCSS1IgnoreFirstPageDesc( false )
146 , m_bNoAlign( false )
147 , m_bClearLeft( false )
148 , m_bClearRight( false )
149 , m_bLFPossible( false )
150 , m_bPreserveForm( false )
151 , m_bCfgNetscape4( false )
152 , mbSkipImages(false)
153 , mbSkipHeaderFooter(false)
154 , mbEmbedImages(false)
155 , m_bCfgPrintLayout( false )
156 , m_bParaDotLeaders( false )
157 , m_bPrettyPrint( true )
161 if (rBaseURL.isEmpty())
188 uno::Sequence<beans::PropertyValue> aArgs = rMedium.
GetArgs();
191 const OUString sFilterOptions = pItem->GetValue();
193 if (sFilterOptions.startsWith(
"{"))
195 std::vector<beans::PropertyValue> aArgsVec
209 if (rFilterOptions.find(
u"SkipImages") != std::u16string_view::npos)
211 aStoreMap[
"SkipImages"] <<=
true;
213 else if (rFilterOptions.find(
u"SkipHeaderFooter") != std::u16string_view::npos)
215 aStoreMap[
"SkipHeaderFooter"] <<=
true;
217 else if (rFilterOptions.find(
u"EmbedImages") != std::u16string_view::npos)
219 aStoreMap[
"EmbedImages"] <<=
true;
223 if (rFilterOptions.find(
u"NoLineLimit") != std::u16string_view::npos)
225 aStoreMap[
"NoLineLimit"] <<=
true;
229 if (rFilterOptions.find(
u"NoPrettyPrint") != std::u16string_view::npos)
231 aStoreMap[
"NoPrettyPrint"] <<=
true;
234 const uno::Sequence<OUString> aOptionSeq
236 static constexpr OUStringLiteral aXhtmlNsKey(
u"xhtmlns=");
237 for (
const auto& rOption : aOptionSeq)
239 if (rOption ==
"XHTML")
241 aStoreMap[
"XHTML"] <<=
true;
243 else if (rOption.startsWith(aXhtmlNsKey))
245 aStoreMap[
"XhtmlNs"] <<= rOption.copy(aXhtmlNsKey.getLength());
253 const css::uno::Sequence<css::beans::PropertyValue>& rPropertyValues)
256 auto it = aStoreMap.
find(
"RTFOLEMimeType");
257 if (it != aStoreMap.
end())
262 it = aStoreMap.
find(
"ExportImagesAsOLE");
263 if (it != aStoreMap.
end())
268 it = aStoreMap.
find(
"ShapeDPI");
269 if (it != aStoreMap.
end())
276 it = aStoreMap.
find(
"SkipImages");
277 if (it != aStoreMap.
end())
284 it = aStoreMap.
find(
"SkipHeaderFooter");
285 if (it != aStoreMap.
end())
293 it = aStoreMap.
find(
"NoPrettyPrint");
294 if (it != aStoreMap.
end())
300 it = aStoreMap.
find(
"EmbedImages");
301 if (it != aStoreMap.
end())
308 it = aStoreMap.
find(
"NoLineLimit");
309 if (it != aStoreMap.
end())
319 it = aStoreMap.
find(
"XHTML");
320 if (it != aStoreMap.
end())
327 it = aStoreMap.
find(
"XhtmlNs");
328 if (it != aStoreMap.
end())
344 it = aStoreMap.
find(
"LeadingTabWidth");
345 if (it != aStoreMap.
end())
358 char* pPasteEnv = getenv(
"SW_DEBUG_HTML_PASTE_TO");
359 std::unique_ptr<SvStream> pPasteStream;
360 SvStream* pOldPasteStream =
nullptr;
364 if (osl::FileBase::getFileURLFromSystemPath(OUString::fromUtf8(pPasteEnv), aPasteStr)
365 == osl::FileBase::E_None)
367 pPasteStream.reset(
new SvFileStream(aPasteStr, StreamMode::WRITE));
368 pOldPasteStream = &
Strm();
430 bool bOldHTMLMode =
false;
434 OSL_ENSURE( !
m_xTemplate.is(),
"Where is the HTML template coming from?" );
441 nOldTextFormatCollCnt =
m_xTemplate->GetTextFormatColls()->size();
442 nOldCharFormatCnt =
m_xTemplate->GetCharFormats()->size();
476 case SvtScriptType::ASIAN:
479 case SvtScriptType::COMPLEX:
523 "Export linked areas at document beginning is not implemented" );
532 "=\"" +
aName +
"\">" +
558 sal_uInt16 nHeaderAttrs = 0;
566 if( !aStartTags.isEmpty() )
637 "SwHTMLWriter::Write: Footnotes not deleted by OutFootEndNotes" );
652 auto nTextFormatCollCnt =
m_xTemplate->GetTextFormatColls()->size();
653 while( nTextFormatCollCnt > nOldTextFormatCollCnt )
654 m_xTemplate->DelTextFormatColl( --nTextFormatCollCnt );
655 OSL_ENSURE(
m_xTemplate->GetTextFormatColls()->size() == nOldTextFormatCollCnt,
656 "wrong number of TextFormatColls deleted" );
658 auto nCharFormatCnt =
m_xTemplate->GetCharFormats()->size();
659 while( nCharFormatCnt > nOldCharFormatCnt )
661 OSL_ENSURE(
m_xTemplate->GetCharFormats()->size() == nOldCharFormatCnt,
662 "wrong number of CharFormats deleted" );
717 bool bContinued=
false )
719 OSL_ENSURE( pCol || !bContinued,
"Continuation of DIV" );
727 if( !rName.isEmpty() && !bContinued )
757 bool bURLContainsDelim = (-1 != aEncURL.indexOf(
cDelim ) );
760 const char*
const pDelim =
"ÿ";
761 if( !aFilter.isEmpty() || !aSection.isEmpty() || bURLContainsDelim )
763 if( !aFilter.isEmpty() )
765 if( !aSection.isEmpty() || bURLContainsDelim )
767 if( !aSection.isEmpty() )
769 aSection = aSection.replaceAll(
u"%",
u"%25");
770 aSection = aSection.replaceAll(OUStringChar(
cDelim),
u"%FF");
779 if( nGutter!=USHRT_MAX )
798 if( !rName.isEmpty() && !bContinued )
822 OSL_ENSURE( pFormat,
"Section without a format?" );
824 bool bStartTag =
true;
923 "Unexpected Grf- or OLE-Node here" );
928 if (!pTextNd->
IsHidden() || bIncludeHidden)
982 const SwFormat *pRefFormat =
nullptr;
986 &rHWrt.
m_xTemplate->getIDocumentStylePoolAccess() );
1002 pColorItem = pCItem;
1015 pColorItem = pCItem;
1026 OString sOut = OString::Concat(
" ") + pTag +
"=";
1043 while( nIdx<=nEndIdx &&
1047 OSL_ENSURE( pTextNd,
"No Text-Node found" );
1048 if( !pTextNd || !pTextNd->
HasHints() )
1051 sal_uInt16 nAttrs = 0;
1053 sal_Int32 nOldPos = 0;
1054 for(
size_t i=0;
i<nCntAttr; ++
i )
1060 if(
nPos-nOldPos > 1
1105 uno::Reference<document::XDocumentProperties> xDocProps;
1109 uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
1110 pDocShell->
GetModel(), uno::UNO_QUERY_THROW);
1111 xDocProps.set(xDPS->getDocumentProperties());
1130 while( nNodeIdx < m_pDoc->GetNodes().
Count() )
1248 const ::sw::mark::IMark* pBookmark =
nullptr;
1256 && pBookmark->GetMarkPos().GetNodeIndex() == nNode )
1295 const sw::mark::IFieldmark* pMark = pMarkAccess->
getFieldmarkAt(rPos);
1332 const char *pMarkType )
1336 OUString sMark(rMark + OUStringChar(
cMarkSeparator) + OUString::createFromAscii(pMarkType));
1346 OUString sURL(rURL);
1350 OUString sCompare = sURL.copy(
nPos + 1).replaceAll(
" ",
"");
1351 if (!sCompare.isEmpty())
1353 sCompare = sCompare.toAsciiLowerCase();
1354 if( sCompare ==
"region" || sCompare ==
"frame" ||
1355 sCompare ==
"graphic" || sCompare ==
"ole" ||
1356 sCompare ==
"table" || sCompare ==
"outline" ||
1357 sCompare ==
"text" )
1359 sURL = sURL.replace(
'?',
'_' );
1363 else if (!sURL.isEmpty() && sURL[0] !=
'#')
1367 if (!
aURL.HasError())
1399 OUString aGraphicInBase64;
1433 sal_uInt16 nWhichId;
1455 OStringBuffer sOut(
" ");
1475 case SvxFrameDirection::Vertical_LR_TB:
1476 nDir = SvxFrameDirection::Horizontal_LR_TB;
1478 case SvxFrameDirection::Vertical_RL_TB:
1479 nDir = SvxFrameDirection::Horizontal_RL_TB;
1481 case SvxFrameDirection::Environment:
1493 if (!sConverted.isEmpty())
1497 "=\"" + sConverted +
"\"";
1507 case SvxFrameDirection::Horizontal_LR_TB:
1508 case SvxFrameDirection::Vertical_LR_TB:
1511 case SvxFrameDirection::Horizontal_RL_TB:
1512 case SvxFrameDirection::Vertical_RL_TB:
1555 sal_uInt16 nSize = 1;
1556 for( sal_uInt16
i=6;
i>0;
i-- )
1578 size_t i = rStr.rfind(
'\t');
1580 if (
i != std::u16string_view::npos &&
OUStringToOString(rStr.substr(
i + 1), RTL_TEXTENCODING_ASCII_US).indexOf(
'?') == -1)
1600 , pOldPam(rWrt.m_pCurrentPam)
1601 , pOldEnd(rWrt.GetEndPaM())
1602 , nOldDefListLvl(rWrt.m_nDefListLvl)
1603 , nOldDirection(rWrt.m_nDirection)
1604 , bOldOutHeader(rWrt.m_bOutHeader)
1605 , bOldOutFooter(rWrt.m_bOutFooter)
1606 , bOldOutFlyFrame(rWrt.m_bOutFlyFrame)
static OutputDevice * GetDefaultDevice()
bool IsRGBEqual(const Color &rColor) const
HTMLSaveData(SwHTMLWriter &, SwNodeOffset nStt, SwNodeOffset nEnd, bool bSaveNum=true, const SwFrameFormat *pFrameFormat=nullptr)
sal_uInt16 nOldDefListLvl
std::shared_ptr< SwUnoCursor > pOldPam
SvxFrameDirection nOldDirection
std::unique_ptr< SwHTMLNumRuleInfo > pOldNumRuleInfo
std::unique_ptr< SwHTMLNumRuleInfo > pOldNextNumRuleInfo
Provides access to the marks of a document.
virtual ::sw::mark::IFieldmark * getFieldmarkAt(const SwPosition &rPos) const =0
get Fieldmark for CH_TXT_ATR_FIELDSTART/CH_TXT_ATR_FIELDEND at rPos
virtual sal_Int32 getAllMarksCount() const =0
returns the number of marks.
virtual const_iterator_t getAllMarksBegin() const =0
returns a STL-like random access iterator to the begin of the sequence of marks.
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
virtual SwCharFormat * GetCharFormatFromPool(sal_uInt16 nId)=0
virtual SwTextFormatColl * GetTextCollFromPool(sal_uInt16 nId, bool bRegardLanguage=true)=0
Return "Auto-Collection with ID.
static OUString convertToBcp47(LanguageType nLangID)
static void Out_DocInfo(SvStream &rStrm, const OUString &rBaseURL, const css::uno::Reference< css::document::XDocumentProperties > &, const char *pIndent, OUString *pNonConvertableChars=nullptr)
const SfxPoolItem & GetDefaultItem(sal_uInt16 nWhich) const
SfxItemPool * GetPool() const
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
SfxItemSet & GetItemSet() const
const css::uno::Sequence< css::beans::PropertyValue > & GetArgs() const
css::uno::Reference< css::frame::XModel3 > GetModel() const
SvStream & WriteOString(std::string_view rStr)
SvStream & WriteChar(char nChar)
const Color & GetColor() const
const Graphic * GetGraphic(OUString const &referer=OUString()) const
const OUString & GetGraphicLink() const
const Color & GetValue() const
tools::Long GetTextLeft() const
const SfxPoolItem & GetAttr(sal_uInt16 nWhich, bool bInParent=true) const
SS for PoolItems: hard attributation.
IDocumentSettingAccess const & getIDocumentSettingAccess() const
const SfxPoolItem & GetDefault(sal_uInt16 nFormatHint) const
Get the default attribute in this document.
IDocumentMarkAccess * getIDocumentMarkAccess()
IDocumentStylePoolAccess const & getIDocumentStylePoolAccess() const
SwDocShell * GetDocShell()
const SwPageDesc & GetPageDesc(const size_t i) const
Ends a section of nodes in the document model.
SwPageDesc * GetPageDesc()
void Set(const SwHTMLNumRuleInfo &rInf)
bool mbXHTML
If XHTML markup should be written instead of HTML.
sal_Int32 indexOfDotLeaders(sal_uInt16 nPoolId, std::u16string_view rText)
std::vector< OUString > m_aOutlineMarks
void CollectLinkTargets()
void OutAndSetDefList(sal_uInt16 nNewLvl)
SwHTMLPosFlyFrames m_aHTMLPosFlyFrames
std::unique_ptr< SwHTMLNumRuleInfo > ReleaseNextNumInfo()
void OutBasic(const SwHTMLWriter &rHTMLWrt)
void ChangeParaToken(HtmlTokenId nNew)
OUString m_aBulletGrfs[MAXLEVEL]
sal_Int32 m_nDefListMargin
std::set< OUString > m_aImplicitMarks
static OString convertDirection(SvxFrameDirection nDirection)
std::vector< OUString > m_aImgMapNames
void SetupFilterFromPropertyValues(const css::uno::Sequence< css::beans::PropertyValue > &rPropertyValues)
sal_uInt16 m_nTextAttrsToIgnore
SwHTMLFormatInfos m_CharFormatInfos
virtual ~SwHTMLWriter() override
bool mbSkipHeaderFooter
If HTML header and footer should be written as well, or just the content itself.
SwHTMLFormatInfos m_TextCollInfos
void SetupFilterOptions(std::u16string_view rFilterOptions)
void OutDirection(SvxFrameDirection nDir)
void OutHyperlinkHRefValue(const OUString &rURL)
std::optional< std::vector< SwTextFootnote * > > m_xFootEndNotes
const SwPageDesc * MakeHeader(sal_uInt16 &rHeaderAtrs)
css::uno::Reference< css::container::XIndexContainer > mxFormComps
OUString convertHyperlinkHRefValue(const OUString &rURL)
sal_uInt16 GetHTMLFontSize(sal_uInt32 nFontHeight) const
void SetEndPaM(SwPaM *pPam)
std::optional< sal_Int32 > m_nShapeDPI
DPI used when exporting a vector shape as a bitmap.
std::vector< SwNodeOffset > m_aOutlineMarkPoss
void OutStyleSheet(const SwPageDesc &rPageDesc)
bool m_bFirstCSS1Property
std::unique_ptr< utl::TempFileNamed > mpTempBaseURL
Temporary base URL for paste of images.
std::set< OUString > m_aScriptTextStyles
const SwPageDesc * m_pCurrPageDesc
static sal_uInt16 GetLangWhichIdFromScript(sal_uInt16 nScript)
SvxFrameDirection m_nDirection
static const SwFormat * GetTemplateFormat(sal_uInt16 nPoolId, IDocumentStylePoolAccess *pTemplate)
void OutPointFieldmarks(const SwPosition &rPos)
bool m_bExportImagesAsOLE
ReqIF mode: export images as OLE objects.
sal_Int32 m_nDfltRightMargin
ErrCode WriteStream() override
HTMLControls m_aHTMLControls
sal_uInt16 m_nFormCntrlCnt
OString GetNamespace() const
Determines the prefix string needed to respect the requested namespace alias.
void OutFootEndNoteInfo()
sal_Int32 m_nDfltLeftMargin
bool mbReqIF
If the ReqIF subset of XHTML should be written.
sal_uInt16 m_nCSS1OutMode
bool m_bCSS1IgnoreFirstPageDesc
OString GetIndentString(sal_uInt16 nIncLvl=0)
void OutBasicBodyEvents()
SwHTMLNumRuleInfo & GetNumInfo()
sal_uInt16 m_nDfltTopMargin
sal_uInt16 m_nHeaderFooterSpace
sal_uInt16 m_nDfltBottomMargin
short m_nDfltFirstLineIndent
std::optional< sal_Int32 > m_nLeadingTabWidth
If set, replace leading tabs with this many non-breaking spaces.
void OutNewLine(bool bCheck=false)
std::set< OUString > m_aNumRuleNames
const SwFormatFootnote * m_pFormatFootnote
void OutLanguage(LanguageType eLang)
OString maNamespace
XML namespace, in case of XHTML.
rtl::Reference< SwDoc > m_xTemplate
sal_uInt16 OutHeaderAttrs()
HtmlTokenId m_nLastParaToken
bool IsHTMLMode(sal_uInt32 nMode) const
void OutAnchor(const OUString &rName)
SvxFrameDirection GetHTMLDirection(SvxFrameDirection nDir) const
std::unique_ptr< SwHTMLNumRuleInfo > m_pNextNumRuleInfo
void OutForm(bool bTagOn=true, const SwStartNode *pStNd=nullptr)
SwNodeIndex * m_pStartNdIdx
void SetNextNumInfo(std::unique_ptr< SwHTMLNumRuleInfo > pNxt)
OUString m_aRTFOLEMimeType
void OutImplicitMark(std::u16string_view rMark, const char *pMarkType)
sal_uInt32 m_aFontHeights[7]
SwHTMLWriter(const OUString &rBaseURL, std::u16string_view rFilterOptions=std::u16string_view())
Construct an instance of SwHTMLWriter and optionally give it the filter options directly,...
void OutBackground(const SvxBrushItem *pBrushItem, bool bGraphic)
void OutCSS1_SectionFormatOptions(const SwFrameFormat &rFrameFormat, const SwFormatCol *pCol)
std::optional< Color > m_xDfltColor
std::set< OUString > m_aScriptParaStyles
Marks a node in the document model.
Base class of the Writer document model elements.
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
SwSectionNode * GetSectionNode()
SwNodeOffset GetIndex() const
const SwStartNode * FindTableBoxStartNode() const
bool IsContentNode() const
SwNodeOffset StartOfSectionIndex() const
bool IsSectionNode() const
SwSectionNode * FindSectionNode()
Search section node, in which it is.
const SwStartNode * StartOfSectionNode() const
SwNodeOffset EndOfSectionIndex() const
SwContentNode * GetContentNode()
SwTableNode * GetTableNode()
const SwEndNode * EndOfSectionNode() const
SwNode & GetEndOfContent() const
Regular ContentSection (i.e. the BodyText).
SwNodeOffset Count() const
PaM is Point and Mark: a selection of the document model.
SwFrameFormat & GetMaster()
A section node represents the start of a section on the UI, i.e.
const SwSection & GetSection() const
OUString const & GetLinkFileName() const
bool IsHiddenFlag() const
const OUString & GetSectionName() const
SwSectionFormat * GetFormat()
SectionType GetType() const
Starts a section of nodes in the document model.
const SwTable & GetTable() const
SwTableFormat * GetFrameFormat()
A wrapper around SfxPoolItem to store the start position of (usually) a text portion,...
const SfxPoolItem & GetAttr() const
const sal_Int32 * End() const
sal_Int32 GetStart() const
SwTextNode is a paragraph in the document model.
SwpHints & GetSwpHints()
getters for SwpHints
std::vector< SwTextFormatColl * >::size_type size_type
SwTextAttr * Get(size_t nPos) const
bool CopyNextPam(SwPaM **)
bool m_bWriteOnlyFirstTable
sal_Int32 FindPos_Bkmk(const SwPosition &rPos) const
void SetStream(SvStream *const pStream)
static std::shared_ptr< SwUnoCursor > NewUnoCursor(SwDoc &rDoc, SwNodeOffset const nStartIdx, SwNodeOffset const nEndIdx)
void SetBaseURL(const OUString &rURL)
std::shared_ptr< SwUnoCursor > m_pCurrentPam
bool m_bWriteClipboardDoc
const OUString & GetBaseURL() const
IDocumentStylePoolAccess & getIDocumentStylePoolAccess()
bool CopyLocalFileToINet(OUString &rFileNm)
static bool GraphicToBase64(const Graphic &rGraphic, OUString &rOUString, bool bAddPrefix=true, ConvertDataFormat aTargetFormat=ConvertDataFormat::Unknown)
iterator find(const OUString &rKey)
css::uno::Sequence< css::beans::PropertyValue > getAsConstPropertyValueList() const
virtual bool IsChecked() const =0
virtual const OUString & GetName() const =0
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
constexpr ::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define SAL_NEWLINE_STRING
SwHTMLWriter & OutCSS1_BodyTagStyleOpt(SwHTMLWriter &rWrt, const SfxItemSet &rItemSet)
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper) override
constexpr TypedWhichId< SvxFrameDirectionItem > RES_FRAMEDIR(126)
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_LANGUAGE(10)
constexpr TypedWhichId< SwFormatHeader > RES_HEADER(102)
constexpr TypedWhichId< SwFormatCol > RES_COL(115)
constexpr TypedWhichId< SwFormatPageDesc > RES_PAGEDESC(99)
constexpr TypedWhichId< SvxBrushItem > RES_BACKGROUND(111)
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_CJK_LANGUAGE(24)
constexpr TypedWhichId< SwFormatField > RES_TXTATR_ANNOTATION(60)
constexpr TypedWhichId< SwFormatFooter > RES_FOOTER(103)
constexpr TypedWhichId< SwFormatField > RES_TXTATR_FIELD(RES_TXTATR_NOEND_BEGIN)
constexpr TypedWhichId< SvxColorItem > RES_CHRATR_COLOR(3)
SwHTMLWriter & OutHTML_SwTextNode(SwHTMLWriter &rWrt, const SwContentNode &rNode)
SwHTMLWriter & OutHTML_SwFormatField(SwHTMLWriter &rWrt, const SfxPoolItem &rHt)
SwHTMLWriter & OutHTML_HeaderFooter(SwHTMLWriter &rWrt, const SwFrameFormat &rFrameFormat, bool bHeader)
#define OOO_STRING_SVTOOLS_HTML_IT_checkbox
#define OOO_STRING_SVTOOLS_HTML_head
#define OOO_STRING_SVTOOLS_HTML_O_data
#define OOO_STRING_SVTOOLS_HTML_O_vlink
#define OOO_STRING_SVTOOLS_XHTML_doctype11
#define OOO_STRING_SVTOOLS_HTML_body
#define OOO_STRING_SVTOOLS_HTML_O_background
#define OOO_STRING_SVTOOLS_HTML_division
#define OOO_STRING_SVTOOLS_HTML_O_dir
#define OOO_STRING_SVTOOLS_HTML_O_lang
#define OOO_STRING_SVTOOLS_HTML_O_link
#define OOO_STRING_SVTOOLS_HTML_html
#define OOO_STRING_SVTOOLS_HTML_anchor
#define OOO_STRING_SVTOOLS_XHTML_O_lang
#define OOO_STRING_SVTOOLS_HTML_O_text
#define OOO_STRING_SVTOOLS_HTML_O_href
#define OOO_STRING_SVTOOLS_HTML_doctype
#define OOO_STRING_SVTOOLS_HTML_doctype5
#define OOO_STRING_SVTOOLS_HTML_O_checked
#define OOO_STRING_SVTOOLS_HTML_O_type
#define OOO_STRING_SVTOOLS_HTML_O_bgcolor
#define OOO_STRING_SVTOOLS_HTML_O_name
#define OOO_STRING_SVTOOLS_HTML_O_id
#define OOO_STRING_SVTOOLS_HTML_O_gutter
#define OOO_STRING_SVTOOLS_HTML_input
SwHTMLWriter & OutHTML_FrameFormatOLENodeGrf(SwHTMLWriter &rWrt, const SwFrameFormat &rFrameFormat, bool bInCntnr, bool bWriteReplacementGraphic)
SwHTMLWriter & OutHTML_SwTableNode(SwHTMLWriter &rWrt, SwTableNode &rNode, const SwFrameFormat *pFlyFrameFormat, const OUString *pCaption, bool bTopCaption)
LanguageType GetAppLanguage()
#define LANGUAGE_DONTKNOW
void StartProgress(TranslateId pMessResId, tools::Long nStartValue, tools::Long nEndValue, SwDocShell *pDocShell)
void EndProgress(SwDocShell const *pDocShell)
void SetProgressState(tools::Long nPosition, SwDocShell const *pDocShell)
SvtScriptType GetScriptTypeOfLanguage(LanguageType nLang)
sal_uInt16 GetExportMode()
bool IsPrintLayoutExtension()
LanguageType GetLanguage(SfxItemSet const &aSet, sal_uInt16 nLangWhichId)
SVL_DLLPUBLIC OUString simpleNormalizedMakeRelative(OUString const &baseUriReference, OUString const &uriReference)
OUString convertCommaSeparated(uno::Sequence< OUString > const &i_rSeq)
css::uno::Sequence< DstElementType > containerToSequence(const SrcType &i_Container)
std::vector< css::beans::PropertyValue > JsonToPropertyValues(const OString &rJson)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
const sal_Unicode cTokenSeparator
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
o3tl::strong_int< sal_Int32, struct Tag_SwNodeOffset > SwNodeOffset
constexpr OUStringLiteral ODF_FORMCHECKBOX
@ RES_POOLCOLL_TOX_AUTHORITIES1
Authorities all levels.
@ RES_POOLCOLL_STANDARD
Standard.
@ RES_POOLCOLL_TOX_TABLES1
Tables all levels.
@ RES_POOLCOLL_TOX_IDX3
3rd level.
@ RES_POOLCOLL_TOX_OBJECT1
Objects all levels.
@ RES_POOLCOLL_TOX_USER1
1st level.
@ RES_POOLCOLL_TOX_CNTNT10
Content 10th level.
@ RES_POOLCOLL_TOX_CNTNT5
Content 5th level.
@ RES_POOLCOLL_TOX_IDX1
1st level.
@ RES_POOLCOLL_TOX_CNTNT1
Content 1st level.
@ RES_POOLCOLL_TOX_ILLUS1
Illustrations all levels.
@ RES_POOLCOLL_TOX_USER10
10th level.
@ RES_POOLCHR_INET_VISIT
Internet visited.
@ RES_POOLCHR_INET_NORMAL
Internet normal.
static LanguageType nLang
static SVT_DLLPUBLIC SvStream & Out_AsciiTag(SvStream &, std::string_view rStr, bool bOn=true)
static SVT_DLLPUBLIC SvStream & Out_String(SvStream &, const OUString &, OUString *pNonConvertableChars=nullptr)
static SVT_DLLPUBLIC SvStream & Out_Color(SvStream &, const Color &, bool bXHTML=false)
static SVT_DLLPUBLIC OString ConvertStringToHTML(const OUString &sSrc, OUString *pNonConvertableChars=nullptr)
Marks a position in the document model.
#define WARN_SWG_POOR_LOAD
const sal_Unicode cMarkSeparator
SVXCORE_DLLPUBLIC std::unique_ptr< SvxBrushItem > getSvxBrushItemFromSourceSet(const SfxItemSet &rSourceSet, sal_uInt16 nBackgroundID, bool bSearchInParents=true, bool bXMLImportHack=false)
sal_uInt16 GetHtmlMode(const SwDocShell *pShell)
static void lcl_html_OutSectionStartTag(SwHTMLWriter &rHTMLWrt, const SwSection &rSection, const SwSectionFormat &rFormat, const SwFormatCol *pCol, bool bContinued=false)
static void lcl_html_OutSectionEndTag(SwHTMLWriter &rHTMLWrt)
void GetHTMLWriter(std::u16string_view rFilterOptions, const OUString &rBaseURL, WriterRef &xRet)
static const SwFormatCol * lcl_html_GetFormatCol(const SwSection &rSection, const SwSectionFormat &rFormat)
static SwHTMLWriter & OutHTML_Section(SwHTMLWriter &rWrt, const SwSectionNode &rSectNd)
static void OutBodyColor(const char *pTag, const SwFormat *pFormat, SwHTMLWriter &rHWrt)
static bool lcl_html_IsMultiColEnd(const SwHTMLWriter &rHTMLWrt, SwNodeOffset nIndex)
static char sIndentTabs[MAX_INDENT_LEVEL+2]
static bool lcl_html_IsMultiColStart(const SwHTMLWriter &rHTMLWrt, SwNodeOffset nIndex)
#define HTMLMODE_NO_CONTROL_CENTERING
#define HTMLMODE_BLOCK_SPACER
#define HTMLMODE_BORDER_NONE
#define HTMLMODE_PRINT_EXT
#define HTMLMODE_NBSP_IN_TABLES
#define HTMLMODE_FLY_MARGINS
#define HTMLMODE_ABS_POS_FLY
#define HTMLMODE_FLOAT_FRAME
#define HTMLMODE_LSPACE_IN_NUMBER_BULLET
#define CSS1_OUTMODE_WESTERN
#define HTMLMODE_ABS_POS_DRAW
#define HTMLMODE_FONT_GENERIC