如何使用Docx4j在Android视图中显示ppt文件?

时间:2013-06-24 12:46:08

标签: android webview powerpoint docx4j

我正在使用Android并使用docx4j将docx,pptx和xlsx文件查看到我的应用程序中。

我无法查看ppt文件。我在SvgExporter类中遇到编译时错误。在docx4j库中没有。

如何获取SvgExporter类库并构建我的应用程序并在webview上加载Svghtml以获取ppt文件?我的代码如下:

    String inputfilepath = System.getProperty("user.dir") + "/sample-docs/pptx/pptx-basic.xml";

    // Where to save images
    SvgExporter.setImageDirPath(System.getProperty("user.dir") + "/sample-docs/pptx/");

    PresentationMLPackage presentationMLPackage = 
        (PresentationMLPackage)PresentationMLPackage.load(new java.io.File(inputfilepath));     

    // TODO - render slides in document order!
    Iterator partIterator = presentationMLPackage.getParts().getParts().entrySet().iterator();
    while (partIterator.hasNext()) {

        Map.Entry pairs = (Map.Entry)partIterator.next();

        Part p = (Part)pairs.getValue();
        if (p instanceof SlidePart) {

            System.out.println(
                    SvgExporter.svg(presentationMLPackage, (SlidePart)p)
                    );
        }
    }

    // NB: file suffix must end with .xhtml in order to see the SVG in a browser
}   

1 个答案:

答案 0 :(得分:0)

SvgExporter使用XSLT和Xalan扩展函数来完成它。

IIRC,让Xalan在Android上运行时遇到了问题(你应该自己验证一下)。

如果仍然如此,那么你需要编写一个SvgExporter版本,它在Java代码中进行遍历,而不是依靠Xalan来实现这一点。

这应该是可行的; docx4j代码库中有“NonXSLT”示例。