mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-17 05:16:04 +08:00
Compare commits
10 Commits
core-linux
...
core-linux
| Author | SHA1 | Date | |
|---|---|---|---|
| eb3ba8c42e | |||
| dec099b19b | |||
| 21762360ac | |||
| 563fe88842 | |||
| 0e085fbb13 | |||
| ed409e745a | |||
| 4bc58482b3 | |||
| 89ee039a05 | |||
| 5d5b1202c7 | |||
| c7646fd813 |
@ -90,6 +90,11 @@ void odp_conversion_context::end_document()
|
||||
{
|
||||
odf_conversion_context::end_document();
|
||||
}
|
||||
|
||||
size_t odp_conversion_context::get_pages_count()
|
||||
{
|
||||
return root_presentation_->pages_.size();
|
||||
}
|
||||
void odp_conversion_context::start_slide()
|
||||
{
|
||||
slide_context_.set_styles_context(styles_context());
|
||||
|
||||
@ -52,6 +52,8 @@ public:
|
||||
void start_slide();
|
||||
void end_slide();
|
||||
|
||||
size_t get_pages_count();
|
||||
|
||||
void start_master_slide(std::wstring name);
|
||||
void end_master_slide();
|
||||
|
||||
|
||||
@ -1329,8 +1329,17 @@ void PptxConverter::convert_slide(PPTX::Logic::CSld *oox_slide, PPTX::Logic::TxS
|
||||
if (current_theme && current_clrMap)
|
||||
current_theme->SetColorMap(*current_clrMap);
|
||||
|
||||
std::wstring page_name;
|
||||
if (oox_slide->attrName.IsInit())
|
||||
odp_context->current_slide().set_page_name(oox_slide->attrName.get());
|
||||
page_name = oox_slide->attrName.get();
|
||||
|
||||
|
||||
if (page_name.empty())
|
||||
{
|
||||
if (type == Slide)
|
||||
page_name = L"Slide_" + std::to_wstring(odp_context->get_pages_count());
|
||||
}
|
||||
odp_context->current_slide().set_page_name(page_name);
|
||||
|
||||
if (type != Notes && type != NotesMaster)
|
||||
{
|
||||
|
||||
@ -486,14 +486,14 @@ namespace PPTX
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
nullable<PrstTxWarp> prstTxWarp;
|
||||
TextFit Fit;
|
||||
nullable<Scene3d> scene3d;
|
||||
nullable_int flatTx;
|
||||
nullable<Sp3d> sp3d;
|
||||
|
||||
// Attributes
|
||||
// Attributes
|
||||
nullable_limit<Limit::TextAnchor> anchor;
|
||||
nullable_bool anchorCtr;
|
||||
nullable_int bIns;
|
||||
@ -513,9 +513,8 @@ namespace PPTX
|
||||
nullable_limit<Limit::TextVerticalType> vert;
|
||||
nullable_limit<Limit::VertOverflow> vertOverflow;
|
||||
nullable_limit<Limit::TextWrap> wrap;
|
||||
//private:
|
||||
public:
|
||||
mutable std::wstring m_namespace;
|
||||
|
||||
mutable std::wstring m_namespace;
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds()
|
||||
{
|
||||
|
||||
@ -162,7 +162,17 @@ namespace PPTX
|
||||
else if(parentFileIs<TableStyles>())
|
||||
RGB = parentFileAs<TableStyles>().GetARGBFromMap(str);
|
||||
else if(parentFileIs<Theme>())
|
||||
RGB = parentFileAs<Theme>().GetARGBFromMap(str);
|
||||
{
|
||||
Theme & theme = parentFileAs<Theme>();
|
||||
if (theme.isMapPresent())
|
||||
{
|
||||
RGB = parentFileAs<Theme>().GetARGBFromMap(str);
|
||||
}
|
||||
else
|
||||
{
|
||||
RGB = parentFileAs<Theme>().GetABGRFromScheme(str);
|
||||
}
|
||||
}
|
||||
else if(parentFileIs<Presentation>())
|
||||
RGB = parentFileAs<Presentation>().GetARGBFromMap(str);
|
||||
//{
|
||||
|
||||
@ -40,7 +40,6 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
|
||||
class SolidFill : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
@ -127,10 +126,8 @@ namespace PPTX
|
||||
if(Color.is_init())
|
||||
fill.Color = Color;
|
||||
}
|
||||
public:
|
||||
UniColor Color;
|
||||
|
||||
std::wstring m_namespace;
|
||||
UniColor Color;
|
||||
std::wstring m_namespace;
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds()
|
||||
{
|
||||
|
||||
@ -140,14 +140,11 @@ namespace PPTX
|
||||
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
UniColor Color;
|
||||
nullable_limit<Limit::FontStyleIndex> idx;
|
||||
|
||||
public:
|
||||
UniColor Color;
|
||||
// Attributes
|
||||
nullable_limit<Limit::FontStyleIndex> idx;
|
||||
//private:
|
||||
public:
|
||||
std::wstring m_name;
|
||||
std::wstring m_name;
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds()
|
||||
{
|
||||
|
||||
@ -324,15 +324,18 @@ namespace PPTX
|
||||
}
|
||||
DWORD GetARGBFromMap(const std::wstring& str)const
|
||||
{
|
||||
return GetARGBFromScheme(m_map->GetColorSchemeIndex(str));
|
||||
if (m_map) return GetARGBFromScheme(m_map->GetColorSchemeIndex(str));
|
||||
else return 0;
|
||||
}
|
||||
DWORD GetBGRAFromMap(const std::wstring& str)const
|
||||
{
|
||||
return GetBGRAFromScheme(m_map->GetColorSchemeIndex(str));
|
||||
if (m_map) return GetBGRAFromScheme(m_map->GetColorSchemeIndex(str));
|
||||
else return 0;
|
||||
}
|
||||
DWORD GetABGRFromMap(const std::wstring& str)const
|
||||
{
|
||||
return GetABGRFromScheme(m_map->GetColorSchemeIndex(str));
|
||||
if (m_map) return GetABGRFromScheme(m_map->GetColorSchemeIndex(str));
|
||||
else return 0;
|
||||
}
|
||||
void GetLineStyle(int number, Logic::Ln& lnStyle)const
|
||||
{
|
||||
@ -357,6 +360,7 @@ namespace PPTX
|
||||
|
||||
void SetColorMap(const Logic::ClrMap& map){m_map = ↦};
|
||||
|
||||
bool isMapPresent() {return (m_map != NULL);}
|
||||
private:
|
||||
Logic::ClrMap const* m_map;
|
||||
};
|
||||
|
||||
@ -1168,26 +1168,27 @@ bool RtfTableCellPropsCommand::ExecuteCommand(RtfDocument& oDocument, RtfReader&
|
||||
|
||||
COMMAND_RTF_BOOL( "clmgf", cellProps->m_bMergeFirst, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "clmrg", cellProps->m_bMerge, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "clvmgf", cellProps->m_bMergeFirstVertical, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "clvmrg", cellProps->m_bMergeVertical, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "clFitText", cellProps->m_bFitText, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "clvmgf", cellProps->m_bMergeFirstVertical, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "clvmrg", cellProps->m_bMergeVertical, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "clFitText", cellProps->m_bFitText, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "clNoWrap", cellProps->m_bNoWrap, sCommand, hasParameter, parameter )
|
||||
|
||||
COMMAND_RTF_INT ( "clpadfl", cellProps->m_nIsPaddingLeft, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clpadl", cellProps->m_nPaddingLeft, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clpadft", cellProps->m_nIsPaddingTop, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clpadt", cellProps->m_nPaddingTop, sCommand, hasParameter, parameter )
|
||||
//https://www.office-forums.com/threads/rtf-file-weirdness-clpadt-vs-clpadl.2163500/
|
||||
COMMAND_RTF_INT ( "clpadft", cellProps->m_nIsPaddingLeft, sCommand, hasParameter, parameter ) //перепутаны top & left
|
||||
COMMAND_RTF_INT ( "clpadt", cellProps->m_nPaddingLeft, sCommand, hasParameter, parameter ) //перепутаны top & left
|
||||
COMMAND_RTF_INT ( "clpadfl", cellProps->m_nIsPaddingTop, sCommand, hasParameter, parameter ) //перепутаны top & left
|
||||
COMMAND_RTF_INT ( "clpadl", cellProps->m_nPaddingTop, sCommand, hasParameter, parameter ) //перепутаны top & left
|
||||
COMMAND_RTF_INT ( "clpadfr", cellProps->m_nIsPaddingRight, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clpadr", cellProps->m_nPaddingRight, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clpadr", cellProps->m_nPaddingRight, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clpadfb", cellProps->m_nIsPaddingBottom, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clpadb", cellProps->m_nPaddingBottom, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspfl", cellProps->m_nIsSpacingLeft, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clpadb", cellProps->m_nPaddingBottom, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspfl", cellProps->m_nIsSpacingLeft, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspl", cellProps->m_nSpacingLeft, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspft", cellProps->m_nIsSpacingTop, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspft", cellProps->m_nIsSpacingTop, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspt", cellProps->m_nSpacingTop, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspfr", cellProps->m_nIsSpacingRight, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspfr", cellProps->m_nIsSpacingRight, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspr", cellProps->m_nSpacingRight, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspfb", cellProps->m_nIsSpacingBottom, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspfb", cellProps->m_nIsSpacingBottom, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "clspb", cellProps->m_nSpacingBottom, sCommand, hasParameter, parameter )
|
||||
|
||||
else if ( "clftsWidth" == sCommand )
|
||||
@ -1196,10 +1197,12 @@ bool RtfTableCellPropsCommand::ExecuteCommand(RtfDocument& oDocument, RtfReader&
|
||||
{
|
||||
switch( parameter )
|
||||
{
|
||||
case 0:cellProps->m_eWidthUnits = mu_none;break;
|
||||
case 1:cellProps->m_eWidthUnits = mu_Auto;break;
|
||||
case 2:cellProps->m_eWidthUnits = mu_Percent;break;
|
||||
case 3:cellProps->m_eWidthUnits = mu_Twips;break;
|
||||
case 0:cellProps->m_eWidthUnits = mu_none; break;
|
||||
case 1:cellProps->m_eWidthUnits = mu_Auto; break;
|
||||
case 2:cellProps->m_eWidthUnits = mu_Percent; break;
|
||||
case 3:cellProps->m_eWidthUnits = mu_Twips; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1263,10 +1266,12 @@ bool RtfTableRowPropsCommand::ExecuteCommand(RtfDocument& oDocument, RtfReader&
|
||||
{
|
||||
switch( parameter )
|
||||
{
|
||||
case 0: rowProps->m_eMUWidth = mu_none; break;
|
||||
case 1: rowProps->m_eMUWidth = mu_Auto; break;
|
||||
case 2: rowProps->m_eMUWidth = mu_Percent; break;
|
||||
case 3: rowProps->m_eMUWidth = mu_Twips; break;
|
||||
case 0: rowProps->m_eMUWidth = mu_none; break;
|
||||
case 1: rowProps->m_eMUWidth = mu_Auto; break;
|
||||
case 2: rowProps->m_eMUWidth = mu_Percent; break;
|
||||
case 3: rowProps->m_eMUWidth = mu_Twips; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1277,10 +1282,12 @@ bool RtfTableRowPropsCommand::ExecuteCommand(RtfDocument& oDocument, RtfReader&
|
||||
{
|
||||
switch( parameter )
|
||||
{
|
||||
case 0: rowProps->m_eMUStartInvCell = mu_none; break;
|
||||
case 1: rowProps->m_eMUStartInvCell = mu_Auto; break;
|
||||
case 2: rowProps->m_eMUStartInvCell = mu_Percent; break;
|
||||
case 3: rowProps->m_eMUStartInvCell = mu_Twips; break;
|
||||
case 0: rowProps->m_eMUStartInvCell = mu_none; break;
|
||||
case 1: rowProps->m_eMUStartInvCell = mu_Auto; break;
|
||||
case 2: rowProps->m_eMUStartInvCell = mu_Percent; break;
|
||||
case 3: rowProps->m_eMUStartInvCell = mu_Twips; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1291,19 +1298,21 @@ bool RtfTableRowPropsCommand::ExecuteCommand(RtfDocument& oDocument, RtfReader&
|
||||
{
|
||||
switch( parameter )
|
||||
{
|
||||
case 0: rowProps->m_eMUEndInvCell = mu_none; break;
|
||||
case 1: rowProps->m_eMUEndInvCell = mu_Auto; break;
|
||||
case 2: rowProps->m_eMUEndInvCell = mu_Percent; break;
|
||||
case 3: rowProps->m_eMUEndInvCell = mu_Twips; break;
|
||||
case 0: rowProps->m_eMUEndInvCell = mu_none; break;
|
||||
case 1: rowProps->m_eMUEndInvCell = mu_Auto; break;
|
||||
case 2: rowProps->m_eMUEndInvCell = mu_Percent; break;
|
||||
case 3: rowProps->m_eMUEndInvCell = mu_Twips; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
COMMAND_RTF_INT ( "trwWidthA", rowProps->m_nWidthEndInvCell, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "taprtl", rowProps->m_bBidi, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "taprtl", rowProps->m_bBidi, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "trautofit", rowProps->m_nAutoFit, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "trgaph", rowProps->m_nGraph, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "tblind", rowProps->nTableIndent, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "tblindtype", rowProps->nTableIndentUnits, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "trgaph", rowProps->m_nGraph, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "tblind", rowProps->nTableIndent, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "tblindtype", rowProps->nTableIndentUnits, sCommand, hasParameter, parameter )
|
||||
|
||||
COMMAND_RTF_INT ( "tdfrmtxtLeft", rowProps->m_nWrapLeft, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "tdfrmtxtRight", rowProps->m_nWrapRight, sCommand, hasParameter, parameter )
|
||||
@ -1311,26 +1320,26 @@ bool RtfTableRowPropsCommand::ExecuteCommand(RtfDocument& oDocument, RtfReader&
|
||||
COMMAND_RTF_INT ( "tdfrmtxtBottom", rowProps->m_nWrapBottom, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_BOOL( "tabsnoovrlp", rowProps->m_bOverlap, sCommand, hasParameter, parameter )
|
||||
|
||||
COMMAND_RTF_INT ( "tphmrg", rowProps->m_eHRef, sCommand, true, RtfTableProperty::hr_phmrg )
|
||||
COMMAND_RTF_INT ( "tphmrg", rowProps->m_eHRef, sCommand, true, RtfTableProperty::hr_phmrg )
|
||||
COMMAND_RTF_INT ( "tphpg", rowProps->m_eHRef, sCommand, true, RtfTableProperty::hr_phpg )
|
||||
COMMAND_RTF_INT ( "tphcol", rowProps->m_eHRef, sCommand, true, RtfTableProperty::hr_phcol )
|
||||
COMMAND_RTF_INT ( "tphcol", rowProps->m_eHRef, sCommand, true, RtfTableProperty::hr_phcol )
|
||||
COMMAND_RTF_INT ( "tposx", rowProps->m_nHPos, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "tposnegx", rowProps->m_nHPos, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "tposxc", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxc )
|
||||
COMMAND_RTF_INT ( "tposxi", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxi )
|
||||
COMMAND_RTF_INT ( "tposxo", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxo )
|
||||
COMMAND_RTF_INT ( "tposxl", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxl )
|
||||
COMMAND_RTF_INT ( "tposxr", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxr )
|
||||
COMMAND_RTF_INT ( "tposxc", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxc )
|
||||
COMMAND_RTF_INT ( "tposxi", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxi )
|
||||
COMMAND_RTF_INT ( "tposxo", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxo )
|
||||
COMMAND_RTF_INT ( "tposxl", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxl )
|
||||
COMMAND_RTF_INT ( "tposxr", rowProps->m_eHPos, sCommand, true, RtfTableProperty::hp_posxr )
|
||||
|
||||
COMMAND_RTF_INT ( "tpvmrg", rowProps->m_eVRef, sCommand, true, RtfTableProperty::vr_pvmrg )
|
||||
COMMAND_RTF_INT ( "tpvmrg", rowProps->m_eVRef, sCommand, true, RtfTableProperty::vr_pvmrg )
|
||||
COMMAND_RTF_INT ( "tpvpg", rowProps->m_eVRef, sCommand, true, RtfTableProperty::vr_pvpg )
|
||||
COMMAND_RTF_INT ( "tpvpara", rowProps->m_eVRef, sCommand, true, RtfTableProperty::vr_pvpara )
|
||||
COMMAND_RTF_INT ( "tposy", rowProps->m_nVPos, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "tposnegy", rowProps->m_nVPos, sCommand, hasParameter, parameter )
|
||||
COMMAND_RTF_INT ( "tposyt", rowProps->m_eVPos, sCommand, true, RtfTableProperty::vp_posyt )
|
||||
COMMAND_RTF_INT ( "tposyt", rowProps->m_eVPos, sCommand, true, RtfTableProperty::vp_posyt )
|
||||
COMMAND_RTF_INT ( "tposyil", rowProps->m_eVPos, sCommand, true, RtfTableProperty::vp_posyil )
|
||||
COMMAND_RTF_INT ( "tposyb", rowProps->m_eVPos, sCommand, true, RtfTableProperty::vp_posyb )
|
||||
COMMAND_RTF_INT ( "tposyc", rowProps->m_eVPos, sCommand, true, RtfTableProperty::vp_posyc )
|
||||
COMMAND_RTF_INT ( "tposyb", rowProps->m_eVPos, sCommand, true, RtfTableProperty::vp_posyb )
|
||||
COMMAND_RTF_INT ( "tposyc", rowProps->m_eVPos, sCommand, true, RtfTableProperty::vp_posyc )
|
||||
COMMAND_RTF_INT ( "tposyin", rowProps->m_eVPos, sCommand, true, RtfTableProperty::vp_posyin )
|
||||
COMMAND_RTF_INT ( "tposyout", rowProps->m_eVPos, sCommand, true, RtfTableProperty::vp_posyout )
|
||||
|
||||
@ -1353,10 +1362,12 @@ bool RtfTableRowPropsCommand::ExecuteCommand(RtfDocument& oDocument, RtfReader&
|
||||
{
|
||||
switch( parameter )
|
||||
{
|
||||
case 0: rowProps->m_eMUWidth = mu_none; break;
|
||||
case 1: rowProps->m_eMUWidth = mu_Auto; break;
|
||||
case 2: rowProps->m_eMUWidth = mu_Percent; break;
|
||||
case 3: rowProps->m_eMUWidth = mu_Twips; break;
|
||||
case 0: rowProps->m_eMUWidth = mu_none; break;
|
||||
case 1: rowProps->m_eMUWidth = mu_Auto; break;
|
||||
case 2: rowProps->m_eMUWidth = mu_Percent; break;
|
||||
case 3: rowProps->m_eMUWidth = mu_Twips; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1926,6 +1937,9 @@ void RtfShapeReader::ShapePropertyReader::ShapePropertyValueReader::PopState( Rt
|
||||
else if ( L"posrelv" == m_sPropName ) m_oShape.m_nPositionVRelative = nValue;
|
||||
else if ( L"fLayoutInCell" == m_sPropName ) m_oShape.m_bLayoutInCell = nValue;
|
||||
else if ( L"fAllowOverlap" == m_sPropName ) m_oShape.m_bAllowOverlap = nValue;
|
||||
else if ( L"fLockPosition" == m_sPropName ) m_oShape.m_nLockPosition = nValue;
|
||||
else if ( L"fLockRotation" == m_sPropName ) m_oShape.m_nLockRotation = nValue;
|
||||
|
||||
//Position relative
|
||||
else if ( L"pctHorizPos" == m_sPropName ) m_oShape.m_nPositionHPct = nValue;
|
||||
else if ( L"pctVertPos" == m_sPropName ) m_oShape.m_nPositionVPct = nValue;
|
||||
@ -2032,6 +2046,12 @@ void RtfShapeReader::ShapePropertyReader::ShapePropertyValueReader::PopState( Rt
|
||||
else if ( L"dxTextRight" == m_sPropName ) m_oShape.m_nTexpRight = nValue;
|
||||
else if ( L"dyTextBottom" == m_sPropName ) m_oShape.m_nTexpBottom = nValue;
|
||||
else if ( L"anchorText" == m_sPropName ) m_oShape.m_nAnchorText = nValue;
|
||||
else if ( L"WrapText" == m_sPropName ) m_oShape.m_nWrapText = nValue;
|
||||
else if ( L"txflTextFlow" == m_sPropName ) m_oShape.m_nTxflTextFlow = nValue;
|
||||
else if ( L"ccol" == m_sPropName ) m_oShape.m_nCcol = nValue;
|
||||
else if ( L"txdir" == m_sPropName ) m_oShape.m_nTxdir = nValue;
|
||||
else if ( L"fFitShapeToText"== m_sPropName ) m_oShape.m_bFitShapeToText = nValue;
|
||||
else if ( L"fFitTextToShape"== m_sPropName ) m_oShape.m_bFitTextToShape = nValue;
|
||||
|
||||
//Geometry
|
||||
else if ( L"adjustValue" == m_sPropName ) m_oShape.m_nAdjustValue[0] = nValue;
|
||||
@ -2197,6 +2217,8 @@ bool RtfTrackerChangesReader::ExecuteCommand(RtfDocument& oDocument, RtfReader&
|
||||
case is_borderTop:
|
||||
bResult = RtfBorderCommand::ExecuteCommand( oDocument, oReader, sCommand, hasParameter, parameter, m_pParagraphProps->m_oBorderTop );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (bResult) return true;
|
||||
|
||||
@ -2229,6 +2251,8 @@ bool RtfTrackerChangesReader::ExecuteCommand(RtfDocument& oDocument, RtfReader&
|
||||
case is_borderRowVer :
|
||||
bResult = RtfBorderCommand::ExecuteCommand( oDocument, oReader,sCommand, hasParameter, parameter, m_pTableRowProps->m_oBorderVert );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if ( bResult ) return true;
|
||||
|
||||
@ -3020,6 +3044,8 @@ bool RtfParagraphPropDestination::ExecuteCommand(RtfDocument& oDocument, RtfRead
|
||||
case is_borderRowVer :
|
||||
bResult = RtfBorderCommand::ExecuteCommand( oDocument, oReader,sCommand, hasParameter, parameter, oReader.m_oState->m_oRowProperty.m_oBorderVert );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if ( bResult ) return true;
|
||||
|
||||
|
||||
@ -1427,7 +1427,7 @@ bool OOXrPrReader::Parse( ReaderParameter oParam, RtfCharProperty& oOutputProper
|
||||
|
||||
if (m_ooxRunProps->m_oPosition.IsInit() && m_ooxRunProps->m_oPosition->m_oVal.IsInit())
|
||||
{
|
||||
int nValue = m_ooxRunProps->m_oPosition->m_oVal->ToTwips();
|
||||
int nValue = m_ooxRunProps->m_oPosition->m_oVal->ToTwips() / 10;
|
||||
if( nValue >= 0 )
|
||||
oOutputProperty.m_nUp = nValue;
|
||||
else
|
||||
@ -1518,7 +1518,32 @@ bool OOXrPrReader::Parse( ReaderParameter oParam, RtfCharProperty& oOutputProper
|
||||
m_ooxRunProps->m_oHighlight->m_oVal->Get_G(),
|
||||
m_ooxRunProps->m_oHighlight->m_oVal->Get_B()));
|
||||
}
|
||||
if( m_ooxRunProps->m_oColor.IsInit() )
|
||||
if ( m_ooxRunProps->m_oTextOutline.IsInit())
|
||||
{
|
||||
if (m_ooxRunProps->m_oTextOutline->Fill.m_type == PPTX::Logic::UniFill::noFill )
|
||||
{
|
||||
oOutputProperty.m_nForeColor = 0xffffff; //white
|
||||
}
|
||||
else if (m_ooxRunProps->m_oTextOutline->Fill.m_type == PPTX::Logic::UniFill::solidFill )
|
||||
{
|
||||
NSCommon::smart_ptr<PPTX::Logic::SolidFill> fill = m_ooxRunProps->m_oTextOutline->Fill.Fill.smart_dynamic_cast<PPTX::Logic::SolidFill>();
|
||||
|
||||
unsigned int nColor = 0; //black
|
||||
_CP_OPT(double) opacity;
|
||||
|
||||
OOXShapeReader::Parse(oParam, fill->Color.Color.operator ->(), nColor, opacity);
|
||||
oOutputProperty.m_nForeColor = nColor;
|
||||
}
|
||||
|
||||
if (oOutputProperty.m_nForeColor != PROP_DEF)
|
||||
{
|
||||
RtfColor rtfColor;
|
||||
rtfColor.SetRGB(oOutputProperty.m_nForeColor);
|
||||
|
||||
oOutputProperty.m_nForeColor = oParam.oRtf->m_oColorTable.AddItem(rtfColor);
|
||||
}
|
||||
}
|
||||
else if( m_ooxRunProps->m_oColor.IsInit() )
|
||||
{
|
||||
OOXColorReader oColorReader;
|
||||
RtfColor oColor;
|
||||
@ -1965,14 +1990,22 @@ bool OOXSectionPropertyReader::Parse( ReaderParameter oParam , RtfSectionPropert
|
||||
}
|
||||
if( m_ooxSectionProperty->m_oCols.IsInit() )
|
||||
{
|
||||
if(m_ooxSectionProperty->m_oCols->m_oNum.IsInit())
|
||||
oOutput.m_nColumnNumber = m_ooxSectionProperty->m_oCols->m_oNum->GetValue();
|
||||
else
|
||||
oOutput.m_nColumnNumber = 1;
|
||||
if (!m_ooxSectionProperty->m_oCols->m_arrColumns.empty())
|
||||
{
|
||||
oOutput.m_nColumnNumber = m_ooxSectionProperty->m_oCols->m_arrColumns.size();
|
||||
}
|
||||
|
||||
if(m_ooxSectionProperty->m_oCols->m_oNum.IsInit())
|
||||
{
|
||||
oOutput.m_nColumnNumber = m_ooxSectionProperty->m_oCols->m_oNum->GetValue();
|
||||
}
|
||||
|
||||
if(m_ooxSectionProperty->m_oCols->m_oSpace.IsInit())
|
||||
oOutput.m_nColumnSpace = m_ooxSectionProperty->m_oCols->m_oSpace->ToTwips(); //todooo twips????
|
||||
|
||||
if (m_ooxSectionProperty->m_oCols->m_oSep.IsInit())
|
||||
oOutput.m_bColumnLineBetween = m_ooxSectionProperty->m_oCols->m_oSep->ToBool();
|
||||
|
||||
for (size_t i = 0; i < m_ooxSectionProperty->m_oCols->m_arrColumns.size(); i++ )
|
||||
{
|
||||
RtfSectionProperty::ColumnProperty::CollumnVar oNewColumn;
|
||||
|
||||
@ -284,19 +284,19 @@ public:
|
||||
if (m_ooxAnchor->m_oWrapTight->m_oWrapPolygon.IsInit())
|
||||
{
|
||||
int nValueX, nValueY;
|
||||
|
||||
|
||||
if (m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_oStart.IsInit())
|
||||
{
|
||||
nValueX = m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_oStart->m_oX.ToTwips();
|
||||
nValueY = m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_oStart->m_oY.ToTwips();
|
||||
nValueX = m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_oStart->m_oX.ToEmu();
|
||||
nValueY = m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_oStart->m_oY.ToEmu();
|
||||
|
||||
pOutput->m_aWrapPoints.push_back( std::pair<int,int>(nValueX, nValueY) );
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_arrLineTo.size(); i++ )
|
||||
{
|
||||
nValueX = m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_arrLineTo[i]->m_oX.ToTwips();
|
||||
nValueY = m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_arrLineTo[i]->m_oY.ToTwips();
|
||||
nValueX = m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_arrLineTo[i]->m_oX.ToEmu();
|
||||
nValueY = m_ooxAnchor->m_oWrapTight->m_oWrapPolygon->m_arrLineTo[i]->m_oY.ToEmu();
|
||||
|
||||
pOutput->m_aWrapPoints.push_back( std::pair<int,int>(nValueX, nValueY) );
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ public:
|
||||
pOutput->m_nTop = 0;
|
||||
pOutput->m_nPositionHRelative = 3;
|
||||
pOutput->m_nPositionVRelative = 3;
|
||||
|
||||
|
||||
int nDistLeft = m_ooxInline->m_oDistL.IsInit() ? (int)m_ooxInline->m_oDistL->ToTwips() : PROP_DEF;
|
||||
int nDistTop = m_ooxInline->m_oDistT.IsInit() ? (int)m_ooxInline->m_oDistT->ToTwips() : PROP_DEF;
|
||||
int nDistRight = m_ooxInline->m_oDistR.IsInit() ? (int)m_ooxInline->m_oDistR->ToTwips() : PROP_DEF;
|
||||
|
||||
@ -648,11 +648,13 @@ void OOXShapeReader::Parse(ReaderParameter oParam, PPTX::Logic::ColorBase *oox_c
|
||||
{
|
||||
if (!oox_color) return;
|
||||
|
||||
oox_color->SetParentFilePointer(oParam.oDocx->m_pTheme);
|
||||
|
||||
nColor = oox_color->GetARGB(0);
|
||||
BYTE alpha = nColor >> 24;
|
||||
if (alpha != 0xff)
|
||||
opacity = alpha;
|
||||
nColor = nColor & 0xff000000;
|
||||
nColor = nColor & 0x00ffffff;
|
||||
//switch( oox_color->m_eType )
|
||||
//{
|
||||
// case OOX::Drawing::colorSheme: Parse(oParam, &oox_color->m_oShemeClr, nColor, opacity); break;
|
||||
@ -698,7 +700,10 @@ void OOXShapeReader::Parse(ReaderParameter oParam, RtfShapePtr& pOutput, PPTX::L
|
||||
|
||||
if (change_sheme_color && oox_solid_fill->Color.getType() == OOX::et_a_schemeClr)
|
||||
{
|
||||
//oox_solid_fill->m_oShemeClr.m_oVal.FromString(*change_sheme_color);
|
||||
PPTX::Logic::SchemeClr *pSchemeColor = new PPTX::Logic::SchemeClr();
|
||||
pSchemeColor->val.set(*change_sheme_color);
|
||||
|
||||
oox_solid_fill->Color.Color.reset(pSchemeColor);
|
||||
}
|
||||
|
||||
Parse(oParam, oox_solid_fill, nColor, opacity);
|
||||
@ -910,21 +915,29 @@ void OOXShapeReader::Parse(ReaderParameter oParam, RtfShapePtr& pOutput, PPTX::L
|
||||
{
|
||||
NSCommon::smart_ptr<PPTX::Logic::SolidFill> fill = oox_line_prop->Fill.Fill.smart_dynamic_cast<PPTX::Logic::SolidFill>();
|
||||
NSCommon::smart_ptr<PPTX::Logic::NoFill> no_fill = oox_line_prop->Fill.Fill.smart_dynamic_cast<PPTX::Logic::NoFill>();
|
||||
if (fill.IsInit())
|
||||
|
||||
if (no_fill.IsInit())
|
||||
{
|
||||
pOutput->m_bLine = false;
|
||||
}
|
||||
else if (fill.IsInit())
|
||||
{
|
||||
if (change_sheme_color && fill->Color.getType() == OOX::et_a_schemeClr)
|
||||
{
|
||||
//fill->Color.FromString(*change_sheme_color);
|
||||
}
|
||||
PPTX::Logic::SchemeClr *pSchemeColor = new PPTX::Logic::SchemeClr();
|
||||
pSchemeColor->val.set(*change_sheme_color);
|
||||
|
||||
fill->Color.Color.reset(pSchemeColor);
|
||||
}
|
||||
unsigned int nColor = 0; //black
|
||||
_CP_OPT(double) opacity;
|
||||
|
||||
Parse(oParam, fill.operator->(), nColor, opacity);
|
||||
pOutput->m_nLineColor = nColor;
|
||||
}
|
||||
else if (no_fill.IsInit())
|
||||
else
|
||||
{
|
||||
pOutput->m_bLine = false;
|
||||
|
||||
}
|
||||
}
|
||||
if (oox_line_prop->w.IsInit())
|
||||
@ -1061,15 +1074,26 @@ bool OOXShapeReader::ParseShape( ReaderParameter oParam, RtfShapePtr& pOutput)
|
||||
PPTX::Logic::Shape * ooxShape = dynamic_cast<PPTX::Logic::Shape*> (m_ooxShape);
|
||||
|
||||
if (!ooxShape) return false;
|
||||
|
||||
PPTX::Logic::BodyPr *text_properties = NULL;
|
||||
|
||||
if (ooxShape->oTextBoxBodyPr.IsInit())
|
||||
if (ooxShape->oTextBoxShape.IsInit())
|
||||
{
|
||||
if (ooxShape->oTextBoxBodyPr->fromWordArt.get_value_or(false))
|
||||
text_properties = ooxShape->oTextBoxBodyPr.GetPointer();
|
||||
}
|
||||
|
||||
if (ooxShape->txBody.IsInit())
|
||||
{
|
||||
text_properties = ooxShape->txBody->bodyPr.GetPointer();
|
||||
}
|
||||
if (text_properties)
|
||||
{
|
||||
if (text_properties->fromWordArt.get_value_or(false))
|
||||
{
|
||||
pOutput->m_bGtext = 1;
|
||||
if (ooxShape->oTextBoxBodyPr->prstTxWarp.IsInit())
|
||||
if (text_properties->prstTxWarp.IsInit())
|
||||
{
|
||||
SimpleTypes::ETextShapeType type = (SimpleTypes::ETextShapeType)ooxShape->oTextBoxBodyPr->prstTxWarp->prst.GetBYTECode();
|
||||
SimpleTypes::ETextShapeType type = (SimpleTypes::ETextShapeType)text_properties->prstTxWarp->prst.GetBYTECode();
|
||||
|
||||
pOutput->m_nShapeType = OOX::PrstTx2VmlShapeType(type);
|
||||
}
|
||||
@ -1164,9 +1188,50 @@ bool OOXShapeReader::ParseShape( ReaderParameter oParam, RtfShapePtr& pOutput)
|
||||
Parse(oParam, pOutput, ooxShape->spPr.ln.GetPointer());
|
||||
}
|
||||
//---------------------------------------------------------------------
|
||||
PPTX::Logic::TxBody * text_properties = NULL;
|
||||
OOXTextItemReader oTextItemReader;
|
||||
|
||||
RtfCharProperty old = oParam.oRtf->m_oDefaultCharProp;
|
||||
if ((oox_sp_style) && (oox_sp_style->fontRef.idx.IsInit()))
|
||||
{
|
||||
std::wstring font_name;
|
||||
if (oox_sp_style->fontRef.idx->GetBYTECode() == 0)
|
||||
{
|
||||
font_name = oParam.oDocx->m_pTheme->themeElements.fontScheme.majorFont.latin.typeface;
|
||||
}
|
||||
else if (oox_sp_style->fontRef.idx->GetBYTECode() == 1)
|
||||
{
|
||||
font_name = oParam.oDocx->m_pTheme->themeElements.fontScheme.minorFont.latin.typeface;
|
||||
}
|
||||
if (!font_name.empty())
|
||||
{
|
||||
RtfFont oCurFont;
|
||||
if( true == oParam.oRtf->m_oFontTable.GetFont( font_name, oCurFont ) )
|
||||
{
|
||||
oParam.oRtf->m_oDefaultCharProp.m_nFont = oCurFont.m_nID;
|
||||
}
|
||||
else
|
||||
{
|
||||
oCurFont.m_sName = font_name;
|
||||
oCurFont.m_nID = oParam.oRtf->m_oDefaultCharProp.m_nFont = oParam.oRtf->m_oFontTable.GetCount() + 1;
|
||||
oParam.oRtf->m_oFontTable.AddItem( oCurFont );
|
||||
}
|
||||
}
|
||||
if (oox_sp_style->fontRef.Color.is_init())
|
||||
{
|
||||
unsigned int nColor = 0; //black
|
||||
_CP_OPT(double) opacity;
|
||||
|
||||
OOXShapeReader::Parse(oParam, oox_sp_style->fontRef.Color.Color.operator ->(), nColor, opacity);
|
||||
|
||||
RtfColor rtfColor;
|
||||
rtfColor.SetRGB(nColor);
|
||||
|
||||
oParam.oRtf->m_oDefaultCharProp.m_nForeColor = oParam.oRtf->m_oColorTable.AddItem(rtfColor);
|
||||
}
|
||||
}
|
||||
|
||||
Parse(oParam, pOutput, text_properties);
|
||||
|
||||
if (ooxShape->txBody.IsInit())
|
||||
{
|
||||
for (size_t i=0; i < ooxShape->txBody->Paragrs.size(); i++)
|
||||
@ -1174,7 +1239,13 @@ bool OOXShapeReader::ParseShape( ReaderParameter oParam, RtfShapePtr& pOutput)
|
||||
oTextItemReader.Parse(&ooxShape->txBody->Paragrs[i], oParam );
|
||||
}
|
||||
|
||||
text_properties = ooxShape->txBody.GetPointer();
|
||||
}
|
||||
else if (ooxShape->oTextBoxShape.IsInit())
|
||||
{
|
||||
for (size_t i=0; i < ooxShape->oTextBoxShape->m_arrItems.size(); i++)
|
||||
{
|
||||
oTextItemReader.Parse(ooxShape->oTextBoxShape->m_arrItems[i], oParam );
|
||||
}
|
||||
}
|
||||
|
||||
if (oTextItemReader.m_oTextItems)
|
||||
@ -1190,13 +1261,66 @@ bool OOXShapeReader::ParseShape( ReaderParameter oParam, RtfShapePtr& pOutput)
|
||||
{
|
||||
pOutput->m_aTextItems = oTextItemReader.m_oTextItems;
|
||||
}
|
||||
}
|
||||
|
||||
if (text_properties)
|
||||
oParam.oRtf->m_oDefaultCharProp = old;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void OOXShapeReader::Parse(ReaderParameter oParam, RtfShapePtr& pOutput, PPTX::Logic::BodyPr *text_props)
|
||||
{
|
||||
if (!text_props) return;
|
||||
|
||||
if (text_props->lIns.IsInit()) pOutput->m_nTexpLeft = *text_props->lIns;
|
||||
if (text_props->tIns.IsInit()) pOutput->m_nTexpTop = *text_props->tIns;
|
||||
if (text_props->rIns.IsInit()) pOutput->m_nTexpRight = *text_props->rIns;
|
||||
if (text_props->bIns.IsInit()) pOutput->m_nTexpBottom = *text_props->bIns;
|
||||
|
||||
if (text_props->anchor.IsInit())
|
||||
{
|
||||
switch(text_props->anchor->GetBYTECode())
|
||||
{
|
||||
case 0: pOutput->m_nAnchorText = 2; break;
|
||||
case 4: pOutput->m_nAnchorText = 0; break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
default:
|
||||
pOutput->m_nAnchorText = 4; break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
if (text_props->rtlCol.IsInit())
|
||||
pOutput->m_nTxdir = *text_props->rtlCol;
|
||||
|
||||
if (text_props->numCol.IsInit())
|
||||
pOutput->m_nCcol = *text_props->numCol;
|
||||
|
||||
switch(text_props->Fit.type)
|
||||
{
|
||||
case 2: pOutput->m_bFitShapeToText = 1; break;
|
||||
case 3: pOutput->m_bFitTextToShape = 1; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (text_props->vert.IsInit())
|
||||
{
|
||||
switch(text_props->vert->GetBYTECode())
|
||||
{
|
||||
case 0: pOutput->m_nTxflTextFlow = 1; break;
|
||||
case 2: pOutput->m_nTxflTextFlow = 2; break;
|
||||
case 3: pOutput->m_nTxflTextFlow = 1; break;
|
||||
case 4: pOutput->m_nTxflTextFlow = 2; break;
|
||||
case 5: pOutput->m_nTxflTextFlow = 5; break;
|
||||
case 6: pOutput->m_nTxflTextFlow = 5; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
//nullable_int rot;
|
||||
//nullable_limit<Limit::TextWrap> wrap;
|
||||
|
||||
}
|
||||
|
||||
bool OOXShapeReader::ParsePic( ReaderParameter oParam, RtfShapePtr& pOutput)
|
||||
|
||||
@ -66,14 +66,15 @@ public:
|
||||
void ParseAdjustment(RtfShape& oShape, std::wstring sAdjustment);
|
||||
|
||||
static bool Parse(ReaderParameter oParam, RtfShapePtr& pOutput, PPTX::Logic::BlipFill *oox_bitmap_fill);
|
||||
static void Parse(ReaderParameter oParam, PPTX::Logic::ColorBase *oox_color, unsigned int & nColor, _CP_OPT(double) &opacity);
|
||||
private:
|
||||
|
||||
bool ParseShape( ReaderParameter oParam , RtfShapePtr& oOutput);
|
||||
bool ParsePic( ReaderParameter oParam , RtfShapePtr& oOutput);
|
||||
|
||||
void Parse(ReaderParameter oParam, RtfShapePtr& pOutput, PPTX::Logic::BodyPr *text_properties);
|
||||
void Parse(ReaderParameter oParam, RtfShapePtr& pOutput, PPTX::Logic::Xfrm *xfrm);
|
||||
|
||||
void Parse(ReaderParameter oParam, PPTX::Logic::ColorBase *oox_color, unsigned int & nColor, _CP_OPT(double) &opacity);
|
||||
void Parse(ReaderParameter oParam, PPTX::Logic::SolidFill *oox_solid_fill, unsigned int & nColor, _CP_OPT(double) &opacity);
|
||||
|
||||
void Parse(ReaderParameter oParam, RtfShapePtr& pOutput, PPTX::Logic::StyleRef *style_ref, int type);
|
||||
|
||||
@ -79,16 +79,9 @@ bool OOXtrPrReader::Parse( ReaderParameter oParam , RtfRowProperty& oOutputPrope
|
||||
if (m_ooxTableRowProps->m_oTblHeight->m_oHRule.IsInit() && m_ooxTableRowProps->m_oTblHeight->m_oHRule->GetValue() == SimpleTypes::heightruleExact)
|
||||
oOutputProperty.m_nHeight = -oOutputProperty.m_nHeight;
|
||||
}
|
||||
if( m_ooxTableRowProps->m_oWBefore.IsInit() && m_ooxTableRowProps->m_oWBefore->m_oW.IsInit())
|
||||
{
|
||||
oOutputProperty.m_nWidthStartInvCell = m_ooxTableRowProps->m_oWBefore->m_oW->GetValue();
|
||||
oOutputProperty.m_eMUStartInvCell = _MetricUnits::mu_Twips;
|
||||
}
|
||||
if( m_ooxTableRowProps->m_oWAfter.IsInit() && m_ooxTableRowProps->m_oWAfter->m_oW.IsInit())
|
||||
{
|
||||
oOutputProperty.m_nWidthEndInvCell = m_ooxTableRowProps->m_oWAfter->m_oW->GetValue();
|
||||
oOutputProperty.m_eMUEndInvCell = _MetricUnits::mu_Twips;
|
||||
}
|
||||
|
||||
OOXtcPrReader::Parse(m_ooxTableRowProps->m_oWBefore.GetPointer(), oOutputProperty.m_eMUStartInvCell, oOutputProperty.m_nWidthStartInvCell);
|
||||
OOXtcPrReader::Parse(m_ooxTableRowProps->m_oWAfter.GetPointer(), oOutputProperty.m_eMUEndInvCell, oOutputProperty.m_nWidthEndInvCell);
|
||||
|
||||
if( m_ooxTableRowProps->m_oGridBefore.IsInit() && m_ooxTableRowProps->m_oGridBefore->m_oVal.IsInit())
|
||||
oOutputProperty.m_nGridBefore = m_ooxTableRowProps->m_oGridBefore->m_oVal->GetValue();
|
||||
|
||||
@ -64,6 +64,8 @@ public:
|
||||
case SimpleTypes::tabtlcMiddleDot : oCurTab.m_eLeader = RtfTab::tl_mdot; break;
|
||||
case SimpleTypes::tabtlcNone : break;
|
||||
case SimpleTypes::tabtlcUnderscore : oCurTab.m_eLeader = RtfTab::tl_ul; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m_ooxTabs->m_arrTabs[i]->m_oVal.IsInit())
|
||||
@ -79,6 +81,8 @@ public:
|
||||
case SimpleTypes::tabjcStart : oCurTab.m_eKind = RtfTab::tk_tql; break;
|
||||
case SimpleTypes::tabjcRight : oCurTab.m_eKind = RtfTab::tk_tqr; break;
|
||||
case SimpleTypes::tabjcLeft : oCurTab.m_eKind = RtfTab::tk_tql; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m_ooxTabs->m_arrTabs[i]->m_oPos.IsInit())
|
||||
|
||||
@ -72,6 +72,8 @@ public:
|
||||
{
|
||||
case SimpleTypes::mergeContinue : oOutputProperty.m_bMerge = 1; break;
|
||||
case SimpleTypes::mergeRestart : oOutputProperty.m_bMergeFirst = 1; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( m_ooxTableCellProps->m_oVMerge.IsInit())
|
||||
@ -89,27 +91,10 @@ public:
|
||||
|
||||
if( m_ooxTableCellProps->m_oTcMar.IsInit() )
|
||||
{
|
||||
//todooo сделать реализацию с процентами
|
||||
if( m_ooxTableCellProps->m_oTcMar->m_oBottom.IsInit() && m_ooxTableCellProps->m_oTcMar->m_oBottom->m_oW.IsInit())
|
||||
{
|
||||
oOutputProperty.m_nPaddingBottom = (int)m_ooxTableCellProps->m_oTcMar->m_oBottom->m_oW->GetValue();
|
||||
oOutputProperty.m_nIsPaddingBottom = 3;
|
||||
}
|
||||
if( m_ooxTableCellProps->m_oTcMar->m_oEnd.IsInit() && m_ooxTableCellProps->m_oTcMar->m_oEnd->m_oW.IsInit())
|
||||
{
|
||||
oOutputProperty.m_nPaddingRight = (int)m_ooxTableCellProps->m_oTcMar->m_oEnd->m_oW->GetValue();
|
||||
oOutputProperty.m_nIsPaddingRight = 3;
|
||||
}
|
||||
if( m_ooxTableCellProps->m_oTcMar->m_oStart.IsInit() && m_ooxTableCellProps->m_oTcMar->m_oStart->m_oW.IsInit())
|
||||
{
|
||||
oOutputProperty.m_nPaddingLeft = (int)m_ooxTableCellProps->m_oTcMar->m_oStart->m_oW->GetValue();
|
||||
oOutputProperty.m_nIsPaddingLeft = 3;
|
||||
}
|
||||
if( m_ooxTableCellProps->m_oTcMar->m_oTop.IsInit() && m_ooxTableCellProps->m_oTcMar->m_oTop->m_oW.IsInit())
|
||||
{
|
||||
oOutputProperty.m_nPaddingTop = (int)m_ooxTableCellProps->m_oTcMar->m_oTop->m_oW->GetValue();
|
||||
oOutputProperty.m_nIsPaddingTop = 3;
|
||||
}
|
||||
Parse (m_ooxTableCellProps->m_oTcMar->m_oStart.GetPointer(), oOutputProperty.m_nIsPaddingLeft, oOutputProperty.m_nPaddingLeft, false);
|
||||
Parse (m_ooxTableCellProps->m_oTcMar->m_oTop.GetPointer(), oOutputProperty.m_nIsPaddingTop, oOutputProperty.m_nPaddingTop, false);
|
||||
Parse (m_ooxTableCellProps->m_oTcMar->m_oEnd.GetPointer(), oOutputProperty.m_nIsPaddingRight, oOutputProperty.m_nPaddingRight, false);
|
||||
Parse (m_ooxTableCellProps->m_oTcMar->m_oBottom.GetPointer(), oOutputProperty.m_nIsPaddingBottom, oOutputProperty.m_nPaddingBottom, false);
|
||||
}
|
||||
|
||||
if( m_ooxTableCellProps->m_oTcW.IsInit() && m_ooxTableCellProps->m_oTcW->m_oW.IsInit())
|
||||
@ -216,19 +201,22 @@ public:
|
||||
case SimpleTypes::verticaljcBottom : oOutputProperty.m_eAlign = RtfCellProperty::ca_Bottom; break;
|
||||
case SimpleTypes::verticaljcCenter : oOutputProperty.m_eAlign = RtfCellProperty::ca_Center; break;
|
||||
case SimpleTypes::verticaljcTop : oOutputProperty.m_eAlign = RtfCellProperty::ca_Top; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( m_ooxTableCellProps->m_oTextDirection.IsInit() && m_ooxTableCellProps->m_oTextDirection->m_oVal.IsInit())
|
||||
{
|
||||
switch(m_ooxTableCellProps->m_oTextDirection->m_oVal->GetValue())
|
||||
{
|
||||
case SimpleTypes::textdirectionLr : oOutputProperty.m_oCellFlow = RtfCellProperty::cf_lrtb; break;
|
||||
case SimpleTypes::textdirectionLr : oOutputProperty.m_oCellFlow = RtfCellProperty::cf_btlr; break;
|
||||
case SimpleTypes::textdirectionLrV : oOutputProperty.m_oCellFlow = RtfCellProperty::cf_lrtbv; break;
|
||||
case SimpleTypes::textdirectionRl : oOutputProperty.m_oCellFlow = RtfCellProperty::cf_tbrl; break;
|
||||
case SimpleTypes::textdirectionRlV : oOutputProperty.m_oCellFlow = RtfCellProperty::cf_tbrlv; break;
|
||||
case SimpleTypes::textdirectionTbV : oOutputProperty.m_oCellFlow = RtfCellProperty::cf_btlr; //??
|
||||
case SimpleTypes::textdirectionTb : //lrTb .. default
|
||||
default: break;
|
||||
case SimpleTypes::textdirectionTbV : oOutputProperty.m_oCellFlow = RtfCellProperty::cf_lrtbv; break;
|
||||
case SimpleTypes::textdirectionTb : oOutputProperty.m_oCellFlow = RtfCellProperty::cf_lrtb; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m_ooxTableCellProps->m_oGridSpan.IsInit() && m_ooxTableCellProps->m_oGridSpan->m_oVal.IsInit())
|
||||
@ -236,4 +224,36 @@ public:
|
||||
|
||||
return true;
|
||||
}
|
||||
static void Parse(ComplexTypes::Word::CTblWidth* margin, int& type, int& value, bool full = true )
|
||||
{
|
||||
if (!margin) return;
|
||||
if (false == margin->m_oType.IsInit()) return;
|
||||
if (false == margin->m_oW.IsInit()) return;
|
||||
|
||||
if (full == true)
|
||||
{
|
||||
switch (margin->m_oType->GetValue())
|
||||
{
|
||||
case SimpleTypes::tblwidthNil: type = 0; break;
|
||||
case SimpleTypes::tblwidthAuto: type = 1; break;
|
||||
case SimpleTypes::tblwidthPct: type = 2; break;
|
||||
case SimpleTypes::tblwidthDxa: type = 3; break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (margin->m_oType->GetValue())
|
||||
{
|
||||
case SimpleTypes::tblwidthDxa: type = 3; break;
|
||||
case SimpleTypes::tblwidthAuto:
|
||||
case SimpleTypes::tblwidthNil: type = 1; break;
|
||||
}
|
||||
}
|
||||
if (margin->m_oType->GetValue() != SimpleTypes::tblwidthNil)
|
||||
{
|
||||
value = (int)margin->m_oW->GetValue();
|
||||
}
|
||||
|
||||
//todooo сделать реализацию с процентами
|
||||
}
|
||||
};
|
||||
@ -254,7 +254,7 @@ std::wstring RtfField::RenderToOOX(RenderParameter oRenderParameter)
|
||||
oNewParametr.nType = RENDER_TO_OOX_PARAM_RUN;
|
||||
sResult += m_pResult->m_pTextItems->m_aArray[0]->RenderToOOX(oNewParametr);
|
||||
|
||||
for (size_t i = 1; i < m_pResult->m_pTextItems->GetCount(); i++)
|
||||
for (int i = 1; i < m_pResult->m_pTextItems->GetCount(); i++)
|
||||
{
|
||||
RtfParagraph *paragraph = dynamic_cast<RtfParagraph *>(m_pResult->m_pTextItems->m_aArray[i].get());
|
||||
if (paragraph)
|
||||
|
||||
@ -69,7 +69,7 @@ std::wstring RtfListTable::RenderToOOX(RenderParameter oRenderParameter)
|
||||
{
|
||||
RenderParameter oNewParam = oRenderParameter;
|
||||
oNewParam.nType = RENDER_TO_OOX_PARAM_SHAPE_WSHAPE;
|
||||
for (size_t i = 0; i < m_aPictureList.GetCount(); i++ )
|
||||
for (int i = 0; i < m_aPictureList.GetCount(); i++ )
|
||||
{
|
||||
sResult += L"<w:numPicBullet w:numPicBulletId=\"" + std::to_wstring(i) + L"\">";
|
||||
sResult += m_aPictureList[i]->RenderToOOX(oNewParam);
|
||||
|
||||
@ -56,6 +56,8 @@ std::wstring RtfFont::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case ft_fhiminor: sResult += L"\\fhiminor"; break;
|
||||
case ft_fdbminor: sResult += L"\\fdbminor"; break;
|
||||
case ft_fbiminor: sResult += L"\\fbiminor"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sResult += L"\\f" + std::to_wstring(m_nID);
|
||||
|
||||
@ -69,6 +71,8 @@ std::wstring RtfFont::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case ff_fdecor: sResult += L"\\fdecor"; break;
|
||||
case ff_ftech: sResult += L"\\ftech"; break;
|
||||
case ff_fbidi: sResult += L"\\fbidi"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nCharset, sResult, L"fcharset" )
|
||||
RENDER_RTF_INT( m_nPitch, sResult, L"fprq" )
|
||||
@ -126,6 +130,8 @@ std::wstring RtfFont::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case ft_fhiminor: sTag = L"latin"; break;
|
||||
case ft_fdbminor: sTag = L"ea"; break;
|
||||
case ft_fbiminor: sTag = L"cs"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( !sTag.empty() )
|
||||
{
|
||||
@ -145,6 +151,8 @@ std::wstring RtfFont::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case ft_fhiminor: sTag = L"latin"; break;
|
||||
case ft_fdbmajor: sTag = L"ea"; break;
|
||||
case ft_fbimajor: sTag = L"cs"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( !sTag.empty() )
|
||||
{
|
||||
@ -185,6 +193,8 @@ std::wstring RtfFont::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case ff_fdecor: sFamily = L"decorative"; break;
|
||||
case ff_ftech: sFamily = L"auto"; break;
|
||||
case ff_fbidi: sFamily = L"auto"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( !sFamily.empty() )
|
||||
{
|
||||
@ -207,6 +217,8 @@ std::wstring RtfFont::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case 0: sPitch = L"default"; break;
|
||||
case 1: sPitch = L"fixed"; break;
|
||||
case 2: sPitch = L"variable"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sResult += L"<w:pitch w:val=\"";
|
||||
sResult += sPitch;
|
||||
@ -243,6 +255,8 @@ std::wstring RtfFont::RenderToOOX(RenderParameter oRenderParameter)
|
||||
sHint = L" w:hint=\"cs\"/>";
|
||||
}break;
|
||||
//?? нужно ли описывать default??? todooo
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sResult += L"<w:rFonts w:ascii=\"";
|
||||
sResult += sFontName;
|
||||
@ -324,6 +338,8 @@ std::wstring RtfShadingChar::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case st_chbgdkbdiag: sResult += L"\\chbgdkbdiag"; break;
|
||||
case st_chbgdkcross: sResult += L"\\chbgdkcross"; break;
|
||||
case st_chbgdkdcross: sResult += L"\\chbgdkdcross"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nForeColor, sResult, L"chcfpat" )
|
||||
RENDER_RTF_INT( m_nBackColor, sResult, L"chcbpat" )
|
||||
@ -348,6 +364,8 @@ std::wstring RtfShadingPar::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case st_chbgdkbdiag: sResult += L"\\bgdkbdiag"; break;
|
||||
case st_chbgdkcross: sResult += L"\\bgdkcross"; break;
|
||||
case st_chbgdkdcross: sResult += L"\\bgdkdcross"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nForeColor, sResult, L"cfpat" )
|
||||
RENDER_RTF_INT( m_nBackColor, sResult, L"cbpat" )
|
||||
@ -373,6 +391,8 @@ std::wstring RtfShadingCell::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case st_chbgdkbdiag: sResult += L"\\clbgdkbdiag"; break;
|
||||
case st_chbgdkcross: sResult += L"\\clbgdkcross"; break;
|
||||
case st_chbgdkdcross: sResult += L"\\clbgdkdcross"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nForeColor, sResult, L"clcfpat" )
|
||||
if( PROP_DEF != m_nBackColor )
|
||||
@ -401,6 +421,8 @@ std::wstring RtfShadingRow::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case st_chbgdkbdiag: sResult += L"\\trbgdkbdiag"; break;
|
||||
case st_chbgdkcross: sResult += L"\\trbgdkcross"; break;
|
||||
case st_chbgdkdcross: sResult += L"\\trbgdkdcross"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nForeColor, sResult, L"trcfpat" )
|
||||
RENDER_RTF_INT( m_nBackColor, sResult, L"trcbpat" )
|
||||
@ -425,6 +447,8 @@ std::wstring RtfShadingTableStyle::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case st_chbgdkbdiag: sResult += L"\\tsbgdkbdiag"; break;
|
||||
case st_chbgdkcross: sResult += L"\\tsbgdkcross"; break;
|
||||
case st_chbgdkdcross: sResult += L"\\tsbgdkdcross"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nForeColor, sResult, L"tscellcfpat" )
|
||||
RENDER_RTF_INT( m_nBackColor, sResult, L"tscellcbpat" )
|
||||
@ -499,6 +523,8 @@ std::wstring RtfShading::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case st_chbgdkbdiag: sShading += L" w:val=\"diagStripe\""; break;
|
||||
case st_chbgdkcross: sShading += L" w:val=\"horzCross\""; break;
|
||||
case st_chbgdkdcross: sShading += L" w:val=\"diagCross\""; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( false == sShading.empty() )
|
||||
@ -537,6 +563,8 @@ std::wstring RtfBorder::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case bt_brdrengrave: sResult = L"\\brdrengrave"; break;
|
||||
case bt_brdroutset: sResult = L"\\brdroutset"; break;
|
||||
case bt_brdrnone: sResult = L"\\brdrnone"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( PROP_DEF != m_nWidth && m_nWidth > 0)
|
||||
sResult += L"\\brdrw" + std::to_wstring(m_nWidth );
|
||||
@ -593,6 +621,8 @@ std::wstring RtfBorder::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case bt_brdrdashdotstr: sResult += L" w:val=\"dashDotStroked\""; break;
|
||||
case bt_brdremboss: sResult += L" w:val=\"threeDEmboss\""; break;
|
||||
case bt_brdrengrave: sResult += L" w:val=\"threeDEngrave\""; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( false == sResult.empty() )
|
||||
{
|
||||
@ -670,6 +700,8 @@ std::wstring RtfCharProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case uls_Double_wave: sResult += L"\\ululdbwave"; break;
|
||||
case uls_Word: sResult += L"\\ulw"; break;
|
||||
case uls_Wave: sResult += L"\\ulwave"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nUnderlineColor, sResult, L"ulc" )
|
||||
RENDER_RTF_INT( m_nUp, sResult, L"up" )
|
||||
@ -768,6 +800,8 @@ std::wstring RtfCharProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case 4: sResult += L"<w:effect w:val=\"antsBlack\"/>"; break;
|
||||
case 5: sResult += L"<w:effect w:val=\"antsRed\"/>"; break;
|
||||
case 6: sResult += L"<w:effect w:val=\"shimmer\"/>"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_OOX_BOOL ( m_bBold, sResult, L"w:b" )
|
||||
RENDER_OOX_BOOL ( m_bCaps, sResult, L"w:caps" )
|
||||
@ -898,6 +932,8 @@ std::wstring RtfCharProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case uls_Double_wave: sResult += L" w:val=\"wavyDouble\"/>"; break;
|
||||
case uls_Word: sResult += L" w:val=\"words\"/>"; break;
|
||||
case uls_Wave: sResult += L" w:val=\"wave\"/>"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1045,6 +1081,8 @@ std::wstring RtfListLevelProperty::RenderToOOX2(RenderParameter oRenderParameter
|
||||
case 0: sResult += L"<w:suff w:val=\"tab\"/>"; break;
|
||||
case 1: sResult += L"<w:suff w:val=\"space\"/>"; break;
|
||||
case 2: sResult += L"<w:suff w:val=\"nothing\"/>"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1178,6 +1216,8 @@ std::wstring RtfStyle::RenderToOOXBegin(RenderParameter oRenderParameter)
|
||||
case stCharacter : sType = L"character"; break;
|
||||
case stSection : sType = L"numbering"; break;
|
||||
case stTable : sType = L"table"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//sResult += L"<w:style w:type=\"" + sType + L"\" w:styleId=\"" + XmlUtils::EncodeXmlString( m_sName ) + L"\">";
|
||||
sResult += L"<w:style w:type=\"" + sType + L"\" w:styleId=\"" + L"Style_" + std::to_wstring(m_nID) + L"\">";
|
||||
@ -1551,6 +1591,8 @@ std::wstring RtfTab::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case tl_mdot: sResult += L"\\tlmdot"; break;
|
||||
case tl_hyph: sResult += L"\\tlhyph"; break;
|
||||
case tl_ul: sResult += L"\\tlul"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sResult += L"\\tb" + std::to_wstring( m_nTab );
|
||||
}
|
||||
@ -1562,12 +1604,16 @@ std::wstring RtfTab::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case tl_mdot: sResult += L"\\tlmdot"; break;
|
||||
case tl_hyph: sResult += L"\\tlhyph"; break;
|
||||
case tl_ul: sResult += L"\\tlul"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch( m_eKind )
|
||||
{
|
||||
case tk_tqr: sResult += L"\\tqr"; break;
|
||||
case tk_tqc: sResult += L"\\tqc"; break;
|
||||
case tk_tqdec: sResult += L"\\tqdec"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sResult += L"\\tx" + std::to_wstring( m_nTab );
|
||||
}
|
||||
@ -1585,6 +1631,8 @@ std::wstring RtfTab::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case tl_mdot: sTab += L" w:leader=\"middleDot\""; break;
|
||||
case tl_hyph: sTab += L" w:leader=\"hyphen\""; break;
|
||||
case tl_ul: sTab += L" w:leader=\"underscore\""; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch( m_eKind )
|
||||
{
|
||||
@ -1593,6 +1641,8 @@ std::wstring RtfTab::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case tk_tqc: sTab += L" w:val=\"center\""; break;
|
||||
case tk_tqdec: sTab += L" w:val=\"decimal\""; break;
|
||||
case tk_tqbar: sTab += L" w:val=\"bar\""; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( PROP_DEF != m_nTab )
|
||||
sTab += L" w:pos=\"" + std::to_wstring(m_nTab) + L"\"";
|
||||
@ -1611,6 +1661,8 @@ std::wstring RtfFrame::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case hr_phmrg: sResult += L"\\phmrg"; break;
|
||||
case hr_phpg: sResult += L"\\phpg"; break;
|
||||
case hr_phcol: sResult += L"\\phcol"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( PROP_DEF != m_nHPos )
|
||||
{
|
||||
@ -1626,6 +1678,8 @@ std::wstring RtfFrame::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case hp_posxo: sResult += L"\\posxo"; break;
|
||||
case hp_posxl: sResult += L"\\posxl"; break;
|
||||
case hp_posxr: sResult += L"\\posxr"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch ( m_eVRef )
|
||||
@ -1633,6 +1687,8 @@ std::wstring RtfFrame::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case vr_pvmrg: sResult += L"\\pvmrg"; break;
|
||||
case vr_pvpg: sResult += L"\\pvpg"; break;
|
||||
case vr_pvpara: sResult += L"\\pvpara"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( PROP_DEF != m_nVPos )
|
||||
{
|
||||
@ -1649,6 +1705,8 @@ std::wstring RtfFrame::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case vp_posyc: sResult += L"\\posyc"; break;
|
||||
case vp_posyin: sResult += L"\\posyin"; break;
|
||||
case vp_posyout: sResult += L"\\posyout"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_bLockAnchor, sResult, L"abslock" )
|
||||
|
||||
@ -1658,6 +1716,8 @@ std::wstring RtfFrame::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case tw_wraparound: sResult += L"\\wraparound"; break;
|
||||
case tw_wraptight: sResult += L"\\wraptight"; break;
|
||||
case tw_wrapthrough: sResult += L"\\wrapthrough"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_DropcapType, sResult, L"dropcapt" )
|
||||
RENDER_RTF_INT( m_DropcapLines, sResult, L"dropcapli" )
|
||||
@ -1696,6 +1756,8 @@ std::wstring RtfFrame::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case hr_phmrg: sFrame += L" w:hAnchor=\"margin\""; break;
|
||||
case hr_phpg: sFrame += L" w:hAnchor=\"page\""; break;
|
||||
case hr_phcol: sFrame += L" w:hAnchor=\"text\""; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_OOX_INT_ATTRIBUTE( m_nHPos, sFrame, L"w:x" )
|
||||
switch ( m_eHPos )
|
||||
@ -1705,12 +1767,16 @@ std::wstring RtfFrame::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case hp_posxo: sFrame += L" w:xAlign=\"outside\""; break;
|
||||
case hp_posxl: sFrame += L" w:xAlign=\"left\""; break;
|
||||
case hp_posxr: sFrame += L" w:xAlign=\"right\""; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch ( m_eVRef )
|
||||
{
|
||||
case vr_pvmrg: sFrame += L" w:vAnchor=\"margin\""; break;
|
||||
case vr_pvpg: sFrame += L" w:vAnchor=\"page\""; break;
|
||||
case vr_pvpara: sFrame += L" w:vAnchor=\"text\""; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_OOX_INT_ATTRIBUTE( m_nVPos, sFrame, L"w:y" )
|
||||
switch ( m_eVPos )
|
||||
@ -1721,6 +1787,8 @@ std::wstring RtfFrame::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case vp_posyc: sFrame += L" w:yAlign=\"center\""; break;
|
||||
case vp_posyin: sFrame += L" w:yAlign=\"inside\""; break;
|
||||
case vp_posyout: sFrame += L" w:yAlign=\"outside\""; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_OOX_BOOL_ATTRIBUTE( m_bLockAnchor, sFrame, L"w:anchorLock" )
|
||||
switch ( m_eWrap )
|
||||
@ -1729,6 +1797,8 @@ std::wstring RtfFrame::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case tw_wraparound: sFrame += L" w:wrap=\"around\""; break;
|
||||
case tw_wraptight: sFrame += L" w:wrap=\"tight\""; break;
|
||||
case tw_wrapthrough: sFrame += L" w:wrap=\"through\""; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( 1 == m_DropcapType ) sFrame += L" w:dropCap=\"drop\"";
|
||||
else if( 2 == m_DropcapType ) sFrame += L" w:dropCap=\"margin\"";
|
||||
@ -1775,6 +1845,8 @@ std::wstring RtfParagraphProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case pa_qk0: sResult += L"\\qk0"; break;
|
||||
case pa_qk10: sResult += L"\\qk10"; break;
|
||||
case pa_qk20: sResult += L"\\qk20"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch( m_eFontAlign )
|
||||
{
|
||||
@ -1784,6 +1856,8 @@ std::wstring RtfParagraphProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case fa_faroman: sResult += L"\\faroman"; break;
|
||||
case fa_favar: sResult += L"\\favar"; break;
|
||||
case fa_fafixed: sResult += L"\\fafixed"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nIndFirstLine , sResult, L"fi" );
|
||||
RENDER_RTF_INT( m_nIndLeft , sResult, L"li" );
|
||||
@ -1816,6 +1890,8 @@ std::wstring RtfParagraphProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case tbw_txbxtwfirstlast: sResult += L"\\txbxtwfirstlast"; break;
|
||||
case tbw_txbxtwfirst: sResult += L"\\txbxtwfirst"; break;
|
||||
case tbw_txbxtwlast: sResult += L"\\txbxtwlast"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( PROP_DEF != m_nListId && PROP_DEF != m_nListLevel )
|
||||
{
|
||||
@ -1874,6 +1950,8 @@ std::wstring RtfParagraphProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case tf_frmtxbtlr: sResult += L"\\frmtxbtlr"; break;
|
||||
case tf_frmtxlrtbv: sResult += L"\\frmtxlrtbv"; break;
|
||||
case tf_frmtxtbrlv: sResult += L"\\frmtxtbrlv"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( true == m_oTabs.IsValid() )
|
||||
sResult += m_oTabs.RenderToRtf( oRenderParameter );
|
||||
@ -1992,6 +2070,8 @@ std::wstring RtfParagraphProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case pa_qk0: sResult += L"<w:jc w:val=\"lowKashida\" />"; break;
|
||||
case pa_qk10: sResult += L"<w:jc w:val=\"mediumKashida\" />"; break;
|
||||
case pa_qk20: sResult += L"<w:jc w:val=\"highKashida\" />"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch( m_eFontAlign )
|
||||
{
|
||||
@ -2001,6 +2081,8 @@ std::wstring RtfParagraphProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case fa_faroman: sResult += L"<w:textAlignment w:val=\"baseline\" />";break;
|
||||
case fa_favar: sResult += L"<w:textAlignment w:val=\"bottom\" />"; break;
|
||||
case fa_fafixed: sResult += L"<w:textAlignment w:val=\"bottom\" />"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
std::wstring sIndent;
|
||||
if( PROP_DEF != m_nIndFirstLine )
|
||||
@ -2072,6 +2154,8 @@ std::wstring RtfParagraphProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case tbw_txbxtwfirstlast: sResult += L"<w:textboxTightWrap w:val=\"firstAndLastLine\"/>"; break;
|
||||
case tbw_txbxtwfirst: sResult += L"<w:textboxTightWrap w:val=\"firstLineOnly\"/>"; break;
|
||||
case tbw_txbxtwlast: sResult += L"<w:textboxTightWrap w:val=\"lastLineOnly\"/>"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( PROP_DEF != m_nListId && PROP_DEF != m_nListLevel )
|
||||
sResult += L"<w:numPr><w:ilvl w:val=\"" + std::to_wstring(m_nListLevel) + L"\" /><w:numId w:val=\"" + std::to_wstring(m_nListId) + L"\" /></w:numPr>";
|
||||
@ -2136,6 +2220,8 @@ std::wstring RtfParagraphProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case tf_frmtxbtlr: sResult += L"<w:textFlow w:val=\"btlr\" />"; break;
|
||||
case tf_frmtxlrtbv: sResult += L"<w:textFlow w:val=\"lrtbV\" />";break;
|
||||
case tf_frmtxtbrlv: sResult += L"<w:textFlow w:val=\"tbrlV\" />";break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( true == m_oTabs.IsValid() )
|
||||
{
|
||||
@ -2176,14 +2262,15 @@ std::wstring RtfCellProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
RENDER_RTF_BOOL( m_bFitText, sResult, L"clFitText" )
|
||||
RENDER_RTF_BOOL( m_bNoWrap, sResult, L"clNoWrap" )
|
||||
|
||||
RENDER_RTF_INT( m_nIsPaddingLeft, sResult, L"clpadfl" )
|
||||
RENDER_RTF_INT( m_nPaddingLeft, sResult, L"clpadl" )
|
||||
RENDER_RTF_INT( m_nIsPaddingRight, sResult, L"clpadfr" )
|
||||
//https://www.office-forums.com/threads/rtf-file-weirdness-clpadt-vs-clpadl.2163500/
|
||||
RENDER_RTF_INT( m_nPaddingLeft, sResult, L"clpadt" ) //перепутаны top & left
|
||||
RENDER_RTF_INT( m_nIsPaddingLeft, sResult, L"clpadft" ) //перепутаны top & left
|
||||
RENDER_RTF_INT( m_nPaddingRight, sResult, L"clpadr" )
|
||||
RENDER_RTF_INT( m_nIsPaddingTop, sResult, L"clpadft" )
|
||||
RENDER_RTF_INT( m_nPaddingTop, sResult, L"clpadt" )
|
||||
RENDER_RTF_INT( m_nIsPaddingBottom, sResult, L"clpadfb" )
|
||||
RENDER_RTF_INT( m_nIsPaddingRight, sResult, L"clpadfr" )
|
||||
RENDER_RTF_INT( m_nPaddingTop, sResult, L"clpadl" ) //перепутаны top & left
|
||||
RENDER_RTF_INT( m_nIsPaddingTop, sResult, L"clpadfl" ) //перепутаны top & left
|
||||
RENDER_RTF_INT( m_nPaddingBottom, sResult, L"clpadb" )
|
||||
RENDER_RTF_INT( m_nIsPaddingBottom, sResult, L"clpadfb" )
|
||||
|
||||
RENDER_RTF_INT( m_nIsSpacingLeft, sResult, L"clspfl" )
|
||||
RENDER_RTF_INT( m_nSpacingLeft, sResult, L"clspl" )
|
||||
@ -2235,6 +2322,8 @@ std::wstring RtfCellProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case ca_Top: sResult += L"\\clvertalt"; break;
|
||||
case ca_Center: sResult += L"\\clvertalc"; break;
|
||||
case ca_Bottom: sResult += L"\\clvertalb"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch( m_oCellFlow )
|
||||
{
|
||||
@ -2243,6 +2332,8 @@ std::wstring RtfCellProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case cf_btlr: sResult += L"\\cltxbtlr"; break;
|
||||
case cf_lrtbv: sResult += L"\\cltxlrtbv"; break;
|
||||
case cf_tbrlv: sResult += L"\\cltxtbrlv"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nWidth, sResult, L"clwWidth" )
|
||||
switch( m_eWidthUnits )
|
||||
@ -2251,6 +2342,8 @@ std::wstring RtfCellProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case mu_Auto: sResult += L"\\clftsWidth1"; break;
|
||||
case mu_Percent: sResult += L"\\clftsWidth2"; break;
|
||||
case mu_Twips: sResult += L"\\clftsWidth3"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
sResult += L"\\cellx" + std::to_wstring(m_nCellx);
|
||||
@ -2386,6 +2479,8 @@ std::wstring RtfCellProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case ca_Top: sResult += L"<w:vAlign w:val=\"top\"/>"; break;
|
||||
case ca_Center: sResult += L"<w:vAlign w:val=\"center\"/>"; break;
|
||||
case ca_Bottom: sResult += L"<w:vAlign w:val=\"bottom\"/>"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch( m_oCellFlow )
|
||||
{
|
||||
@ -2394,7 +2489,8 @@ std::wstring RtfCellProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case cf_btlr: sResult += L"<w:textDirection w:val=\"btLr\"/>"; break;
|
||||
case cf_lrtbv: sResult += L"<w:textDirection w:val=\"lrTbV\"/>"; break;
|
||||
case cf_tbrlv: sResult += L"<w:textDirection w:val=\"tbRlV\"/>"; break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
RENDER_OOX_INT( m_nSpan, sResult, L"w:gridSpan" );
|
||||
@ -2582,6 +2678,8 @@ std::wstring RtfTableProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
//case 2: sResult += L"<w:tblInd w:w=\"" + std::to_wstring(nTableIndent) + L"%%\" w:type=\"pct\"/>", );break;
|
||||
case 3: sResult += L"<w:tblInd w:w=\"" + std::to_wstring(nTableIndent) + L"\" w:type=\"dxa\"/>"; break;
|
||||
//default: sResult += L"<w:tblInd w:w=\"" + std::to_wstring(nTableIndent) + L"\" w:type=\"dxa\"/>", nTableIndent );break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2593,6 +2691,8 @@ std::wstring RtfTableProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case rj_trql : sResult += L"<w:jc w:val=\"left\"/>"; break;
|
||||
case rj_trqr : sResult += L"<w:jc w:val=\"right\"/>"; break;
|
||||
case rj_trqc : sResult += L"<w:jc w:val=\"center\"/>"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
std::wstring sFloatingPosition;
|
||||
@ -2738,30 +2838,38 @@ std::wstring RtfRowProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
case rj_trql : sResult += L"\\trql"; break;
|
||||
case rj_trqr : sResult += L"\\trqr"; break;
|
||||
case rj_trqc : sResult += L"\\trqc"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nHeight, sResult, L"trrh" );
|
||||
|
||||
RENDER_RTF_INT( m_nWidth, sResult, L"trwWidth" );
|
||||
switch( m_eMUWidth )
|
||||
{
|
||||
case mu_Auto: sResult += L"\\trftsWidth1"; break;
|
||||
case mu_Percent: sResult += L"\\trftsWidth2"; break;
|
||||
case mu_Twips: sResult += L"\\trftsWidth3"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nWidthStartInvCell, sResult, L"trwWidthB" );
|
||||
RENDER_RTF_INT( m_nWidth, sResult, L"trwWidth" );
|
||||
switch( m_eMUStartInvCell )
|
||||
{
|
||||
case mu_Auto: sResult += L"\\trftsWidthB1"; break;
|
||||
case mu_Percent: sResult += L"\\trftsWidthB2"; break;
|
||||
case mu_Twips: sResult += L"\\trftsWidthB3"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nWidthEndInvCell, sResult, L"trwWidthA" );
|
||||
RENDER_RTF_INT( m_nWidthStartInvCell, sResult, L"trwWidthB" );
|
||||
switch( m_eMUEndInvCell )
|
||||
{
|
||||
case mu_Auto: sResult += L"\\trftsWidthA1"; break;
|
||||
case mu_Percent: sResult += L"\\trftsWidthA2"; break;
|
||||
case mu_Twips: sResult += L"\\trftsWidthA3"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RENDER_RTF_INT( m_nWidthEndInvCell, sResult, L"trwWidthA" );
|
||||
sResult += RtfTableProperty::RenderToRtf( oRenderParameter );
|
||||
|
||||
for (size_t i = 0; i < m_aArray.size(); i++ )
|
||||
@ -2791,6 +2899,8 @@ std::wstring RtfRowProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
case rj_trql : sResult += L"<w:jc w:val=\"left\"/>"; break;
|
||||
case rj_trqr : sResult += L"<w:jc w:val=\"right\"/>"; break;
|
||||
case rj_trqc : sResult += L"<w:jc w:val=\"center\"/>"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( PROP_DEF != m_nHeight )
|
||||
{
|
||||
@ -2806,6 +2916,8 @@ std::wstring RtfRowProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
{
|
||||
case mu_Percent: sResult += L"<w:wBefore w:type=\"pct\" w:w=\"" + std::to_wstring(m_nWidthStartInvCell) + L"%\"/>"; break;
|
||||
case mu_Twips: sResult += L"<w:wBefore w:type=\"dxa\" w:w=\"" + std::to_wstring(m_nWidthStartInvCell) + L"\"/>"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( PROP_DEF != m_nWidthEndInvCell )
|
||||
@ -2814,6 +2926,8 @@ std::wstring RtfRowProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
{
|
||||
case mu_Percent: sResult += L"<w:wAfter w:type=\"pct\" w:w=\"" + std::to_wstring(m_nWidthEndInvCell) + L"%\"/>"; break;
|
||||
case mu_Twips: sResult += L"<w:wAfter w:type=\"dxa\" w:w=\"" + std::to_wstring(m_nWidthEndInvCell) + L"\"/>"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
RENDER_OOX_INT( m_nGridBefore, sResult, L"w:gridBefore" )
|
||||
|
||||
@ -2325,35 +2325,35 @@ public:
|
||||
|
||||
void Merge( RtfCellProperty& oCellPr )
|
||||
{
|
||||
MERGE_PROPERTY( m_bMergeFirst, oCellPr )
|
||||
MERGE_PROPERTY( m_bMerge, oCellPr )
|
||||
MERGE_PROPERTY( m_bMergeFirstVertical, oCellPr )
|
||||
MERGE_PROPERTY( m_bMergeVertical, oCellPr )
|
||||
MERGE_PROPERTY( m_bMergeFirst, oCellPr )
|
||||
MERGE_PROPERTY( m_bMerge, oCellPr )
|
||||
MERGE_PROPERTY( m_bMergeFirstVertical, oCellPr )
|
||||
MERGE_PROPERTY( m_bMergeVertical, oCellPr )
|
||||
|
||||
MERGE_PROPERTY( m_bFitText, oCellPr )
|
||||
MERGE_PROPERTY( m_bNoWrap, oCellPr )
|
||||
MERGE_PROPERTY( m_bNoWrap, oCellPr )
|
||||
|
||||
MERGE_PROPERTY( m_nPaddingLeft, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsPaddingLeft, oCellPr )
|
||||
MERGE_PROPERTY( m_nPaddingRight, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsPaddingRight, oCellPr )
|
||||
MERGE_PROPERTY( m_nPaddingTop, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsPaddingTop, oCellPr )
|
||||
MERGE_PROPERTY( m_nPaddingBottom, oCellPr )
|
||||
MERGE_PROPERTY( m_nPaddingLeft, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsPaddingLeft, oCellPr )
|
||||
MERGE_PROPERTY( m_nPaddingRight, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsPaddingRight, oCellPr )
|
||||
MERGE_PROPERTY( m_nPaddingTop, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsPaddingTop, oCellPr )
|
||||
MERGE_PROPERTY( m_nPaddingBottom, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsPaddingBottom, oCellPr )
|
||||
|
||||
MERGE_PROPERTY( m_nSpacingLeft, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsSpacingLeft, oCellPr )
|
||||
MERGE_PROPERTY( m_nSpacingRight, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsSpacingRight, oCellPr )
|
||||
MERGE_PROPERTY( m_nSpacingTop, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsSpacingTop, oCellPr )
|
||||
MERGE_PROPERTY( m_nSpacingBottom, oCellPr )
|
||||
MERGE_PROPERTY( m_nSpacingLeft, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsSpacingLeft, oCellPr )
|
||||
MERGE_PROPERTY( m_nSpacingRight, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsSpacingRight, oCellPr )
|
||||
MERGE_PROPERTY( m_nSpacingTop, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsSpacingTop, oCellPr )
|
||||
MERGE_PROPERTY( m_nSpacingBottom, oCellPr )
|
||||
MERGE_PROPERTY( m_nIsSpacingBottom, oCellPr )
|
||||
|
||||
MERGE_PROPERTY( m_eWidthUnits, oCellPr )
|
||||
MERGE_PROPERTY( m_nWidth, oCellPr )
|
||||
MERGE_PROPERTY( m_bHideMark, oCellPr )
|
||||
MERGE_PROPERTY( m_eWidthUnits, oCellPr )
|
||||
MERGE_PROPERTY( m_nWidth, oCellPr )
|
||||
MERGE_PROPERTY( m_bHideMark, oCellPr )
|
||||
|
||||
m_oBorderDiagonalLR.Merge( oCellPr.m_oBorderDiagonalLR );
|
||||
m_oBorderDiagonalRL.Merge( oCellPr.m_oBorderDiagonalRL );
|
||||
@ -2421,11 +2421,11 @@ public:
|
||||
|
||||
int m_nHeight; //trrhN Height of a table row in twips. When 0, the height is sufficient for all the text in the line; when positive, the height is guaranteed to be at least the specified height; when negative, the absolute value of the height is used, regardless of the height of the text in the line.
|
||||
|
||||
int m_nWidthStartInvCell; //trwWidthBN Width of invisible cell at the beginning of the row. Used only in cases where rows have different widths.
|
||||
_MetricUnits m_eMUStartInvCell; //trftsWidthBN Units for \trwWidthBN:
|
||||
int m_nWidthStartInvCell; //trwWidthBN Width of invisible cell at the beginning of the row. Used only in cases where rows have different widths.
|
||||
int m_eMUStartInvCell; //trftsWidthBN Units for \trwWidthBN:
|
||||
|
||||
int m_nWidthEndInvCell; //trwWidthAN Width of invisible cell at the end of the row. Used only when rows have different widths.
|
||||
_MetricUnits m_eMUEndInvCell; //trftsWidthAN Units for \trwWidthAN:
|
||||
int m_nWidthEndInvCell; //trwWidthAN Width of invisible cell at the end of the row. Used only when rows have different widths.
|
||||
int m_eMUEndInvCell; //trftsWidthAN Units for \trwWidthAN:
|
||||
|
||||
int m_nGridBefore; //для oox
|
||||
int m_nGridAfter; //для oox
|
||||
|
||||
@ -307,13 +307,12 @@ std::wstring RtfSectionProperty::RenderToRtf(RenderParameter oRenderParameter)
|
||||
RENDER_RTF_INT ( m_nColumnNumber, sResult, L"cols" )
|
||||
RENDER_RTF_INT ( m_nColumnSpace, sResult, L"colsx" )
|
||||
RENDER_RTF_BOOL ( m_bColumnLineBetween, sResult, L"linebetcol" )
|
||||
|
||||
int nCollFormCount = (int)m_oCollumnProperty.m_aCollumnProperty.size();
|
||||
if( nCollFormCount > 0 )
|
||||
{
|
||||
for( int i = 0; i < nCollFormCount; i++ )
|
||||
|
||||
if (m_nColumnNumber > 1)
|
||||
{
|
||||
for( size_t i = 0; i < m_oCollumnProperty.m_aCollumnProperty.size(); i++ )
|
||||
{
|
||||
sResult += L"\\colno" + std::to_wstring( i + 1 );
|
||||
sResult += L"\\colno" + std::to_wstring( i + 1 );
|
||||
RENDER_RTF_INT( m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnSpaceToRightOfCol, sResult, L"colsr" )
|
||||
RENDER_RTF_INT( m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnWidth, sResult, L"colw" )
|
||||
}
|
||||
@ -575,23 +574,36 @@ std::wstring RtfSectionProperty::RenderToOOX(RenderParameter oRenderParameter)
|
||||
}
|
||||
}
|
||||
sCollumnFormating += L"<w:cols w:num=\"" + std::to_wstring(m_nColumnNumber) + L"\"";
|
||||
|
||||
if( PROP_DEF != m_nColumnSpace )
|
||||
sCollumnFormating += L" w:space=\"" + std::to_wstring(m_nColumnSpace) + L"\"";
|
||||
if( true == bEqualWidth )
|
||||
sCollumnFormating += L" w:equalWidth=\"true\"/>";
|
||||
|
||||
if (m_nColumnNumber > 1)
|
||||
{
|
||||
if (PROP_DEF != m_bColumnLineBetween)
|
||||
sCollumnFormating += std::wstring(L" w:sep=\"") + (m_bColumnLineBetween ? L"1" : L"0") + L"\"";
|
||||
|
||||
if( true == bEqualWidth )
|
||||
sCollumnFormating += L" w:equalWidth=\"true\"/>";
|
||||
else
|
||||
{
|
||||
sCollumnFormating += L" w:equalWidth=\"false\">";
|
||||
|
||||
for (size_t i = 0; i < m_oCollumnProperty.m_aCollumnProperty.size(); i++ )
|
||||
{
|
||||
sCollumnFormating += L"<w:col";
|
||||
if( PROP_DEF != m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnWidth )
|
||||
sCollumnFormating += L" w:w=\"" + std::to_wstring(m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnWidth) + L"\"";
|
||||
if( PROP_DEF != m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnSpaceToRightOfCol )
|
||||
sCollumnFormating += L" w:space=\"" + std::to_wstring(m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnSpaceToRightOfCol ) + L"\"";
|
||||
sCollumnFormating += L"/>";
|
||||
}
|
||||
sCollumnFormating += L"</w:cols>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sCollumnFormating += L" w:equalWidth=\"false\">";
|
||||
for (size_t i = 0; i < m_oCollumnProperty.m_aCollumnProperty.size(); i++ )
|
||||
{
|
||||
sCollumnFormating += L"<w:col";
|
||||
if( PROP_DEF != m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnWidth )
|
||||
sCollumnFormating += L" w:w=\"" + std::to_wstring(m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnWidth) + L"\"";
|
||||
if( PROP_DEF != m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnSpaceToRightOfCol )
|
||||
sCollumnFormating += L" w:space=\"" + std::to_wstring(m_oCollumnProperty.m_aCollumnProperty[i].m_nColumnSpaceToRightOfCol ) + L"\"";
|
||||
sCollumnFormating += L"/>";
|
||||
}
|
||||
sCollumnFormating += L"</w:cols>";
|
||||
sCollumnFormating += L"/>";
|
||||
}
|
||||
if( false == sCollumnFormating.empty() )
|
||||
sResult += sCollumnFormating;
|
||||
|
||||
@ -315,15 +315,11 @@ public:
|
||||
class ColumnProperty
|
||||
{
|
||||
public:
|
||||
class CollumnVar
|
||||
struct CollumnVar
|
||||
{
|
||||
public: int m_nColumnSpaceToRightOfCol; // colsrN Space to right of column in twips; used to specify formatting for variable-width columns.
|
||||
int m_nColumnWidth; // colwN Width of column in twips; used to override the default constant width setting for variable-width columns.
|
||||
CollumnVar()
|
||||
{
|
||||
m_nColumnSpaceToRightOfCol = PROP_DEF;
|
||||
m_nColumnWidth = PROP_DEF;
|
||||
}
|
||||
int m_nColumnSpaceToRightOfCol = PROP_DEF; // colsrN Space to right of column in twips; used to specify formatting for variable-width columns.
|
||||
int m_nColumnWidth = PROP_DEF; // colwN Width of column in twips; used to override the default constant width setting for variable-width columns.
|
||||
|
||||
};
|
||||
std::vector< CollumnVar > m_aCollumnProperty;
|
||||
ColumnProperty()
|
||||
@ -570,8 +566,6 @@ public:
|
||||
DEFAULT_PROPERTY ( m_nColumnSpace )
|
||||
DEFAULT_PROPERTY ( m_bColumnLineBetween )
|
||||
|
||||
m_oCollumnProperty.m_aCollumnProperty.resize( m_nColumnNumber );
|
||||
|
||||
//Footnotes and Endnotes
|
||||
DEFAULT_PROPERTY_DEF( m_eFootnotesJust, fj_none )
|
||||
DEFAULT_PROPERTY ( m_nFootnotesStart )
|
||||
|
||||
@ -55,7 +55,8 @@ void RtfShape::SetDefault()
|
||||
DEFAULT_PROPERTY( m_bLockAnchor )
|
||||
DEFAULT_PROPERTY_DEF( m_eXAnchor, ax_column ) //по умолчанию - привязка к тексту
|
||||
DEFAULT_PROPERTY_DEF( m_eYAnchor, ay_Para )//по умолчанию - привязка к тексту
|
||||
|
||||
DEFAULT_PROPERTY( m_nLockPosition )
|
||||
DEFAULT_PROPERTY( m_nLockRotation )
|
||||
//Position absolute
|
||||
DEFAULT_PROPERTY( m_nPositionH )
|
||||
DEFAULT_PROPERTY( m_nPositionHRelative )
|
||||
@ -89,19 +90,27 @@ void RtfShape::SetDefault()
|
||||
|
||||
//Text box
|
||||
DEFAULT_PROPERTY( m_nAnchorText )
|
||||
DEFAULT_PROPERTY_DEF( m_nTexpLeft, 91440 )
|
||||
DEFAULT_PROPERTY_DEF( m_nTexpTop, 45720 )
|
||||
DEFAULT_PROPERTY_DEF( m_nTexpRight, 91440 )
|
||||
DEFAULT_PROPERTY_DEF( m_nTexpBottom, 45720 )
|
||||
|
||||
//DEFAULT_PROPERTY_DEF( m_nTexpLeft, 91440 )
|
||||
//DEFAULT_PROPERTY_DEF( m_nTexpTop, 45720 )
|
||||
//DEFAULT_PROPERTY_DEF( m_nTexpRight, 91440 )
|
||||
//DEFAULT_PROPERTY_DEF( m_nTexpBottom, 45720 )
|
||||
|
||||
DEFAULT_PROPERTY( m_nTexpLeft )
|
||||
DEFAULT_PROPERTY( m_nTexpTop )
|
||||
DEFAULT_PROPERTY( m_nTexpRight )
|
||||
DEFAULT_PROPERTY( m_nTexpBottom )
|
||||
|
||||
DEFAULT_PROPERTY( m_bFitShapeToText )
|
||||
DEFAULT_PROPERTY( m_bFitTextToShape )
|
||||
DEFAULT_PROPERTY( m_nCcol )
|
||||
DEFAULT_PROPERTY( m_nTxdir )
|
||||
DEFAULT_PROPERTY( m_nWrapText )
|
||||
DEFAULT_PROPERTY( m_nTxflTextFlow)
|
||||
DEFAULT_PROPERTY( m_fRotateText)
|
||||
DEFAULT_PROPERTY( m_nScaleText)
|
||||
DEFAULT_PROPERTY( m_fAutoTextMargin)
|
||||
DEFAULT_PROPERTY( m_CdirFont)
|
||||
//Geometry
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
DEFAULT_PROPERTY( m_nAdjustValue[i] )
|
||||
@ -425,6 +434,8 @@ std::wstring RtfShape::RenderToRtfShapeProperty(RenderParameter oRenderParameter
|
||||
RENDER_RTF_SHAPE_PROP(L"posrelh", sResult, m_nPositionHRelative);
|
||||
RENDER_RTF_SHAPE_PROP(L"posv", sResult, m_nPositionV);
|
||||
RENDER_RTF_SHAPE_PROP(L"posrelv", sResult, m_nPositionVRelative);
|
||||
RENDER_RTF_SHAPE_PROP(L"fLockPosition", sResult, m_nLockPosition);
|
||||
RENDER_RTF_SHAPE_PROP(L"fLockRotation", sResult, m_nLockRotation);
|
||||
|
||||
RENDER_RTF_SHAPE_PROP(L"fLayoutInCell", sResult, m_bLayoutInCell);
|
||||
RENDER_RTF_SHAPE_PROP(L"fAllowOverlap", sResult, m_bAllowOverlap);
|
||||
@ -442,12 +453,12 @@ std::wstring RtfShape::RenderToRtfShapeProperty(RenderParameter oRenderParameter
|
||||
if (m_sName.empty() == false)
|
||||
{
|
||||
sResult += L"{\\sp{\\sn wzName}{\\sv ";
|
||||
sResult += m_sName + L"}}";
|
||||
sResult += RtfChar::renderRtfText( m_sName, oRenderParameter.poDocument, -1 ) + L"}}";
|
||||
}
|
||||
if (m_sDescription.empty() == false)
|
||||
{
|
||||
sResult += L"{\\sp{\\sn wzDescription}{\\sv ";
|
||||
sResult += m_sDescription + L"}}";
|
||||
sResult += RtfChar::renderRtfText(m_sDescription, oRenderParameter.poDocument, -1 ) + L"}}";
|
||||
}
|
||||
//Rehydration
|
||||
//RENDER_RTF_SHAPE_PROP(L"metroBlob", sResult, m_sMetroBlob);
|
||||
@ -482,6 +493,7 @@ std::wstring RtfShape::RenderToRtfShapeProperty(RenderParameter oRenderParameter
|
||||
RENDER_RTF_SHAPE_PROP(L"ccol", sResult, m_nCcol);
|
||||
RENDER_RTF_SHAPE_PROP(L"txdir", sResult, m_nTxdir);
|
||||
RENDER_RTF_SHAPE_PROP(L"WrapText", sResult, m_nWrapText);
|
||||
RENDER_RTF_SHAPE_PROP(L"txflTextFlow", sResult, m_nTxflTextFlow);
|
||||
//Geometry
|
||||
RENDER_RTF_SHAPE_PROP(L"adjustValue", sResult, m_nAdjustValue[0] );
|
||||
RENDER_RTF_SHAPE_PROP(L"adjust2Value", sResult, m_nAdjustValue[1] );
|
||||
@ -538,7 +550,7 @@ std::wstring RtfShape::RenderToRtfShapeProperty(RenderParameter oRenderParameter
|
||||
//Fill
|
||||
if( 0 == m_bFilled )
|
||||
sResult += L"{\\sp{\\sn fFilled}{\\sv 0}}";
|
||||
RENDER_RTF_SHAPE_PROP(L"fillType", sResult, m_nFillType );
|
||||
RENDER_RTF_SHAPE_PROP(L"fillType", sResult, m_nFillType );
|
||||
RENDER_RTF_SHAPE_PROP(L"fillColor", sResult, m_nFillColor );
|
||||
RENDER_RTF_SHAPE_PROP(L"fillBackColor", sResult, m_nFillColor2 );
|
||||
|
||||
|
||||
@ -83,6 +83,8 @@ public:
|
||||
int m_nWrapSideType; //shpwrkN Wrap on side (for types 2 and 4 for \shpwrN ):
|
||||
int m_nZOrderRelative; //shpfblwtxtN Describes relative z-ordering:
|
||||
int m_bLockAnchor; //shplockanchor Lock anchor for a shape.
|
||||
int m_nLockPosition;
|
||||
int m_nLockRotation;
|
||||
|
||||
_AnchorX m_eXAnchor;
|
||||
_AnchorY m_eYAnchor;
|
||||
@ -132,6 +134,11 @@ public:
|
||||
int m_nCcol; //columns
|
||||
int m_nTxdir; //bidi
|
||||
int m_nWrapText;
|
||||
int m_nTxflTextFlow;
|
||||
int m_fAutoTextMargin;
|
||||
int m_fRotateText;
|
||||
int m_nScaleText;
|
||||
int m_CdirFont;
|
||||
//Geometry
|
||||
int m_nAdjustValue[10];
|
||||
//Custom
|
||||
|
||||
@ -322,10 +322,10 @@ public:
|
||||
RtfTableCellPtr oCurCell = oCurRow->operator [](j);
|
||||
|
||||
int nSpan = 1;
|
||||
|
||||
if( PROP_DEF != oCurCell->m_oProperty.m_nSpan )
|
||||
nSpan = oCurCell->m_oProperty.m_nSpan;
|
||||
else
|
||||
nSpan = 1;
|
||||
|
||||
if( j == 0 && PROP_DEF != oCurRow->m_oProperty.m_nGridBefore )
|
||||
nCurIndex += oCurRow->m_oProperty.m_nGridBefore;
|
||||
//if( j == oCurRow->m_oProperty.size() - 1 && PROP_DEF != oCurRow->m_oProperty.m_nGridAfter )
|
||||
|
||||
@ -28,7 +28,6 @@
|
||||
17C1FBA61ACC4250006B99B3 /* ParagraphProperty.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E6A0661AC4262700F28F8B /* ParagraphProperty.cpp */; };
|
||||
17C1FBA71ACC4250006B99B3 /* NumFormat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E6A0001AC4262700F28F8B /* NumFormat.cpp */; };
|
||||
17C1FBA81ACC4250006B99B3 /* SystemUtility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E6A13D1AC4262800F28F8B /* SystemUtility.cpp */; };
|
||||
17C1FBAA1ACC4250006B99B3 /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E6A00E1AC4262700F28F8B /* Utils.cpp */; };
|
||||
17C1FBAB1ACC4250006B99B3 /* FileFactory_Spreadsheet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E6A1631AC4262800F28F8B /* FileFactory_Spreadsheet.cpp */; };
|
||||
17C1FBAC1ACC4250006B99B3 /* AlternateContent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E6A0561AC4262700F28F8B /* AlternateContent.cpp */; };
|
||||
17C1FBAD1ACC4250006B99B3 /* SmartTag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 17E6A0721AC4262700F28F8B /* SmartTag.cpp */; };
|
||||
@ -215,6 +214,11 @@
|
||||
690FE0831E9BBA23004B26D0 /* DiagramDrawing.h in Headers */ = {isa = PBXBuildFile; fileRef = 690FE0811E9BBA23004B26D0 /* DiagramDrawing.h */; };
|
||||
691C3E131F20C3D500F1775E /* File.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 691C3E121F20C3D500F1775E /* File.cpp */; };
|
||||
69B3ADA920120093000EC6A7 /* VmlDrawing.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B3ADA820120093000EC6A7 /* VmlDrawing.h */; };
|
||||
69E6AC872031AB0C00795D9D /* Xlsx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 69E6AC862031AB0C00795D9D /* Xlsx.cpp */; };
|
||||
69E6AC892031AC3500795D9D /* SheetData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 69E6AC882031AC3500795D9D /* SheetData.cpp */; };
|
||||
69E6AC8C2031ACA900795D9D /* VbaProject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 69E6AC8A2031ACA900795D9D /* VbaProject.cpp */; };
|
||||
69E6AC8D2031ACA900795D9D /* VbaProject.h in Headers */ = {isa = PBXBuildFile; fileRef = 69E6AC8B2031ACA900795D9D /* VbaProject.h */; };
|
||||
69E6AC8F2031B72500795D9D /* Worksheet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 69E6AC8E2031B72500795D9D /* Worksheet.cpp */; };
|
||||
69F181EC1C7734A700B2952B /* strings_hack_printf.h in Headers */ = {isa = PBXBuildFile; fileRef = 69F181EA1C7734A700B2952B /* strings_hack_printf.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
@ -252,7 +256,6 @@
|
||||
17E6A00B1AC4262700F28F8B /* SimpleTypes_Word.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleTypes_Word.h; sourceTree = "<group>"; };
|
||||
17E6A00C1AC4262700F28F8B /* Size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Size.h; sourceTree = "<group>"; };
|
||||
17E6A00D1AC4262700F28F8B /* Unit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Unit.h; sourceTree = "<group>"; };
|
||||
17E6A00E1AC4262700F28F8B /* Utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Utils.cpp; sourceTree = "<group>"; };
|
||||
17E6A00F1AC4262700F28F8B /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = "<group>"; };
|
||||
17E6A0101AC4262700F28F8B /* Wrap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Wrap.cpp; sourceTree = "<group>"; };
|
||||
17E6A0111AC4262700F28F8B /* Wrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Wrap.h; sourceTree = "<group>"; };
|
||||
@ -435,6 +438,11 @@
|
||||
690FE0811E9BBA23004B26D0 /* DiagramDrawing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagramDrawing.h; sourceTree = "<group>"; };
|
||||
691C3E121F20C3D500F1775E /* File.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp.preprocessed; fileEncoding = 4; path = File.cpp; sourceTree = "<group>"; };
|
||||
69B3ADA820120093000EC6A7 /* VmlDrawing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VmlDrawing.h; sourceTree = "<group>"; };
|
||||
69E6AC862031AB0C00795D9D /* Xlsx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Xlsx.cpp; sourceTree = "<group>"; };
|
||||
69E6AC882031AC3500795D9D /* SheetData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SheetData.cpp; sourceTree = "<group>"; };
|
||||
69E6AC8A2031ACA900795D9D /* VbaProject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VbaProject.cpp; sourceTree = "<group>"; };
|
||||
69E6AC8B2031ACA900795D9D /* VbaProject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VbaProject.h; sourceTree = "<group>"; };
|
||||
69E6AC8E2031B72500795D9D /* Worksheet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Worksheet.cpp; sourceTree = "<group>"; };
|
||||
69F181EA1C7734A700B2952B /* strings_hack_printf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = strings_hack_printf.h; path = ../../Common/DocxFormat/Source/Base/strings_hack_printf.h; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
@ -541,7 +549,6 @@
|
||||
17E6A00B1AC4262700F28F8B /* SimpleTypes_Word.h */,
|
||||
17E6A00C1AC4262700F28F8B /* Size.h */,
|
||||
17E6A00D1AC4262700F28F8B /* Unit.h */,
|
||||
17E6A00E1AC4262700F28F8B /* Utils.cpp */,
|
||||
17E6A00F1AC4262700F28F8B /* Utils.h */,
|
||||
17E6A0101AC4262700F28F8B /* Wrap.cpp */,
|
||||
17E6A0111AC4262700F28F8B /* Wrap.h */,
|
||||
@ -697,6 +704,8 @@
|
||||
17E6A0871AC4262700F28F8B /* Media.h */,
|
||||
17E6A0881AC4262700F28F8B /* OleObject.h */,
|
||||
17E6A0891AC4262700F28F8B /* Video.h */,
|
||||
69E6AC8A2031ACA900795D9D /* VbaProject.cpp */,
|
||||
69E6AC8B2031ACA900795D9D /* VbaProject.h */,
|
||||
);
|
||||
path = Media;
|
||||
sourceTree = "<group>";
|
||||
@ -772,6 +781,7 @@
|
||||
17E6A1871AC4262800F28F8B /* Worksheets */,
|
||||
17E6A18F1AC4262800F28F8B /* WritingElement.h */,
|
||||
17E6A1901AC4262800F28F8B /* Xlsx.h */,
|
||||
69E6AC862031AB0C00795D9D /* Xlsx.cpp */,
|
||||
);
|
||||
path = XlsxFormat;
|
||||
sourceTree = "<group>";
|
||||
@ -883,7 +893,9 @@
|
||||
17E6A18A1AC4262800F28F8B /* Hyperlinks.h */,
|
||||
17E6A18B1AC4262800F28F8B /* MergeCells.h */,
|
||||
17E6A18C1AC4262800F28F8B /* SheetData.h */,
|
||||
69E6AC882031AC3500795D9D /* SheetData.cpp */,
|
||||
17E6A18D1AC4262800F28F8B /* Worksheet.h */,
|
||||
69E6AC8E2031B72500795D9D /* Worksheet.cpp */,
|
||||
17E6A18E1AC4262800F28F8B /* WorksheetChildOther.h */,
|
||||
);
|
||||
path = Worksheets;
|
||||
@ -1052,6 +1064,7 @@
|
||||
17C1FC691ACC4250006B99B3 /* Footnote.h in Headers */,
|
||||
17C1FC6A1ACC4250006B99B3 /* ComplexTypes.h in Headers */,
|
||||
17C1FC6C1ACC4250006B99B3 /* RunContent.h in Headers */,
|
||||
69E6AC8D2031ACA900795D9D /* VbaProject.h in Headers */,
|
||||
17C1FC6D1ACC4250006B99B3 /* External.h in Headers */,
|
||||
17C1FC6E1ACC4250006B99B3 /* Fills.h in Headers */,
|
||||
17C1FC6F1ACC4250006B99B3 /* PhoneticPr.h in Headers */,
|
||||
@ -1156,6 +1169,7 @@
|
||||
17C1FB9E1ACC4250006B99B3 /* Align.cpp in Sources */,
|
||||
17C1FB9F1ACC4250006B99B3 /* Index.cpp in Sources */,
|
||||
17C1FBA01ACC4250006B99B3 /* TxtFile.cpp in Sources */,
|
||||
69E6AC8F2031B72500795D9D /* Worksheet.cpp in Sources */,
|
||||
17C1FBA11ACC4250006B99B3 /* SectionProperty.cpp in Sources */,
|
||||
17C1FBA31ACC4250006B99B3 /* Color.cpp in Sources */,
|
||||
17C1FBA41ACC4250006B99B3 /* Docx.cpp in Sources */,
|
||||
@ -1163,17 +1177,19 @@
|
||||
17C1FBA61ACC4250006B99B3 /* ParagraphProperty.cpp in Sources */,
|
||||
17C1FBA71ACC4250006B99B3 /* NumFormat.cpp in Sources */,
|
||||
17C1FBA81ACC4250006B99B3 /* SystemUtility.cpp in Sources */,
|
||||
17C1FBAA1ACC4250006B99B3 /* Utils.cpp in Sources */,
|
||||
17C1FBAB1ACC4250006B99B3 /* FileFactory_Spreadsheet.cpp in Sources */,
|
||||
17C1FBAC1ACC4250006B99B3 /* AlternateContent.cpp in Sources */,
|
||||
17C1FBAD1ACC4250006B99B3 /* SmartTag.cpp in Sources */,
|
||||
17C1FBAE1ACC4250006B99B3 /* oMath.cpp in Sources */,
|
||||
69E6AC892031AC3500795D9D /* SheetData.cpp in Sources */,
|
||||
17C1FBAF1ACC4250006B99B3 /* ChartSerialize.cpp in Sources */,
|
||||
17C1FBB11ACC4250006B99B3 /* Position.cpp in Sources */,
|
||||
69E6AC8C2031ACA900795D9D /* VbaProject.cpp in Sources */,
|
||||
691C3E131F20C3D500F1775E /* File.cpp in Sources */,
|
||||
17C1FBB21ACC4250006B99B3 /* Vml.cpp in Sources */,
|
||||
17C1FBB31ACC4250006B99B3 /* unicode_util.cpp in Sources */,
|
||||
17C1FBB41ACC4250006B99B3 /* FldSimple.cpp in Sources */,
|
||||
69E6AC872031AB0C00795D9D /* Xlsx.cpp in Sources */,
|
||||
17C1FBB91ACC4250006B99B3 /* Paragraph.cpp in Sources */,
|
||||
17C1FBBA1ACC4250006B99B3 /* SimpleTypes_Word.cpp in Sources */,
|
||||
17C1FBBB1ACC4250006B99B3 /* MathEquation.cpp in Sources */,
|
||||
|
||||
@ -1752,9 +1752,7 @@ namespace OOX
|
||||
virtual ~CTcMar()
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& oNode)
|
||||
virtual void fromXML(XmlUtils::CXmlNode& oNode)
|
||||
{
|
||||
if ( _T("w:tcMar") != oNode.GetName() )
|
||||
return;
|
||||
@ -1772,7 +1770,7 @@ namespace OOX
|
||||
if ( !m_oStart.IsInit() )
|
||||
WritingElement_ReadNode( oNode, oChild, _T("w:left"), m_oStart );
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
@ -1790,7 +1788,7 @@ namespace OOX
|
||||
else if ( !m_oStart.IsInit() && _T("w:left") == sName ) m_oStart = oReader;
|
||||
}
|
||||
}
|
||||
virtual std::wstring toXML() const
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
std::wstring sResult = _T("<w:tcMar>");
|
||||
|
||||
@ -1811,10 +1809,10 @@ namespace OOX
|
||||
static const CTcMar Merge(const CTcMar& oPrev, const CTcMar& oCurrent)
|
||||
{
|
||||
CTcMar oProperties;
|
||||
oProperties.m_oBottom = Merge( oPrev.m_oBottom, oCurrent.m_oBottom );
|
||||
oProperties.m_oEnd = Merge( oPrev.m_oEnd, oCurrent.m_oEnd );
|
||||
oProperties.m_oStart = Merge( oPrev.m_oStart, oCurrent.m_oStart );
|
||||
oProperties.m_oTop = Merge( oPrev.m_oTop, oCurrent.m_oTop );
|
||||
oProperties.m_oBottom = Merge( oPrev.m_oBottom, oCurrent.m_oBottom );
|
||||
oProperties.m_oEnd = Merge( oPrev.m_oEnd, oCurrent.m_oEnd );
|
||||
oProperties.m_oStart = Merge( oPrev.m_oStart, oCurrent.m_oStart );
|
||||
oProperties.m_oTop = Merge( oPrev.m_oTop, oCurrent.m_oTop );
|
||||
|
||||
return oProperties;
|
||||
}
|
||||
@ -1830,7 +1828,6 @@ namespace OOX
|
||||
|
||||
return oResult;
|
||||
}
|
||||
public:
|
||||
|
||||
nullable<ComplexTypes::Word::CTblWidth > m_oBottom;
|
||||
nullable<ComplexTypes::Word::CTblWidth > m_oEnd;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
VERSION = 2.4.516.0
|
||||
VERSION = 2.4.517.0
|
||||
DEFINES += INTVER=$$VERSION
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
@ -616,12 +616,25 @@ namespace NSCommon
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Courier New", 15));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Carlito", 16));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Segoe UI", 17));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"MS Gothic", 18));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"SimSun", 19));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"SimSun", 18));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"MS Gothic", 19));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Nirmala UI", 20));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Batang", 21));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"MS Mincho", 22));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Wingdings", 23));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Microsoft JhengHei", 24));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Microsoft JhengHei UI", 25));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Microsoft YaHei", 26));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"PMingLiU", 27));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"MingLiU", 28));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"DFKai-SB", 29));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"FangSong", 30));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"KaiTi", 31));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"SimKai", 32));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"SimHei", 33));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Meiryo", 34));
|
||||
|
||||
|
||||
|
||||
CApplicationFontsSymbols oApplicationChecker;
|
||||
|
||||
|
||||
@ -710,11 +710,23 @@ namespace NSCommon
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Courier New", 15));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Carlito", 16));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Segoe UI", 17));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"MS Gothic", 18));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"SimSun", 19));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"SimSun", 18));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"MS Gothic", 19));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Nirmala UI", 20));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Batang", 21));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"MS Mincho", 22));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Wingdings", 23));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Microsoft JhengHei", 24));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Microsoft JhengHei UI", 25));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Microsoft YaHei", 26));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"PMingLiU", 27));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"MingLiU", 28));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"DFKai-SB", 29));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"FangSong", 30));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"KaiTi", 31));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"SimKai", 32));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"SimHei", 33));
|
||||
mapFontsPriorityStandard.insert(std::pair<std::wstring, int>(L"Meiryo", 34));
|
||||
|
||||
CApplicationFontsSymbols oApplicationChecker;
|
||||
|
||||
|
||||
@ -814,7 +814,7 @@
|
||||
17A762B21B0F35320046BC0B /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0800;
|
||||
LastUpgradeCheck = 0920;
|
||||
ORGANIZATIONNAME = "Ascensio System SIA";
|
||||
};
|
||||
buildConfigurationList = 17A762B51B0F35320046BC0B /* Build configuration list for PBXProject "metafile" */;
|
||||
@ -1019,14 +1019,20 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
@ -1061,14 +1067,20 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
|
||||
@ -110,10 +110,10 @@ namespace NSUnicodeConverter
|
||||
{ 46, 65001, "UTF-8", "Unicode (UTF-8)" },
|
||||
{ 47, 65000, "UTF-7", "Unicode (UTF-7)" },
|
||||
|
||||
{ 48, 1200, "UTF-16", "Unicode (UTF-16)" },
|
||||
{ 48, 1200, "UTF-16LE", "Unicode (UTF-16)" },
|
||||
{ 49, 1201, "UTF-16BE", "Unicode (UTF-16 Big Endian)" },
|
||||
|
||||
{ 50, 12000, "UTF-32", "Unicode (UTF-32)" },
|
||||
{ 50, 12000, "UTF-32LE", "Unicode (UTF-32)" },
|
||||
{ 51, 12001, "UTF-32BE", "Unicode (UTF-32 Big Endian)" }
|
||||
};
|
||||
}
|
||||
|
||||
@ -338,10 +338,16 @@ namespace CSVReader
|
||||
|
||||
size_t nSize = sFileDataW.length();
|
||||
|
||||
//if (nSize < 1 && nInputBufferSize > 0)
|
||||
//{
|
||||
// return AVS_FILEUTILS_ERROR_CONVERT_ICU;
|
||||
//}
|
||||
if (nSize < 1 && nInputBufferSize > 0)
|
||||
{//для синхронности вывода превью и нормального результата
|
||||
const NSUnicodeConverter::EncodindId& oEncodindId = NSUnicodeConverter::Encodings[nCodePage];
|
||||
|
||||
NSUnicodeConverter::CUnicodeConverter oUnicodeConverter;
|
||||
sFileDataW = oUnicodeConverter.toUnicode((const char*)pInputBuffer, nInputBufferSize, oEncodindId.Name);
|
||||
|
||||
nSize = sFileDataW.length();
|
||||
//return AVS_FILEUTILS_ERROR_CONVERT_ICU;
|
||||
}
|
||||
const WCHAR *pTemp = sFileDataW.c_str();
|
||||
|
||||
WCHAR wcDelimiterLeading = L'\0';
|
||||
|
||||
@ -244,16 +244,23 @@ namespace CSVWriter
|
||||
{
|
||||
if (pCell->m_oType.IsInit() && SimpleTypes::Spreadsheet::celltypeNumber != pCell->m_oType->GetValue())
|
||||
{
|
||||
int nValue = _wtoi(pCell->m_oValue->ToString().c_str());
|
||||
if(SimpleTypes::Spreadsheet::celltypeStr == pCell->m_oType->GetValue())
|
||||
{
|
||||
sCellValue = pCell->m_oValue->ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
int nValue = _wtoi(pCell->m_oValue->ToString().c_str());
|
||||
|
||||
if (nValue >= 0 && nValue < oXlsx.m_pSharedStrings->m_arrItems.size())
|
||||
{
|
||||
OOX::Spreadsheet::CSi *pSi = oXlsx.m_pSharedStrings->m_arrItems[nValue];
|
||||
if(NULL != pSi)
|
||||
{
|
||||
sCellValue = pSi->ToString();
|
||||
}
|
||||
}
|
||||
if (nValue >= 0 && nValue < oXlsx.m_pSharedStrings->m_arrItems.size())
|
||||
{
|
||||
OOX::Spreadsheet::CSi *pSi = oXlsx.m_pSharedStrings->m_arrItems[nValue];
|
||||
if(NULL != pSi)
|
||||
{
|
||||
sCellValue = pSi->ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user