温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

雪山飞鹄

温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

BlogJava 首页 新随笔 联系 聚合 管理
  215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
近期项目中用到将用户上传的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目录下
posted on 2011-06-17 10:23 雪山飞鹄 阅读(11069) 评论(3)  编辑  收藏 所属分类: javase

Feedback

# re: java转换word to pdf 2012-12-04 16:07
我转的pdf打开之后说文件错误不是pdf文档。怎么办  回复  更多评论
  

# re: java转换word to pdf 2013-05-10 10:59 于文峰
openoffice转换不了数学公式啊  回复  更多评论
  

# re: java转换word to pdf 2015-03-23 17:08 河北
@邢
解决了没? 跟你遇到同一个问题了.....  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: