网上有很多将Word转换成PDF的方式,这里找了两种比较简单的工具:jacob和aspose。

1.jacob
使用Jacob需要一些环境的准备,首先需要Jacob的jar包:

然后还需要将jacob版本对应的ddl文件放到jdk或jre的bin目录里:

下面只需要使用写好的工具类就可以了:

public class Word2PdfJacobUtil {/* 转PDF格式值 */private static final int wdFormatPDF = 17;/*** Word文档转换* * @param inputFile* @param pdfFile*/public static boolean word2PDF(String inputFile, String pdfFile) {ComThread.InitMTA(true);long start = System.currentTimeMillis();ActiveXComponent app = null;Dispatch doc = null;try {app = new ActiveXComponent("Word.Application");// 创建一个word对象app.setProperty("Visible", new Variant(false)); // 不可见打开wordapp.setProperty("AutomationSecurity", new Variant(3)); // 禁用宏Dispatch docs = app.getProperty("Documents").toDispatch();// 获取文挡属性System.out.println("打开文档 >>> " + inputFile);// Object[]第三个参数是表示“是否只读方式打开”// 调用Documents对象中Open方法打开文档,并返回打开的文档对象Documentdoc = Dispatch.call(docs, "Open", inputFile, false, true).toDispatch();System.out.println("转换文档 [" + inputFile + "] >>> [" + pdfFile + "]");// 调用Document对象的SaveAs方法,将文档保存为pdf格式// word保存为pdf格式宏,值为17Dispatch.call(doc, "SaveAs", pdfFile, wdFormatPDF);// word保存为pdf格式宏,值为17long end = System.currentTimeMillis();System.out.println("用时:" + (end - start) + "ms.");return true;} catch (Exception e) {e.printStackTrace();System.out.println("========Error:文档转换失败:" + e.getMessage());} finally {Dispatch.call(doc, "Close", false);System.out.println("关闭文档");if (app != null)app.invoke("Quit", new Variant[] {});// 如果没有这句话,winword.exe进程将不会关闭ComThread.Release();ComThread.quitMainSTA();}return false;}}

测试运行:

public static void main(String[] arg){String docPath = "C:\\Users\\Administrator\\Desktop\\test.docx";String pdfPath = "C:\\Users\\Administrator\\Desktop\\test.pdf";boolean res = Word2PdfJacobUtil.word2PDF(docPath, pdfPath);System.out.println(res);}

结果如下:

2.aspose

使用aspose不需要像jacob那样往jdk里加入ddl文件,但是需要在项目里加入一个license.xml,不然生成的pdf会有水印

license.xml如下:

<?xml version="1.0" encoding="UTF-8" ?>
<License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Words for Java</Product></Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>20991231</SubscriptionExpiry><LicenseExpiry>20991231</LicenseExpiry><SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber></Data><Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License>

引入jar包:


工具类:

public class Word2PdfAsposeUtil {public static boolean getLicense() {boolean result = false;  try {  InputStream is = Test.class.getClassLoader().getResourceAsStream("\\license.xml"); // license.xml应放在..\WebRoot\WEB-INF\classes路径下License aposeLic = new License();  aposeLic.setLicense(is);  result = true;  } catch (Exception e) {e.printStackTrace();  }  return result;  }  public static boolean doc2pdf(String inPath, String outPath) {if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生  return false;  }FileOutputStream os = null;try {  long old = System.currentTimeMillis();File file = new File(outPath); // 新建一个空白pdf文档os = new FileOutputStream(file);Document doc = new Document(inPath); // Address是将要被转化的word文档  doc.save(os, SaveFormat.PDF);// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,  // EPUB, XPS, SWF 相互转换  long now = System.currentTimeMillis();System.out.println("pdf转换成功,共耗时:" + ((now - old) / 1000.0) + "秒"); // 转化用时} catch (Exception e) {e.printStackTrace();return false;}finally {if (os != null) {try {os.flush();os.close();} catch (IOException e) {e.printStackTrace();}}}return true;}  }

测试运行:

 public static void main(String[] arg){String docPath = "C:\\Users\\Administrator\\Desktop\\test.docx";String pdfPath = "C:\\Users\\Administrator\\Desktop\\test.pdf";Word2PdfAsposeUtil.doc2pdf(docPath,pdfPath);}

结果:

java将Word转换成PDF两种方法相关推荐

  1. 把word转换成PDF的实用方法

    无论是哪一个版本office中的word相信大家是非常的熟悉的,几个版本的word操作方法也是差不多的,当然大家对PDF文档肯定也不会陌生.这两者之间的互相转换大部分人都会依靠第其他软件下载安装之后进 ...

  2. java项目word转换成pdf并且去除水印

    1.首先下载aspose-words-15.8.0-jdk16.jar  license.xml (我的博客可下载) package com.hymake.common.utils; import j ...

  3. Word转换成PDF免费的两种方法,让你轻松解决问题!

    在日常的办公和学习生活中,我们经常需要编辑Word文档,文档编辑成功之后,很大概率需要发送给其他的人.但是有时因为接收设备的不同,或者接收软件的差异,会发生文档格式出错的问题,这就需要将Word转换成 ...

  4. WORD转换成PDF转换器2015官方版?

    WORD转换成PDF转换器2015官方版 Word是我们工作中或多或少都要接触的文件格式,自己做一份文件的话一般都是以Word来做,因为是最常用的一种文档.可是当我们做出的文件要发给同事或者领导的话, ...

  5. C#将Word转换成PDF方法总结(基于Office和WPS两种方案)

    有时候,我们需要在线上预览word文档,当然我们可以用NPOI抽出Word中的文字和表格,然后显示到网页上面,但是这样会丢失掉Word中原有的格式和图片.一个比较好的办法就是将word转换成pdf,然 ...

  6. 手机怎么把word转换成pdf?这几种方法超简单

    手机怎么把word转换成pdf?现在很多人在手机上处理文档,但是可能会遇到将Word文档转换为PDF的需求,以便更好地分享和传输文件.在下面这篇文章中,就给大家介绍几种将Word文档转换为PDF的方法 ...

  7. 如何批量将Word转换成PDF?这几种方法都可以实现批量转换

    怎么把Word文档批量转换成PDF格式呢?我们在日常的工作学习中,经常会使用Word文档来编辑文件,把文件编辑好后在发送的时候一般都会选择PDF格式来发送,,因为这样我们编辑好的格式才不会混乱.当我们 ...

  8. 万能word转换成pdf转换器下载

    万能word转换成pdf转换器下载 Word怎么转换成PDF格式的?这两者的转换基于很多用户希望更好的保护文件或者是为了体验更好的阅读性,PDF格式的文件在安全性和阅读性方便都比较好.可是我们一般面对 ...

  9. 怎么样在线Word转换成PDF转换器

    导语:从事文字编辑行业的用户对于PDF资料文件转换成Word并不陌生,但有时候因为客观原因我们需要将编辑好的Word转换成PDF转换器在线http://app.xunjiepdf.com,方便客户浏览 ...

  10. 好用的word转换成pdf转换器!你值得拥有

    平时工作的时候,我们常常使用word文档对一些内容进行编辑和修改,但是你想将文档发给另一个人,但是又担心对方不小心修改到你的文档内容的话,就可以将word文档转换成pdf,然后再发送给对方,这样对方查 ...

最新文章

  1. 网站架构之统一数据服务平台技术
  2. 百度直播消息服务架构实践
  3. 2018.10.25-dtoj-2903-蛋糕(cake)
  4. webstorm中配置vue代码片段
  5. SPSiteManager 2.3可以下载了
  6. linux splash qt,ubuntu14.04 splash安装
  7. SpringBoot+Thymeleaf+Jquery实现模态框的显示与数据填充
  8. c语言中tgx是什么函数,《高等数学》课后练习题
  9. JAVA输出希腊union,希腊文化认为,最为抽象的艺术形式是()。
  10. 链表面试笔试题目总结
  11. Webpack 4.X 从入门到精通 - 第三方库(六)
  12. python3虚拟环境的设置
  13. 创建连接数据库(DBLink)
  14. 无土栽培中的物联网技术应用
  15. 服务器显示灰色怎么办,服务器远程桌面显示灰色
  16. CSS | 使用 PostCSS 插件让 Web 应用支持暗黑模式
  17. UG NX 12 草图
  18. java课程设计象棋_java课程设计 中国象棋
  19. 如何加入家庭组计算机打印机,解决方案:Win7系统设置家庭组计算机设置共享打印机...
  20. 用html+css做一个网页设计

热门文章

  1. Datablau产品之Kubernetes(K8S)部署
  2. Latex 中的空格汇总
  3. 诛仙2服务器不显示列表,诛仙2 服务器列表
  4. word2Vec基础背景知识
  5. NOI2015 小园丁与老司机
  6. Gartner 研讨会 “九问数字化转型” 会后感分享
  7. 《微信公众平台开发最佳实践》—— 1.2 微信公众账号的注册
  8. 软件测试-测试类型分类
  9. rs232 485 ttl区别
  10. 【摘记】彼得·林奇的成功投资