简介

SaveAsPDFandXPS,微软官方提供的插件。必须是windows系统并且安装了office。

下载和配置

SaveAsPDFandXPS 下载地址 : http://www.microsoft.com/zh-cn/download/details.aspx?id=7
Jacob 的jar包 下载地址 :https://sourceforge.net/projects/jacob-project/
先安装SaveAsPDFandXPS ,安装成功后 , 打开jacob的jar包 ,里面的结构应该是这样的

把jacob.jar 放到项目下 , 然后 这里注意 把 两个后缀为dll的文件 放到 jre目录bin的里面 必须放进去 不然会报错(java.lang.NoClassDefFoundError)

开发路径


或者

Word转PDF代码

package office;import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;import java.io.File;/*** @author liuzonghua* @Package office* @Description:* @date 2019/1/31 10:09*/
public class WordToPDF {private static final int wdFormatPDF = 17;// 指定17为转成pdf格式public static void main(String[] args) {wordToPDF("C:\\Users\\Admin\\Desktop\\2" + ".doc","C:\\Users\\Admin\\Desktop\\2"  + ".pdf");}public static void wordToPDF(String inFilePath, String outFilePath){ActiveXComponent app = null;Dispatch doc = null;try {app = new ActiveXComponent("Word.Application");app.setProperty("Visible", new Variant(false));Dispatch docs = app.getProperty("Documents").toDispatch();doc = Dispatch.call(docs,  "Open" , inFilePath).toDispatch();File tofile = new File(outFilePath);if (tofile.exists()) {tofile.delete();}Dispatch.call(doc,"SaveAs", outFilePath, wdFormatPDF);} catch (Exception e) {System.out.println(e.getMessage());} finally {Dispatch.call(doc,"Close",false);if (app != null)app.invoke("Quit", new Variant[] {});}//结束后关闭进程ComThread.Release();}
}

Excel转PDF代码

package office;import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;/*** @author liuzonghua* @Package office* @Description:* @date 2019/1/31 14:18*/
public class ExcelToPDF {public static void main(String[] args) {xlsToPdf("C:\\Users\\Admin\\Desktop\\2017年学生体质健康测试成绩.xls","C:\\Users\\Admin\\Desktop\\3.pdf");}public static boolean xlsToPdf(String inFilePath, String outFilePath) {ComThread.InitSTA(true);ActiveXComponent ax = new ActiveXComponent("Excel.Application");try {ax.setProperty("Visible", new Variant(false));ax.setProperty("AutomationSecurity", new Variant(3)); // 禁用宏Dispatch excels = ax.getProperty("Workbooks").toDispatch();Dispatch excel = Dispatch.invoke(excels,"Open",Dispatch.Method,new Object[] { inFilePath, new Variant(false),new Variant(false) }, new int[9]).toDispatch();// 转换格式Dispatch.invoke(excel, "ExportAsFixedFormat", Dispatch.Method,new Object[] { new Variant(0), // PDF格式=0outFilePath, new Variant(0) // 0=标准 (生成的PDF图片不会变模糊)// 1=最小文件// (生成的PDF图片糊的一塌糊涂)}, new int[1]);Dispatch.call(excel, "Close", new Variant(false));if (ax != null) {ax.invoke("Quit", new Variant[] {});ax = null;}ComThread.Release();return true;} catch (Exception es) {return false;}}
}

注意

如果出现类似:com.jacob.com.ComFailException: Can’t map name to dispid: Close错误
一般情况下是本机设置问题,doc被admin锁定
解决doc被admin锁定方法有多种,可以使用文件另存为解除锁定。

使用SaveAsPDFandXPS + jacob实现Java word转pdf相关推荐

  1. java word转pdf jacob_java使用jacob.jar将word转pdf

    这篇文章主要为大家详细介绍了java利用jacob.jar将word转pdf,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了java利用jacob.jar将word转pdf的具 ...

  2. java使用jacob.jar_java使用jacob.jar将word转pdf

    本文实例为大家分享了java利用jacob.jar将word转pdf的具体代码,供大家参考,具体内容如下 1.jacob.jar配置说明 JACOB 就是 JAVA-COM Bridge的缩写,提供自 ...

  3. java word转pdf 后通过 PdfReader 和 PdfStamper对pdf添加水印 通过poi等组件实现

    所需jar包地址 <!-- java 读取word文件里面的加颜色的字体 转pdf 使用 --><dependency><groupId> e-iceblue &l ...

  4. Java WORD转换PDF 并添加水印 (附赠jar提取链接)

    Java WORD转换PDF 并添加水印 直接上代码 实现功能 docx文档转换为PDF 转换之后排版不混乱 使用工具(Jar包) aspose-words-15.8.0-jdk16.jar(用于PD ...

  5. Java word转pdf(替换变量,转图片)

    菜鸟一个,不算原创,学习后的小结.有不足之处,请大家多多指教 Java word转pdf中遇到的问题: 1.在网上找到了一种方法,利用aspose-words,转换效果好但是有两个问题:一.转换时间长 ...

  6. aspose-word for java word转pdf 解决遇到的问题

    aspose-word for java word转pdf 解决遇到的问题 具体问题 在项目中使用aspose-word 把word转换为pdf 有次一份63页的文档转换出来的pdf为72页,正常情况 ...

  7. java word 转 PDF|HTML|PNG

    @[toc] java word 转 PDF|HTML|PNG word文档转换图片或pdf格式,需要使用(aspose-words-15.8.0-jdk16.jar) 链接:https://pan. ...

  8. Java word转pdf 精确获取文件页数(jacob)

    注意: 该项目需在windows下进行, 如果需要商用需准备Windows服务器 这里我们用到的工具是jacob 需要创建一个maven项目添加以下依赖 <dependency><g ...

  9. java word转pdf三种方法(附有需要的jar)

    一.jacob 1.jar下载 jacob.jar和jacob-1.17-x64.dll下载 提取码:0121 2.在jdk/bin目录下引入.dll文件(64位:jacob-1.17-x64.dll ...

  10. java word转pdf,可以解决转pdf后word横版变窄问题(pdf显示不全)

    友情提醒,这个是目前不支持Linux,只支持wind. 最近公司业务需要在pdf中显示表格,但是表格内容列数有点长,导致 word 转pdf的时候 显示不全: 如上图这种显示不全的情况(截图中没有放表 ...

最新文章

  1. 阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器
  2. Struts2中的拦截器与过滤器学习
  3. 经典面试|为何Kafka这么快?
  4. 各种数的由来 真是神奇又有趣
  5. 微信公众号怎么快速导出一个月的文章数据
  6. 获取输出最大角标 php,html实现消息按钮上的数量角标的实例详解
  7. toast弹窗_弹窗实用素材模板|UI设计中的弹窗设计技巧,快get
  8. 未来已来!分布式数据库的“星辰大海”绝不仅限于替换!
  9. hadoop和spark相关参数的配置
  10. Java-Android 之出滚动条和卷轴页面
  11. 多测师肖sir_高级金牌讲师_简历制作
  12. VS2008 SP1开发环境补丁列表
  13. 测试面试题 用例设计题目回答思路
  14. C语言自学笔记(10)
  15. uni-app 微信公众号支付
  16. 致远互联发布的智慧协同新一代企业管理平台,新在哪里?
  17. 如何以CMMI或ISO为指导实施过程改进(黑纸系列一)
  18. 精密划片机在钽酸锂晶圆切割案例
  19. 数据库缓存服务—Redis配置与优化
  20. 解决Linux vim 打开文件乱码问题

热门文章

  1. CFree注册码及破解过程【转】
  2. 大学本科 java教材_Java程序设计(21世纪大学本科计算机专业系列教材普通高等
  3. MNIST 数据集下载及图片可视化
  4. 计算机组成原理第一章练习题(答案详解)
  5. Fiddler V5中文版
  6. 《推荐系统实践》(一)好的推荐系统
  7. 6种最好的图片无损压缩工具
  8. 用友U8.72总账报表速学手册
  9. matlab中的ftell函数,Matlab之文件操作函数fclose | ferror | fopen | frewind | fseek | ftell函数...
  10. 高等数学(第七版)同济大学 习题2-1 个人解答