ppt转换html5

923 阅读2分钟

底层实现

<dependency>	<groupId>com.jy.ConversionService</groupId>	<artifactId>com.jy.ConversionService</artifactId>	<version>1.0</version>	<scope>system</scope>	<systemPath>${project.basedir}/lib/jacob.jar</systemPath></dependency>


基础实现

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.*;
 
public class OfficeToXML {
 
	private final static OfficeToXML oOfficeToXML = new OfficeToXML();
 
	public static OfficeToXML getInstance() {
		return oOfficeToXML;
	}
 
	public OfficeToXML() {
	}
 
	public boolean WordtoHtml(String s, String s1) {
		ComThread.InitSTA();
		ActiveXComponent activexcomponent = new ActiveXComponent(
				"Word.Application");
		String s2 = s;
		String s3 = s1;
		boolean flag = false;
		try {
			activexcomponent.setProperty("Visible", new Variant(false));
			Dispatch dispatch = activexcomponent.getProperty("Documents").toDispatch();
			Dispatch dispatch1 = Dispatch.invoke(dispatch, "Open", 1,
					new Object[] { s2, new Variant(false), new Variant(true) },
					new int[1]).toDispatch();
			Dispatch.invoke(dispatch1, "SaveAs", 1, new Object[] { s3,
					new Variant(8) }, new int[1]);
			Variant variant = new Variant(false);
			Dispatch.call(dispatch1, "Close", variant);
			flag = true;
		} catch (Exception exception) {
			exception.printStackTrace();
		} finally {
			activexcomponent.invoke("Quit", new Variant[0]);
			ComThread.Release();
			ComThread.quitMainSTA();
		}
		return flag;
	}
 
	public boolean PPttoHtml(String s, String s1) {
		ComThread.InitSTA();
		ActiveXComponent activexcomponent = new ActiveXComponent(
				"PowerPoint.Application");
		String s2 = s;
		String s3 = s1;
		boolean flag = false;
		try {
			Dispatch dispatch = activexcomponent.getProperty("Presentations")
					.toDispatch();
			Dispatch dispatch1 = Dispatch.call(dispatch, "Open", s2,
					new Variant(-1), new Variant(-1), new Variant(0))
					.toDispatch();
			Dispatch.call(dispatch1, "SaveAs", s3, new Variant(12));
			Variant variant = new Variant(-1);
			Dispatch.call(dispatch1, "Close");
			flag = true;
		} catch (Exception exception) {
			System.out.println("|||" + exception.toString());
		} finally {
			activexcomponent.invoke("Quit", new Variant[0]);
			ComThread.Release();
			ComThread.quitMainSTA();
		}
		return flag;
	}
 
	public boolean ExceltoHtml(String s, String s1) {
		 ComThread.InitSTA();
		 ActiveXComponent activexcomponent = new
		 ActiveXComponent("Excel.Application");
		 String s2 = s;
		 String s3 = s1;
		 boolean flag = false;
		 try
		 {
		 activexcomponent.setProperty("Visible", new Variant(false));
		 Dispatch dispatch =
		 activexcomponent.getProperty("Workbooks").toDispatch();
		 Dispatch dispatch1 = Dispatch.invoke(dispatch, "Open", 1, new
		 Object[] {
		 s2, new Variant(false), new Variant(true)
		 }, new int[1]).toDispatch();
		 Dispatch.call(dispatch1, "SaveAs", s3, new Variant(44));
		 Variant variant = new Variant(false);
		 Dispatch.call(dispatch1, "Close", variant);
		 flag = true;
		 }
		 catch(Exception exception)
		 {
		 System.out.println("|||" + exception.toString());
		 }
		 finally
		 {
		 activexcomponent.invoke("Quit", new Variant[0]);
		 ComThread.Release();
		 ComThread.quitMainSTA();
		 }
		 return flag;
	}
 
	public static void main(String args[]) {
		OfficeToXML otx = OfficeToXML.getInstance();
		boolean flag1 = otx.PPttoHtml("e:/test/test3.pptx", "e:/test/test3.html");
		if(flag1){
			System.out.println("PPT文件转换成HTML成功!");
		}else{
			System.out.println("PPT文件转换成HTML失败!");
		}
		boolean flag2 = otx.WordtoHtml("e:/test/test2.docx", "e:/test/test2.html");
		if(flag2){
			System.out.println("WORD文件转换成HTML成功!");
		}else{
			System.out.println("WORD文件转换成HTML失败!");
		}
		boolean flag3 = otx.ExceltoHtml("e:/test/test1.xlsx", "e:/test/test1.html");
		if(flag3){
			System.out.println("EXCEL文件转换成HTML成功!");
		}else{
			System.out.println("EXCEL文件转换成HTML失败!");
		}
	}
}

运行条件:

1.JDK1.6

2.jacob.jar和jacob.dll

  1) 把jacob.dll在 ..\Java\jdk1.6.0_10\bin、..\Java\jdk1.6.0_10\jre\bin、C:\WINDOWS\system32    目录下各放一份
  2) 把jacob.jar放入 项目的lib包下,并且在“java构建路径”中也要加载此jar包。
  3) 运行项目即可编译通过.

注:jacob.jar以及jacob.dll版本一定要和jdk版本相匹配,否则后果自负!

在线ppt编辑

www.woodo.cn 

一款超便捷的PPT在线制作工具,不仅保留了线下PPT交互动画效果,一键复制链接便可分享到微信、QQ、钉钉等平台,绝对的轻量化PPT工具。


wodeh5.com的企业正式版已经发布,等效网站 bsayy.com ,官网:www.bsayy.com

推荐使用 bsayy.com

其他收费软件

www.digitalofficepro.com/powerpoint/…

elkindia.com/powerpoint-…

www.ppt-to-html5.com/powerpoint-…