Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
onlyoffice_core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
onlyoffice_core
Commits
e12f544b
Commit
e12f544b
authored
Apr 21, 2016
by
ElenaSubbotina
Committed by
Alexander Trofimov
May 21, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
OdfFormatWriter, RtfFormatReader - правка багов по результатам тестирования
parent
3590487f
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
197 additions
and
159 deletions
+197
-159
ASCOfficeDocFile/DocDocxConverter/DocumentMapping.cpp
ASCOfficeDocFile/DocDocxConverter/DocumentMapping.cpp
+9
-4
ASCOfficeDocFile/DocDocxConverter/DocumentMapping.h
ASCOfficeDocFile/DocDocxConverter/DocumentMapping.h
+1
-1
ASCOfficeDocFile/DocDocxConverter/MainDocumentMapping.cpp
ASCOfficeDocFile/DocDocxConverter/MainDocumentMapping.cpp
+11
-6
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/ASCOfficeOdfFileWTest.cpp
...eOdfFileW/ASCOfficeOdfFileWTest/ASCOfficeOdfFileWTest.cpp
+2
-0
ASCOfficeOdfFileW/source/Oox2OdfConverter/DocxConverter.cpp
ASCOfficeOdfFileW/source/Oox2OdfConverter/DocxConverter.cpp
+5
-2
ASCOfficeRtfFile/RtfFormatLib/source/RtfMath.h
ASCOfficeRtfFile/RtfFormatLib/source/RtfMath.h
+18
-11
ASCOfficeRtfFile/RtfFormatLib/source/RtfParagraph.h
ASCOfficeRtfFile/RtfFormatLib/source/RtfParagraph.h
+14
-0
ASCOfficeRtfFile/RtfFormatLib/source/RtfProperty.cpp
ASCOfficeRtfFile/RtfFormatLib/source/RtfProperty.cpp
+136
-135
ASCOfficeRtfFile/RtfFormatLib/source/UniversalConverterUtils.h
...ficeRtfFile/RtfFormatLib/source/UniversalConverterUtils.h
+1
-0
No files found.
ASCOfficeDocFile/DocDocxConverter/DocumentMapping.cpp
View file @
e12f544b
...
...
@@ -785,7 +785,9 @@ namespace DocFileFormat
if
(
!
text
.
empty
())
{
writeTextStart
(
textType
);
//bool preserve_space = (text.find(_T("\x20")) != text.npos) ? true : false;
writeTextStart
(
textType
,
true
/*preserve_space*/
);
m_pXmlWriter
->
WriteString
(
text
.
c_str
());
...
...
@@ -802,7 +804,9 @@ namespace DocFileFormat
{
if
(
!
text
.
empty
()
)
{
writeTextStart
(
textType
);
//bool preserve_space = (text.find(_T("\x20")) != text.npos) ? true : false;
writeTextStart
(
textType
,
true
/*preserve_space*/
);
m_pXmlWriter
->
WriteString
(
text
.
c_str
()
);
...
...
@@ -810,11 +814,12 @@ namespace DocFileFormat
}
}
void
DocumentMapping
::
writeTextStart
(
const
std
::
wstring
&
textType
)
void
DocumentMapping
::
writeTextStart
(
const
std
::
wstring
&
textType
,
bool
preserve_space
)
{
std
::
wstring
str
=
(
std
::
wstring
(
_T
(
"w:"
)
)
+
textType
);
m_pXmlWriter
->
WriteNodeBegin
(
str
.
c_str
(),
TRUE
);
if
(
preserve_space
)
{
m_pXmlWriter
->
WriteAttribute
(
_T
(
"xml:space"
),
_T
(
"preserve"
)
);
}
...
...
ASCOfficeDocFile/DocDocxConverter/DocumentMapping.h
View file @
e12f544b
...
...
@@ -61,7 +61,7 @@ namespace DocFileFormat
/// Writes the given text to the document
void
writeText
(
vector
<
wchar_t
>*
chars
,
int
initialCp
,
CharacterPropertyExceptions
*
chpx
,
bool
writeDeletedText
);
void
writeTextElement
(
const
wstring
&
text
,
const
wstring
&
textType
);
void
writeTextStart
(
const
wstring
&
textType
);
void
writeTextStart
(
const
wstring
&
textType
,
bool
preserve_space
);
void
writeTextEnd
(
const
wstring
&
textType
);
/// Searches for bookmarks in the list of characters.
vector
<
int
>
searchBookmarks
(
vector
<
wchar_t
>*
chars
,
int
initialCp
);
...
...
ASCOfficeDocFile/DocDocxConverter/MainDocumentMapping.cpp
View file @
e12f544b
...
...
@@ -93,12 +93,6 @@ namespace DocFileFormat
m_pXmlWriter
->
WriteNodeBegin
(
_T
(
"w:p"
)
);
//start run
m_pXmlWriter
->
WriteNodeBegin
(
_T
(
"w:r"
)
);
//open a new w:t element
m_pXmlWriter
->
WriteNodeBegin
(
_T
(
"w:t"
),
TRUE
);
m_pXmlWriter
->
WriteAttribute
(
_T
(
"xml:space"
),
_T
(
"preserve"
)
);
m_pXmlWriter
->
WriteNodeEnd
(
_T
(
""
),
TRUE
,
FALSE
);
// Write text
int
fc
=
m_document
->
FindFileCharPos
(
0
);
int
fcEnd
=
m_document
->
FindFileCharPos
(
countTextRel
);
...
...
@@ -106,7 +100,18 @@ namespace DocFileFormat
// Read the chars
vector
<
wchar_t
>*
chpxChars
=
m_document
->
m_PieceTable
->
GetEncodingChars
(
fc
,
fcEnd
,
m_document
->
WordDocumentStream
);
//<! NEED OPTIMIZE
wstring
text
(
chpxChars
->
begin
(),
chpxChars
->
end
());
//open a new w:t element
m_pXmlWriter
->
WriteNodeBegin
(
_T
(
"w:t"
),
TRUE
);
//if (text.find(_T("\x20")) != text.npos)
{
m_pXmlWriter
->
WriteAttribute
(
_T
(
"xml:space"
),
_T
(
"preserve"
)
);
}
m_pXmlWriter
->
WriteNodeEnd
(
_T
(
""
),
TRUE
,
FALSE
);
// Write text
m_pXmlWriter
->
WriteString
(
text
.
c_str
());
RELEASEOBJECT
(
chpxChars
);
//close previous w:t ...
...
...
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/ASCOfficeOdfFileWTest.cpp
View file @
e12f544b
...
...
@@ -84,6 +84,8 @@ std::wstring DetectTypeDocument(const std::wstring & pathOOX)
int
_tmain
(
int
argc
,
_TCHAR
*
argv
[])
{
if
(
argc
<
3
)
return
0
;
HRESULT
hr
=
S_OK
;
boost
::
timer
t1
;
//////////////////////////////////////////////////////////////////////////
...
...
ASCOfficeOdfFileW/source/Oox2OdfConverter/DocxConverter.cpp
View file @
e12f544b
...
...
@@ -972,7 +972,7 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r
//oox_section_pr = last_section_properties;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if
(
!
continuous
/* || root*/
)
if
(
!
continuous
||
(
root
&&
odt_context
->
page_layout_context
()
->
last_master
()
==
NULL
)
)
{
odt_context
->
page_layout_context
()
->
start_master_page
(
root
?
L"Standard"
:
L""
);
}
...
...
@@ -1194,7 +1194,10 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r
}
if
(
!
continuous
)
odt_context
->
page_layout_context
()
->
end_master_page
();
//
if
(
root
)
odt_context
->
page_layout_context
()
->
set_current_master_page_base
();
if
(
root
)
{
odt_context
->
page_layout_context
()
->
set_current_master_page_base
();
}
last_section_properties
=
oox_section_pr
;
}
...
...
ASCOfficeRtfFile/RtfFormatLib/source/RtfMath.h
View file @
e12f544b
...
...
@@ -118,24 +118,31 @@ public:
sResult
.
Append
(
_T
(
"<"
)
);
sResult
+=
m_sOOXName
;
oNewParam
.
nType
=
RENDER_TO_OOX_PARAM_TEXT
;
CString
sProp
=
oProperty
.
RenderToOOX
(
oNewParam
);
oNewParam
.
nType
=
RENDER_TO_OOX_PARAM_MATH
;
CString
sVal
=
m_oVal
.
RenderToOOX
(
oNewParam
);
//CString sVal
= m_oVal.RenderToOOX( oNewParam );
if
(
false
==
sVal
.
IsEmpty
()
)
{
sResult
.
Append
(
_T
(
" w:val=
\"
"
)
);
sResult
+=
sVal
;
sResult
.
Append
(
_T
(
"
\"
"
)
);
}
//
if( false == sVal.IsEmpty() )
//
{
//
sResult.Append( _T(" w:val=\"") );
//
sResult += sVal;
//
sResult.Append( _T("\"") );
//
}
sResult
.
Append
(
_T
(
">"
)
);
oNewParam
.
nType
=
RENDER_TO_OOX_PARAM_TEXT
;
sResult
.
Append
(
oProperty
.
RenderToOOX
(
oNewParam
)
);
sResult
.
Append
(
sProp
);
for
(
int
i
=
0
;
i
<
(
int
)
m_aArray
.
size
();
i
++
)
if
(
m_aArray
.
size
()
==
1
)
sResult
.
Append
(
m_aArray
[
0
]
->
RenderToOOX
(
oNewParam
));
else
{
for
(
int
i
=
1
;
i
<
(
int
)
m_aArray
.
size
();
i
++
)
{
sResult
.
Append
(
m_aArray
[
i
]
->
RenderToOOX
(
oNewParam
));
}
}
sResult
.
Append
(
_T
(
"</"
)
);
sResult
+=
m_sOOXName
;
...
...
ASCOfficeRtfFile/RtfFormatLib/source/RtfParagraph.h
View file @
e12f544b
...
...
@@ -102,6 +102,20 @@ public:
for
(
int
i
=
0
;
i
<
(
int
)
m_aArray
.
size
();
i
++
)
sResult
.
Append
(
m_aArray
[
i
]
->
RenderToOOX
(
oRenderParameter
)
);
}
else
if
(
RENDER_TO_OOX_PARAM_MATH
==
oRenderParameter
.
nType
)
{
if
(
m_aArray
.
size
()
<
1
)
{
sResult
.
Append
(
_T
(
"<w:rPr>"
)
);
sResult
.
Append
(
m_oProperty
.
m_oCharProperty
.
RenderToOOX
(
oRenderParameter
)
);
sResult
.
Append
(
_T
(
"</w:rPr>"
)
);
}
else
{
for
(
int
i
=
0
;
i
<
(
int
)
m_aArray
.
size
();
i
++
)
sResult
.
Append
(
m_aArray
[
i
]
->
RenderToOOX
(
oRenderParameter
)
);
}
}
else
{
bool
bCanConvertToNumbering
=
false
;
...
...
ASCOfficeRtfFile/RtfFormatLib/source/RtfProperty.cpp
View file @
e12f544b
...
...
@@ -68,9 +68,10 @@ CString RtfFont::RenderToOOX(RenderParameter oRenderParameter)
RtfDocument
*
poRtfDocument
=
static_cast
<
RtfDocument
*>
(
oRenderParameter
.
poDocument
);
CString
sFontName
=
m_sName
;
if
((
sFontName
.
GetLength
()
>
0
)
&&
(
sFontName
[
0
]
==
0x00b9
&&
m_sAltName
.
GetLength
()
>
0
)
)
if
((
sFontName
.
GetLength
()
>
0
)
&&
(
sFontName
[
0
]
==
0x00b9
||
sFontName
[
0
]
>
0xff00
)
)
//fondj.rtf
{
sFontName
=
m_sAltName
;
if
(
m_sAltName
.
GetLength
()
>
0
)
sFontName
=
m_sAltName
;
else
sFontName
.
Empty
();
}
if
(
sFontName
.
IsEmpty
()
)
{
...
...
@@ -2890,27 +2891,27 @@ CString RtfTime::RenderToOOX(RenderParameter oRenderParameter)
}
CString
RtfMathProperty
::
RenderToRtf
(
RenderParameter
oRenderParameter
)
{
CString
sResult
;
sResult
.
Append
(
_T
(
"{
\\
*
\\
mmathPr"
));
RENDER_RTF_INT
(
mbrkBin
,
sResult
,
_T
(
"mbrkBin"
)
)
RENDER_RTF_INT
(
mbrkBinSub
,
sResult
,
_T
(
"mbrkBinSub"
)
)
RENDER_RTF_INT
(
mdefJc
,
sResult
,
_T
(
"mdefJc"
)
)
RENDER_RTF_INT
(
mdispDef
,
sResult
,
_T
(
"mdispDef"
)
)
RENDER_RTF_INT
(
minterSp
,
sResult
,
_T
(
"minterSp"
)
)
RENDER_RTF_INT
(
mintraSp
,
sResult
,
_T
(
"mintraSp"
)
)
RENDER_RTF_INT
(
mlMargin
,
sResult
,
_T
(
"mlMargin"
)
)
RENDER_RTF_INT
(
mmathFont
,
sResult
,
_T
(
"mmathFont"
)
)
RENDER_RTF_INT
(
mnaryLim
,
sResult
,
_T
(
"mnaryLim"
)
)
RENDER_RTF_INT
(
mpostSp
,
sResult
,
_T
(
"mpostSp"
)
)
RENDER_RTF_INT
(
mpreSp
,
sResult
,
_T
(
"mpreSp"
)
)
RENDER_RTF_INT
(
mrMargin
,
sResult
,
_T
(
"mrMargin"
)
)
RENDER_RTF_INT
(
msmallFrac
,
sResult
,
_T
(
"msmallFrac"
)
)
RENDER_RTF_INT
(
mwrapIndent
,
sResult
,
_T
(
"mwrapIndent"
)
)
RENDER_RTF_INT
(
mwrapRight
,
sResult
,
_T
(
"mwrapRight"
)
)
sResult
.
Append
(
_T
(
"}"
));
return
sResult
;
CString
sResult
;
sResult
.
Append
(
_T
(
"{
\\
*
\\
mmathPr"
));
RENDER_RTF_INT
(
mbrkBin
,
sResult
,
_T
(
"mbrkBin"
)
)
RENDER_RTF_INT
(
mbrkBinSub
,
sResult
,
_T
(
"mbrkBinSub"
)
)
RENDER_RTF_INT
(
mdefJc
,
sResult
,
_T
(
"mdefJc"
)
)
RENDER_RTF_INT
(
mdispDef
,
sResult
,
_T
(
"mdispDef"
)
)
RENDER_RTF_INT
(
minterSp
,
sResult
,
_T
(
"minterSp"
)
)
RENDER_RTF_INT
(
mintraSp
,
sResult
,
_T
(
"mintraSp"
)
)
RENDER_RTF_INT
(
mlMargin
,
sResult
,
_T
(
"mlMargin"
)
)
RENDER_RTF_INT
(
mmathFont
,
sResult
,
_T
(
"mmathFont"
)
)
RENDER_RTF_INT
(
mnaryLim
,
sResult
,
_T
(
"mnaryLim"
)
)
RENDER_RTF_INT
(
mpostSp
,
sResult
,
_T
(
"mpostSp"
)
)
RENDER_RTF_INT
(
mpreSp
,
sResult
,
_T
(
"mpreSp"
)
)
RENDER_RTF_INT
(
mrMargin
,
sResult
,
_T
(
"mrMargin"
)
)
RENDER_RTF_INT
(
msmallFrac
,
sResult
,
_T
(
"msmallFrac"
)
)
RENDER_RTF_INT
(
mwrapIndent
,
sResult
,
_T
(
"mwrapIndent"
)
)
RENDER_RTF_INT
(
mwrapRight
,
sResult
,
_T
(
"mwrapRight"
)
)
sResult
.
Append
(
_T
(
"}"
));
return
sResult
;
}
CString
RtfMathProperty
::
RenderToOOX
(
RenderParameter
oRenderParameter
)
{
...
...
@@ -2969,103 +2970,103 @@ CString RtfMathProperty::RenderToOOX(RenderParameter oRenderParameter)
}
CString
RtfMathSpecProp
::
RenderToRtf
(
RenderParameter
oRenderParameter
)
{
CString
sResult
;
RENDER_RTF_INT
(
moMathParaPr
,
sResult
,
_T
(
"mjc"
)
)
RENDER_RTF_INT
(
Font
,
sResult
,
_T
(
"f"
)
)
RENDER_RTF_BOOL
(
Break
,
sResult
,
_T
(
"mbrk"
)
)
RENDER_RTF_INT
(
RowSpacing
,
sResult
,
_T
(
"mrSp"
)
)
RENDER_RTF_INT
(
RowSpacingRule
,
sResult
,
_T
(
"mrSpRule"
)
)
RENDER_RTF_INT
(
CellGap
,
sResult
,
_T
(
"mcGp"
)
)
RENDER_RTF_INT
(
CellGapRule
,
sResult
,
_T
(
"mcGpRule"
)
)
RENDER_RTF_INT
(
CellSpacing
,
sResult
,
_T
(
"mcSp"
)
)
RENDER_RTF_BOOL
(
malnScr
,
sResult
,
_T
(
"malnScr"
)
)
RENDER_RTF_BOOL
(
HideLeft
,
sResult
,
_T
(
"mhideLeft"
)
)
RENDER_RTF_BOOL
(
HideTop
,
sResult
,
_T
(
"mhideTop"
)
)
RENDER_RTF_BOOL
(
HideRight
,
sResult
,
_T
(
"mhideRight"
)
)
RENDER_RTF_BOOL
(
HideBottom
,
sResult
,
_T
(
"mhideBot"
)
)
RENDER_RTF_BOOL
(
StrikeHor
,
sResult
,
_T
(
"mstrikeH"
)
)
RENDER_RTF_BOOL
(
StrikeVer
,
sResult
,
_T
(
"mstrikeV"
)
)
RENDER_RTF_BOOL
(
StrikeLR
,
sResult
,
_T
(
"mstrikeTLBR"
)
)
RENDER_RTF_BOOL
(
StrikeRL
,
sResult
,
_T
(
"mstrikeBLTR"
)
)
RENDER_RTF_BOOL
(
Alignment
,
sResult
,
_T
(
"maln"
)
)
RENDER_RTF_BOOL
(
Differential
,
sResult
,
_T
(
"mdiff"
)
)
RENDER_RTF_BOOL
(
NoBreak
,
sResult
,
_T
(
"mnoBreak"
)
)
RENDER_RTF_BOOL
(
Emulator
,
sResult
,
_T
(
"mopEmu"
)
)
RENDER_RTF_BOOL
(
NormalText
,
sResult
,
_T
(
"mnor"
)
)
RENDER_RTF_INT
(
mscr
,
sResult
,
_T
(
"mscr"
)
)
RENDER_RTF_INT
(
msty
,
sResult
,
_T
(
"msty"
)
)
RENDER_RTF_BOOL
(
mlit
,
sResult
,
_T
(
"mlit"
)
)
RENDER_RTF_BOOL
(
mshow
,
sResult
,
_T
(
"mshow"
)
)
RENDER_RTF_BOOL
(
mtransp
,
sResult
,
_T
(
"mtransp"
)
)
RENDER_RTF_BOOL
(
mzeroAsc
,
sResult
,
_T
(
"mzeroAsc"
)
)
RENDER_RTF_BOOL
(
mzeroDesc
,
sResult
,
_T
(
"mzeroDesc"
)
)
RENDER_RTF_BOOL
(
mzeroWid
,
sResult
,
_T
(
"mzeroWid"
)
)
if
(
PROP_DEF
!=
mchr
)
sResult
.
AppendFormat
(
_T
(
"
\\
u%d?"
),
mchr
);
sResult
.
Append
(
m_oCharProp
.
RenderToRtf
(
oRenderParameter
)
);
return
sResult
;
CString
sResult
;
RENDER_RTF_INT
(
moMathParaPr
,
sResult
,
_T
(
"mjc"
)
)
RENDER_RTF_INT
(
Font
,
sResult
,
_T
(
"f"
)
)
RENDER_RTF_BOOL
(
Break
,
sResult
,
_T
(
"mbrk"
)
)
RENDER_RTF_INT
(
RowSpacing
,
sResult
,
_T
(
"mrSp"
)
)
RENDER_RTF_INT
(
RowSpacingRule
,
sResult
,
_T
(
"mrSpRule"
)
)
RENDER_RTF_INT
(
CellGap
,
sResult
,
_T
(
"mcGp"
)
)
RENDER_RTF_INT
(
CellGapRule
,
sResult
,
_T
(
"mcGpRule"
)
)
RENDER_RTF_INT
(
CellSpacing
,
sResult
,
_T
(
"mcSp"
)
)
RENDER_RTF_BOOL
(
malnScr
,
sResult
,
_T
(
"malnScr"
)
)
RENDER_RTF_BOOL
(
HideLeft
,
sResult
,
_T
(
"mhideLeft"
)
)
RENDER_RTF_BOOL
(
HideTop
,
sResult
,
_T
(
"mhideTop"
)
)
RENDER_RTF_BOOL
(
HideRight
,
sResult
,
_T
(
"mhideRight"
)
)
RENDER_RTF_BOOL
(
HideBottom
,
sResult
,
_T
(
"mhideBot"
)
)
RENDER_RTF_BOOL
(
StrikeHor
,
sResult
,
_T
(
"mstrikeH"
)
)
RENDER_RTF_BOOL
(
StrikeVer
,
sResult
,
_T
(
"mstrikeV"
)
)
RENDER_RTF_BOOL
(
StrikeLR
,
sResult
,
_T
(
"mstrikeTLBR"
)
)
RENDER_RTF_BOOL
(
StrikeRL
,
sResult
,
_T
(
"mstrikeBLTR"
)
)
RENDER_RTF_BOOL
(
Alignment
,
sResult
,
_T
(
"maln"
)
)
RENDER_RTF_BOOL
(
Differential
,
sResult
,
_T
(
"mdiff"
)
)
RENDER_RTF_BOOL
(
NoBreak
,
sResult
,
_T
(
"mnoBreak"
)
)
RENDER_RTF_BOOL
(
Emulator
,
sResult
,
_T
(
"mopEmu"
)
)
RENDER_RTF_BOOL
(
NormalText
,
sResult
,
_T
(
"mnor"
)
)
RENDER_RTF_INT
(
mscr
,
sResult
,
_T
(
"mscr"
)
)
RENDER_RTF_INT
(
msty
,
sResult
,
_T
(
"msty"
)
)
RENDER_RTF_BOOL
(
mlit
,
sResult
,
_T
(
"mlit"
)
)
RENDER_RTF_BOOL
(
mshow
,
sResult
,
_T
(
"mshow"
)
)
RENDER_RTF_BOOL
(
mtransp
,
sResult
,
_T
(
"mtransp"
)
)
RENDER_RTF_BOOL
(
mzeroAsc
,
sResult
,
_T
(
"mzeroAsc"
)
)
RENDER_RTF_BOOL
(
mzeroDesc
,
sResult
,
_T
(
"mzeroDesc"
)
)
RENDER_RTF_BOOL
(
mzeroWid
,
sResult
,
_T
(
"mzeroWid"
)
)
if
(
PROP_DEF
!=
mchr
)
sResult
.
AppendFormat
(
_T
(
"
\\
u%d?"
),
mchr
);
sResult
.
Append
(
m_oCharProp
.
RenderToRtf
(
oRenderParameter
)
);
return
sResult
;
}
CString
RtfMathSpecProp
::
RenderToOOX
(
RenderParameter
oRenderParameter
)
{
CString
sResult
;
switch
(
moMathParaPr
)
{
case
1
:
sResult
.
Append
(
_T
(
"<m:jc m:val=
\"
center
\"
/>"
));
break
;
case
2
:
sResult
.
Append
(
_T
(
"<m:jc m:val=
\"
centerGroup
\"
/>"
));
break
;
case
3
:
sResult
.
Append
(
_T
(
"<m:jc m:val=
\"
left
\"
/>"
));
break
;
case
4
:
sResult
.
Append
(
_T
(
"<m:jc m:val=
\"
right
\"
/>"
));
break
;
}
RENDER_OOX_BOOL
(
Break
,
sResult
,
_T
(
"m:brk"
)
)
RENDER_OOX_INT
(
RowSpacing
,
sResult
,
_T
(
"m:rSp"
)
)
RENDER_OOX_INT
(
RowSpacingRule
,
sResult
,
_T
(
"m:rSpRule"
)
)
RENDER_OOX_INT
(
CellGap
,
sResult
,
_T
(
"m:cGp"
)
)
RENDER_OOX_INT
(
CellGapRule
,
sResult
,
_T
(
"m:cGpRule"
)
)
RENDER_OOX_INT
(
CellSpacing
,
sResult
,
_T
(
"m:cSp"
)
)
RENDER_OOX_BOOL
(
malnScr
,
sResult
,
_T
(
"m:alnScr"
)
)
RENDER_OOX_BOOL
(
HideLeft
,
sResult
,
_T
(
"m:hideLeft"
)
)
RENDER_OOX_BOOL
(
HideTop
,
sResult
,
_T
(
"m:hideTop"
)
)
RENDER_OOX_BOOL
(
HideRight
,
sResult
,
_T
(
"m:hideRight"
)
)
RENDER_OOX_BOOL
(
HideBottom
,
sResult
,
_T
(
"m:hideBottom"
)
)
RENDER_OOX_BOOL
(
StrikeHor
,
sResult
,
_T
(
"m:strikeH"
)
)
RENDER_OOX_BOOL
(
StrikeVer
,
sResult
,
_T
(
"m:strikeV"
)
)
RENDER_OOX_BOOL
(
StrikeLR
,
sResult
,
_T
(
"m:strikeTLBR"
)
)
RENDER_OOX_BOOL
(
StrikeRL
,
sResult
,
_T
(
"m:strikeBLTR"
)
)
RENDER_OOX_BOOL
(
Alignment
,
sResult
,
_T
(
"m:aln"
)
)
RENDER_OOX_BOOL
(
Differential
,
sResult
,
_T
(
"m:diff"
)
)
RENDER_OOX_BOOL
(
NoBreak
,
sResult
,
_T
(
"m:noBreak"
)
)
RENDER_OOX_BOOL
(
Emulator
,
sResult
,
_T
(
"m:opEmu"
)
)
RENDER_OOX_BOOL
(
NormalText
,
sResult
,
_T
(
"m:nor"
)
)
switch
(
mscr
)
{
case
0
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
roman
\"
/>"
));
break
;
case
1
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
script
\"
/>"
));
break
;
case
2
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
fraktur
\"
/>"
));
break
;
case
3
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
double-struck
\"
/>"
));
break
;
case
4
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
sans-serif
\"
/>"
));
break
;
case
5
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
monospace
\"
/>"
));
break
;
}
switch
(
msty
)
{
case
0
:
sResult
.
Append
(
_T
(
"<m:sty m:val=
\"
p
\"
/>"
));
break
;
case
1
:
sResult
.
Append
(
_T
(
"<m:sty m:val=
\"
b
\"
/>"
));
break
;
case
2
:
sResult
.
Append
(
_T
(
"<m:sty m:val=
\"
i
\"
/>"
));
break
;
case
3
:
sResult
.
Append
(
_T
(
"<m:sty m:val=
\"
bi
\"
/>"
));
break
;
}
RENDER_OOX_BOOL
(
mlit
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mshow
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mtransp
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mzeroAsc
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mzeroDesc
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mzeroWid
,
sResult
,
_T
(
"m:lit"
)
)
return
sResult
;
CString
sResult
;
switch
(
moMathParaPr
)
{
case
1
:
sResult
.
Append
(
_T
(
"<m:jc m:val=
\"
center
\"
/>"
));
break
;
case
2
:
sResult
.
Append
(
_T
(
"<m:jc m:val=
\"
centerGroup
\"
/>"
));
break
;
case
3
:
sResult
.
Append
(
_T
(
"<m:jc m:val=
\"
left
\"
/>"
));
break
;
case
4
:
sResult
.
Append
(
_T
(
"<m:jc m:val=
\"
right
\"
/>"
));
break
;
}
RENDER_OOX_BOOL
(
Break
,
sResult
,
_T
(
"m:brk"
)
)
RENDER_OOX_INT
(
RowSpacing
,
sResult
,
_T
(
"m:rSp"
)
)
RENDER_OOX_INT
(
RowSpacingRule
,
sResult
,
_T
(
"m:rSpRule"
)
)
RENDER_OOX_INT
(
CellGap
,
sResult
,
_T
(
"m:cGp"
)
)
RENDER_OOX_INT
(
CellGapRule
,
sResult
,
_T
(
"m:cGpRule"
)
)
RENDER_OOX_INT
(
CellSpacing
,
sResult
,
_T
(
"m:cSp"
)
)
RENDER_OOX_BOOL
(
malnScr
,
sResult
,
_T
(
"m:alnScr"
)
)
RENDER_OOX_BOOL
(
HideLeft
,
sResult
,
_T
(
"m:hideLeft"
)
)
RENDER_OOX_BOOL
(
HideTop
,
sResult
,
_T
(
"m:hideTop"
)
)
RENDER_OOX_BOOL
(
HideRight
,
sResult
,
_T
(
"m:hideRight"
)
)
RENDER_OOX_BOOL
(
HideBottom
,
sResult
,
_T
(
"m:hideBottom"
)
)
RENDER_OOX_BOOL
(
StrikeHor
,
sResult
,
_T
(
"m:strikeH"
)
)
RENDER_OOX_BOOL
(
StrikeVer
,
sResult
,
_T
(
"m:strikeV"
)
)
RENDER_OOX_BOOL
(
StrikeLR
,
sResult
,
_T
(
"m:strikeTLBR"
)
)
RENDER_OOX_BOOL
(
StrikeRL
,
sResult
,
_T
(
"m:strikeBLTR"
)
)
RENDER_OOX_BOOL
(
Alignment
,
sResult
,
_T
(
"m:aln"
)
)
RENDER_OOX_BOOL
(
Differential
,
sResult
,
_T
(
"m:diff"
)
)
RENDER_OOX_BOOL
(
NoBreak
,
sResult
,
_T
(
"m:noBreak"
)
)
RENDER_OOX_BOOL
(
Emulator
,
sResult
,
_T
(
"m:opEmu"
)
)
RENDER_OOX_BOOL
(
NormalText
,
sResult
,
_T
(
"m:nor"
)
)
switch
(
mscr
)
{
case
0
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
roman
\"
/>"
));
break
;
case
1
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
script
\"
/>"
));
break
;
case
2
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
fraktur
\"
/>"
));
break
;
case
3
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
double-struck
\"
/>"
));
break
;
case
4
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
sans-serif
\"
/>"
));
break
;
case
5
:
sResult
.
Append
(
_T
(
"<m:scr m:val=
\"
monospace
\"
/>"
));
break
;
}
switch
(
msty
)
{
case
0
:
sResult
.
Append
(
_T
(
"<m:sty m:val=
\"
p
\"
/>"
));
break
;
case
1
:
sResult
.
Append
(
_T
(
"<m:sty m:val=
\"
b
\"
/>"
));
break
;
case
2
:
sResult
.
Append
(
_T
(
"<m:sty m:val=
\"
i
\"
/>"
));
break
;
case
3
:
sResult
.
Append
(
_T
(
"<m:sty m:val=
\"
bi
\"
/>"
));
break
;
}
RENDER_OOX_BOOL
(
mlit
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mshow
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mtransp
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mzeroAsc
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mzeroDesc
,
sResult
,
_T
(
"m:lit"
)
)
RENDER_OOX_BOOL
(
mzeroWid
,
sResult
,
_T
(
"m:lit"
)
)
return
sResult
;
}
void
RtfCharStyle
::
Merge
(
RtfStylePtr
oStyle
)
...
...
@@ -3090,24 +3091,24 @@ void RtfCharStyle::Merge( RtfStylePtr oStyle )
void
RtfParagraphStyle
::
Merge
(
RtfStylePtr
oStyle
)
{
RtfStyle
::
Merge
(
oStyle
);
if
(
TYPE_RTF_PROPERTY_STYLE_CHAR
==
oStyle
->
GetType
()
)
{
RtfStyle
::
Merge
(
oStyle
);
if
(
TYPE_RTF_PROPERTY_STYLE_CHAR
==
oStyle
->
GetType
()
)
{
RtfCharStylePtr
oCharStyle
=
boost
::
static_pointer_cast
<
RtfCharStyle
,
RtfStyle
>
(
oStyle
);
m_oCharProp
.
Merge
(
oCharStyle
->
m_oCharProp
);
}
else
if
(
TYPE_RTF_PROPERTY_STYLE_PARAGRAPH
==
oStyle
->
GetType
()
)
{
}
else
if
(
TYPE_RTF_PROPERTY_STYLE_PARAGRAPH
==
oStyle
->
GetType
()
)
{
RtfParagraphStylePtr
oParagraphStyle
=
boost
::
static_pointer_cast
<
RtfParagraphStyle
,
RtfStyle
>
(
oStyle
);
m_oParProp
.
Merge
(
oParagraphStyle
->
m_oParProp
);
m_oCharProp
.
Merge
(
oParagraphStyle
->
m_oCharProp
);
}
else
if
(
TYPE_RTF_PROPERTY_STYLE_TABLE
==
oStyle
->
GetType
()
)
{
}
else
if
(
TYPE_RTF_PROPERTY_STYLE_TABLE
==
oStyle
->
GetType
()
)
{
RtfTableStylePtr
oTableStyle
=
boost
::
static_pointer_cast
<
RtfTableStyle
,
RtfStyle
>
(
oStyle
);
m_oParProp
.
Merge
(
oTableStyle
->
m_oParProp
);
m_oCharProp
.
Merge
(
oTableStyle
->
m_oCharProp
);
}
}
}
void
RtfTableStyle
::
Merge
(
RtfStylePtr
oStyle
)
{
...
...
ASCOfficeRtfFile/RtfFormatLib/source/UniversalConverterUtils.h
View file @
e12f544b
...
...
@@ -58,6 +58,7 @@ public:
{
CString
sResult
=
sInput
;
//& («&»), < («<»), > («>»), ' («'»), и " («"»)
sResult
.
Replace
(
_T
(
"
\x06
"
),
_T
(
""
));
//ЗБ·О±Ч·Ґјіён.rtf
sResult
.
Replace
(
_T
(
"&"
),
_T
(
"&"
));
sResult
.
Replace
(
_T
(
"<"
),
_T
(
"<"
));
sResult
.
Replace
(
_T
(
">"
),
_T
(
">"
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment