Loading TOC...

MarkLogic 12 EA 2 Product Documentation
xdmp:powerpoint-convert

xdmp:powerpoint-convert(
   $doc as node(),
   $filename as xs:string,
   [$options as (element()|map:map)?]
) as node()*

Summary

Converts a Microsoft Powerpoint document to XHTML. Returns several nodes, including a parts node, the converted document xml node, and any other document parts (for example, css files and images). The first node is the parts node, which contains a manifest of all of the parts generated as result of the conversion. Does not convert Microsoft Office 2007 and later documents.

Parameters
doc Microsoft Powerpoint document to convert to HTML, as binary node().
filename The root for the name of the converted files and directories. If the specified filename includes an extension, then the extension is appended to the root with an underscore. The directory for other parts of the conversion (images, for example) has the string "_parts" appended to the root. For example, if you specify a filename of "myFile.ppt", the generated names will be "myFile_ppt.xhtml" for the xml node and "myFile_ppt_parts" for the directory containing the any other parts generated by the conversion (images, css files, and so on).
options Options with which to customize this operation. You can specify options as either an XML options element in the "xdmp:powerpoint-convert" namespace, or as a map:map. The options names below are XML element localnames. When using a map, replace any hyphens with camel casing. For example, "an-option" becomes "anOption" when used as a map:map key. This function supports the following options, plus the options from the xdmp:tidy function.
tidy
Specify true to run tidy on the document and false not to run tidy. If you run tidy, you can also include xdmp:tidy options. Any tidy option elements must be in the xdmp:tidy namespace.
compact
Specify true to produce "compact" HTML, that is, without style information. The default is false.
slideID
An integer specifying which slide of the input Powerpoint document to convert. If this option is not set, all slides are converted.
slide-by-slide
Specify true to produce one document for each slide. The default is false.
speaker-notes
Specify true to include speaker notes in the output. The default is false.

Usage Notes

This function is part of a separate package which may generate temporary files. These temporary files are not supported by encryption at rest.

This function is not available on Mac OS X.

This function requires separate converter installation package starting with release 9.0-4, see MarkLogic Converters Installation Changes Starting at Release 9.0-4 in the Installation Guide for All Platforms.

This function supports the following file formats: Microsoft PowerPoint 97/2000/2001 (Mac)/XP/2003, except that 95/97 compound file format is not supported.

The convert functions return several nodes. The first node is a manifest containing the various parts of the conversion. Typically there will be an xml part, a css part, and some image parts. Each part is returned as a separate node in the order shown in the manifest.

Therefore, given the following manifest:

<parts>
  <part>myFile_ppt.xhtml</part>
  <part>myFile_ppt_parts/conv.css</part>
  <part>myFile_ppt_parts/toc.xml</part>
</parts>

the first node of the returned query is the manifest, the second is the "myFile_ppt.xhtml" node, the third is the "myFile_ppt_parts/conv.css" node, and the fourth is the myFile_ppt_parts/toc.xml node.

Example

let $results := xdmp:powerpoint-convert(
                         xdmp:document-get("myFile.ppt"),
                         "myFile.ppt" ),
    $manifest := $results[1]
return
$results[2 to last()]

(: Returns all of the converted nodes :)

Example

(: Using a combination of xdmp:powerpoint-convert and xdmp:tidy options
 : in an options element. :)
let $results := 
      xdmp:powerpoint-convert(
        xdmp:document-get("myFile.ppt"),
        "myFile.ppt",
        <options xmlns="xdmp:powerpoint-convert" xmlns:tidy="xdmp:tidy">
          <tidy>true</tidy>
          <tidy:clean>yes</tidy:clean>
          <speaker-notes>true</speaker-notes>
        </options>
      ),
    $manifest := $results[1]
return
$results[2 to last()]

(: Returns all of the converted nodes :)

Example

(: Using a combination of xdmp:powerpoint-convert and xdmp:tidy options
 : in an options map. :)
let $results := 
      xdmp:powerpoint-convert(
        xdmp:document-get("myFile.ppt"),
        "myFile.ppt",
        map:map() => map:with("tidy", fn:true())
                  => map:with("clean", "yes")
                  => map:with("speakerNotes", fn:true())
      ),
    $manifest := $results[1]
return
$results[2 to last()]

(: Returns all of the converted nodes :)

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.