`
flyeagle
  • 浏览: 211807 次
  • 来自: ...
社区版块
存档分类
最新评论

使用java jacob转换office到pdf

阅读更多

          使用java jacob转换office到pdf,注意事项:

      1.本机需要安装office,或者openoffice(未测试过)

       2.下载最新的jacob的jar,解压后将相关的dll文件拷贝到java/jre/bin目录下.

       3.如果包如下错误:

            no jacob-1.18-x64 in java.library.path  原因可能是找不到相关dll文件,将配套dll文件拷贝到相关使用的jdk/jre/bin目录

 

转换代码(代码来源于互联网,由于时间原因,原创暂时无法考证):

 

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
/**
 * 
* @ClassName: OfficeToPDF
* @Description: 使用jacob转换office为pdf,也可以将txt文件转换为pdf.
* @author ***************
* @date 2015年9月21日 上午11:15:44
*
 */
public class OfficeToPDF {
	 
	 private static final int wdFormatPDF = 17;
	 private static final int xlTypePDF = 0;
	 private static final int ppSaveAsPDF = 32;
	 private static final int msoTrue = -1;
	 private static final int msofalse = 0;
	 
	public static void main(String[] args) {
		convert2PDF("D:\\aaaa.ppt","D:\\bbbbb.pdf");
		
	}
	
    public static boolean convert2PDF(String inputFile, String pdfFile) {
        String suffix =  getFileSufix(inputFile);
        File file = new File(inputFile);
        if(!file.exists()){
            System.out.println("文件不存在!");
            return false;
        }
        if(suffix.equals("pdf")){
            System.out.println("PDF not need to convert!");
            return false;
        }
        if(suffix.equals("doc")||suffix.equals("docx")||suffix.equals("txt")){
            return word2PDF(inputFile,pdfFile);
        }else if(suffix.equals("ppt")||suffix.equals("pptx")){
            return ppt2PDF(inputFile,pdfFile);
        }else if(suffix.equals("xls")||suffix.equals("xlsx")){
            return excel2PDF(inputFile,pdfFile);
        }else{
            System.out.println("文件格式不支持转换!");
            return false;
        }
    }
    
    public static String getFileSufix(String fileName){
        int splitIndex = fileName.lastIndexOf(".");
        return fileName.substring(splitIndex + 1);
    }
    
    /**
     * 
    * @Title: word2PDF
    * @Description: 转换word文档为pdf
    * @param @param inputFile
    * @param @param pdfFile
    * @param @return    设定文件
    * @return boolean    返回类型
    * @throws
     */
    public static boolean word2PDF(String inputFile,String pdfFile){
        try{
        //打开word应用程序
        ActiveXComponent app = new ActiveXComponent("Word.Application");
        //设置word不可见
        app.setProperty("Visible", false);
        //获得word中所有打开的文档,返回Documents对象
        Dispatch docs = app.getProperty("Documents").toDispatch();
        //调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
        Dispatch doc = Dispatch.call(docs,
                                    "Open",
                                    inputFile,
                                    false,
                                    true
                                    ).toDispatch();
        //调用Document对象的SaveAs方法,将文档保存为pdf格式
        /*
        Dispatch.call(doc,
                    "SaveAs",
                    pdfFile,
                    wdFormatPDF     //word保存为pdf格式宏,值为17
                    );
                    */
        Dispatch.call(doc,
                "ExportAsFixedFormat",
                pdfFile,
                wdFormatPDF     //word保存为pdf格式宏,值为17
                );
        //关闭文档
        Dispatch.call(doc, "Close",false);
        //关闭word应用程序
        app.invoke("Quit", 0);
        return true;
    }catch(Exception e){
        return false;
    }
    }
    
    /**
     * 
    * @Title: excel2PDF
    * @Description: 转换excel为PDF
    * @param @param inputFile
    * @param @param pdfFile
    * @param @return    设定文件
    * @return boolean    返回类型
    * @throws
     */
    public static boolean excel2PDF(String inputFile,String pdfFile){
        try{
            ActiveXComponent app = new ActiveXComponent("Excel.Application");
        app.setProperty("Visible", false);
        Dispatch excels = app.getProperty("Workbooks").toDispatch();
        Dispatch excel = Dispatch.call(excels,
                                    "Open",
                                    inputFile,
                                    false,
                                    true
                                    ).toDispatch();
        Dispatch.call(excel,
                    "ExportAsFixedFormat",
                    xlTypePDF,      
                    pdfFile
                    );
        Dispatch.call(excel, "Close",false);
        app.invoke("Quit");
        return true;
    }catch(Exception e){
        return false;
    }
         
    }
    
    /**
     * 
    * @Title: ppt2PDF
    * @Description: 转换ppt为office
    * @param @param inputFile
    * @param @param pdfFile
    * @param @return    设定文件
    * @return boolean    返回类型
    * @throws
     */
    public static boolean ppt2PDF(String inputFile,String pdfFile){
        try{
        ActiveXComponent app = new ActiveXComponent("PowerPoint.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;
        }
     }
}

 

 

分享到:
评论

相关推荐

    使用jacob转换office为PDF

    使用jacob转换office为PDF文件,需要将jacob.dll放到jdk\bin目录下

    Java 使用 jacob 将office中 word excel ppt 转成pdf

    资源中包括工具类、jacob.jar和jacob-1.18-x64.dll(64位)、jacob-1.18-x86.dll(32位) 在使用jacob时,我们需要将jacob-1.18-x64.dll或jacob-1.18-x86.dll放到jdk的bin目录下或者jdk/jre的bin目录下才可以使用。

    jacob-1.19-office转pdf所需资源

    该资源在java-web开发在线浏览文档功能中可以用到,该资源可将office文档转换成pdf文档,转换兼容office2003(doc、xls、ppt)和office2007(doc、xlsx、pptx),将该资源解压后,需要将jacob-1.19-x86.dll和jacob-...

    java实现office转pdf.zip

    20190720项目代码。java实现office转换为PDF,使用JDK1.8和jacob

    java实现office、wps转pdf,pdf转word

    支持word、excel、ppt、wps、txt等多种格式转pdf、并支持pdf转word。个人感觉非常好用。

    jacob-1.17-office-to-pdf.rar

    java 使用jacob word转换pdf

    java word转换pdf

    1、利用小美的Jacob调用MS Office转换文档为PDF 2、JCom是日本的一个开源项目,可以轻松实现office转换pdf 3、可以利用开源的OpenOffice,这个是linux提供的一个用于office的工具,调用内部API可以方便转换。 另外...

    office文件及图片文件转换成PDF,同时添加水印

    * 使用Jacob将office格式文件转换成pdf格式,在使用代码前需将jacob-1.43-M2-x86/x64.dll拷贝到%JAVA_HOME%下的 bin目录下 * 建议本机按照较高版本的office软件,同时最好按另存为pdf的插件 SaveAsPDFandXPS.exe,...

    jacob乱码原因解释

    jacob转换office文件成html文件出现乱码原因解释

    利用jacob插件可以实现office文件转换为PDF文件,再利用ICEpdf-pro-6.1.1 将PDF转换为图片相关插件

    该文件包含jacob jar包(32位,64位)通过调用MS OFFICE可以快捷的将word excel ppt等转换为pdf。 1、将 DLL文件复制到 c:\windows\system32 下面。 2、将jacob.jar 文件导入项目中。 ICEpdf-pro-6.1.1 相关jar包,可...

    jacob 1.20 jacob-1.20-x64.dll jacob-1.20-x86.dll

    jacob.jar1.20及使用方法 解压后获得3个文件 jacob.jar jacob-1.20-x64.dll jacob-1.20-x86.dll 包含(32位,64位)以及文档 jacob(java com bradge) 通过调用MS OFFICE可以快捷的将word excel ppt等转换为pdf

    文件转换为PDF&HTML;插件—jacob-1.17-M2(支持64位和32位)

    ② 需要把jacob.dll文件复制到JDK的bin目录下面,否则无法调用转换为PDF的功能。 2)使用的服务器上必须安装有office软件,因为原理是调用office的pdf转换器来实现的。 3)必须也要有PDF软件,因为office要通过...

    word转换为pdf

    操作各种office 1、使用jacob时,需要服务器端上安装office,它是通过com技术访问的,需要把jacob-1.15-M4-x86.dll拷贝...3、使用jacob技术调用2007自带的word转pdf工具,WordToPdfOffice2007是使用office2007的另存功能

    office2pdf:将办公文件(word,ppt)转换为pdf

    本文介绍两种常用的Office文档转PDF解决方案。 1. [Windows平台]使用Microsoft Office 1.1 特点 优点: 兼容好; 速度快;... 需要把jacob-x.xx-x64.dll放到java/bin(与java.exe相同)目录下 1.3 示例 支持

    jacob-1.18工具包.zip

    下面为转pdf使用方法 package com.pdf.doctopdf.pdf; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; import java.io.File; public class TestJacob...

    documentConvertor_jacob使用_java_doc_

    提供多种office文件转换为pdf文件的java解决方案

    jacob-1.17-M2(支持64位和32位).zip

    Jacob调用MS Office COM自动化组件转换Office文档为PDF

    转pdf需要到的jar包.zip

    将word文档转化为PDF是项目中常见的需求之一,目前主流的方法可以分为两大类,一类是利用各种Office应用进行转换,譬如Microsoft Office、WPS以及LiberOffice,另一种是利用各种语言提供的对于Office文档读取的接口...

    jacob-1.19(包含jacob 32位,64位jar包以及文档 )

    该文件包含jacob jar包(32位,64位)以及文档 jacob(java com bradge) 通过调用MS OFFICE可以快捷的将word excel ppt等转换为pdf

    JACOB组件jar包和dll

    例如JAVA纯代码编写,用于转换格式需要用到的jar包,例如将word转为pdf,或者word转为xml等格式,都可以使用这套组件进行开发,

Global site tag (gtag.js) - Google Analytics