27#include <rtl/tencinfo.h>
85#include <lineinfo.hxx>
90#include <com/sun/star/i18n/ScriptType.hpp>
104 if (pLine && !pLine->
isEmpty())
110 case SvxBorderLineStyle::SOLID:
118 case SvxBorderLineStyle::DOTTED:
121 case SvxBorderLineStyle::DASHED:
124 case SvxBorderLineStyle::DOUBLE:
125 case SvxBorderLineStyle::DOUBLE_THIN:
128 case SvxBorderLineStyle::THINTHICK_SMALLGAP:
131 case SvxBorderLineStyle::THINTHICK_MEDIUMGAP:
134 case SvxBorderLineStyle::THINTHICK_LARGEGAP:
137 case SvxBorderLineStyle::THICKTHIN_SMALLGAP:
140 case SvxBorderLineStyle::THICKTHIN_MEDIUMGAP:
143 case SvxBorderLineStyle::THICKTHIN_LARGEGAP:
146 case SvxBorderLineStyle::EMBOSSED:
149 case SvxBorderLineStyle::ENGRAVED:
152 case SvxBorderLineStyle::OUTSET:
155 case SvxBorderLineStyle::INSET:
158 case SvxBorderLineStyle::FINE_DASHED:
161 case SvxBorderLineStyle::DASH_DOT:
164 case SvxBorderLineStyle::DASH_DOT_DOT:
167 case SvxBorderLineStyle::NONE:
173 double const fConverted(
178 + OString::number(
static_cast<sal_Int32
>(fConverted)));
184 + OString::number(
static_cast<sal_Int32
>(fConverted) / 2));
188 + OString::number(
static_cast<sal_Int32
>(rExport.
GetColor(pLine->
GetColor()))));
194 return aRet.makeStringAndClear();
198 const char* pStr, sal_uInt16 nDist,
206 if (eShadowLocation == SvxShadowLocation::BottomRight)
208 return aRet.makeStringAndClear();
227 sal_uInt32 nRow = pTextNodeInfo->getRow();
228 sal_uInt32 nCell = pTextNodeInfo->getCell();
235 OSL_ENSURE(pDeepInner,
"TableNodeInfoInner not found");
247 if ((nRow == 0 && nCell == 0) || (
m_nTableDepth == 0 && pTextNodeInfo->getDepth()))
252 sal_uInt32 nCurrentDepth = pTextNodeInfo->getDepth();
257 for (sal_uInt32 nDepth =
m_nTableDepth + 1; nDepth <= pTextNodeInfo->getDepth();
261 pTextNodeInfo->getInnerForDepth(nDepth));
280 bool bLastPara =
false;
334 OSL_ENSURE(
m_aStyles.getLength() == 0,
"m_aStyles is not empty");
401 bool bSingleEmptyRun)
403 SAL_INFO(
"sw.rtf", __func__ <<
", bSingleEmptyRun: " << bSingleEmptyRun);
435 OSL_ENSURE(
m_aStyles.getLength() == 0,
"m_aStyles is not empty");
450 const OString aNormal =
m_aStyles.makeStringAndClear();
462 if (!aAssocRtlch.isEmpty())
470 if (!aAssocRtlch.isEmpty())
475 if (!aAssocHich.isEmpty())
479 if (!aNormal.isEmpty())
483 if (!aAssocDbch.isEmpty())
495 case i18n::ScriptType::LATIN:
498 case i18n::ScriptType::ASIAN:
501 case i18n::ScriptType::COMPLEX:
509 return aBuf.makeStringAndClear();
515 SAL_INFO(
"sw.rtf", __func__ <<
", rText: " << rText);
532 + OUString::number((aWW8Ruby.
GetRubyHeight() + 5) / 10) +
" \\o";
537 aStr +=
"(\\s\\up " + OUString::number((aWW8Ruby.
GetBaseHeight() + 10) / 20 - 1) +
"(";
583 const OUString& rURL =
m_aURLs.top();
590 if (isAtEndOfParagraph)
612 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
620 if (pRedline->
GetType() == RedlineType::Insert)
628 else if (pRedline->
GetType() == RedlineType::Delete)
645 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
652 + OString::number(
static_cast<sal_Int32
>(nStyle)));
654 aStyle.append(*pStyle);
687 case text::RelOrientation::PAGE_PRINT_AREA:
691 case text::RelOrientation::PAGE_FRAME:
704 case text::RelOrientation::FRAME:
708 case text::RelOrientation::PAGE_PRINT_AREA:
722 case text::HoriOrientation::LEFT:
726 case text::HoriOrientation::CENTER:
730 case text::HoriOrientation::RIGHT:
737 m_aRowDefs.append(
static_cast<sal_Int32
>(nTPosX));
744 case text::VertOrientation::TOP:
748 case text::VertOrientation::CENTER:
752 case text::VertOrientation::BOTTOM:
759 m_aRowDefs.append(
static_cast<sal_Int32
>(nTPosY));
766 m_aRowDefs.append(
static_cast<sal_Int32
>(nTdfrmtxtTop));
769 m_aRowDefs.append(
static_cast<sal_Int32
>(nTdfrmtxtBottom));
774 m_aRowDefs.append(
static_cast<sal_Int32
>(nTdfrmtxtLeft));
777 m_aRowDefs.append(
static_cast<sal_Int32
>(nTdfrmtxtRight));
785 const SwTable* pTable = pTableTextNodeInfoInner->getTable();
799 static const SvxBoxItemLine aBorders[] = { SvxBoxItemLine::TOP, SvxBoxItemLine::LEFT,
800 SvxBoxItemLine::BOTTOM, SvxBoxItemLine::RIGHT };
802 static const char* aRowPadNames[]
806 static const char* aRowPadUnits[]
810 for (
int i = 0;
i < 4; ++
i)
819 const double fWidthRatio =
m_pTableWrt->GetAbsWidthRatio();
821 sal_uInt32 nRow = pTableTextNodeInfoInner->getRow();
822 if (nRow >= aRows.
size())
824 SAL_WARN(
"sw.ww8",
"RtfAttributeOutput::TableDefinition: out of range row: " << nRow);
831 sal_uInt32 nCurrentDepth = pTableTextNodeInfoInner->getDepth();
833 for (sal_uInt32
i = 0;
i <
m_aCells[nCurrentDepth];
i++)
838 pTableTextNodeInfoInner->setCell(
i);
846 + rtl::math::round(nSz * fWidthRatio)));
861 SwWriteTableRow* pRow = aRows[pTableTextNodeInfoInner->getRow()].get();
863 = pRow->
GetCells()[pTableTextNodeInfoInner->getCell()].get();
870 static const SvxBoxItemLine aBorders[] = { SvxBoxItemLine::TOP, SvxBoxItemLine::LEFT,
871 SvxBoxItemLine::BOTTOM, SvxBoxItemLine::RIGHT };
872 static const char* aBorderNames[]
877 static const char* aCellPadNames[]
880 static const char* aCellPadUnits[]
883 for (
int i = 0;
i < 4; ++
i)
887 if (rBox.GetDistance(aBorders[
i]))
892 m_aRowDefs.append(
static_cast<sal_Int32
>(rBox.GetDistance(aBorders[
i])));
900 const SwTable* pTable = pTableTextNodeInfoInner->getTable();
901 const SwTableBox* pTableBox = pTableTextNodeInfoInner->getTableBox();
908 aColor = pTableColorProp->GetColor();
912 if (pRowColorProp && pRowColorProp->GetColor() !=
COL_AUTO)
913 aColor = pRowColorProp->GetColor();
916 SwWriteTableRow* pRow = aRows[pTableTextNodeInfoInner->getRow()].get();
918 = pRow->
GetCells()[pTableTextNodeInfoInner->getCell()].get();
922 if (pBrushItem->GetColor() !=
COL_AUTO)
923 aColor = pBrushItem->GetColor();
945 const SwTableBox* pTabBox = pTableTextNodeInfoInner->getTableBox();
953 sal_Int32 nHeight = 0;
977 const SwTableBox* pTabBox = pTableTextNodeInfoInner->getTableBox();
989 const SwTable* pTable = pTableTextNodeInfoInner->getTable();
1002 SwWriteTableRow* pRow = aRows[pTableTextNodeInfoInner->getRow()].get();
1004 = pRow->
GetCells()[pTableTextNodeInfoInner->getCell()].get();
1022 if (!pVertOrientItem)
1027 case text::VertOrientation::CENTER:
1030 case text::VertOrientation::BOTTOM:
1050 const SwTable* pTable = pTableTextNodeInfoInner->getTable();
1056 case text::HoriOrientation::CENTER:
1057 aTableAdjust.setLength(0);
1060 case text::HoriOrientation::RIGHT:
1061 aTableAdjust.setLength(0);
1065 case text::HoriOrientation::LEFT_AND_WIDTH:
1079 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
1091 const SwTable* pTable = pTableTextNodeInfoInner->getTable();
1096 bool bRelBoxSize =
false;
1106 m_pTableWrt = std::make_unique<SwWriteTable>(pTable, pLayout);
1121 sal_uInt32 nCurrentDepth = pTableTextNodeInfoInner->getDepth();
1122 SAL_INFO(
"sw.rtf", __func__ <<
", (depth is " << nCurrentDepth <<
")");
1131 if (nCurrentDepth > 1)
1231 sal_uInt32 nRow = pInner->getRow();
1233 const SwTable* pTable = pInner->getTable();
1235 sal_uInt16 nLinesCount = rLines.
size();
1237 if (pInner->isEndOfCell())
1241 if (pInner->isEndOfLine())
1245 if (pInner->isEndOfLine() && (nRow + 1) == nLinesCount)
1256 OSL_ENSURE(
m_aStylesheet.getLength() == 0,
"m_aStylesheet is not empty");
1273 sal_uInt16 nNext, sal_uInt16 , sal_uInt16 ,
1274 sal_uInt16 nSlot,
bool bAutoUpdate)
1276 SAL_INFO(
"sw.rtf", __func__ <<
", rName = '" << rName <<
"'");
1285 if (nBase != 0x0FFF)
1326 m_aStyles.append(
static_cast<sal_Int32
>(nLvl));
1328 m_aStyles.append(
static_cast<sal_Int32
>(nLvl));
1414 sal_uInt16 nOpt = (1 << 5);
1444 const ::std::optional<sal_uInt16>& oPageRestartNumber)
1446 if (oPageRestartNumber)
1453 const char* pStr =
nullptr;
1481 SAL_INFO(
"sw.rtf", __func__ <<
", nBreakCode = " <<
int(nBreakCode));
1487 const char*
sType =
nullptr;
1522 const char*
pOut =
nullptr;
1613 sal_uInt16 nNumberingType,
SvxAdjust eAdjust,
1616 sal_Int16 nIndentAt, sal_Int16 nFirstLineIndex,
1617 sal_Int16 ,
const OUString& rNumberingString,
1628 sal_uInt16 nVal = 0;
1629 switch (nNumberingType)
1689 case style::NumberingType::HANGUL_SYLLABLE_KO:
1692 case style::NumberingType::HANGUL_JAMO_KO:
1695 case style::NumberingType::HANGUL_CIRCLED_SYLLABLE_KO:
1698 case style::NumberingType::HANGUL_CIRCLED_JAMO_KO:
1701 case style::NumberingType::NUMBER_HANGUL_KO:
1704 case style::NumberingType::NUMBER_DIGITAL_KO:
1707 case style::NumberingType::NUMBER_DIGITAL2_KO:
1710 case style::NumberingType::NUMBER_LEGAL_KO:
1730 case SvxAdjust::Center:
1733 case SvxAdjust::Right:
1814 std::u16string_view rFieldCmd,
FieldFlags nMode)
1817 bool bHasInstructions = !rFieldCmd.empty();
1820 if (bHasInstructions)
1834 if (bHasInstructions)
1846 if (bHasInstructions)
1861 std::vector<OUString>& rEnds)
1863 for (
const auto& rStart : rStarts)
1871 for (
const auto& rEnd : rEnds)
1881 std::vector<OUString>& rEnds)
1883 for (
const auto& rStart : rStarts)
1896 for (
const auto& rEnd : rEnds)
1904 const sal_Int32
nId = it->second;
1924 const char* pStr,
bool bTitlepg)
1950void lcl_TextFrameShadow(std::vector<std::pair<OString, OString>>& rFlyProperties,
1954 if (aShadowItem.
GetLocation() == SvxShadowLocation::NONE)
1957 rFlyProperties.push_back(std::make_pair<OString, OString>(
"fShadow", OString::number(1)));
1961 rFlyProperties.push_back(std::make_pair<OString, OString>(
1965 OString aShadowWidth = OString::number(sal_Int32(aShadowItem.
GetWidth() / 20) * 12700);
1970 case SvxShadowLocation::TopLeft:
1971 aOffsetX =
"-" + aShadowWidth;
1972 aOffsetY =
"-" + aShadowWidth;
1974 case SvxShadowLocation::TopRight:
1975 aOffsetX = aShadowWidth;
1976 aOffsetY =
"-" + aShadowWidth;
1978 case SvxShadowLocation::BottomLeft:
1979 aOffsetX =
"-" + aShadowWidth;
1980 aOffsetY = aShadowWidth;
1982 case SvxShadowLocation::BottomRight:
1983 aOffsetX = aShadowWidth;
1984 aOffsetY = aShadowWidth;
1986 case SvxShadowLocation::NONE:
1987 case SvxShadowLocation::End:
1990 if (!aOffsetX.isEmpty())
1991 rFlyProperties.emplace_back(
"shadowOffsetX", aOffsetX);
1992 if (!aOffsetY.isEmpty())
1993 rFlyProperties.emplace_back(
"shadowOffsetY", aOffsetY);
1996void lcl_TextFrameRelativeSize(std::vector<std::pair<OString, OString>>& rFlyProperties,
2005 rFlyProperties.push_back(
2006 std::make_pair<OString, OString>(
"pctHoriz", OString::number(nWidthPercent * 10)));
2011 case text::RelOrientation::PAGE_FRAME:
2018 rFlyProperties.emplace_back(std::make_pair(
"sizerelh", aRelation));
2024 rFlyProperties.push_back(
2025 std::make_pair<OString, OString>(
"pctVert", OString::number(nHeightPercent * 10)));
2030 case text::RelOrientation::PAGE_FRAME:
2037 rFlyProperties.emplace_back(std::make_pair(
"sizerelv", aRelation));
2057 std::unique_ptr<SwWriteTable> pTableWrt(std::move(
m_pTableWrt));
2278 const uno::Reference<awt::XControlModel>& xControlModel
2279 = pFormObj->GetUnoControlModel();
2280 uno::Reference<lang::XServiceInfo> xInfo(xControlModel, uno::UNO_QUERY);
2283 uno::Reference<beans::XPropertySet> xPropSet(xControlModel, uno::UNO_QUERY);
2284 uno::Reference<beans::XPropertySetInfo> xPropSetInfo
2285 = xPropSet->getPropertySetInfo();
2287 if (xInfo->supportsService(
"com.sun.star.form.component.CheckBox"))
2300 if (xPropSetInfo->hasPropertyByName(
sName))
2302 xPropSet->getPropertyValue(
sName) >>=
aStr;
2312 if (xPropSetInfo->hasPropertyByName(
sName))
2314 xPropSet->getPropertyValue(
sName) >>=
aStr;
2323 sName =
"HelpF1Text";
2324 if (xPropSetInfo->hasPropertyByName(
sName))
2326 xPropSet->getPropertyValue(
sName) >>=
aStr;
2335 sal_Int16 nTemp = 0;
2336 xPropSet->getPropertyValue(
"DefaultState") >>= nTemp;
2339 xPropSet->getPropertyValue(
"State") >>= nTemp;
2348 else if (xInfo->supportsService(
"com.sun.star.form.component.TextField"))
2360 for (
int i = 0;
i < 8;
i++)
2361 aBuf.append(
char(0x00));
2362 xPropSet->getPropertyValue(
"Name") >>= aTmp;
2364 aBuf.append(OStringChar(
static_cast<char>(
aStr.getLength())) +
aStr
2365 + OStringChar(
char(0x00)));
2366 xPropSet->getPropertyValue(
"DefaultText") >>= aTmp;
2368 aBuf.append(
static_cast<char>(
aStr.getLength()));
2370 for (
int i = 0;
i < 11;
i++)
2371 aBuf.append(
char(0x00));
2373 pStr =
aStr.getStr();
2374 for (
int i = 0;
i <
aStr.getLength();
i++, pStr++)
2378 xPropSet->getPropertyValue(
"Text") >>= aTmp;
2385 if (xPropSetInfo->hasPropertyByName(
sName))
2387 xPropSet->getPropertyValue(
sName) >>= aTmp;
2396 sName =
"HelpF1Text";
2397 if (xPropSetInfo->hasPropertyByName(
sName))
2399 xPropSet->getPropertyValue(
sName) >>= aTmp;
2409 else if (xInfo->supportsService(
"com.sun.star.form.component.ListBox"))
2412 uno::Sequence<sal_Int16> aIntSeq;
2413 uno::Sequence<OUString> aStrSeq;
2423 xPropSet->getPropertyValue(
"DefaultSelection") >>= aIntSeq;
2424 if (aIntSeq.hasElements())
2431 xPropSet->getPropertyValue(
"SelectedItems") >>= aIntSeq;
2432 if (aIntSeq.hasElements())
2440 if (xPropSetInfo->hasPropertyByName(
sName))
2442 xPropSet->getPropertyValue(
sName) >>=
aStr;
2452 if (xPropSetInfo->hasPropertyByName(
sName))
2454 xPropSet->getPropertyValue(
sName) >>=
aStr;
2463 sName =
"HelpF1Text";
2464 if (xPropSetInfo->hasPropertyByName(
sName))
2466 xPropSet->getPropertyValue(
sName) >>=
aStr;
2475 xPropSet->getPropertyValue(
"StringItemList") >>= aStrSeq;
2476 for (
const auto& rStr : std::as_const(aStrSeq))
2488 SAL_INFO(
"sw.rtf", __func__ <<
" unhandled form control: '"
2489 << xInfo->getImplementationName() <<
"'");
2511 SAL_INFO(
"sw.rtf", __func__ <<
": unknown type ("
2519 switch (rCaseMap.GetValue())
2521 case SvxCaseMap::SmallCaps:
2524 case SvxCaseMap::Uppercase:
2547 if (!rContour.GetValue())
2571 short nEsc = rEscapement.
GetEsc();
2573 sal_Int32 nProp100 = nProp * 100;
2584 nEsc = .8 * (100 - nProp);
2589 nEsc = .2 * -(100 - nProp);
2621 m_aStyles.append(
static_cast<sal_Int32
>(
round(fHeight * nEsc / 1000)));
2646 switch (rFontSize.Which())
2667 m_aStyles.append(
static_cast<sal_Int32
>(rKerning.GetValue() / 5));
2669 m_aStyles.append(
static_cast<sal_Int32
>(rKerning.GetValue()));
2674 switch (rLanguage.Which())
2679 static_cast<sal_Int32
>(
static_cast<sal_uInt16
>(rLanguage.
GetLanguage())));
2682 static_cast<sal_Int32
>(
static_cast<sal_uInt16
>(rLanguage.
GetLanguage())));
2687 static_cast<sal_Int32
>(
static_cast<sal_uInt16
>(rLanguage.
GetLanguage())));
2690 static_cast<sal_Int32
>(
static_cast<sal_uInt16
>(rLanguage.
GetLanguage())));
2695 static_cast<sal_Int32
>(
static_cast<sal_uInt16
>(rLanguage.
GetLanguage())));
2710 if (!rShadow.GetValue())
2716 const char* pStr =
nullptr;
2800 m_aStyles.append(
static_cast<sal_Int32
>(rAutoKern.GetValue() ? 1 : 0));
2806 m_aStyles.append(
static_cast<sal_Int32
>(rBlink.GetValue() ? 2 : 0));
2893 if (
v == FontEmphasisMark::NONE)
2895 else if (
v == (FontEmphasisMark::Dot | FontEmphasisMark::PosAbove))
2897 else if (
v == (FontEmphasisMark::Accent | FontEmphasisMark::PosAbove))
2899 else if (
v == (FontEmphasisMark::Circle | FontEmphasisMark::PosAbove))
2901 else if (
v == (FontEmphasisMark::Dot | FontEmphasisMark::PosBelow))
2914 if (!cStart && !cEnd)
2916 else if (
'{' == cStart ||
'}' == cEnd)
2918 else if (
'<' == cStart ||
'>' == cEnd)
2920 else if (
'[' == cStart ||
']' == cEnd)
2932 m_aStyles.append(
static_cast<sal_Int32
>(rScaleWidth.GetValue()));
2938 switch (rRelief.GetValue())
2940 case FontRelief::Embossed:
2943 case FontRelief::Engraved:
2958 if (!rHidden.GetValue())
2963 const sal_uInt16 nDist,
const bool bShadow)
2967 bShadow ? SvxShadowLocation::BottomRight : SvxShadowLocation::NONE));
2984 if (pTextAtr &&
nullptr != (pFormat = pTextAtr->
GetCharFormat()))
2997 m_aStyles.append(
static_cast<sal_Int32
>(nStyle));
3014 SAL_INFO(
"sw.rtf", __func__ <<
" start");
3051 SAL_INFO(
"sw.rtf", __func__ <<
" end");
3057 m_aStyles.append(
static_cast<sal_Int32
>(nSpace));
3059 m_aStyles.append(
static_cast<sal_Int32
>(nMulti));
3066 case SvxAdjust::Left:
3069 case SvxAdjust::Right:
3072 case SvxAdjust::BlockLine:
3073 case SvxAdjust::Block:
3079 case SvxAdjust::Center:
3089 if (!rSplit.GetValue())
3095 if (rWidows.GetValue())
3105 for (sal_uInt16
n = 0;
n < rTabStop.
Count();
n++)
3110 const char* pFill =
nullptr;
3134 const char* pAdjStr =
nullptr;
3137 case SvxTabAdjust::Right:
3140 case SvxTabAdjust::Decimal:
3143 case SvxTabAdjust::Center:
3171 if (USHRT_MAX == nNumId || 0 == nNumId ||
nullptr == pTextNd)
3176 if (!pRule || !pTextNd->
IsInList())
3180 "sw.rtf",
"text node does not have valid list level");
3184 pFormat = &pRule->
Get(nLvl);
3210 sText = OUString(&cBullet, 1);
3215 if (!sText.isEmpty())
3223 if (!sText.isEmpty())
3257 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
3262 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
3292 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
3313 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
3356 = pBoxItem->CalcLineSpace(SvxBoxItemLine::LEFT,
true);
3358 = pBoxItem->CalcLineSpace(SvxBoxItemLine::RIGHT,
true);
3514 css::text::WrapTextMode eSurround = rSurround.
GetSurround();
3515 bool bGold = css::text::WrapTextMode_DYNAMIC == eSurround;
3517 eSurround = css::text::WrapTextMode_PARALLEL;
3526 std::optional<sal_Int32> oWrk;
3529 case css::text::WrapTextMode_NONE:
3532 case css::text::WrapTextMode_THROUGH:
3535 case css::text::WrapTextMode_PARALLEL:
3539 case css::text::WrapTextMode_DYNAMIC:
3566 case text::RelOrientation::PAGE_FRAME:
3568 std::make_pair<OString, OString>(
"posrelv", OString::number(1)));
3572 std::make_pair<OString, OString>(
"posrelv", OString::number(2)));
3581 case text::VertOrientation::TOP:
3582 case text::VertOrientation::LINE_TOP:
3584 std::make_pair<OString, OString>(
"posv", OString::number(1)));
3586 case text::VertOrientation::BOTTOM:
3587 case text::VertOrientation::LINE_BOTTOM:
3589 std::make_pair<OString, OString>(
"posv", OString::number(3)));
3591 case text::VertOrientation::CENTER:
3592 case text::VertOrientation::LINE_CENTER:
3594 std::make_pair<OString, OString>(
"posv", OString::number(2)));
3616 case text::RelOrientation::PAGE_FRAME:
3618 std::make_pair<OString, OString>(
"posrelh", OString::number(1)));
3622 std::make_pair<OString, OString>(
"posrelh", OString::number(2)));
3631 case text::HoriOrientation::LEFT:
3633 std::make_pair<OString, OString>(
"posh", OString::number(1)));
3635 case text::HoriOrientation::CENTER:
3637 std::make_pair<OString, OString>(
"posh", OString::number(2)));
3639 case text::HoriOrientation::RIGHT:
3641 std::make_pair<OString, OString>(
"posh", OString::number(3)));
3666 case RndStdIds::FLY_AT_PAGE:
3670 case RndStdIds::FLY_AT_PARA:
3671 case RndStdIds::FLY_AS_CHAR:
3706 "fillType", OString::number(7)));
3720 const Color aStartColor(rColorStops.front().getStopColor());
3724 if (rColorStops.size() < 3)
3727 const Color aEndColor(rColorStops.back().getStopColor());
3736 const Color aEndColor(rColorStops[1].getStopColor());
3740 std::make_pair<OString, OString>(
"fillFocus", OString::number(50)));
3746 static const SvxBoxItemLine aBorders[] = { SvxBoxItemLine::TOP, SvxBoxItemLine::LEFT,
3747 SvxBoxItemLine::BOTTOM, SvxBoxItemLine::RIGHT };
3748 static const char* aBorderNames[]
3775 if (!pLeft && !pRight && !pBottom && !pTop)
3778 m_aFlyProperties.push_back(std::make_pair<OString, OString>(
"fLine",
"0"));
3798 m_aFlyProperties.push_back(std::make_pair<OString, OString>(
"fLine",
"0"));
3807 double const fConverted(
3811 std::make_pair<OString, OString>(
"lineWidth", OString::number(nWidth)));
3819 && nDist == rBox.
GetDistance(SvxBoxItemLine::LEFT)
3820 && nDist == rBox.
GetDistance(SvxBoxItemLine::BOTTOM)
3821 && nDist == rBox.
GetDistance(SvxBoxItemLine::RIGHT))
3828 eShadowLocation = pItem->GetLocation();
3831 const char** pBrdNms = aBorderNames;
3832 for (
int i = 0;
i < 4; ++
i, ++pBrd, ++pBrdNms)
3864 for (sal_uInt16
n = 0;
n < nCols;)
3876 + rColumns[
n].GetLeft());
3884 if (rItem.GetValue())
3890 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
3902 if (nDir == SvxFrameDirection::Environment)
3907 if (nDir == SvxFrameDirection::Vertical_RL_TB)
3922 if (nDir == SvxFrameDirection::Vertical_RL_TB)
3925 m_aFlyProperties.push_back(std::make_pair<OString, OString>(
"txflTextFlow",
"3"));
3927 else if (rDirection.GetValue() == SvxFrameDirection::Vertical_LR_BT)
3930 m_aFlyProperties.push_back(std::make_pair<OString, OString>(
"txflTextFlow",
"2"));
3935 if (nDir == SvxFrameDirection::Horizontal_RL_TB)
3943 const std::map<OUString, css::uno::Any>& rMap = rItem.
GetGrabBag();
3944 for (
const auto& rValue : rMap)
3946 if (rValue.first ==
"ParaTopMarginBeforeAutoSpacing")
3952 else if (rValue.first ==
"ParaBottomMarginAfterAutoSpacing")
3983 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
3988 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
3994 SAL_INFO(
"sw.rtf",
"TODO: " << __func__);
4045 " MACROBUTTON None ");
4053 , m_rExport(rExport)
4054 , m_pPrevPageDesc(nullptr)
4059 , m_bControlLtrRtl(false)
4060 , m_nNextAnnotationMarkId(0)
4061 , m_nCurrentAnnotationMarkId(-1)
4062 , m_bTableCellOpen(false)
4064 , m_bTableAfterCell(false)
4065 , m_nColBreakNeeded(false)
4066 , m_bBufferSectionBreaks(false)
4067 , m_bBufferSectionHeaders(false)
4068 , m_bLastTable(true)
4069 , m_bWroteCellInfo(false)
4070 , m_bTableRowEnded(false)
4071 , m_bIsBeforeFirstParagraph(true)
4072 , m_bSingleEmptyRun(false)
4075 , m_pFlyFrameSize(nullptr)
4076 , m_bParaBeforeAutoSpacing(false)
4077 , m_nParaBeforeSpacing(0)
4078 , m_bParaAfterAutoSpacing(false)
4079 , m_nParaAfterSpacing(0)
4163 sal_uInt16 nVal = 0;
4178static void lcl_AppendSP(OStringBuffer& rBuffer, std::string_view cName, std::u16string_view rValue,
4183 rBuffer.append(cName);
4187 rBuffer.append(
"}}");
4192 const char* pBLIPType,
const sal_uInt8* pGraphicAry, sal_uInt64 nSize,
4194 bool bWritePicProp =
true,
const SwAttrSet* pAttrSet =
nullptr)
4197 if (pBLIPType && nSize && pGraphicAry)
4203 if (pFlyFrameFormat && bWritePicProp)
4210 lcl_AppendSP(aRet,
"wzDescription", sDescription, rExport);
4229 nXCroppedSize = 100;
4231 nYCroppedSize = 100;
4238 + OString::number(
static_cast<sal_Int32
>((100 * rRendered.
Width()) / nXCroppedSize))
4240 + OString::number(
static_cast<sal_Int32
>((100 * rRendered.
Height()) / nYCroppedSize))
4249 + OString::number(
static_cast<sal_Int32
>(rMapped.
Height()))
4252 + OString::number(
static_cast<sal_Int32
>(rOrig.
Width()))
4254 + OString::number(
static_cast<sal_Int32
>(rOrig.
Height()))
4259 aRet.append(sal_Int32(8));
4265 pStream->WriteOString(aRet);
4275 pStream->WriteOString(aRet);
4279 return aRet.makeStringAndClear();
4287 Size aRendered(aSize);
4297 SAL_WARN(
"sw.rtf",
"failed to export the graphic");
4298 sal_uInt32 nSize = aStream.
TellEnd();
4307 SAL_WARN(
"sw.rtf",
"failed to export the graphic");
4319 sal_Int64 nAspect = rOLENode.
GetAspect();
4327 uno::Reference<util::XCloseable> xClosable = xObj->getComponent();
4328 if (!xClosable.is())
4330 auto pBase =
dynamic_cast<oox::FormulaImExportBase*
>(xClosable.get());
4331 SAL_WARN_IF(!pBase,
"sw.rtf",
"Math OLE object cannot write out RTF");
4362 sal_uInt32 nSize = 0;
4367 if (rGraphic.
GetType() == GraphicType::NONE)
4374 const char* pBLIPType =
nullptr;
4379 pGraphicAry = aGraphicLink.
GetData();
4380 switch (aGraphicLink.
GetType())
4390 case GfxLinkType::NativeBmp:
4392 pGraphicAry =
nullptr;
4395 case GfxLinkType::NativeJpg:
4398 case GfxLinkType::NativePng:
4401 case GfxLinkType::NativeWmf:
4405 case GfxLinkType::NativeGif:
4407 aConvertDestinationFormat = ConvertDataFormat::PNG;
4420 (eGraphicType == GraphicType::Bitmap)
4421 ? ConvertDataFormat::PNG
4422 : ConvertDataFormat::WMF))
4438 Size aRendered(aSize);
4447 if (pFlyFrameFormat == &rFrame.GetFrameFormat())
4482 std::vector<std::pair<OString, OString>> aFlyProperties{
4498 if (pPolyPoly && pPolyPoly->
Count())
4501 *pPolyPoly, pNd,
true);
4502 OStringBuffer aVerticies;
4503 for (sal_uInt16
i = 0;
i < aPoly.
GetSize(); ++
i)
4504 aVerticies.append(
";(" + OString::number(aPoly[
i].X()) +
","
4505 + OString::number(aPoly[
i].Y()) +
")");
4506 aFlyProperties.push_back(std::make_pair<OString, OString>(
4507 "pWrapPolygonVertices",
4508 "8;" + OString::number(aPoly.
GetSize()) + aVerticies));
4514 if (!pFlyFrameFormat->
GetOpaque().GetValue())
4515 aFlyProperties.push_back(std::make_pair<OString, OString>(
"fBehindDocument",
"1"));
4526 aFlyProperties.emplace_back(
"rotation", OString::number(nRot));
4530 for (
const std::pair<OString, OString>& rPair : aFlyProperties)
4544 bool bWritePicProp = !pFrame || pFrame->
IsInline();
4546 ExportPICT(pFlyFrameFormat, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize,
4552 SAL_WARN(
"sw.rtf",
"failed to export the graphic");
4553 pBLIPType = pConvertDestinationBLIPType;
4557 ExportPICT(pFlyFrameFormat, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize,
4570 SAL_WARN(
"sw.rtf",
"failed to export the graphic");
4575 ExportPICT(pFlyFrameFormat, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry,
4601 SAL_WARN(
"sw.rtf",
"failed to export the numbering picture bullet");
4602 sal_uInt32 nSize = aStream.
TellEnd();
PropertiesInfo aProperties
void GetTablePageSize(ww8::WW8TableNodeInfoInner const *pTableTextNodeInfoInner, tools::Long &rPageSize, bool &rRelBoxSize)
bool IsTransparent() const
const sal_uInt8 * GetData() const
sal_uInt32 GetDataSize() const
GfxLinkType GetType() const
static ErrCode Export(SvStream &rOStm, const Graphic &rGraphic, ConvertDataFormat nFormat)
GraphicType GetType() const
GfxLink GetGfxLink() const
Size GetSizePixel(const OutputDevice *pRefDevice=nullptr) const
Base class for WW8Export and DocxExport.
void OutputItemSet(const SfxItemSet &rSet, bool bPapFormat, bool bChpFormat, sal_uInt16 nScript, bool bExportParentItemSet)
Use OutputItem() on an item set according to the parameters.
void WriteText()
Iterate through the nodes and call the appropriate OutputNode() on them.
SvxFrameDirection TrueFrameDirection(const SwFrameFormat &rFlyFormat) const
Right to left?
const SfxItemSet * GetCurItemSet() const
Getter for pISet.
void WriteHeaderFooterText(const SwFormat &rFormat, bool bHeader)
Write header/footer text.
virtual void SaveData(SwNodeOffset nStt, SwNodeOffset nEnd)
Remember some of the members so that we can recurse in WriteText().
void WriteSpecialText(SwNodeOffset nStart, SwNodeOffset nEnd, sal_uInt8 nTTyp)
Set the pCurPam appropriately and call WriteText().
ww8::WW8TableInfo::Pointer_t m_pTableInfo
const SfxPoolItem * HasItem(sal_uInt16 nWhich) const
virtual void RestoreData()
Restore what was saved in SaveData().
wwFontHelper m_aFontHelper
const SfxPoolItem & GetItem(sal_uInt16 nWhich) const
int GetGrfIndex(const SvxBrushItem &rBrush)
Returns the index of a picture bullet, used in numberings.
void OutputSectionBreaks(const SfxItemSet *pSet, const SwNode &rNd, bool isCellOpen=false)
Start new section.
const SwPageDesc * m_pCurrentPageDesc
void SectionProperties(const WW8_SepInfo &rSectionInfo, WW8_PdAttrDesc *pA=nullptr)
Write section properties.
sal_uInt16 GetNumberingId(const SwNumRule &rNumRule)
Return the numeric id of the numbering rule.
const ww8::Frame * m_pParentFrame
void OutputFormat(const SwFormat &rFormat, bool bPapFormat, bool bChpFormat, bool bFlyFormat=false)
Output attributes.
SvxFrameDirection GetDefaultFrameDirection() const
bool m_bOutPageDescs
PageDescs (section properties) are being written.
std::shared_ptr< SwUnoCursor > & m_pCurPam
tools::Long GetParaTabStopOffset() const
sal_uInt16 GetId(const SwTextFormatColl &rColl) const
Return the numeric id of the style.
sal_uInt16 GetValue() const
The class that has handlers for various resource types when exporting as RTF.
void OutlineNumbering(sal_uInt8 nLvl) override
Numbering rule and Id.
void RefField(const SwField &rField, const OUString &rRef) override
void TableCellRedline(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void CharKerning(const SvxKerningItem &rKerning) override
Sfx item RES_CHRATR_KERNING.
void CharFontSizeCTL(const SvxFontHeightItem &rFontSize) override
Sfx item RES_CHRATR_CTL_FONTSIZE.
void FormatFillGradient(const XFillGradientItem &rFillGradient) override
Sfx item RES_FILL_GRADIENT.
RtfExport & m_rExport
Reference to the export, where to get the data from.
void TableDefinition(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void CharEscapement(const SvxEscapementItem &rEscapement) override
Sfx item RES_CHRATR_ESCAPEMENT.
virtual void FormatTextLeftMargin(const SvxTextLeftMarginItem &rTextLeftMargin) override
Sfx item RES_MARGIN_TEXTLEFT.
void SectFootnoteEndnotePr() override
for footnote/endnote section properties
OStringBuffer m_aStylesAssocRtlch
void HiddenField(const SwField &rField) override
void FormatFillStyle(const XFillStyleItem &rFillStyle) override
Sfx item RES_FILL_STYLE.
void FormatBox(const SvxBoxItem &rBox) override
Sfx item RES_BOX.
void ParaLineSpacing_Impl(short nSpace, short nMulti) override
Sfx item RES_PARATR_LINESPACING.
editeng::WordPageMargins m_aPageMargins
void CharLanguage(const SvxLanguageItem &rLanguage) override
Sfx item RES_CHRATR_LANGUAGE.
void PageBreakBefore(bool bBreak) override
Page break As a paragraph property - the paragraph should be on the next page.
void FormatULSpace(const SvxULSpaceItem &rULSpace) override
Sfx item RES_UL_SPACE.
void CharBackground(const SvxBrushItem &rBrush) override
Sfx item RES_CHRATR_BACKGROUND.
void StartRuby(const SwTextNode &rNode, sal_Int32 nPos, const SwFormatRuby &rRuby) override
Output ruby start.
void CharBorder(const ::editeng::SvxBorderLine *pAllBorder, sal_uInt16 nDist, bool bShadow) override
Sfx item RES_CHRATR_BOX.
void ParaNumRule_Impl(const SwTextNode *pTextNd, sal_Int32 nLvl, sal_Int32 nNumId) override
Sfx item RES_PARATR_NUMRULE.
void TextCharFormat(const SwFormatCharFormat &rCharFormat) override
Sfx item RES_TXTATR_CHARFMT.
void CharHidden(const SvxCharHiddenItem &rHidden) override
Sfx item RES_CHRATR_HIDDEN.
void CharWeightCJK(const SvxWeightItem &rWeight) override
Sfx item RES_CHRATR_CJK_WEIGHT.
void FlyFrameOLEReplacement(const SwFlyFrameFormat *pFlyFrameFormat, SwOLENode &rOLENode, const Size &rSize)
void CharWeightCTL(const SvxWeightItem &rWeight) override
Sfx item RES_CHRATR_CTL_WEIGHT.
void NumberingLevel(sal_uInt8 nLevel, sal_uInt16 nStart, sal_uInt16 nNumberingType, SvxAdjust eAdjust, const sal_uInt8 *pNumLvlPos, sal_uInt8 nFollow, const wwFont *pFont, const SfxItemSet *pOutSet, sal_Int16 nIndentAt, sal_Int16 nFirstLineIndex, sal_Int16 nListTabPos, const OUString &rNumberingString, const SvxBrushItem *pBrush, bool isLegal) override
All the numbering level information.
void FormatHorizOrientation(const SwFormatHoriOrient &rFlyHori) override
Sfx item RES_HORI_ORIENT.
bool PlaceholderField(const SwField *pField) override
void SectionTitlePage() override
Has different headers/footers for the title page.
void EndStyleProperties(bool bParProp) override
End of (paragraph or run) properties of a style.
void WriteFootnoteEndnotePr(bool bFootnote, const SwEndNoteInfo &rInfo)
sal_Int32 m_nParaAfterSpacing
If m_bParaBeforeAutoSpacing is set, value of.
sal_Int32 m_nParaBeforeSpacing
If m_bParaBeforeAutoSpacing is set, value of \sb.
void EndRuby(const SwTextNode &rNode, sal_Int32 nPos) override
Output ruby end.
bool m_bParaBeforeAutoSpacing
If original file had \sbauto.
void FontPitchType(FontPitch ePitch) const
Font pitch.
virtual void FormatFirstLineIndent(const SvxFirstLineIndentItem &rFirstLine) override
Sfx item RES_MARGIN_FIRSTLINE.
void EndRun(const SwTextNode *pNode, sal_Int32 nPos, sal_Int32 nLen, bool bLastRun=false) override
End of the text run.
MSWordExportBase & GetExport() override
Return the right export class.
void FormatAnchor(const SwFormatAnchor &rAnchor) override
Sfx item RES_ANCHOR.
void SectionPageNumbering(sal_uInt16 nNumType, const ::std::optional< sal_uInt16 > &oPageRestartNumber) override
The style of the page numbers.
void SetField(const SwField &rField, ww::eField eType, const OUString &rCmd) override
bool m_bBufferSectionHeaders
void EndAbstractNumbering() override
End of the abstract numbering definition instance.
void CharWeight(const SvxWeightItem &rWeight) override
Sfx item RES_CHRATR_WEIGHT.
void StartRun(const SwRedlineData *pRedlineData, sal_Int32 nPos, bool bSingleEmptyRun=false) override
Start of the text run.
void CharPostureCTL(const SvxPostureItem &rPosture) override
Sfx item RES_CHRATR_CTL_POSTURE.
void CharUnderline(const SvxUnderlineItem &rUnderline) override
Sfx item RES_CHRATR_UNDERLINE.
void TableSpacing(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void FormatLRSpace(const SvxLRSpaceItem &rLRSpace) override
Sfx item RES_LR_SPACE.
void FlyFrameGraphic(const SwFlyFrameFormat *pFlyFrameFormat, const SwGrfNode *pGrfNode)
Output graphic fly frames.
void FormatVertOrientation(const SwFormatVertOrient &rFlyVert) override
Sfx item RES_VERT_ORIENT.
void WriteHeaderFooter_Impl(const SwFrameFormat &rFormat, bool bHeader, const char *pStr, bool bTitlepg)
void CharLanguageCJK(const SvxLanguageItem &rLanguageItem) override
Sfx item RES_CHRATR_CJK_LANGUAGE.
void StartAbstractNumbering(sal_uInt16 nId) override
Start of the abstract numbering definition instance.
void CharFontSize(const SvxFontHeightItem &rFontSize) override
Sfx item RES_CHRATR_FONTSIZE.
void WriteTextFootnoteNumStr(const SwFormatFootnote &rFootnote)
void FormatPaperBin(const SvxPaperBinItem &rItem) override
Sfx item RES_PAPER_BIN.
void CharAnimatedText(const SvxBlinkItem &rBlink) override
Sfx item RES_CHRATR_BLINK.
void EndStyle() override
End of a style in the styles table.
void writeTextFrame(const ww8::Frame &rFrame, bool bTextBox=false)
Handles just the {\shptxt ...} part of a shape export.
void ParaVerticalAlign(const SvxParaVertAlignItem &rAlign) override
Sfx item RES_PARATR_VERTALIGN.
void CharShadow(const SvxShadowedItem &rShadow) override
Sfx item RES_CHRATR_SHADOWED.
bool StartURL(const OUString &rUrl, const OUString &rTarget) override
Output URL start.
~RtfAttributeOutput() override
void CharFontCJK(const SvxFontItem &rFont) override
Sfx item RES_CHRATR_CJK_FONT.
RtfStringBuffer m_aRunText
void FormatColumns_Impl(sal_uInt16 nCols, const SwFormatCol &rCol, bool bEven, SwTwips nPageSize) override
Sfx item RES_COL.
void CharScaleWidth(const SvxCharScaleWidthItem &rScaleWidth) override
Sfx item RES_CHRATR_SCALEW.
bool m_bParaAfterAutoSpacing
If original file had \saauto.
void TableRowEnd(sal_uInt32 nDepth) override
bool DropdownField(const SwField *pField) override
void TableRowRedline(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void StartRunProperties() override
Called before we start outputting the attributes.
void TableCellProperties(const ww8::WW8TableNodeInfoInner::Pointer_t &pTableTextNodeInfoInner)
bool m_bIsBeforeFirstParagraph
OStringBuffer m_aStylesAssocLtrch
void PostitField(const SwField *pField) override
void FontAlternateName(std::u16string_view rName) const
Alternate name for the font.
void ParagraphStyle(sal_uInt16 nStyle) override
Output style.
std::map< sal_uInt16, const SwPostItField * > m_aPostitFields
Maps ID's to postit fields, used in atrfstart/end and atnref.
void FormatFrameDirection(const SvxFrameDirectionItem &rDirection) override
Sfx item RES_FRAMEDIR.
void EndParagraph(ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner) override
End of the paragraph.
void WriteBookmarks_Impl(std::vector< OUString > &rStarts, std::vector< OUString > &rEnds)
void DefaultStyle() override
Write default style.
void CharBidiRTL(const SfxPoolItem &rItem) override
Sfx item RES_CHRATR_BidiRTL.
void CharPosture(const SvxPostureItem &rPosture) override
Sfx item RES_CHRATR_POSTURE.
std::vector< OString > m_aTables
void CharContour(const SvxContourItem &rContour) override
Sfx item Sfx item RES_CHRATR_CONTOUR.
bool EndURL(bool isAtEndOfParagraph) override
Output URL end.
bool m_bTableRowEnded
If we ended a table row without starting a new one.
std::map< OString, sal_Int32 > m_rOpenedAnnotationMarksIds
Maps annotation mark names to ID's.
std::vector< std::pair< OString, OString > > m_aFlyProperties
std::optional< css::drawing::FillStyle > m_oFillStyle
void StartStyleProperties(bool bParProp, sal_uInt16 nStyle) override
Start of (paragraph or run) properties of a style.
void WriteField_Impl(const SwField *pField, ww::eField eType, std::u16string_view rFieldCmd, FieldFlags nMode)
void CharFontCTL(const SvxFontItem &rFont) override
Sfx item RES_CHRATR_CTL_FONT.
sal_Int32 m_nNextAnnotationMarkId
void CharGrabBag(const SfxGrabBagItem &rItem) override
Sfx item RES_CHRATR_GRABBAG.
bool FlyFrameOLEMath(const SwFlyFrameFormat *pFlyFrameFormat, SwOLENode &rOLENode, const Size &rSize)
Math export.
OStringBuffer m_aSectionBreaks
OString MoveCharacterProperties(bool aAutoWriteRtlLtr=false)
void TableInfoRow(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void TableHeight(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void ParaAdjust(const SvxAdjustItem &rAdjust) override
Sfx item RES_PARATR_ADJUST.
RtfAttributeOutput(RtfExport &rExport)
void SectionBreaks(const SwNode &rNode) override
Called in order to output section breaks.
virtual void FormatRightMargin(const SvxRightMarginItem &rRightMargin) override
Sfx item RES_MARGIN_RIGHT.
void TextINetFormat(const SwFormatINetFormat &rURL) override
Sfx item RES_TXTATR_INETFMT.
void OutputFlyFrame_Impl(const ww8::Frame &rFrame, const Point &rNdTopLeft) override
Output frames - the implementation.
void ParaScriptSpace(const SfxBoolItem &rScriptSpace) override
Sfx item RES_PARATR_SCRIPTSPACE.
void CharTwoLines(const SvxTwoLinesItem &rTwoLines) override
Sfx item RES_CHRATR_TWO_LINES.
void CharCrossedOut(const SvxCrossedOutItem &rCrossedOut) override
Sfx item RES_CHRATR_CROSSEDOUT.
void FormatBackground(const SvxBrushItem &rBrush) override
Sfx item RES_BACKGROUND.
bool m_bBufferSectionBreaks
void TableCanSplit(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void CharFont(const SvxFontItem &rFont) override
Sfx item RES_CHRATR_FONT.
void TableOrientation(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void CharColor(const SvxColorItem &rColor) override
Sfx item Sfx item RES_CHRATR_COLOR.
void StartSection() override
Start of the section properties.
void EndParagraphProperties(const SfxItemSet &rParagraphMarkerProperties, const SwRedlineData *pRedlineData, const SwRedlineData *pRedlineParagraphMarkerDeleted, const SwRedlineData *pRedlineParagraphMarkerInserted) override
Called after we end outputting the attributes.
sal_Int32 m_nCurrentAnnotationMarkId
bool m_bSingleEmptyRun
If we're in a paragraph that has a single empty run only.
void FormatSurround(const SwFormatSurround &rSurround) override
Sfx item RES_SURROUND.
void FontFamilyType(FontFamily eFamily, const wwFont &rFont) const
Font family.
void FormatFrameSize(const SwFormatFrameSize &rSize) override
Sfx item RES_FRM_SIZE.
OStringBuffer m_aStylesAssocHich
void WriteAnnotationMarks_Impl(std::vector< OUString > &rStarts, std::vector< OUString > &rEnds)
void TextLineBreak(const SwFormatLineBreak &rLineBreak) override
RES_TXTATR_LINEBREAK, i.e. clearing breaks.
void FieldVanish(const OUString &rText, ww::eField eType, OUString const *pBookmarkName) override
OStringBuffer m_aSectionHeaders
void SectionRtlGutter(const SfxBoolItem &rRtlGutter) override
RES_RTL_GUTTER.
std::unique_ptr< SwWriteTable > m_pTableWrt
void ParaHangingPunctuation(const SfxBoolItem &rItem) override
Sfx item RES_PARATR_HANGINGPUNCTUATION.
std::map< sal_uInt32, sal_uInt32 > m_aCells
Number of cells from the table definition, by depth.
void TextFootnote_Impl(const SwFormatFootnote &rFootnote) override
Sfx item RES_TXTATR_FTN.
void SectionFormProtection(bool bProtected) override
Protection of forms.
void ParaSplit(const SvxFormatSplitItem &rSplit) override
Sfx item RES_PARATR_SPLIT.
void CharRotate(const SvxCharRotateItem &rRotate) override
Sfx item RES_CHRATR_ROTATE.
void RawText(const OUString &rText, rtl_TextEncoding eCharSet) override
Output text (without markup).
OStringBuffer m_aStylesheet
void SectionType(sal_uInt8 nBreakCode) override
The type of breaking.
void FormatDrop(const SwTextNode &rNode, const SwFormatDrop &rSwFormatDrop, sal_uInt16 nStyle, ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner) override
void CharFontSizeCJK(const SvxFontHeightItem &rFontSize) override
Sfx item RES_CHRATR_CJK_FONTSIZE.
void NumberingDefinition(sal_uInt16 nId, const SwNumRule &rRule) override
Definition of a numbering instance.
void CharCaseMap(const SvxCaseMapItem &rCaseMap) override
Sfx item Sfx item RES_CHRATR_CASEMAP.
void StartFont(std::u16string_view rFamilyName) const
Start the font.
void WriteExpand(const SwField *pField) override
Write the expanded field.
void ParaGrabBag(const SfxGrabBagItem &rItem) override
Sfx item RES_PARATR_GRABBAG.
void CharIdctHint(const SfxPoolItem &rItem) override
Sfx item RES_CHRATR_IdctHint.
void StartParagraphProperties() override
Called before we start outputting the attributes.
void TableBidi(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void EndSection() override
End of the section properties.
void FormatLineNumbering(const SwFormatLineNumber &rNumbering) override
Sfx item RES_LINENUMBER.
void ParaWidows(const SvxWidowsItem &rWidows) override
Sfx item RES_PARATR_WIDOWS.
void BulletDefinition(int nId, const Graphic &rGraphic, Size aSize) override
Exports the definition (image, size) of a single numbering picture bullet.
void CharPostureCJK(const SvxPostureItem &rPosture) override
Sfx item RES_CHRATR_CJK_POSTURE.
void EndStyles(sal_uInt16 nNumberOfStyles) override
End of the styles table.
void InitTableHelper(const ww8::WW8TableNodeInfoInner::Pointer_t &pTableTextNodeInfoInner)
void Redline(const SwRedlineData *pRedline) override
Output redlining.
const Size * m_pFlyFrameSize
When exporting fly frames, this holds the real size of the frame.
void EmptyParagraph() override
Empty paragraph.
void StartTableRow(const ww8::WW8TableNodeInfoInner::Pointer_t &pTableTextNodeInfoInner)
void EndRunProperties(const SwRedlineData *pRedlineData) override
Called after we end outputting the attributes.
void CharHighlight(const SvxBrushItem &rBrush) override
Sfx item RES_CHRATR_HIGHLIGHT.
void ParaOutlineLevel(const SfxUInt16Item &rItem) override
Sfx item RES_PARATR_OUTLINELEVEL.
const SwPageDesc * m_pPrevPageDesc
Access to the page style of the previous paragraph.
void TableInfoCell(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
sal_Int32 StartParagraph(ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, bool bGenerateParaId) override
Start of the paragraph.
void CharRelief(const SvxCharReliefItem &rRelief) override
Sfx item RES_CHRATR_RELIEF.
void EndFont() const
End the font.
void FontCharset(sal_uInt8 nCharSet) const
Font charset.
std::stack< OUString > m_aURLs
If we're in the process of exporting a hyperlink, then its URL.
void FormatKeep(const SvxFormatKeepItem &rItem) override
Sfx item RES_KEEP.
void CharEmphasisMark(const SvxEmphasisMarkItem &rEmphasisMark) override
Sfx item RES_CHRATR_EMPHASIS_MARK.
void ParaTabStop(const SvxTabStopItem &rTabStop) override
Sfx item RES_PARATR_TABSTOP.
void TableVerticalCell(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void CharLanguageCTL(const SvxLanguageItem &rLanguageItem) override
Sfx item RES_CHRATR_CTL_LANGUAGE.
OStringBuffer m_aStylesAssocDbch
void ParaHyphenZone(const SvxHyphenZoneItem &rHyphenZone) override
Sfx item RES_PARATR_HYPHENZONE.
void CharAutoKern(const SvxAutoKernItem &rAutoKern) override
Sfx item RES_CHRATR_AUTOKERN.
void ParaSnapToGrid(const SvxParaGridItem &rItem) override
Sfx item RES_PARATR_SNAPTOGRID.
void ParaForbiddenRules(const SfxBoolItem &rItem) override
Sfx item RES_PARATR_FORBIDDEN_RULES.
void TableBackgrounds(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void TableDefaultBorders(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner) override
void TableNodeInfoInner(ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner) override
void SectionBiDi(bool bBiDi) override
Columns populated from right/numbers on the right side?
void FlyFrameOLE(const SwFlyFrameFormat *pFlyFrameFormat, SwOLENode &rOLENode, const Size &rSize)
void StartStyles() override
Start of the styles table.
void SectionLineNumbering(sal_uLong nRestartNo, const SwLineNumberInfo &rLnNumInfo) override
Numbering of the lines in the document.
void StartStyle(const OUString &rName, StyleType eType, sal_uInt16 nBase, sal_uInt16 nNext, sal_uInt16 nLink, sal_uInt16 nWwId, sal_uInt16 nSlot, bool bAutoUpdate) override
Start of a style in the styles table.
void TablePositioning(SwFrameFormat *pFlyFormat)
OStringBuffer m_aAfterRuns
void FinishTableRowCell(const ww8::WW8TableNodeInfoInner::Pointer_t &pInner)
End cell, row, and even the entire table if necessary.
OStringBuffer & RunText()
void RTLAndCJKState(bool bIsRTL, sal_uInt16 nScript) override
Export the state of RTL/CJK.
void FormatTextGrid(const SwTextGridItem &rItem) override
Sfx item RES_TEXTGRID.
void SectionBreak(sal_uInt8 nC, bool bBreakAfter, const WW8_SepInfo *pSectionInfo=nullptr, bool bExtraPageBreak=false) override
Write a section break msword::ColumnBreak or msword::PageBreak.
void SectionPageBorders(const SwFrameFormat *pFormat, const SwFrameFormat *pFirstPageFormat) override
Description of the page borders.
The class that does all the actual RTF export-related work.
sal_uInt16 GetColor(const Color &rColor) const
void SetCurrentEncoding(rtl_TextEncoding eCurrentEncoding)
void setStream()
From now on, let Strm() return a memory stream, not a real one.
rtl_TextEncoding GetDefaultEncoding() const
bool GetRTFFlySyntax() const
OString getStream()
Get the contents of the memory stream as a string.
void OutputField(const SwField *pField, ww::eField eFieldType, const OUString &rFieldCmd, FieldFlags nMode=FieldFlags::All) override
Write the field.
sal_uInt16 GetRedline(const OUString &rAuthor)
rtl_TextEncoding GetCurrentEncoding() const
void resetStream()
Return back to the real stream.
RtfSdrExport & SdrExporter() const
Access to the Rtf Sdr exporter.
void SetRTFFlySyntax(bool bRTFFlySyntax)
OString * GetStyle(sal_uInt16 nId)
SwNodeOffset GetCurrentNodeIndex() const
const SfxItemSet * GetFirstPageItemSet() const
void InsStyle(sal_uInt16 nId, const OString &rStyle)
void WriteOutliner(const OutlinerParaObject &rParaObj, TextTypes eType)
Write editeng text, e.g. shape or comment.
void AddSdrObject(const SdrObject &rObj)
Export the sdr object as Sdr.
static bool isTextBox(const SwFrameFormat &rFrameFormat)
Is this a standalone TextFrame, or used as a TextBox of a shape?
Wrapper around OStringBuffers, so less hexdump of graphics have to be kept in memory during RTF expor...
void makeStringAndClear(RtfAttributeOutput *pAttributeOutput)
Writes the contents of the buffer directly to the supplied stream.
void clear()
Similar to ->setLength(0), but for all buffers.
void append(const SwFlyFrameFormat *pFlyFrameFormat, const SwGrfNode *pGrfNode)
Same as ->append(), but for graphics and without expanding contents to save memory.
OStringBuffer & getLastBuffer()
Access to the last buffer.
void appendAndClear(RtfStringBuffer &rBuf)
Append all contained buffers and clear the argument.
sal_Int32 getLength() const
Length of all the contained buffers.
save the current run state around exporting things that contain paragraphs themselves like text frame...
RtfStringBuffer m_RunText
bool const m_bSingleEmptyRun
SaveRunState(RtfAttributeOutput &rRtf)
RtfAttributeOutput & m_rRtf
virtual sal_uInt16 GetEnumValue() const override
const std::map< OUString, css::uno::Any > & GetGrabBag() const
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
constexpr tools::Long Height() const
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
static sal_uInt16 IsMath(const SvGlobalName &rName)
virtual sal_uInt64 TellEnd() override
SvStream & WriteNumberAsString(N n)
SvStream & WriteOString(std::string_view rStr)
sal_uInt64 Seek(sal_uInt64 nPos)
SvStream & WriteChar(char nChar)
SvxAdjust GetLastBlock() const
SvxAdjust GetAdjust() const
static const sal_Int16 Hairline
const editeng::SvxBorderLine * GetTop() const
const editeng::SvxBorderLine * GetLine(SvxBoxItemLine nLine) const
sal_uInt16 GetSmallestDistance() const
const editeng::SvxBorderLine * GetRight() const
const editeng::SvxBorderLine * GetLeft() const
sal_Int16 GetDistance(SvxBoxItemLine nLine, bool bAllowNegative=false) const
const editeng::SvxBorderLine * GetBottom() const
const Color & GetColor() const
const Color & GetValue() const
FontStrikeout GetStrikeout() const
FontEmphasisMark GetEmphasisMark() const
sal_uInt8 & GetProportionalHeight()
void SetTextFirstLineOffset(const short nF, const sal_uInt16 nProp=100)
short GetTextFirstLineOffset() const
sal_uInt32 GetHeight() const
rtl_TextEncoding GetCharSet() const
const OUString & GetFamilyName() const
sal_Int32 GetRight() const
sal_Int32 GetLeft() const
sal_Int32 GetBottom() const
short GetTextFirstLineOffset() const
tools::Long GetRight() const
tools::Long GetGutterMargin() const
tools::Long GetTextLeft() const
tools::Long GetLeft() const
LanguageType GetLanguage() const
SvxNumType GetNumberingType() const
FontItalic GetPosture() const
tools::Long GetRight() const
sal_uInt16 GetWidth() const
const Color & GetColor() const
SvxShadowLocation GetLocation() const
tools::Long GetHeight() const
tools::Long GetWidth() const
SvxTabAdjust & GetAdjustment()
void SetTextLeft(const tools::Long nL, const sal_uInt16 nProp=100)
tools::Long GetTextLeft() const
FontLineStyle GetLineStyle() const
const Color & GetColor() const
sal_Unicode GetStartBracket() const
sal_Unicode GetEndBracket() const
sal_uInt16 GetUpper() const
sal_uInt16 GetLower() const
FontWeight GetWeight() const
const SfxPoolItem & GetAttr(sal_uInt16 nWhich, bool bInParent=true) const
SS for PoolItems: hard attributation.
const SwAttrSet & GetSwAttrSet() const
Does node has already its own auto-attributes? Access to SwAttrSet.
const SwAttrSet * GetpSwAttrSet() const
const SwFootnoteInfo & GetFootnoteInfo() const
const SwEndNoteInfo & GetEndNoteInfo() const
virtual OUString GetName() const
Only in derived classes.
Base class of all fields.
virtual OUString GetPar1() const
virtual sal_uInt16 GetSubType() const
OUString ExpandField(bool bCached, SwRootFrame const *pLayout) const
expand the field.
SwFieldType * GetTyp() const
const SwNodeIndex * GetContentIdx() const
virtual Size GetTwipSize() const override
const Graphic & GetGrf(bool bWait=false) const
bool IsExportable() const
< purpose of derivation from SwClient: character style for displaying the numbers.
sal_uInt16 GetCountBy() const
bool IsRestartEachPage() const
sal_uInt16 GetPosFromLeft() const
Layout frame for SwNoTextNode, i.e. graphics and OLE nodes (including charts).
Marks a node in the document model.
SwNodeOffset GetIndex() const
Base class of the Writer document model elements.
SwFrameFormat * GetFlyFormat() const
If node is in a fly return the respective format.
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
const SwPageDesc * FindPageDesc(SwNodeOffset *pPgDescNdIdx=nullptr) const
Search PageDesc with which this node is formatted.
const SwStartNode * StartOfSectionNode() const
SwOLENode * GetOLENode()
Inline methods from Node.hxx.
SwNodeOffset EndOfSectionIndex() const
const SwNumFormat * GetNumFormat(sal_uInt16 i) const
const SwNumFormat & Get(sal_uInt16 i) const
SwNumRuleType GetRuleType() const
virtual Size GetTwipSize() const override
sal_Int64 GetAspect() const
const SwOLEObj & GetOLEObj() const
const Graphic * GetGraphic()
css::uno::Reference< css::embed::XEmbeddedObject > const & GetOleRef()
SwFrameFormat & GetMaster()
const OUString & GetInitials() const
virtual OUString GetPar1() const override
Author.
const OUString & GetName() const
const DateTime & GetDateTime() const
const OutlinerParaObject * GetTextObject() const
std::size_t GetAuthor() const
const DateTime & GetTimeStamp() const
RedlineType GetType() const
SwTableBox is one table cell in the document model.
SwFrameFormat * GetFrameFormat()
SwTableLine is one table row in the document model.
SwFrameFormat * GetFrameFormat()
const SwTable & GetTable() const
SwTable is one table in the document model, containing rows (which contain cells).
SwTableNode * GetTableNode() const
SwTableLines & GetTabLines()
SwTableFormat * GetFrameFormat()
SwHTMLTableLayout * GetHTMLTableLayout()
SwTextAttr subclass that tracks the location of the wrapped SwFormatURL.
SwCharFormat * GetCharFormat()
SwTextNode is a paragraph in the document model.
SwNumRule * GetNumRule(bool bInParent=true) const
Returns numbering rule of this text node.
int GetActualListLevel(SwListRedlineType eRedline=SwListRedlineType::SHOW) const
Returns the actual list level of this text node, when it is a list item.
OUString GetNumString(const bool _bInclPrefixAndSuffixStrings=true, const unsigned int _nRestrictToThisLevel=MAXLEVEL, SwRootFrame const *pLayout=nullptr, SwListRedlineType eRedline=SwListRedlineType::SHOW) const
Returns outline of numbering string.
sal_uInt16 GetRowSpan() const
const SwTableBox * GetBox() const
const SwWriteTableCells & GetCells() const
sal_uInt32 GetBaseHeight() const
sal_uInt32 GetRubyHeight() const
OUString const & GetFontFamily() const
char GetDirective() const
const basegfx::BGradient & GetGradientValue() const
const basegfx::BColorStops & GetColorStops() const
const Color & GetColor() const
tools::Long GetWidth() const
SvxBorderLineStyle GetBorderLineStyle() const
Find suitable names for exporting this font.
Make export a word section top/bottom values easy.
sal_uInt16 m_DyaHdrBottom
Make exporting a Writer Frame easy.
const Size & GetSize() const
The Size of the contained element.
const Size & GetLayoutSize() const
The layout size of the contained element.
WriterSource GetWriterType() const
Get the type of frame that this wraps.
const SwFrameFormat & GetFrameFormat() const
Get the writer SwFrameFormat that this object describes.
const SwNode * GetContent() const
Get the first node of content in the frame.
bool IsInline() const
Is this frame inline (as character)
std::shared_ptr< WW8TableInfo > Pointer_t
std::shared_ptr< WW8TableNodeInfoInner > Pointer_t
std::shared_ptr< WW8TableNodeInfo > Pointer_t
sal_uInt16 GetId(const SvxFontItem &rFont)
Collects and outputs fonts.
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define SAL_NEWLINE_STRING
EmbeddedObjectRef * pObject
#define DFLT_ESC_AUTO_SUB
#define DFLT_ESC_AUTO_SUPER
#define ESCHER_ShpInst_TextBox
#define ESCHER_ShpInst_PictureFrame
std::vector< SwColumn > SwColumns
@ Fixed
Frame cannot be moved in Var-direction.
@ Variable
Frame is variable in Var-direction.
@ Minimum
Value in Var-direction gives minimum (can be exceeded but not be less).
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_CTL_FONTSIZE(28)
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_FONTSIZE(8)
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_LANGUAGE(10)
constexpr TypedWhichId< SvxFirstLineIndentItem > RES_MARGIN_FIRSTLINE(91)
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_CTL_LANGUAGE(29)
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_CJK_FONTSIZE(23)
constexpr TypedWhichId< SvxShadowItem > RES_SHADOW(113)
constexpr TypedWhichId< SwFormatVertOrient > RES_VERT_ORIENT(108)
constexpr TypedWhichId< SvxBrushItem > RES_BACKGROUND(111)
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_CJK_LANGUAGE(24)
constexpr TypedWhichId< SwMirrorGrf > RES_GRFATR_MIRRORGRF(RES_GRFATR_BEGIN)
constexpr TypedWhichId< SvxBoxItem > RES_BOX(112)
constexpr TypedWhichId< SwRotationGrf > RES_GRFATR_ROTATION(143)
constexpr TypedWhichId< SvxTextLeftMarginItem > RES_MARGIN_TEXTLEFT(92)
constexpr TypedWhichId< SvxWordLineModeItem > RES_CHRATR_WORDLINEMODE(16)
constexpr TypedWhichId< SwCropGrf > RES_GRFATR_CROPGRF(142)
#define LANGUAGE_CHINESE_SIMPLIFIED
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
void BorderDistancesToWord(const SvxBoxItem &rBox, const WordPageMargins &rMargins, WordBorderDistances &rDistances)
double ConvertBorderWidthToWord(SvxBorderLineStyle, double)
OString OutString(std::u16string_view rStr, rtl_TextEncoding eDestEnc, bool bUnicode=true)
bool StripMetafileHeader(const sal_uInt8 *&rpGraphicAry, sal_uInt64 &rSize)
OString OutHex(sal_uLong nHex, sal_uInt8 nLen)
OString WriteHex(const sal_uInt8 *pData, sal_uInt32 nSize, SvStream *pStream=nullptr, sal_uInt32 nLimit=64)
sal_uInt8 TransColToIco(const Color &rCol)
const sal_uInt8 ColumnBreak
const sal_uInt8 PageBreak
constexpr auto toTwips(N number, Length from)
constexpr Point convert(const Point &rPoint, o3tl::Length eFrom, o3tl::Length eTo)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
sal_uInt8 rtl_TextEncodingToWinCharsetRTF(OUString const &rFontName, OUString const &rAltName, rtl_TextEncoding eTextEncoding)
MSOffice appears to set the charset of unicode fonts to MS 932.
sal_uInt32 DateTime2DTTM(const DateTime &rDT)
Convert from DTTM to Writer's DateTime.
SwNoTextNode * GetNoTextNodeFromSwFrameFormat(const SwFrameFormat &rFormat)
Get the SwNoTextNode associated with a SwFrameFormat if here is one.
const T * HasItem(const ww8::PoolItems &rItems, sal_uInt16 eType)
tools::Polygon CorrectWordWrapPolygonForExport(const tools::PolyPolygon &rPolyPoly, const SwNoTextNode *pNd, bool bCorrectCrop)
Undo all scaling / move tricks of the wrap polygon done during import.
sal_uInt32 RGBToBGR(::Color nColour)
o3tl::strong_int< sal_Int32, struct Tag_SwNodeOffset > SwNodeOffset
static OString OutBorderLine(RtfExport const &rExport, const editeng::SvxBorderLine *pLine, const char *pStr, sal_uInt16 nDist, SvxShadowLocation eShadowLocation=SvxShadowLocation::NONE)
static OString ExportPICT(const SwFlyFrameFormat *pFlyFrameFormat, const Size &rOrig, const Size &rRendered, const Size &rMapped, const SwCropGrf &rCr, const char *pBLIPType, const sal_uInt8 *pGraphicAry, sal_uInt64 nSize, const RtfExport &rExport, SvStream *pStream=nullptr, bool bWritePicProp=true, const SwAttrSet *pAttrSet=nullptr)
static void lcl_AppendSP(OStringBuffer &rBuffer, std::string_view cName, std::u16string_view rValue, const RtfExport &rExport)
static OString OutTBLBorderLine(RtfExport const &rExport, const editeng::SvxBorderLine *pLine, const char *pStr)
#define OOO_STRING_SVTOOLS_RTF_SNEXT
#define OOO_STRING_SVTOOLS_RTF_HEADERY
#define OOO_STRING_SVTOOLS_RTF_TRQC
#define OOO_STRING_SVTOOLS_RTF_PICSCALEY
#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHLG
#define OOO_STRING_SVTOOLS_RTF_LINECONT
#define OOO_STRING_SVTOOLS_RTF_ULHWAVE
#define OOO_STRING_SVTOOLS_RTF_FOOTNOTE
#define OOO_STRING_SVTOOLS_RTF_EXPND
#define OOO_STRING_SVTOOLS_RTF_ULLDASH
#define OOO_STRING_SVTOOLS_RTF_F
#define OOO_STRING_SVTOOLS_RTF_TITLEPG
#define OOO_STRING_SVTOOLS_RTF_FLYPAGE
#define OOO_STRING_SVTOOLS_RTF_CELL
#define OOO_STRING_SVTOOLS_RTF_SOUTLVL
#define OOO_STRING_SVTOOLS_RTF_PGHSXN
#define OOO_STRING_SVTOOLS_RTF_NOLINE
#define OOO_STRING_SVTOOLS_RTF_BRDRTHTNLG
#define OOO_STRING_SVTOOLS_RTF_SHPBXCOLUMN
#define OOO_STRING_SVTOOLS_RTF_TRPADDFB
#define OOO_STRING_SVTOOLS_RTF_TX
#define OOO_STRING_SVTOOLS_RTF_CLVMRG
#define OOO_STRING_SVTOOLS_RTF_FLDRSLT
#define OOO_STRING_SVTOOLS_RTF_SCAPS
#define LO_STRING_SVTOOLS_RTF_SAAUTO
#define OOO_STRING_SVTOOLS_RTF_AF
#define OOO_STRING_SVTOOLS_RTF_OUTLINELEVEL
#define OOO_STRING_SVTOOLS_RTF_SECTD
#define OOO_STRING_SVTOOLS_RTF_CLPADFL
#define OOO_STRING_SVTOOLS_RTF_OUTL
#define OOO_STRING_SVTOOLS_RTF_MARGBSXN
#define OOO_STRING_SVTOOLS_RTF_HORZVERT
#define OOO_STRING_SVTOOLS_RTF_SAFTNNRUC
#define OOO_STRING_SVTOOLS_RTF_CLPADT
#define OOO_STRING_SVTOOLS_RTF_COLS
#define OOO_STRING_SVTOOLS_RTF_SAFTNNRLC
#define OOO_STRING_SVTOOLS_RTF_REVDTTM
#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDECOUNT
#define OOO_STRING_SVTOOLS_RTF_BRDRTH
#define OOO_STRING_SVTOOLS_RTF_SV
#define OOO_STRING_SVTOOLS_RTF_BRDREMBOSS
#define OOO_STRING_SVTOOLS_RTF_LEVELNFC
#define OOO_STRING_SVTOOLS_RTF_SFTNNAUC
#define OOO_STRING_SVTOOLS_RTF_CLPADFT
#define OOO_STRING_SVTOOLS_RTF_SUPER
#define OOO_STRING_SVTOOLS_RTF_TRPADDFL
#define OOO_STRING_SVTOOLS_RTF_BRDRB
#define OOO_STRING_SVTOOLS_RTF_PGBRDRL
#define OOO_STRING_SVTOOLS_RTF_TRQL
#define OOO_STRING_SVTOOLS_RTF_DELETED
#define OOO_STRING_SVTOOLS_RTF_LANGFE
#define OOO_STRING_SVTOOLS_RTF_ATNID
#define LO_STRING_SVTOOLS_RTF_MMATHPICT
#define OOO_STRING_SVTOOLS_RTF_AB
#define OOO_STRING_SVTOOLS_RTF_ASPALPHA
#define OOO_STRING_SVTOOLS_RTF_ATNDATE
#define OOO_STRING_SVTOOLS_RTF_TRQR
#define OOO_STRING_SVTOOLS_RTF_BRDRT
#define OOO_STRING_SVTOOLS_RTF_CLTXBTLR
#define OOO_STRING_SVTOOLS_RTF_SFTNNAR
#define OOO_STRING_SVTOOLS_RTF_HYPHPAR
#define OOO_STRING_SVTOOLS_RTF_KEEPN
#define OOO_STRING_SVTOOLS_RTF_CLPADFR
#define OOO_STRING_SVTOOLS_RTF_PGNLCLTR
#define OOO_STRING_SVTOOLS_RTF_ULTHDASHDD
#define OOO_STRING_SVTOOLS_RTF_CHCBPAT
#define OOO_STRING_SVTOOLS_RTF_ILVL
#define OOO_STRING_SVTOOLS_RTF_FFHPS
#define OOO_STRING_SVTOOLS_RTF_COLSR
#define OOO_STRING_SVTOOLS_RTF_ULTHD
#define OOO_STRING_SVTOOLS_RTF_SB
#define OOO_STRING_SVTOOLS_RTF_GUTTER
#define OOO_STRING_SVTOOLS_RTF_EMFBLIP
#define OOO_STRING_SVTOOLS_RTF_SHPRIGHT
#define OOO_STRING_SVTOOLS_RTF_SA
#define OOO_STRING_SVTOOLS_RTF_FLDLOCK
#define OOO_STRING_SVTOOLS_RTF_ACCCOMMA
#define LO_STRING_SVTOOLS_RTF_RTLGUTTER
#define OOO_STRING_SVTOOLS_RTF_CLVMGF
#define LO_STRING_SVTOOLS_RTF_LBR
#define OOO_STRING_SVTOOLS_RTF_LIST
#define OOO_STRING_SVTOOLS_RTF_LEVELNUMBERS
#define OOO_STRING_SVTOOLS_RTF_FAHANG
#define OOO_STRING_SVTOOLS_RTF_QC
#define OOO_STRING_SVTOOLS_RTF_SL
#define OOO_STRING_SVTOOLS_RTF_MARGTSXN
#define OOO_STRING_SVTOOLS_RTF_IMPR
#define OOO_STRING_SVTOOLS_RTF_LTRPAR
#define OOO_STRING_SVTOOLS_RTF_BRDRW
#define OOO_STRING_SVTOOLS_RTF_B
#define OOO_STRING_SVTOOLS_RTF_S
#define OOO_STRING_SVTOOLS_RTF_BRDRHAIR
#define OOO_STRING_SVTOOLS_RTF_CHFTN
#define OOO_STRING_SVTOOLS_RTF_ULDASH
#define OOO_STRING_SVTOOLS_RTF_FLYMAINCNT
#define OOO_STRING_SVTOOLS_RTF_WIDCTLPAR
#define OOO_STRING_SVTOOLS_RTF_AI
#define OOO_STRING_SVTOOLS_RTF_DBCH
#define LO_STRING_SVTOOLS_RTF_TPVPARA
#define OOO_STRING_SVTOOLS_RTF_FAROMAN
#define OOO_STRING_SVTOOLS_RTF_FFL
#define OOO_STRING_SVTOOLS_RTF_CLPADB
#define OOO_STRING_SVTOOLS_RTF_KEEP
#define OOO_STRING_SVTOOLS_RTF_ACCNONE
#define OOO_STRING_SVTOOLS_RTF_REVAUTHDEL
#define OOO_STRING_SVTOOLS_RTF_UPDNPROP
#define OOO_STRING_SVTOOLS_RTF_LEVELFOLLOW
#define OOO_STRING_SVTOOLS_RTF_PGNSTARTS
#define OOO_STRING_SVTOOLS_RTF_TLTH
#define OOO_STRING_SVTOOLS_RTF_LINEBETCOL
#define OOO_STRING_SVTOOLS_RTF_CF
#define OOO_STRING_SVTOOLS_RTF_RTLPAR
#define OOO_STRING_SVTOOLS_RTF_HIGHLIGHT
#define OOO_STRING_SVTOOLS_RTF_TQC
#define OOO_STRING_SVTOOLS_RTF_ULDASHD
#define OOO_STRING_SVTOOLS_RTF_FFNAME
#define OOO_STRING_SVTOOLS_RTF_LOCH
#define OOO_STRING_SVTOOLS_RTF_BRDRCF
#define OOO_STRING_SVTOOLS_RTF_KERNING
#define OOO_STRING_SVTOOLS_RTF_FLYANCHOR
#define OOO_STRING_SVTOOLS_RTF_ULTHDASH
#define OOO_STRING_SVTOOLS_RTF_REVDTTMDEL
#define OOO_STRING_SVTOOLS_RTF_FI
#define OOO_STRING_SVTOOLS_RTF_PGNLCRM
#define OOO_STRING_SVTOOLS_RTF_SHAD
#define OOO_STRING_SVTOOLS_RTF_BRDROUTSET
#define OOO_STRING_SVTOOLS_RTF_BRDRS
#define OOO_STRING_SVTOOLS_RTF_FROMAN
#define OOO_STRING_SVTOOLS_RTF_FFOWNSTAT
#define LO_STRING_SVTOOLS_RTF_BRDRSH
#define OOO_STRING_SVTOOLS_RTF_FS
#define OOO_STRING_SVTOOLS_RTF_LEVELTEXT
#define OOO_STRING_SVTOOLS_RTF_SHPBXIGNORE
#define OOO_STRING_SVTOOLS_RTF_NESTCELL
#define OOO_STRING_SVTOOLS_RTF_CLTXTBRL
#define OOO_STRING_SVTOOLS_RTF_RIN
#define OOO_STRING_SVTOOLS_RTF_LISTTEXT
#define OOO_STRING_SVTOOLS_RTF_TRPADDB
#define OOO_STRING_SVTOOLS_RTF_CS
#define OOO_STRING_SVTOOLS_RTF_FDECOR
#define OOO_STRING_SVTOOLS_RTF_ACCCIRCLE
#define OOO_STRING_SVTOOLS_RTF_SP
#define OOO_STRING_SVTOOLS_RTF_ACCUNDERDOT
#define OOO_STRING_SVTOOLS_RTF_ULD
#define OOO_STRING_SVTOOLS_RTF_SUB
#define OOO_STRING_SVTOOLS_RTF_LEVELSTARTAT
#define OOO_STRING_SVTOOLS_RTF_SHP
#define OOO_STRING_SVTOOLS_RTF_FFHASLISTBOX
#define OOO_STRING_SVTOOLS_RTF_NESTROW
#define OOO_STRING_SVTOOLS_RTF_TLEQ
#define OOO_STRING_SVTOOLS_RTF_LINEX
#define OOO_STRING_SVTOOLS_RTF_SFTNNRLC
#define OOO_STRING_SVTOOLS_RTF_CLBRDRR
#define OOO_STRING_SVTOOLS_RTF_STRIKE
#define OOO_STRING_SVTOOLS_RTF_RTLSECT
#define LO_STRING_SVTOOLS_RTF_TPOSYB
#define OOO_STRING_SVTOOLS_RTF_PICWGOAL
#define OOO_STRING_SVTOOLS_RTF_CLVERTALC
#define OOO_STRING_SVTOOLS_RTF_LS
#define OOO_STRING_SVTOOLS_RTF_UL
#define OOO_STRING_SVTOOLS_RTF_SAFTNNCHI
#define OOO_STRING_SVTOOLS_RTF_SFTNNALC
#define OOO_STRING_SVTOOLS_RTF_BRSP
#define OOO_STRING_SVTOOLS_RTF_V
#define OOO_STRING_SVTOOLS_RTF_TQR
#define OOO_STRING_SVTOOLS_RTF_LIN
#define LO_STRING_SVTOOLS_RTF_SBAUTO
#define OOO_STRING_SVTOOLS_RTF_BRDRDASHDD
#define OOO_STRING_SVTOOLS_RTF_QL
#define OOO_STRING_SVTOOLS_RTF_DATAFIELD
#define OOO_STRING_SVTOOLS_RTF_PAR
#define OOO_STRING_SVTOOLS_RTF_SBASEDON
#define OOO_STRING_SVTOOLS_RTF_BRDRDOT
#define OOO_STRING_SVTOOLS_RTF_PAGEBB
#define OOO_STRING_SVTOOLS_RTF_ULTHDASHD
#define OOO_STRING_SVTOOLS_RTF_ULTHLDASH
#define OOO_STRING_SVTOOLS_RTF_SECT
#define OOO_STRING_SVTOOLS_RTF_SAFTNNAR
#define OOO_STRING_SVTOOLS_RTF_FSCRIPT
#define OOO_STRING_SVTOOLS_RTF_BKMKEND
#define OOO_STRING_SVTOOLS_RTF_PICCROPL
#define OOO_STRING_SVTOOLS_RTF_CONTEXTUALSPACE
#define OOO_STRING_SVTOOLS_RTF_BOX
#define OOO_STRING_SVTOOLS_RTF_FFTYPE
#define OOO_STRING_SVTOOLS_RTF_ULTH
#define OOO_STRING_SVTOOLS_RTF_PGNRESTART
#define OOO_STRING_SVTOOLS_RTF_COLNO
#define OOO_STRING_SVTOOLS_RTF_PGWSXN
#define OOO_STRING_SVTOOLS_RTF_FFSTATTEXT
#define OOO_STRING_SVTOOLS_RTF_LANG
#define OOO_STRING_SVTOOLS_RTF_ANIMTEXT
#define OOO_STRING_SVTOOLS_RTF_QJ
#define OOO_STRING_SVTOOLS_RTF_LTRROW
#define OOO_STRING_SVTOOLS_RTF_COLSX
#define OOO_STRING_SVTOOLS_RTF_FCHARSET
#define OOO_STRING_SVTOOLS_RTF_CLPADFB
#define OOO_STRING_SVTOOLS_RTF_FTNALT
#define LO_STRING_SVTOOLS_RTF_TPOSYC
#define OOO_STRING_SVTOOLS_RTF_COLUMN
#define LO_STRING_SVTOOLS_RTF_TDFRMTXTTOP
#define OOO_STRING_SVTOOLS_RTF_ATRFEND
#define OOO_STRING_SVTOOLS_RTF_PICW
#define OOO_STRING_SVTOOLS_RTF_STRIKED
#define OOO_STRING_SVTOOLS_RTF_CELLX
#define OOO_STRING_SVTOOLS_RTF_TRRH
#define OOO_STRING_SVTOOLS_RTF_FOOTERY
#define OOO_STRING_SVTOOLS_RTF_SHPINST
#define OOO_STRING_SVTOOLS_RTF_SAFTNNAUC
#define OOO_STRING_SVTOOLS_RTF_MARGRSXN
#define OOO_STRING_SVTOOLS_RTF_PICSCALEX
#define LO_STRING_SVTOOLS_RTF_TPVMRG
#define OOO_STRING_SVTOOLS_RTF_FLYCNTNT
#define OOO_STRING_SVTOOLS_RTF_BRDRR
#define OOO_STRING_SVTOOLS_RTF_CLBRDRT
#define OOO_STRING_SVTOOLS_RTF_SHPLEFT
#define OOO_STRING_SVTOOLS_RTF_QR
#define OOO_STRING_SVTOOLS_RTF_SHPWR
#define LO_STRING_SVTOOLS_RTF_TPOSYT
#define OOO_STRING_SVTOOLS_RTF_JPEGBLIP
#define OOO_STRING_SVTOOLS_RTF_FFOWNHELP
#define LO_STRING_SVTOOLS_RTF_TPOSY
#define OOO_STRING_SVTOOLS_RTF_PGBRDROPT
#define OOO_STRING_SVTOOLS_RTF_SBKEVEN
#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHMG
#define OOO_STRING_SVTOOLS_RTF_LTRSECT
#define OOO_STRING_SVTOOLS_RTF_BKMKSTART
#define OOO_STRING_SVTOOLS_RTF_ATRFSTART
#define OOO_STRING_SVTOOLS_RTF_SHPBOTTOM
#define OOO_STRING_SVTOOLS_RTF_BRDRNONE
#define OOO_STRING_SVTOOLS_RTF_ROW
#define OOO_STRING_SVTOOLS_RTF_SBKCOL
#define OOO_STRING_SVTOOLS_RTF_PGNUCRM
#define OOO_STRING_SVTOOLS_RTF_BRDRL
#define OOO_STRING_SVTOOLS_RTF_PGNDEC
#define OOO_STRING_SVTOOLS_RTF_CAPS
#define OOO_STRING_SVTOOLS_RTF_TRLEFT
#define OOO_STRING_SVTOOLS_RTF_FLDINST
#define OOO_STRING_SVTOOLS_RTF_INTBL
#define OOO_STRING_SVTOOLS_RTF_PICH
#define OOO_STRING_SVTOOLS_RTF_TROWD
#define OOO_STRING_SVTOOLS_RTF_TQDEC
#define OOO_STRING_SVTOOLS_RTF_TRPADDFT
#define OOO_STRING_SVTOOLS_RTF_REVISED
#define OOO_STRING_SVTOOLS_RTF_TRPADDFR
#define OOO_STRING_SVTOOLS_RTF_PICCROPR
#define OOO_STRING_SVTOOLS_RTF_SHPTOP
#define OOO_STRING_SVTOOLS_RTF_DEFTAB
#define OOO_STRING_SVTOOLS_RTF_CHATN
#define OOO_STRING_SVTOOLS_RTF_WMETAFILE
#define OOO_STRING_SVTOOLS_RTF_HICH
#define OOO_STRING_SVTOOLS_RTF_LTRCH
#define OOO_STRING_SVTOOLS_RTF_SAUTOUPD
#define OOO_STRING_SVTOOLS_RTF_BRDRTHTNSG
#define OOO_STRING_SVTOOLS_RTF_DN
#define OOO_STRING_SVTOOLS_RTF_FACENTER
#define OOO_STRING_SVTOOLS_RTF_ANNOTATION
#define OOO_STRING_SVTOOLS_RTF_EXPNDTW
#define OOO_STRING_SVTOOLS_RTF_TRPADDL
#define OOO_STRING_SVTOOLS_RTF_LISTLEVEL
#define OOO_STRING_SVTOOLS_RTF_FAAUTO
#define LO_STRING_SVTOOLS_RTF_TPVPG
#define OOO_STRING_SVTOOLS_RTF_CLVERTALT
#define OOO_STRING_SVTOOLS_RTF_STEXTFLOW
#define OOO_STRING_SVTOOLS_RTF_SHPTXT
#define OOO_STRING_SVTOOLS_RTF_CHARSCALEX
#define LO_STRING_SVTOOLS_RTF_LEVELPICTURE
#define LO_STRING_SVTOOLS_RTF_TPOSXL
#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDE
#define OOO_STRING_SVTOOLS_RTF_CBPAT
#define OOO_STRING_SVTOOLS_RTF_SFTNNCHI
#define LO_STRING_SVTOOLS_RTF_TPOSX
#define LO_STRING_SVTOOLS_RTF_TPHMRG
#define LO_STRING_SVTOOLS_RTF_MMATH
#define OOO_STRING_SVTOOLS_RTF_BRDRDASHD
#define OOO_STRING_SVTOOLS_RTF_FIELD
#define OOO_STRING_SVTOOLS_RTF_CLBRDRB
#define OOO_STRING_SVTOOLS_RTF_ACCDOT
#define LO_STRING_SVTOOLS_RTF_TDFRMTXTRIGHT
#define OOO_STRING_SVTOOLS_RTF_RTLCH
#define OOO_STRING_SVTOOLS_RTF_STYLESHEET
#define OOO_STRING_SVTOOLS_RTF_BRDRINSET
#define OOO_STRING_SVTOOLS_RTF_UP
#define OOO_STRING_SVTOOLS_RTF_MARGLSXN
#define OOO_STRING_SVTOOLS_RTF_REVAUTH
#define OOO_STRING_SVTOOLS_RTF_FPRQ
#define OOO_STRING_SVTOOLS_RTF_FFRES
#define OOO_STRING_SVTOOLS_RTF_ULULDBWAVE
#define OOO_STRING_SVTOOLS_RTF_SN
#define OOO_STRING_SVTOOLS_RTF_PICCROPT
#define OOO_STRING_SVTOOLS_RTF_PICHGOAL
#define OOO_STRING_SVTOOLS_RTF_SHPZ
#define OOO_STRING_SVTOOLS_RTF_CLPADL
#define OOO_STRING_SVTOOLS_RTF_NONESTTABLES
#define OOO_STRING_SVTOOLS_RTF_AFS
#define OOO_STRING_SVTOOLS_RTF_IGNORE
#define OOO_STRING_SVTOOLS_RTF_FAVAR
#define OOO_STRING_SVTOOLS_RTF_PICPROP
#define OOO_STRING_SVTOOLS_RTF_COLORTBL
#define OOO_STRING_SVTOOLS_RTF_LISTID
#define OOO_STRING_SVTOOLS_RTF_SHPWRK
#define OOO_STRING_SVTOOLS_RTF_NOWIDCTLPAR
#define OOO_STRING_SVTOOLS_RTF_SBKNONE
#define OOO_STRING_SVTOOLS_RTF_TLUL
#define LO_STRING_SVTOOLS_RTF_TPHPG
#define OOO_STRING_SVTOOLS_RTF_SFTNNRUC
#define OOO_STRING_SVTOOLS_RTF_BRDRDASHSM
#define LO_STRING_SVTOOLS_RTF_TPOSXR
#define OOO_STRING_SVTOOLS_RTF_RTLROW
#define LO_STRING_SVTOOLS_RTF_TPOSXC
#define OOO_STRING_SVTOOLS_RTF_CLPADR
#define OOO_STRING_SVTOOLS_RTF_FSWISS
#define OOO_STRING_SVTOOLS_RTF_LINESTARTS
#define OOO_STRING_SVTOOLS_RTF_FMODERN
#define OOO_STRING_SVTOOLS_RTF_PGBRDRB
#define OOO_STRING_SVTOOLS_RTF_SECTUNLOCKED
#define OOO_STRING_SVTOOLS_RTF_LINEMOD
#define OOO_STRING_SVTOOLS_RTF_LISTTEMPLATEID
#define OOO_STRING_SVTOOLS_RTF_NONSHPPICT
#define OOO_STRING_SVTOOLS_RTF_PLAIN
#define LO_STRING_SVTOOLS_RTF_TDFRMTXTBOTTOM
#define OOO_STRING_SVTOOLS_RTF_SHPPICT
#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHSG
#define OOO_STRING_SVTOOLS_RTF_SHPBYIGNORE
#define OOO_STRING_SVTOOLS_RTF_ITAP
#define OOO_STRING_SVTOOLS_RTF_FALT
#define OOO_STRING_SVTOOLS_RTF_SBKPAGE
#define OOO_STRING_SVTOOLS_RTF_CLVERTALB
#define OOO_STRING_SVTOOLS_RTF_QD
#define OOO_STRING_SVTOOLS_RTF_BRDRDB
#define OOO_STRING_SVTOOLS_RTF_ULDB
#define OOO_STRING_SVTOOLS_RTF_CLCBPAT
#define OOO_STRING_SVTOOLS_RTF_COLW
#define LO_STRING_SVTOOLS_RTF_TPHCOL
#define OOO_STRING_SVTOOLS_RTF_FFHELPTEXT
#define OOO_STRING_SVTOOLS_RTF_BRDRDASH
#define OOO_STRING_SVTOOLS_RTF_ULWAVE
#define LO_STRING_SVTOOLS_RTF_TDFRMTXTLEFT
#define OOO_STRING_SVTOOLS_RTF_PICCROPB
#define OOO_STRING_SVTOOLS_RTF_SHPBYPARA
#define OOO_STRING_SVTOOLS_RTF_FORMFIELD
#define OOO_STRING_SVTOOLS_RTF_ULC
#define OOO_STRING_SVTOOLS_RTF_FFDEFRES
#define OOO_STRING_SVTOOLS_RTF_CHBRDR
#define OOO_STRING_SVTOOLS_RTF_RI
#define OOO_STRING_SVTOOLS_RTF_BRDRENGRAVE
#define OOO_STRING_SVTOOLS_RTF_CLBRDRL
#define OOO_STRING_SVTOOLS_RTF_TRPADDT
#define OOO_STRING_SVTOOLS_RTF_SLMULT
#define OOO_STRING_SVTOOLS_RTF_ULNONE
#define OOO_STRING_SVTOOLS_RTF_PICT
#define OOO_STRING_SVTOOLS_RTF_LI
#define OOO_STRING_SVTOOLS_RTF_TLDOT
#define OOO_STRING_SVTOOLS_RTF_PNGBLIP
#define OOO_STRING_SVTOOLS_RTF_TRPADDR
#define OOO_STRING_SVTOOLS_RTF_SBKODD
#define OOO_STRING_SVTOOLS_RTF_EMBO
#define OOO_STRING_SVTOOLS_RTF_BRDRTHTNMG
#define OOO_STRING_SVTOOLS_RTF_PGNUCLTR
#define OOO_STRING_SVTOOLS_RTF_I
#define OOO_STRING_SVTOOLS_RTF_FNIL
#define OOO_STRING_SVTOOLS_RTF_ATNAUTHOR
#define OOO_STRING_SVTOOLS_RTF_PGBRDRR
#define OOO_STRING_SVTOOLS_RTF_TAB
#define OOO_STRING_SVTOOLS_RTF_TWOINONE
#define OOO_STRING_SVTOOLS_RTF_PARD
#define OOO_STRING_SVTOOLS_RTF_ATNREF
#define OOO_STRING_SVTOOLS_RTF_ALANG
#define OOO_STRING_SVTOOLS_RTF_TRKEEP
#define OOO_STRING_SVTOOLS_RTF_NESTTABLEPROPRS
#define OOO_STRING_SVTOOLS_RTF_LEVELJC
#define OOO_STRING_SVTOOLS_RTF_ULW
#define OOO_STRING_SVTOOLS_RTF_SAFTNNALC
#define OOO_STRING_SVTOOLS_RTF_PGBRDRT
#define OOO_STRING_SVTOOLS_RTF_ULDASHDD
SVX_NUM_IROHA_FULLWIDTH_JA
SVX_NUM_FULL_WIDTH_ARABIC
SVX_NUM_CHARS_LOWER_LETTER_N
SVX_NUM_CHARS_LOWER_LETTER
SVX_NUM_CHARS_UPPER_LETTER
SVX_NUM_NUMBER_TRADITIONAL_JA
SVX_NUM_NUMBER_UPPER_ZH_TW
SVX_NUM_IROHA_HALFWIDTH_JA
SVX_NUM_CHARS_UPPER_LETTER_N
constexpr sal_uInt8 MAXLEVEL
OUString FieldString(ww::eField eIndex)