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
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
85 additions
and
139 deletions
+85
-139
htmlex.cxx
sd/source/filter/html/htmlex.cxx
+81
-139
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,171 +1215,114 @@ OUString HtmlExport::CreateTextForPage( SdrOutliner* pOutliner,
SdrObject
*
pObject
=
pPage
->
GetObj
(
i
);
PresObjKind
eKind
=
pPage
->
GetPresObjKind
(
pObject
);
if
(
eKind
==
PRESOBJ_TABLE
)
switch
(
eKind
)
{
SdrTableObj
*
pTableObject
=
(
SdrTableObj
*
)
pObject
;
CellPos
aStart
,
aEnd
;
aStart
=
pTableObject
->
getFirstCell
();
aEnd
=
pTableObject
->
getLastCell
();
sal_Int32
nColCount
=
pTableObject
->
getColumnCount
();
aStr
.
append
(
"<table>
\r\n
"
);
for
(
sal_Int32
nRow
=
aStart
.
mnRow
;
nRow
<=
aEnd
.
mnRow
;
nRow
++
)
case
PRESOBJ_TABLE
:
{
aStr
.
append
(
" <tr>
\r\n
"
);
for
(
sal_Int32
nCol
=
aStart
.
mnCol
;
nCol
<=
aEnd
.
mnCol
;
nCol
++
)
{
aStr
.
append
(
" <td>
\r\n
"
);
sal_Int32
nCellIndex
=
nRow
*
nColCount
+
nCol
;
SdrText
*
pText
=
pTableObject
->
getText
(
nCellIndex
);
if
(
!
pText
||
!
pText
->
GetOutlinerParaObject
())
continue
;
pOutliner
->
SetText
(
*
(
pText
->
GetOutlinerParaObject
()));
SdrTableObj
*
pTableObject
=
(
SdrTableObj
*
)
pObject
;
sal_Int32
nCount
=
pOutliner
->
GetParagraphCount
()
;
CellPos
aStart
,
aEnd
;
Paragraph
*
pPara
=
NULL
;
aStart
=
pTableObject
->
getFirstCell
();
aEnd
=
pTableObject
->
getLastCell
();
sal_Int16
nCurrentDepth
=
-
1
;
for
(
sal_Int32
nPara
=
0
;
nPara
<
nCount
;
nPara
++
)
sal_Int32
nColCount
=
pTableObject
->
getColumnCount
();
aStr
.
append
(
"<table>
\r\n
"
);
for
(
sal_Int32
nRow
=
aStart
.
mnRow
;
nRow
<=
aEnd
.
mnRow
;
nRow
++
)
{
aStr
.
append
(
" <tr>
\r\n
"
);
for
(
sal_Int32
nCol
=
aStart
.
mnCol
;
nCol
<=
aEnd
.
mnCol
;
nCol
++
)
{
pPara
=
pOutliner
->
GetParagraph
(
nPara
);
if
(
pPara
==
0
)
continue
;
aStr
.
append
(
" <td>
\r\n
"
);
sal_Int32
nCellIndex
=
nRow
*
nColCount
+
nCol
;
SdrText
*
pText
=
pTableObject
->
getText
(
nCellIndex
)
;
const
sal_Int16
nDepth
=
(
sal_uInt16
)
pOutliner
->
GetDepth
(
nPara
);
OUString
aParaText
=
ParagraphToHTMLString
(
pOutliner
,
nPara
,
rBackgroundColor
);
if
(
aParaText
.
isEmpty
())
if
(
pText
==
NULL
)
continue
;
if
(
nDepth
<
0
)
{
lclAppendStyle
(
aStr
,
"p"
,
getParagraphStyle
(
pOutliner
,
nPara
));
aStr
.
append
(
aParaText
);
aStr
.
append
(
"</p>
\r\n
"
);
}
else
{
while
(
nCurrentDepth
<
nDepth
)
{
aStr
.
append
(
"<ul>
\r\n
"
);
nCurrentDepth
++
;
}
while
(
nCurrentDepth
>
nDepth
)
{
aStr
.
append
(
"</ul>
\r\n
"
);
nCurrentDepth
--
;
}
lclAppendStyle
(
aStr
,
"li"
,
getParagraphStyle
(
pOutliner
,
nPara
));
aStr
.
append
(
aParaText
);
aStr
.
append
(
"</li>
\r\n
"
);
}
WriteOutlinerParagraph
(
aStr
,
pOutliner
,
pText
->
GetOutlinerParaObject
(),
rBackgroundColor
,
false
);
aStr
.
append
(
" </td>
\r\n
"
);
}
while
(
nCurrentDepth
>=
0
)
{
aStr
.
append
(
"</ul>
\r\n
"
);
nCurrentDepth
--
;
}
pOutliner
->
Clear
();
aStr
.
append
(
" </td>
\r\n
"
);
aStr
.
append
(
" </tr>
\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
);
}
aStr
.
append
(
"</table>
\r\n
"
);
break
;
default
:
break
;
}
}
return
aStr
.
makeStringAndClear
();
}
SdrTextObj
*
pTO
=
(
SdrTextObj
*
)
pPage
->
GetPresObj
(
PRESOBJ_TEXT
);
if
(
!
pTO
)
pTO
=
GetLayoutTextObject
(
pPage
);
void
HtmlExport
::
WriteOutlinerParagraph
(
OUStringBuffer
&
aStr
,
SdrOutliner
*
pOutliner
,
OutlinerParaObject
*
pOutlinerParagraphObject
,
const
Color
&
rBackgroundColor
,
bool
bHeadLine
)
{
if
(
pOutlinerParagraphObject
==
NULL
)
return
;
if
(
pTO
&&
!
pTO
->
IsEmptyPresObj
())
{
OutlinerParaObject
*
pOPO
=
pTO
->
GetOutlinerParaObject
();
if
(
pOPO
)
{
pOutliner
->
Clear
();
pOutliner
->
SetText
(
*
pOPO
);
pOutliner
->
SetText
(
*
pOutlinerParagraphObject
);
sal_Int32
nCount
=
pOutliner
->
GetParagraphCount
();
sal_Int32
nCount
=
pOutliner
->
GetParagraphCount
();
Paragraph
*
pPara
=
NULL
;
sal_Int16
nActDepth
=
-
1
;
Paragraph
*
pParagraph
=
NULL
;
OUString
aParaText
;
for
(
sal_Int32
nPara
=
0
;
nPara
<
nCount
;
nPara
++
)
{
pPara
=
pOutliner
->
GetParagraph
(
nPara
);
if
(
pPara
==
0
)
continue
;
sal_Int16
nCurrentDepth
=
-
1
;
const
sal_Int16
nDepth
=
(
sal_uInt16
)
pOutliner
->
GetDepth
(
nPara
);
aParaText
=
ParagraphToHTMLString
(
pOutliner
,
nPara
,
rBackgroundColor
);
for
(
sal_Int32
nIndex
=
0
;
nIndex
<
nCount
;
nIndex
++
)
{
pParagraph
=
pOutliner
->
GetParagraph
(
nIndex
);
if
(
pParagraph
==
NULL
)
continue
;
if
(
aParaText
.
isEmpty
())
continue
;
const
sal_Int16
nDepth
=
(
sal_uInt16
)
pOutliner
->
GetDepth
(
nIndex
);
OUString
aParaText
=
ParagraphToHTMLString
(
pOutliner
,
nIndex
,
rBackgroundColor
)
;
if
(
nDepth
<
nActDepth
)
{
do
{
aStr
.
append
(
"</ul>"
);
nActDepth
--
;
}
while
(
nDepth
<
nActDepth
);
}
else
if
(
nDepth
>
nActDepth
)
{
do
{
aStr
.
append
(
"<ul>"
);
nActDepth
++
;
}
while
(
nDepth
>
nActDepth
);
}
if
(
aParaText
.
isEmpty
())
continue
;
OUString
sStyle
(
getParagraphStyle
(
pOutliner
,
nPara
));
if
(
nActDepth
>=
0
)
{
lclAppendStyle
(
aStr
,
"li"
,
sStyle
);
}
if
(
nDepth
<
0
)
{
OUString
aTag
=
bHeadLine
?
OUString
(
"h2"
)
:
OUString
(
"p"
);
lclAppendStyle
(
aStr
,
aTag
,
getParagraphStyle
(
pOutliner
,
nIndex
));
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
"
);
aStr
.
append
(
aParaText
);
aStr
.
append
(
"</"
+
aTag
+
">
\r\n
"
);
}
else
{
while
(
nCurrentDepth
<
nDepth
)
{
aStr
.
append
(
"<ul>
\r\n
"
);
nCurrentDepth
++
;
}
while
(
nActDepth
>=
0
)
while
(
nCurrentDepth
>
nDepth
)
{
aStr
.
append
(
"</ul>"
);
nActDepth
--
;
};
aStr
.
append
(
"</ul>
\r\n
"
);
nCurrentDepth
--
;
}
lclAppendStyle
(
aStr
,
"li"
,
getParagraphStyle
(
pOutliner
,
nIndex
));
aStr
.
append
(
aParaText
);
aStr
.
append
(
"</li>
\r\n
"
);
}
}
return
aStr
.
makeStringAndClear
();
while
(
nCurrentDepth
>=
0
)
{
aStr
.
append
(
"</ul>
\r\n
"
);
nCurrentDepth
--
;
}
pOutliner
->
Clear
();
}
// 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