项目需要对上传的word及pdf进行在线预览,因基于jquery的pdf插件,很方面实现在线预览,而word实现在线预览费劲不少,于是想到在进行上传处理时,直接将word转成pdf,在预览时直接预览pdf实现在线预览。而项目环境为win server,于是决定使用jacob进行word转pdf。

研究再三,发现jacob从2005年开始,共有19个版本,根据现有jdk版本及服务器版本,最终选中jacob1.15进行搭配。

下载地址:http://sourceforge.net/projects/jacob-project/?source=typ_redirect

处理如下:

1.将下载的jacob.jar放入项目lib目录。

2.将dll放入jre/bin目录。

3.java代码如下(转):

  1. import java.io.File;
  2.  
  3. import com.jacob.activeX.ActiveXComponent;
  4. import com.jacob.com.ComThread;
  5. import com.jacob.com.Dispatch;
  6. import com.jacob.com.Variant;
  7.  
  8. public class Word2Pdf {
  9. static final int wdFormatPDF = 17;// PDF 格式
  10. public void wordToPDF(String docFileName,String toFileName){
  11. ComThread.InitSTA();
  12. System.out.println("启动Word...");
  13. long start = System.currentTimeMillis();
  14. ActiveXComponent app = null;
  15. Dispatch doc = null;
  16. try {
  17. app = new ActiveXComponent("Word.Application");
  18. app.setProperty("Visible", new Variant(false));
  19. Dispatch docs = app.getProperty("Documents").toDispatch();
  20. doc = Dispatch.call(docs, "Open" , docFileName).toDispatch();
  21. System.out.println("打开文档..." + docFileName);
  22. System.out.println("转换文档到PDF..." + toFileName);
  23. File tofile = new File(toFileName);
  24. if (tofile.exists()) {
  25. tofile.delete();
  26. }
  27. Dispatch.call(doc,
  28. "SaveAs",
  29. toFileName, // FileName
  30. wdFormatPDF);
  31. long end = System.currentTimeMillis();
  32. System.out.println("转换完成..用时:" + (end - start) + "ms.");
  33.  
  34. } catch (Exception e) {
  35. System.out.println("========Error:文档转换失败:" + e.getMessage());
  36. } finally {
  37. Dispatch.call(doc,"Close",false);
  38. System.out.println("关闭文档");
  39. if (app != null)
  40. app.invoke("Quit", new Variant[] {});
  41. }
  42. //如果没有这句话,winword.exe进程将不会关闭
  43. ComThread.Release();
  44.  
  45. }
  46.  
  47. public static void main(String[] args) {
  48. Word2Pdf d2p = new Word2Pdf();
  49. d2p.wordToPDF("C:/Users/SIR/Desktop/1228.doc","C:/Users/SIR/Desktop/1228.pdf");
  50. }
  51. }

4.html代码实现

  1. <html>
  2. <head>
  3. <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
  4. <script type="text/javascript" src="avascript/jquery-1.7.2.min.js"></script>
  5. <script type="text/javascript" src="jquery.media.js"></script>
  6. <style type="text/css">
  7. body{ text-align:center;padding:0px;margin:0px;}
  8. div{ margin:0 auto; width:800px; height:100%; }
  9. ul{
  10. font-size:14px;
  11. line-height:30px;
  12. text-align: left;
  13. }
  14. </style>
  15. <script type="text/javascript">
  16. $(function() {
  17. $('a.media').media({width:800, height:600});
  18. });
  19. </script>
  20. </head>
  21. <body>
  22. <div>
  23. <a class="media" href="${ctx}/upload/${fileid}.pdf"></a>
  24. </div>
  25. <div>
  26. <p>说明:如未正确显示预览文件,由以下情况导致!
  27. <ul>
  28. <li>本地未安装PDF阅读器,请下载并Adobe Reader或福昕PDF阅读器!</li>
  29. <li>如本地已安装PDF阅读器,请按如下操作步骤进行设定。<br/>
  30. 1.如本地已有Adobe Reader,请点击》编辑》首选项》英特网》在浏览器中显示PDF》勾选》保存<br/>
  31. 2.如本地已有福昕PDF阅读器,请点击》工具》偏好设置》文件关联》在浏览器内显示PDF》勾选》保存<br/></li>
  32. </ul>
  33. </div>
  34. </body>
  35. </html>

  

jacob 操作word转pdf的更多相关文章

  1. Aspose.Words操作word生成PDF文档

    Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...

  2. Java文件操作系列[3]——使用jacob操作word文档

    Java对word文档的操作需要通过第三方组件实现,例如jacob.iText.POI和java2word等.jacob组件的功能最强大,可以操作word,Excel等格式的文件.该组件调用的的是操作 ...

  3. 采用jacob实现word转pdf

    网络上已经有很多这方面的内容,在用之前也是参考了好多别人的文章,下面记录下我自己的整合过程.整个过程都比较简单: 开发环境:win8 64位系统,在2008下面部署也是一样的. 文档要求jdk的版本要 ...

  4. java 使用jacob把word转pdf

    一.使用前要下载必要包及文件 链接: https://pan.baidu.com/s/1nvutQxb 密码: qgpi 二.引包和dll文件 1.引包:eclipse引包就不用说了,idea引包步骤 ...

  5. jacob操作word

    http://wang-ping001.iteye.com/blog/1452057 ————————————————————————————————————————————————————————— ...

  6. jacob 操作word

    1. 首先下载jacob-1.18.zip,解压后有两个文件jacob.jar 和 jacob.dll.需要把jacob.jar放到你工程的classpath中并且把jacob.dll放到jdk的bi ...

  7. Java操作word转pdf

    如果转换后出现乱码,是doc格式的文档的话请转换为docx!!! 下载相关jar包和一个授权到2099年的凭证文件. 链接: https://pan.baidu.com/s/1xudkKqR1-TLL ...

  8. java word 转 pdf

    这里使用jacob将word转pdf,使用的是jacob.jar import java.io.File;import com.jacob.activeX.ActiveXComponent;impor ...

  9. Jacob工具类使用文件互转服务 word转html html转excel word转pdf excel转pdf ppt转pdf

    前提条件  必须安装MS office 1.jdk使用jdk1.8 2.jacob.dll放在..\jdk1.8\jre\bin目录下 3.eclipse的jre版本要和jdk一致,window-&g ...

随机推荐

  1. python- 如何return返回多个值

    函数的return 语句只能返回一个值,可以是任何类型. 因此,我们可以“返回一个 tuple类型,来间接达到返回多个值 ”. 例:   x 除以 y 的余数与商的函数 def    F1 ( x, ...

  2. Candy Bags

    读懂了题就会发现这是个超级大水题 Description Gerald has n younger brothers and their number happens to be even. One ...

  3. Android PorterDuff.Mode

    1.PorterDuff.Mode.CLEAR所绘制不会提交到画布上. 2.PorterDuff.Mode.SRC显示上层绘制图片 3.PorterDuff.Mode.DST显示下层绘制图片 4.Po ...

  4. c#局域网聊天软件的实现

    本软件是基于大学寝室局域网聊天的思路.c#源代码如下: using System; using System.Drawing; using System.Collections; using Syst ...

  5. 移动端-弹窗demo

    <!doctype html> <html> <head> <meta charset="UTF-8"> <meta name ...

  6. python操作redis--string

    #!/usr/bin/python #!coding:utf-8 """ 完成用redis模块操作string类型的数据 """ impor ...

  7. SQL Server 与 Windows 内存使用上的约定

    什么时候SQL Server 会释放出自己的内存!以提供给别的程序用呢? --------------------------------------------------------------- ...

  8. mysql解压版配置

    2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\Program Files\MySQL\mysql-5.6.13-win32" ...

  9. __stdcall,__cdecl,_cdecl,_stdcall,。__fastcall,_fastcall 区别简介

    1. 今天写线程函数时,发现msdn中对ThreadProc的定义有要求:DWORD WINAPI ThreadProc(LPVOID lpParameter); 不解为什么要用WINAPI宏定义,查 ...

  10. c# excel sheep 导出

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Da ...