1

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

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

如何获取 SvgExporter 类库并构建我的应用程序并获取 Svghtml 以在 webview 上加载 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
}   
4

1 回答 1

0

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

IIRC,让 Xalan 在 Android 上运行存在问题(您应该自己验证这一点)。

如果情况仍然如此,那么您将需要编写一个 SvgExporter 版本,它在 Java 代码中进行遍历,而不是依赖 Xalan 来执行此操作。

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

于 2013-06-27T11:12:49.687 回答