XSL stylesheet for export of outline from OOImpressu to HTML?

Discussion in 'XML' started by Matej Cepl, Dec 4, 2004.

  1. Matej Cepl

    Matej Cepl Guest

    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
    Matej Cepl, Dec 4, 2004
    #1
    1. Advertising

  2. Matej Cepl

    Joris Gillis Guest

    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,
    --
    Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041)
    Ceterum censeo XML omnibus esse utendum
    Joris Gillis, Dec 4, 2004
    #2
    1. Advertising

  3. Matej Cepl

    Matej Cepl Guest

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


    I meant pictures and such stuff.

    >> (moreover, she probably never heard about Oo_O).

    > 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
    Matej Cepl, Dec 5, 2004
    #3
  4. Matej Cepl

    Matej Cepl Guest

    Joris Gillis wrote:
    > 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>
    Matej Cepl, Dec 5, 2004
    #4
  5. On Sun, 05 Dec 2004 17:03:53 -0500, Matej Cepl <>
    wrote:
    > <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>

    --
    Morris M. Keesan --
    Morris M. Keesan, Dec 6, 2004
    #5
  6. Matej Cepl

    Matej Cepl Guest

    Morris M. Keesan wrote:
    >>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
    Matej Cepl, Dec 6, 2004
    #6
  7. Matej Cepl

    Joris Gillis Guest

    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,
    --
    Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041)
    Ceterum censeo XML omnibus esse utendum
    Joris Gillis, Dec 6, 2004
    #7
  8. Matej Cepl

    Joris Gillis Guest

    Re: Solved! [Was: Re: XSL stylesheet for export of outline from OOImpressu to HTML?]

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

    >
    > 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,
    --
    Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041)
    Ceterum censeo XML omnibus esse utendum
    Joris Gillis, Dec 6, 2004
    #8
  9. Matej Cepl

    Matej Cepl Guest

    Re: Solved! [Was: Re: XSL stylesheet for export of outline from OOImpressu to HTML?]

    Joris Gillis wrote:
    > 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
    Matej Cepl, Dec 6, 2004
    #9
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Thomas Sommer
    Replies:
    0
    Views:
    429
    Thomas Sommer
    Nov 25, 2004
  2. MC
    Replies:
    1
    Views:
    7,249
    David Carlisle
    Mar 24, 2005
  3. Replies:
    0
    Views:
    527
  4. enggr
    Replies:
    0
    Views:
    1,629
    enggr
    Jun 30, 2010
Loading...

Share This Page