如何将word,excel,powerpoint等转换成html或pdf

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将word,excel,powerpoint等转换成html或pdf相关的知识,希望对你有一定的参考价值。

Office文档转换为html网页文件或者PDF文件主要有以下几种方法:
PPT文件转换为PDF格式一般有以下几种途径:
1.Office2007及更高的版本支持直接将表格文件转存为html文件或PDF文件,打开文档,然后点击另存为,然后从格式列表中选择网页格式或者PDF格式即可。
2.使用第三方软件进行转换,比如anybizsoft pdf converter。添加幻灯片文件,然后选择转换后的格式(pdf),然后点击转换即可。
3.使用在线转换:百度搜索“pdf在线转换”,然后打开相应的连接,然后上传文档,点击转换,然后把转换后的文件下载到本地即可。
参考技术A 官方就有提供转pdf的插件,点击另存为就有选项保存为pdf,如果没安装插件的话,那么会有提示指引你去官方下载,然后按照指示去下载安装即可。
最快的方法是在文件--另存为,点击另存为后下面有一个下拉选项,其中就有PDF文件这一选项。是OFFICE的应该都有这个功能。 你也可以下载一个PDF虚拟打印机,安装好以后在文件--打印,选择打印机,然后打印就会提示你保存,出来就是PDF格式了
参考技术B 第一种方法:

需求是要产生格式一致的文档、报表(word和excel),要求是字体、颜色、缩进、大小等等都要一致,对于这些文档来说,其样式基本都是固定的,变化的也就是那些实际的业务数据;

采用的技术是 xml + servlet + dom4j;

思路:先制作一份模版,另存为xml格式(注意是另存为产生xml),以这个xml文件为模版,预览请求时读取出数据,dom4j来解析操作xml模版转换成一份包含有业务数据的xml,最后servlet用那份xml来响应生成你要的文档;

word和excel都可以转换为xml,如果懂WordML, SpreadsheetML,可以直接编写xml,

上面方法对于样式是不用考虑的,所以生成的文档样式风格高度一致;只需要把数据放到相应的元素标签中(如果是多个相同的item,就是clone出相应的xml元素标签,填充数据,再放入相应的父元素中,注意dom4j clone出的元素不能读取操作,所以一般不要对clone的元素操作),一切共有的元素直接定义修改xml模版就可以了.

第二种方法:

采用技术:jodconverter + OpenOffice
参考技术C   以下是具体的执行代码:

  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版本相匹配,否则后果自负!

dsoframer设计笔记

dsoframer是微软提供一款开源的用于在线编辑、调用Word、 Excel 、PowerPoint等的ActiveX控件。电子印章,签名留痕等大多数是依此改进而来的。
dsoframer是微软提供一款开源的用于在线编辑、调用Word、 Excel 、PowerPoint等的ActiveX控件。国内很多著名的OA中间件,电子印章,签名留痕等大多数是依此改进而来的。

据说微软已停止更新控件,可以在office2010使用,但是文件后缀必须是doc

注意事项
1、文件后缀名必须是doc
2、书签操作,书签名必须以为字母开头
3、关闭窗口的时候也控件close(),然后可以对保存下的文件进行其他操作,比如上传,删除文件等

以上是关于如何将word,excel,powerpoint等转换成html或pdf的主要内容,如果未能解决你的问题,请参考以下文章

Word,Excel,PowerPoint协作实用功能

Java解析OFFICE(word,excel,powerpoint)以及PDF的实现方案及开发中的点滴分享

office零基础——Excel篇

pdf怎么转换成excel

震惊!当Python遇到Excel后,将开启你的认知虫洞

震惊!当Python遇到Excel后,将开启你的认知虫洞