Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
87c3fdee
Kaydet (Commit)
87c3fdee
authored
Nis 13, 2014
tarafından
Tomaž Vajngerl
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
sd html: export outline, code simplification
Change-Id: Ic201f4bd7716806edd031a2935d1e859a6b51958
üst
af51f3fb
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
53 additions
and
107 deletions
+53
-107
htmlex.cxx
sd/source/filter/html/htmlex.cxx
+49
-107
htmlex.hxx
sd/source/filter/html/htmlex.hxx
+4
-0
No files found.
sd/source/filter/html/htmlex.cxx
Dosyayı görüntüle @
87c3fdee
...
...
@@ -1205,9 +1205,8 @@ OUString HtmlExport::CreateTextForTitle( SdrOutliner* pOutliner, SdPage* pPage,
// creates a outliner text for a page
OUString
HtmlExport
::
CreateTextForPage
(
SdrOutliner
*
pOutliner
,
SdPage
*
pPage
,
bool
bHeadLine
,
const
Color
&
rBackgroundColor
)
OUString
HtmlExport
::
CreateTextForPage
(
SdrOutliner
*
pOutliner
,
SdPage
*
pPage
,
bool
bHeadLine
,
const
Color
&
rBackgroundColor
)
{
OUStringBuffer
aStr
;
...
...
@@ -1216,7 +1215,9 @@ OUString HtmlExport::CreateTextForPage( SdrOutliner* pOutliner,
SdrObject
*
pObject
=
pPage
->
GetObj
(
i
);
PresObjKind
eKind
=
pPage
->
GetPresObjKind
(
pObject
);
if
(
eKind
==
PRESOBJ_TABLE
)
switch
(
eKind
)
{
case
PRESOBJ_TABLE
:
{
SdrTableObj
*
pTableObject
=
(
SdrTableObj
*
)
pObject
;
...
...
@@ -1235,34 +1236,67 @@ OUString HtmlExport::CreateTextForPage( SdrOutliner* pOutliner,
aStr
.
append
(
" <td>
\r\n
"
);
sal_Int32
nCellIndex
=
nRow
*
nColCount
+
nCol
;
SdrText
*
pText
=
pTableObject
->
getText
(
nCellIndex
);
if
(
!
pText
||
!
pText
->
GetOutlinerParaObject
())
if
(
pText
==
NULL
)
continue
;
WriteOutlinerParagraph
(
aStr
,
pOutliner
,
pText
->
GetOutlinerParaObject
(),
rBackgroundColor
,
false
);
aStr
.
append
(
" </td>
\r\n
"
);
}
aStr
.
append
(
" </tr>
\r\n
"
);
}
aStr
.
append
(
"</table>
\r\n
"
);
}
break
;
case
PRESOBJ_TEXT
:
case
PRESOBJ_OUTLINE
:
{
SdrTextObj
*
pTextObject
=
(
SdrTextObj
*
)
pObject
;
if
(
pTextObject
->
IsEmptyPresObj
())
continue
;
WriteOutlinerParagraph
(
aStr
,
pOutliner
,
pTextObject
->
GetOutlinerParaObject
(),
rBackgroundColor
,
bHeadLine
);
}
break
;
default
:
break
;
}
}
return
aStr
.
makeStringAndClear
();
}
void
HtmlExport
::
WriteOutlinerParagraph
(
OUStringBuffer
&
aStr
,
SdrOutliner
*
pOutliner
,
OutlinerParaObject
*
pOutlinerParagraphObject
,
const
Color
&
rBackgroundColor
,
bool
bHeadLine
)
{
if
(
pOutlinerParagraphObject
==
NULL
)
return
;
pOutliner
->
SetText
(
*
(
pText
->
GetOutlinerParaObject
())
);
pOutliner
->
SetText
(
*
pOutlinerParagraphObject
);
sal_Int32
nCount
=
pOutliner
->
GetParagraphCount
();
Paragraph
*
pPara
=
NULL
;
Paragraph
*
pParagraph
=
NULL
;
sal_Int16
nCurrentDepth
=
-
1
;
for
(
sal_Int32
nPara
=
0
;
nPara
<
nCount
;
nPara
++
)
for
(
sal_Int32
nIndex
=
0
;
nIndex
<
nCount
;
nIndex
++
)
{
pPara
=
pOutliner
->
GetParagraph
(
nPara
);
if
(
pPara
==
0
)
pParagraph
=
pOutliner
->
GetParagraph
(
nIndex
);
if
(
pParagraph
==
NULL
)
continue
;
const
sal_Int16
nDepth
=
(
sal_uInt16
)
pOutliner
->
GetDepth
(
nPara
);
OUString
aParaText
=
ParagraphToHTMLString
(
pOutliner
,
nPara
,
rBackgroundColor
);
const
sal_Int16
nDepth
=
(
sal_uInt16
)
pOutliner
->
GetDepth
(
nIndex
);
OUString
aParaText
=
ParagraphToHTMLString
(
pOutliner
,
nIndex
,
rBackgroundColor
);
if
(
aParaText
.
isEmpty
())
continue
;
if
(
nDepth
<
0
)
{
lclAppendStyle
(
aStr
,
"p"
,
getParagraphStyle
(
pOutliner
,
nPara
));
OUString
aTag
=
bHeadLine
?
OUString
(
"h2"
)
:
OUString
(
"p"
);
lclAppendStyle
(
aStr
,
aTag
,
getParagraphStyle
(
pOutliner
,
nIndex
));
aStr
.
append
(
aParaText
);
aStr
.
append
(
"</p
>
\r\n
"
);
aStr
.
append
(
"</"
+
aTag
+
"
>
\r\n
"
);
}
else
{
...
...
@@ -1276,7 +1310,7 @@ OUString HtmlExport::CreateTextForPage( SdrOutliner* pOutliner,
aStr
.
append
(
"</ul>
\r\n
"
);
nCurrentDepth
--
;
}
lclAppendStyle
(
aStr
,
"li"
,
getParagraphStyle
(
pOutliner
,
nPara
));
lclAppendStyle
(
aStr
,
"li"
,
getParagraphStyle
(
pOutliner
,
nIndex
));
aStr
.
append
(
aParaText
);
aStr
.
append
(
"</li>
\r\n
"
);
}
...
...
@@ -1287,100 +1321,8 @@ OUString HtmlExport::CreateTextForPage( SdrOutliner* pOutliner,
nCurrentDepth
--
;
}
pOutliner
->
Clear
();
aStr
.
append
(
" </td>
\r\n
"
);
}
aStr
.
append
(
" </tr>
\r\n
"
);
}
aStr
.
append
(
"</table>
\r\n
"
);
}
}
SdrTextObj
*
pTO
=
(
SdrTextObj
*
)
pPage
->
GetPresObj
(
PRESOBJ_TEXT
);
if
(
!
pTO
)
pTO
=
GetLayoutTextObject
(
pPage
);
if
(
pTO
&&
!
pTO
->
IsEmptyPresObj
())
{
OutlinerParaObject
*
pOPO
=
pTO
->
GetOutlinerParaObject
();
if
(
pOPO
)
{
pOutliner
->
Clear
();
pOutliner
->
SetText
(
*
pOPO
);
sal_Int32
nCount
=
pOutliner
->
GetParagraphCount
();
Paragraph
*
pPara
=
NULL
;
sal_Int16
nActDepth
=
-
1
;
OUString
aParaText
;
for
(
sal_Int32
nPara
=
0
;
nPara
<
nCount
;
nPara
++
)
{
pPara
=
pOutliner
->
GetParagraph
(
nPara
);
if
(
pPara
==
0
)
continue
;
const
sal_Int16
nDepth
=
(
sal_uInt16
)
pOutliner
->
GetDepth
(
nPara
);
aParaText
=
ParagraphToHTMLString
(
pOutliner
,
nPara
,
rBackgroundColor
);
if
(
aParaText
.
isEmpty
())
continue
;
if
(
nDepth
<
nActDepth
)
{
do
{
aStr
.
append
(
"</ul>"
);
nActDepth
--
;
}
while
(
nDepth
<
nActDepth
);
}
else
if
(
nDepth
>
nActDepth
)
{
do
{
aStr
.
append
(
"<ul>"
);
nActDepth
++
;
}
while
(
nDepth
>
nActDepth
);
}
OUString
sStyle
(
getParagraphStyle
(
pOutliner
,
nPara
));
if
(
nActDepth
>=
0
)
{
lclAppendStyle
(
aStr
,
"li"
,
sStyle
);
}
if
(
nActDepth
<=
0
&&
bHeadLine
)
{
if
(
nActDepth
==
0
)
{
aStr
.
append
(
"<h2>"
);
}
else
{
lclAppendStyle
(
aStr
,
"h2"
,
sStyle
);
}
}
aStr
.
append
(
aParaText
);
if
(
nActDepth
==
0
&&
bHeadLine
)
aStr
.
append
(
"</h2>"
);
if
(
nActDepth
>=
0
)
aStr
.
append
(
"</li>"
);
aStr
.
append
(
"
\r\n
"
);
}
while
(
nActDepth
>=
0
)
{
aStr
.
append
(
"</ul>"
);
nActDepth
--
;
};
}
}
return
aStr
.
makeStringAndClear
();
}
// creates a outliner text for a note page
OUString
HtmlExport
::
CreateTextForNotesPage
(
SdrOutliner
*
pOutliner
,
SdPage
*
pPage
,
...
...
sd/source/filter/html/htmlex.hxx
Dosyayı görüntüle @
87c3fdee
...
...
@@ -211,6 +211,10 @@ class HtmlExport
bool
WriteHtml
(
const
OUString
&
rFileName
,
bool
bAddExtension
,
const
OUString
&
rHtmlData
);
OUString
GetButtonName
(
int
nButton
)
const
;
void
WriteOutlinerParagraph
(
OUStringBuffer
&
aStr
,
SdrOutliner
*
pOutliner
,
OutlinerParaObject
*
pOutlinerParagraphObject
,
const
Color
&
rBackgroundColor
,
bool
bHeadLine
);
public
:
HtmlExport
(
const
OUString
&
aPath
,
const
css
::
uno
::
Sequence
<
css
::
beans
::
PropertyValue
>&
rParams
,
...
...
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