ppt转pdf(jacob版本实现)

1.首先下载相关jar包和dll:https://sourceforge.net/projects/jacob-project/files/jacob-project/1.17/

jar包和dll工具

2.如果是64位系统选择jacob-1.17-x64.dll文件,如果是32位系统,选择jacob-1.17-x86.dll文件,将dll文件分别放置到C:\Windows\System32目录下和C:\Program Files\Java\jre1.8.0_112\bin目录下。
3.确保电脑上已安装了wps软件。

import java.io.File;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;

public class Test {
    private static final int wdFormatPDF = 17;
    private static final int xlTypePDF = 0;
    private static final int ppSaveAsPDF = 32;

    public static void main(String[] args) {
        if (new Test().convert2PDF("C:/DS1-1-1.pptx","C:/DS1-1-1.pdf"))
            System.out.println("转换完成!");
        else
            System.out.println("转换失败!");
    }

    public boolean convert2PDF(String inputFile, String pdfFile) {
        String suffix = getFileSufix(inputFile);
        File file = new File(inputFile);
        if (!file.exists()) {
            return false;
        }
        if (suffix.equals("pdf")) {
            return false;
        }
        if (suffix.equals("ppt") || suffix.equals("pptx")) {
            System.out.println("begin:");
            return ppt2PDF(inputFile, pdfFile);
        }  else {
            return false;
        }
        return false;
    }

    public static String getFileSufix(String fileName) {
        int splitIndex = fileName.lastIndexOf(".");
        return fileName.substring(splitIndex + 1);
    }
    // ppt转换为pdf
    public static boolean ppt2PDF(String inputFile, String pdfFile) {
        try {
            ActiveXComponent app = new ActiveXComponent("KWPP.Application");
            // app.setProperty("Visible", msofalse);
            Dispatch ppts = app.getProperty("Presentations").toDispatch();

            Dispatch ppt = Dispatch.call(ppts, "Open", inputFile, true, // ReadOnly
                    true, // Untitled指定文件是否有标题
                    false// WithWindow指定文件是否可见
            ).toDispatch();

            Dispatch.call(ppt, "SaveAs", pdfFile, ppSaveAsPDF);

            Dispatch.call(ppt, "Close");

            app.invoke("Quit");
            return true;
        } catch (Exception e) {
            return false;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,491评论 2 45
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 6,328评论 1 9
  • 一、 Jacob 环境配置 ① 下载Office套件 ② 下载Jacob-1.1.8.jar包 链接:https:...
    Seveni8阅读 3,138评论 1 2
  • 春节临近,工作越来越忙。对于读书这件事,既然订了计划,就要按计划执行。对于有很多年没有完整的看过一本纸质书的我,断...
    李玉良_阅读 246评论 0 0
  • 在我们身边,总有那么有些人在干扰你的决定,他们说的一句话,做的一件事,很有可能就扰乱了你原有的内心宁静。 但...
    奋斗的姑凉阅读 336评论 1 1