Java,Jsp,模式及框架
Web技术
Web服务器
浏览器相关
SQL语言
数据库
开发环境
软件开发及管理
网站SEO
短信及邮件服务
网页设计
电脑、硬件及网络
协同管理平台问题
电子商务
前沿技术及趋势
  当前位置:首页 - 知识积累 - Java,Jsp,模式及框架
office文件在线预览
时间:2013年09月22日 

1、根据jdk的位数将对应的jacob.dll文件拷贝到jdk中jre的bin目录和系统盘的sysem目录
2、注意配置代码中pdf转swf的pdf2swf.exe的路径为你安装swftools插件路径

3、系统环境变量配置一下jacob
4、需安装office2007或以上版本。


注意:相关安装文件和jar包请查看附件

相关代码:
/**
  * word转pdf
  * @param inputFile  源文件
  * @param pdfFile    目标文件
  */
 public static void word2PDF(String inputFile,String pdfFile) throws Exception{
  ActiveXComponent app=null;
  Dispatch doc =null;
  try{
   //打开word应用程序
      app = new ActiveXComponent("Word.Application");
      //设置word不可见
      app.setProperty("Visible", false);
      //获得word中所有打开的文档,返回Documents对象
      Dispatch docs = app.getProperty("Documents").toDispatch();
     
      File file=new File(pdfFile);
      if(file.exists()) file.delete();
      //调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
      doc = Dispatch.call(docs,
                          "Open",
                          inputFile,
                          false,
                          true
                          ).toDispatch();
      //调用Document对象的SaveAs方法,将文档保存为pdf格式
      Dispatch.call(doc,
              "SaveAs",
              pdfFile,
              17       //word保存为pdf格式宏,值为17
              );
     
  }catch(Exception e){
   e.printStackTrace();
   throw e;
  }finally{
   //关闭文档
   if(doc!=null) Dispatch.call(doc, "Close",false);
      //关闭word应用程序
   if(app!=null) app.invoke("Quit", 0);
  }
 }
 
 /**
  * excel转pdf
  * @param inputFile
  * @param pdfFile
  */
 public static void excel2PDF(String inputFile,String pdfFile) throws Exception{
  ActiveXComponent app=null;
  Dispatch worksheet =null;
  try{
   //打开Excel应用程序
      app = new ActiveXComponent("Excel.Application");
      //设置Excel不可见
      app.setProperty("Visible", false);
      //获得Excel中所有打开的文档,返回Documents对象
      Dispatch worksheets = app.getProperty("Workbooks").toDispatch();
      File file=new File(pdfFile);
      if(file.exists()) file.delete();
     
      //调用Workbooks对象中Open方法打开文档,并返回打开的文档对象Workbooks
      worksheet = Dispatch.call(worksheets,
                          "Open",
                          inputFile,
                          false,
                          true
                          ).toDispatch();
      //调用Workbooks对象的SaveAs方法,将文档保存为pdf格式
      Dispatch.call(worksheet,
              "SaveAs",
              pdfFile,
              57       //excel保存为pdf格式宏,值为57
              );
     
  }catch(Exception e){
   e.printStackTrace();
   throw e;
  }finally{
   //关闭文档
   if(worksheet!=null) Dispatch.call(worksheet, "Close",false);
      //关闭excel应用程序
   if(app!=null) app.invoke("Quit", new Variant[] {});
  }
 }
 
 /**
  * ppt转pdf
  * @param inputFile
  * @param pdfFile
  */
 public static void ppt2PDF(String inputFile,String pdfFile) throws Exception{
  ActiveXComponent app=null;
  Dispatch presentation =null;
  try{
   //打开ppt应用程序
      app = new ActiveXComponent("PowerPoint.Application");
      //设置ppt不可见
      //app.setProperty("Visible", false);
      //获得ppt中所有打开的文档,返回Presentations对象
      Dispatch Presentations = app.getProperty("Presentations").toDispatch();
     
      File file=new File(pdfFile);
      if(file.exists()) file.delete();
      //调用Presentations对象中Open方法打开文档,并返回打开的文档对象Presentations
      presentation = Dispatch.call(Presentations, "Open", inputFile, true,// ReadOnly 
                              true,// Untitled指定文件是否有标题 
                             false// WithWindow指定文件是否可见 
                       ).toDispatch(); 

      //调用Presentations对象的SaveAs方法,将文档保存为pdf格式
      Dispatch.call(presentation ,
              "SaveAs",
              pdfFile,
              32       //ppt保存为pdf格式宏,值为32
              );
     
  }catch(Exception e){
   e.printStackTrace();
   throw e;
  }finally{
   //关闭文档
   if(presentation !=null) Dispatch.call(presentation , "Close");
      //关闭ppt应用程序
   if(app!=null) app.invoke("Quit", new Variant[] {});
  }
 }
 
 /**
  * pdf转swf
  * @param pdfFile
  * @param swfFile
  * @return
  * @throws Exception
  */
 public static int pdf2swf(String pdfFile,String swfFile){
  int exitCode=0;
  try{
   File file=new File(swfFile);
      if(file.exists()) file.delete();
   Process p=Runtime.getRuntime().exec("pdf2swf.exe "+pdfFile+" -o "+swfFile+" -T 9");
      System.err.print(loadStream(p.getErrorStream())); 
      exitCode=p.waitFor();
  }catch(Exception e){
   e.printStackTrace();
   exitCode=-1;
  }
  
     return exitCode;
 }