java如何讲mht非标准格式的ppt文件转化成标准格式的ppt

最近要做一个根据ppt模版来生成ppt的东西,
在网上百度已一番没找到

不过看到一个根据word模版来生成word的解决方案有所启发,觉得亦可以用在ppt上

就是先用powerpoint打开ppt模版,另存为mht格式的文件,然后用freemarker来替换要显示的部分,这样只要修改后缀名就可以了,这个可以在各类office软件打开,
可是不支持之前做的在线浏览ppt功能,请问各位大神有没有什么工具能讲mht格式的ppt文件转化成标准格式啊

在 Java 中,您可以使用 Apache POI 库将 MHT 格式的 PPT 转换为标准格式的 PPT。Apache POI 是一个开源的 Java 库,用于读写 Microsoft Office 文档。下面是一个示例代码,展示了如何使用 Apache POI 将 MHT 格式的 PPT 转换为标准格式的 PPT。


首先,您需要将 Apache POI 库添加到您的项目中。您可以使用以下 Maven 依赖来添加 Apache POI 库:

<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi</artifactId>
   <version>4.1.2</version>
</dependency>

然后,您可以使用以下代码将 MHT 格式的 PPT 转换为标准格式的 PPT:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.PicturesManager;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.usermodel.PictureType;
import org.w3c.dom.Document;

public class MHTToPPTConverter {
    public static void main(String[] args) throws Exception {
        // 创建输入流,用于读取 MHT 格式的 PPT 文件
        FileInputStream inputStream = new FileInputStream(new File("input.mht"));

        // 创建 HSLF 滑动展示,用于读取 MHT 格式的 PPT
        HSLFSlideShow slideShow = new HSLFSlideShow(inputStream);

        // 创建输出流,用于写入标准格式的 PPT 文件
        FileOutputStream outputStream = new FileOutputStream(new File("output.ppt"));

        // 将 HSLF 滑动展示写入输出流
        slideShow.write(outputStream);

        // 关闭输入流和输出流
        inputStream.close();
        outputStream.close();
    }
}

该代码首先创建了一个输入流,用于读取 MHT 格式的 PPT 文件。然后,它创建了一个 HSLF 滑动展示,用于读取 MHT 格式的 PPT。接下来,它创建了一个输出流,用于写入标准格式的 PPT 文件。最后,它使用 write() 方法将 HSLF 滑动展示写入输出流,并关闭输入流和输出流。