java转换word to pdf

java转换word to pdf
近期项目中用到将用户上传的word文档转换为pdf文件。用java实现,于是乎在google上百度了一下。得出两种解决方案。
1、使用OpenOffice转PDF;
2、使用MS Office的OLE自动化功能;
同样也得到如下的帖子
http://www.iteye.com/topic/1005741
import  java.io.File;

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

public   class  Word2Pdf {

static   final   int  wdDoNotSaveChanges  =   0 ; //  不保存待定的更改。
static   final   int  wdFormatPDF  =   17 ; //  PDF 格式

public   static   void  main(String[] args) {

    String filename 
=   " D:\\workspace\\word2pdf\\src\\tests.doc " ;
    String toFilename 
=  filename  +   " .pdf " ;
    System.out.println(
" 启动Word " );
    
long  start  =  System.currentTimeMillis();
    ActiveXComponent app 
=   null ;
    
try  {
        app 
=   new  ActiveXComponent( " Word.Application " );
        app.setProperty(
" Visible " false );

        Dispatch docs 
=  app.getProperty( " Documents " ).toDispatch();
        System.out.println(
" 打开文档 "   +  filename);
        Dispatch doc 
=  Dispatch.call(docs, //
                 " Open " //
                filename, //  FileName
                 false , //  ConfirmConversions
                 true   //  ReadOnly
                ).toDispatch();

        System.out.println(
" 转换文档到PDF "   +  toFilename);
        File tofile 
=   new  File(toFilename);
        
if  (tofile.exists()) {
            tofile.delete();
        }
        Dispatch.call(doc,
//
                 " SaveAs " //
                toFilename,  //  FileName
                wdFormatPDF);

        Dispatch.call(doc, 
" Close " false );
        
long  end  =  System.currentTimeMillis();
        System.out.println(
" 转换完成..用时: "   +  (end  -  start)  +   " ms. " );
    } 
catch  (Exception e) {
        System.out.println(
" ========Error:文档转换失败: "   +  e.getMessage());
    } 
finally  {
        
if  (app  !=   null )
            app.invoke(
" Quit " , wdDoNotSaveChanges);
    }
}
}
需要使用到的jar
jacob.jar
另外拷贝jacob.dll到 Windows System32目录下

你可能感兴趣的:(java转换word to pdf)