XSL stylesheet for export of outline from OOImpressu to HTML?

M

Matej Cepl

Hello,

does anybody have %subj%? I would like to generate some very simple HTML
(XHTML?) file from OOImpress, so that I can send it to the friend for
review and not bother her with all images, layouts, and the other junk
(moreover, she probably never heard about Oo_O). Powerpoint of the cursed
memory used to have export of outline to RTF. Is there something similar
for OOImpress (certainly, I do not care about RTF, OOWriter or HTML would
be more than enough).

I tried the template from
http://www.xml.com/pub/a/2004/02/04/tr-xml.html, but even though I tried to
install it into OOImpress (with Tools/XML Filter Settings), but the result
is highly unnice (see original at
http://www.ceplovi.cz/matej/tmp/generational-curses-testimony.sxi and the
result is
http://www.ceplovi.cz/matej/tmp/generational-curses-testimony.xhtml.bz2).

Any thoughts?

Thanks for any reply,

Matìj

--
Matej Cepl, http://www.ceplovi.cz/matej
GPG Finger: 89EF 4BC6 288A BF43 1BAB 25C3 E09F EF25 D964 84AC
138 Highland Ave. #10, Somerville, Ma 02143, (617) 623-1488

Q: Is vi an easy editor to learn, is it intuitive?
A: Yes, some of us think so. But most people think that we are
crazy.
-- vi FAQ
 
J

Joris Gillis

Hi,
does anybody have %subj%? I would like to generate some very simple HTML
(XHTML?) file from OOImpress, so that I can send it to the friend for
review and not bother her with all images, layouts, and the other junk
Well, in the first place, you could consider not to make presentations full of junk:)
(moreover, she probably never heard about Oo_O).
Then let her know it exists;-)
Powerpoint of the cursed
memory used to have export of outline to RTF. Is there something similar
for OOImpress (certainly, I do not care about RTF, OOWriter or HTML would
be more than enough).

OOImpress has export filters to PDF, flash and html. You can probably use one of them.
File->Export...
I tried the template from
http://www.xml.com/pub/a/2004/02/04/tr-xml.html, but even though I tried to
install it into OOImpress (with Tools/XML Filter Settings), but the result
is highly unnice (see original at
http://www.ceplovi.cz/matej/tmp/generational-curses-testimony.sxi and the
result is
http://www.ceplovi.cz/matej/tmp/generational-curses-testimony.xhtml.bz2).

If that stylesheet doesn't satisfy you, why not improve it yourself? http://books.evc-cit.info/book.php is a good place to learn the file format of OpenOffice.

regards,
 
M

Matej Cepl

Joris said:
Well, in the first place, you could consider not to make presentations
full of junk:)

I meant pictures and such stuff.
OOImpress has export filters to PDF, flash and html. You can probably use
one of them. File->Export...

Unfortunately, the export to HTML is of no use for me -- it exports every
slide into one page with all images attached as graphics files. What would
I need is just text in form of outline on one page.
If that stylesheet doesn't satisfy you, why not improve it yourself?
http://books.evc-cit.info/book.php is a good place to learn the file
format of OpenOffice.

That's helpful. Thanks!

Matej

--
Matej Cepl, http://www.ceplovi.cz/matej
GPG Finger: 89EF 4BC6 288A BF43 1BAB 25C3 E09F EF25 D964 84AC
138 Highland Ave. #10, Somerville, Ma 02143, (617) 623-1488

As with the Christian religion, the worst advertisement for
Socialism is its adherents.
-- George Orwell
 
M

Matej Cepl

Joris said:
If that stylesheet doesn't satisfy you, why not improve it yourself?
http://books.evc-cit.info/book.php is a good place to learn the file
format of OpenOffice.

I tried to develop my own style, but there are some things in XPath, which I
do not know how to express. If I understand correctly then the unordered
list in OOImpress is like this:

<text:unordered-list text:style-name="L2">
<text:list-item>
<text:unordered-list>
<text:list-item>
<text:p text:style-name="P3">Presentation for Living Waters</text:p>
</text:list-item>
</text:unordered-list>
</text:list-item>
</text:unordered-list>
<text:unordered-list text:style-name="L2">
<text:list-item>
<text:unordered-list>
<text:list-item>
<text:p text:style-name="P3">Monday, December 5th</text:p>
</text:list-item>
</text:unordered-list>
</text:list-item>
</text:unordered-list>

The problem is that I would need to condens all elements
<text:unordered-list text:style-name="L2"> into one <ul> element. Do you
have idea how to do it with XSLT, please?

Thanks a lot,

Matej

--
Matej Cepl, http://www.ceplovi.cz/matej
GPG Finger: 89EF 4BC6 288A BF43 1BAB 25C3 E09F EF25 D964 84AC
138 Highland Ave. #10, Somerville, Ma 02143, (617) 623-1488

Scouts are saving aluminum cans, bottles and other items to be
recycled. Proceeds will be used to cripple children.
-- from a church bulletin

------------------------------
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
xmlns:style="http://openoffice.org/2000/style"
xmlns:text="http://openoffice.org/2000/text"
xmlns:eek:ffice="http://openoffice.org/2000/office"
xmlns:table="http://openoffice.org/2000/table"
xmlns:draw="http://openoffice.org/2000/drawing"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="http://openoffice.org/2000/meta"
xmlns:number="http://openoffice.org/2000/datastyle"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:chart="http://openoffice.org/2000/chart"
xmlns:dr3d="http://openoffice.org/2000/dr3d"
xmlns:math="http://www.w3.org/1998/Math/MathML"
xmlns:form="http://openoffice.org/2000/form"
xmlns:script="http://openoffice.org/2000/script"
xmlns:config="http://openoffice.org/2001/config"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:presentation="http://openoffice.org/2000/presentation"
office:class="text"
exclude-result-prefixes="office meta table number dc fo xlink chart math
script xsl draw svg dr3d form config text style">

<xsl:eek:utput indent="yes"
method="xml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
encoding="utf-8"
/>

<xsl:template match="draw:page">
<h1><xsl:number/>.
<xsl:value-of select="draw:text-box[1]/text:p[1]"/></h1>
<!-- xsl:apply-templates select="presentation:notes"/ -->
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="text:p">
<p><xsl:apply-templates/></p>
</xsl:template>

<xsl:template match="/">
<html>
<head>
<title>Speaker Notes</title>
<xsl:element name="meta">
<xsl:attribute name="name">DC.date</xsl:attribute>
<xsl:attribute name="content">
<xsl:value-of select="/dc:date"/>
</xsl:attribute>
</xsl:element>
<style>
<xsl:comment>
p {font-size: 10pt}
h1 {font-family: arial; font-size: 12pt; font-weight:
bold}
</xsl:comment>
</style>
</head>
<xsl:apply-templates/>
</html>
</xsl:template>

<xsl:template match="office:body">
<body>
<xsl:apply-templates />
</body>
</xsl:template>

<xsl:template match="text:unordered-list[@text:style-name='L2']">
<ul>
<xsl:apply-templates />
</ul>
</xsl:template>

<xsl:template match="text:eek:rdered-list">
<ol>
<xsl:apply-templates />
</ol>
</xsl:template>

<xsl:template match="text:list-item[not(text:unordered-list)]">
<li><xsl:apply-templates /></li>
</xsl:template>

<xsl:template match="text:span[@text:style-name='T1']">
<em><xsl:apply-templates/></em>
</xsl:template>

<!-- sections of the OO format we don't need at present -->
<xsl:template match="office:automatic-styles" />
<xsl:template match="office:font-decls" />
<xsl:template match="office:meta" />
<xsl:template match="office:script" />
<xsl:template match="office:settings" />
<xsl:template match="office:styles" />
<xsl:template match="style:*" />
<xsl:template match="dc:*">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="meta:creation-date">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="meta:editing-cycles" />
<xsl:template match="meta:editing-duration" />
<xsl:template match="meta:generator" />
<xsl:template match="meta:user-defined" />
<!--
<xsl:template match="text()">
<xsl:apply-templates select="normalize-space(.)"/>
</xsl:template>
-->
</xsl:stylesheet>
 
M

Morris M. Keesan

<text:unordered-list text:style-name="L2">
<text:list-item>
<text:unordered-list>
<text:list-item>
<text:p text:style-name="P3">Presentation for Living Waters</text:p>
</text:list-item>
</text:unordered-list>
</text:list-item>
</text:unordered-list>
<text:unordered-list text:style-name="L2">
<text:list-item>
<text:unordered-list>
<text:list-item>
<text:p text:style-name="P3">Monday, December 5th</text:p>
</text:list-item>
</text:unordered-list>
</text:list-item>
</text:unordered-list>

The problem is that I would need to condens all elements
<text:unordered-list text:style-name="L2"> into one <ul> element. Do you
have idea how to do it with XSLT, please?

In some template:
<ul>
<xsl:apply-templates
select="text:unordered-list[@text:style-name="'L2'"]/>
</ul>

and then
....

<xsl:template match="text:unordered-list">
<xsl:value-of select="."/>
</xsl:template>

Or, alternately:

<ul>
<xsl:for-each select="text:unordered-list[@text:style-name="'L2'"]>
<xsl:value-of select="."/>
</xsl:for-each>
</ul>
 
M

Matej Cepl

Morris said:
The problem is that I would need to condens all elements
<text:unordered-list text:style-name="L2"> into one <ul> element. Do you
have idea how to do it with XSLT, please?

In some template:
<ul>
<xsl:apply-templates
select="text:unordered-list[@text:style-name="'L2'"]/>
</ul>

and then
...

<xsl:template match="text:unordered-list">
<xsl:value-of select="."/>
</xsl:template>

I tried this one, but it doesn't seem to work. See
http://www.ceplovi.cz/matej/tmp/generational-curses-testimony.xml.bz2
(FlatXML from OpenOffice) and
http://www.ceplovi.cz/matej/tmp/ooimpress-to-html.xsl, which produces
http://www.ceplovi.cz/matej/tmp/generational-curses-testimony.xhtml --
certainly not what I hoped for.

Any thoughts?

Matej Cepl

--
Matej Cepl, http://www.ceplovi.cz/matej
GPG Finger: 89EF 4BC6 288A BF43 1BAB 25C3 E09F EF25 D964 84AC
138 Highland Ave. #10, Somerville, Ma 02143, (617) 623-1488

In order to avoid being called a flirt, she always yielded
easily.
-- Charles, Count Talleyrand
 
J

Joris Gillis

Hi,

You are extremely close to the solution; try this:
Nice stylesheet of yours, by the way.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
xmlns:style="http://openoffice.org/2000/style"
xmlns:text="http://openoffice.org/2000/text"
xmlns:eek:ffice="http://openoffice.org/2000/office"
xmlns:table="http://openoffice.org/2000/table"
xmlns:draw="http://openoffice.org/2000/drawing"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="http://openoffice.org/2000/meta"
xmlns:number="http://openoffice.org/2000/datastyle"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:chart="http://openoffice.org/2000/chart"
xmlns:dr3d="http://openoffice.org/2000/dr3d"
xmlns:math="http://www.w3.org/1998/Math/MathML"
xmlns:form="http://openoffice.org/2000/form"
xmlns:script="http://openoffice.org/2000/script"
xmlns:config="http://openoffice.org/2001/config"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:presentation="http://openoffice.org/2000/presentation"
office:class="text"
exclude-result-prefixes="office meta table number dc fo xlink chart math script xsl draw svg dr3d form config text style">

<xsl:eek:utput indent="yes"
method="xml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
encoding="utf-8"
/>

<xsl:template match="/">
<html>
<head>
<title>Speaker Notes</title>
<xsl:element name="meta">
<xsl:attribute name="name">DC.date</xsl:attribute>
<xsl:attribute name="content">
<xsl:value-of select="/dc:date" />
</xsl:attribute>
</xsl:element>
<style>
<xsl:comment>
p {font-size: 10pt}
h1 {font-family: arial; font-size: 12pt; font-weight:
bold}
</xsl:comment>
</style>
</head>
<xsl:apply-templates/>
</html>
</xsl:template>

<xsl:template match="office:body">
<body>
<xsl:apply-templates />
</body>
</xsl:template>

<xsl:template match="draw:page">
<h1><xsl:number/>.
<xsl:value-of select="draw:text-box[1]/text:p[1]"/></h1>

<xsl:apply-templates />

</xsl:template>


<xsl:template match="text:p">
<p><xsl:apply-templates/></p>
</xsl:template>

<xsl:template match="text:unordered-list">
<ul><xsl:apply-templates /></ul>
</xsl:template>

<xsl:template match="text:list-item">
<li><xsl:apply-templates /></li>
</xsl:template>

<xsl:template match="text:span[@text:style-name='T1']">
<em><xsl:apply-templates/></em>
</xsl:template>

<!-- sections of the OO format we don't need at present -->
<xsl:template match="office:automatic-styles" />
<xsl:template match="office:font-decls" />
<xsl:template match="office:meta" />
<xsl:template match="office:script" />
<xsl:template match="office:settings" />
<xsl:template match="office:styles" />
<xsl:template match="style:*" />
<xsl:template match="dc:*">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="meta:creation-date">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="meta:editing-cycles" />
<xsl:template match="meta:editing-duration" />
<xsl:template match="meta:generator" />
<xsl:template match="meta:user-defined" />

<!-- xsl:template match="text()">
<xsl:apply-templates select="normalize-space(.)"/>
</xsl:template -->

</xsl:stylesheet>

regards,
 
J

Joris Gillis

Joris said:
Thanks a lot, now it works! I'm glad it works.
Concerning the stylesheet for export of plain
Speaker notes from OOImpress, I was working on the top of
http://www.xml.com/pub/a/2004/02/04/tr-xml.html, and as a former lawyer I
learned a value of good intendation hard way :).

The only problem I have (and it is really unimportant) -- is there a way how
to clean XML output of all the redundant empty spaces and empty lines?

Yes, just set indent to no:

<xsl:eek:utput indent="no"
method="xml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
encoding="utf-8"
/>

and use:
<xsl:template match="draw:page">
<h1><xsl:number/><xsl:text>.</xsl:text>
<xsl:value-of select="draw:text-box[1]/text:p[1]"/></h1>
<xsl:apply-templates />

</xsl:template>
to get optimal whitespace compression.


btw: I you're going to analyze the XML of OOo files. It's handy to uncheck Tools->Options->Load/Save->General->'size optimization' for nice indentation. That's easier to read;)

regards,
 
M

Matej Cepl

Joris said:
btw: I you're going to analyze the XML of OOo files. It's handy to uncheck
Tools->Options->Load/Save->General->'size optimization' for nice
indentation. That's easier to read;)

Thanks,

Matej

--
Matej Cepl, http://www.ceplovi.cz/matej
GPG Finger: 89EF 4BC6 288A BF43 1BAB 25C3 E09F EF25 D964 84AC
138 Highland Ave. #10, Somerville, Ma 02143, (617) 623-1488

The state is the great fictitious entity by which everyone seeks
to live at the expense of everyone else.
-- Frederick Bastiat
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top