简体   繁体   English

LibreOffice:生成幻灯片的XSLT样式表?

[英]LibreOffice: a XSLT stylesheet to generate a slideshow?

A libreoffice document is a zip file containing (among other thing) some XML files. libreoffice文档是一个zip文件,其中(其中包括)一些XML文件。

s$ unzip -t test.odp
Archive:  test.odp
    testing: mimetype                 OK
    testing: Configurations2/statusbar/   OK
    testing: Configurations2/accelerator/current.xml   OK
    testing: Configurations2/floater/   OK
    testing: Configurations2/popupmenu/   OK
    testing: Configurations2/progressbar/   OK
    testing: Configurations2/menubar/   OK
    testing: Configurations2/toolbar/   OK
    testing: Configurations2/images/Bitmaps/   OK
    testing: content.xml              OK
    testing: styles.xml               OK
    testing: meta.xml                 OK
    testing: settings.xml             OK
    testing: META-INF/manifest.xml    OK
No errors detected in compressed data of test.odp.

I would like to dynamically generate an ODP slideshow using XSLT (and the xsltproc + the element <xsl:document/> ) from a xml file that could look like this: 我想使用XSLT (和xsltproc +元素<xsl:document/> )从看起来像这样的xml文件中动态生成ODP幻灯片:

<slideshow>

  <slide>
    <title>Slide 1</title>
    <content>blablablablablablablabal</content>
  </slide>
  <!-- (....) --->
  <slide>
    <title>Slide N</title>
    <content>blablablablablablablabal</content>
  </slide>
</slidesho>

Is there any existing XSLT stylesheet for this ? 是否有任何现有的XSLT样式表?

The file content.xml is complicated, what would be the minimal content for an odp, a HelloWorld.odp, that could work ? 文件content.xml很复杂,可以工作的odp最小内容是什么?

A minimial valid presentation file looks like this: 最小有效的演示文稿文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0">
  <office:body>
    <office:presentation/>
  </office:body>
</office:document-content>

A simple file with some basic content would be this: 一个包含一些基本内容的简单文件是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<office:document-content office:version="1.2"
    xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
    xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
    xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
    xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
    xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0">
  <office:body>
    <office:presentation>
      <draw:page draw:master-page-name="">
        <draw:frame presentation:style-name="" svg:width="25.199cm"
          svg:height="3.506cm" svg:x="1.4cm" svg:y="0.837cm" presentation:class="title">
          <draw:text-box>
            <text:p>Title</text:p>
          </draw:text-box>
        </draw:frame>
        <draw:frame presentation:style-name="" svg:width="24.639cm"
          svg:height="12.178cm" svg:x="1.4cm" svg:y="4.914cm" presentation:class="subtitle">
          <draw:text-box>
            <text:p>My Text</text:p>
          </draw:text-box>
        </draw:frame>
      </draw:page>
    </office:presentation>
  </office:body>
</office:document-content>

I'd suggest getting an XML editor like oXygen that supports ODF to play with this. 我建议使用像oXygen这样的XML编辑器来支持ODF。 Having the specifications and RNG for the ODF version that you want to use might help, too. 拥有要使用的ODF版本的规范和RNG可能也会有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM