实现文档格式之间的转换,我使用的是jacob-1.7版本,需要jacob.jar来调用activex控件,本机需安装WPS/office,还需要jacob.jar以及jacob.dll

其中:
    jacob.dll 需要放置在系统system32下,如果系统是c盘:C://windows/system32/下面

jacob.dll放在类似这样的目录下,D:\Java\jre1.8.0_31\bin

[java] view plaincopy
  1. public class PDFUtil {
  2. private static final int wdFormatPDF = 17;
  3. private static final int xlTypePDF = 0;
  4. private static final int ppSaveAsPDF = 32;
  5. public static void main(String[] args) {
  6. PDFUtil.word2PDF("D:/20161202184309.doc", "D:/20161202184309.pdf");
  7. System.out.println("转换完成!");
  8. }
  9. public boolean convert2PDF(String inputFile, String pdfFile) {
  10. String suffix = getFileSufix(inputFile);
  11. File file = new File(inputFile);
  12. if (!file.exists()) {
  13. return false;
  14. }
  15. if (suffix.equals("pdf")) {
  16. return false;
  17. }
  18. if (suffix.equals("doc") || suffix.equals("docx")
  19. || suffix.equals("txt")) {
  20. return word2PDF(inputFile, pdfFile);
  21. } else if (suffix.equals("ppt") || suffix.equals("pptx")) {
  22. return ppt2PDF(inputFile, pdfFile);
  23. } else if (suffix.equals("xls") || suffix.equals("xlsx")) {
  24. return excel2PDF(inputFile, pdfFile);
  25. } else {
  26. return false;
  27. }
  28. }
  29. public static String getFileSufix(String fileName) {
  30. int splitIndex = fileName.lastIndexOf(".");
  31. return fileName.substring(splitIndex + 1);
  32. }
  33. // word转换为pdf
  34. public static boolean word2PDF(String inputFile, String pdfFile) {
  35. try {
  36. // 打开word应用程序
  37. ActiveXComponent app = new ActiveXComponent("Word.Application");
  38. // 设置word不可见
  39. app.setProperty("Visible", false);
  40. // 获得word中所有打开的文档,返回Documents对象
  41. Dispatch docs = app.getProperty("Documents").toDispatch();
  42. // 调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
  43. Dispatch doc = Dispatch.call(docs, "Open", inputFile, false, true)
  44. .toDispatch();
  45. // 调用Document对象的SaveAs方法,将文档保存为pdf格式
  46. /*
  47. * Dispatch.call(doc, "SaveAs", pdfFile, wdFormatPDF
  48. * //word保存为pdf格式宏,值为17 );
  49. */
  50. Dispatch.call(doc, "ExportAsFixedFormat", pdfFile, wdFormatPDF);// word保存为pdf格式宏,值为17
  51. // 关闭文档
  52. Dispatch.call(doc, "Close", false);
  53. // 关闭word应用程序
  54. app.invoke("Quit", 0);
  55. return true;
  56. } catch (Exception e) {
  57. return false;
  58. }
  59. }
  60. // excel转换为pdf
  61. public static boolean excel2PDF(String inputFile, String pdfFile) {
  62. try {
  63. ActiveXComponent app = new ActiveXComponent("Excel.Application");
  64. app.setProperty("Visible", false);
  65. Dispatch excels = app.getProperty("Workbooks").toDispatch();
  66. Dispatch excel = Dispatch.call(excels, "Open", inputFile, false,
  67. true).toDispatch();
  68. Dispatch.call(excel, "ExportAsFixedFormat", xlTypePDF, pdfFile);
  69. Dispatch.call(excel, "Close", false);
  70. app.invoke("Quit");
  71. return true;
  72. } catch (Exception e) {
  73. return false;
  74. }
  75. }
  76. // ppt转换为pdf
  77. public static boolean ppt2PDF(String inputFile, String pdfFile) {
  78. try {
  79. ActiveXComponent app = new ActiveXComponent(
  80. "PowerPoint.Application");
  81. // app.setProperty("Visible", msofalse);
  82. Dispatch ppts = app.getProperty("Presentations").toDispatch();
  83. Dispatch ppt = Dispatch.call(ppts, "Open", inputFile, true,// ReadOnly
  84. true,// Untitled指定文件是否有标题
  85. false// WithWindow指定文件是否可见
  86. ).toDispatch();
  87. Dispatch.call(ppt, "SaveAs", pdfFile, ppSaveAsPDF);
  88. Dispatch.call(ppt, "Close");
  89. app.invoke("Quit");
  90. return true;
  91. } catch (Exception e) {
  92. return false;
  93. }
  94. }
  95. }

按照上述操作即可完成文档之间格式的转换,但在我实际操作的时候真是各种bug各种奇葩啊!其中有一件事着实让人无语,在进行word转换为pdf的时候,提示转换失败,当时我一直认为是自己程序的问题,但是在认真地检查之后并没有发现有任何错误,最后还是在大神的提点下才恍然大悟,原来自己在发布到服务器的时候,由于服务器并没有安装office,所以才一直提示转化失败!哎~万万没想到竟然是这个问题......

Java利用jacob实现wps转换pdf相关推荐

  1. java 使用jacob实现word转pdf

    java 使用jacob实现word转pdf(IDEA Maven项目) 步骤: 一. 插件与jar包下载 SaveAsPDFandXPS 下载地址: http://www.microsoft.com ...

  2. Java使用aopse实现word转换pdf

    Java使用aopse实现word转换pdf 需要引用aspose包,引入操作我写了一个博客,地址如下 https://blog.csdn.net/weixin_46713508/article/de ...

  3. java利用apache pdfbox工具裁剪PDF文件

    java利用apache pdfbox工具裁剪PDF文件 一.导入apache pdfbox工具jar包 maven仓库导入工具包 <dependency><groupId>o ...

  4. java利用jacob实现word,ppt,excel,jpg转pdf

    项目中遇到了需要把用户上传的word,execl,ppt每页截图保存.需要先用到jacob把资源转换为pdf,在通过pdf-renderer把每页截图下来. 下载相关的jar包:http://down ...

  5. JAVA利用Jacob将EXCEL转成PDF

    网上也有很多类似的文章,不过转成PDF后图片模糊的一塌糊涂,下面的代码经过改良 1.EXCEL中转换 成PDF后,其中图片也与手工操作转换一样 2.JACOB调用EXCEL后,在系统进程中不会留下EX ...

  6. java实现word文档转换pdf文档并且添加水印功能使用插件Aspose.Words

    前段时间,项目需要自动生成word文档,用WordFreeMarker生成word文档后,又要求生成的文档能在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研究了一下. 将word文档转 ...

  7. java使用jacob实现word转pdf

    背景:日常开发ERP系统,会有一些工单或者合同之类需要填写打印.我们就会将其word模板来通过系统自动化填写并转换为PDF格式(PDF文件打印可保证文件质量,是一种通用的格式.文件不易去修改,比较稳定 ...

  8. java调用libreoffice_JAVA实现LibreOffice转换PDF文档

    首先,安装LibreOffice服务 使用.LibreOfficeAndJodconverter.java package com.jalor.LibreOffice; import java.io. ...

  9. Java实现pdf转tex_使用Free Spire.PDF在Java程序中创建和转换PDF文件

    在这篇文章中,我将举例说明如何创建一个包含标题,段落,图像,编号列表和表格的简单的PDF文件,以及如何使用Free Spire.PDF将PDF转换为其他文件格式. 概述 Free Spire.PDF ...

最新文章

  1. html+css复习之第2篇 | javascript
  2. 用户日志留存所采用的技术手段
  3. 携程编程大赛 (预赛第二场)第一题【剪刀石头布】
  4. 使用JAX-RS(Jersey)的HTTP状态错误消息响应中的自定义原因短语
  5. JavaScript 文件拖拽上传插件 dropzone.js 介绍
  6. 第八届蓝桥杯决赛题之平方十位数
  7. 二叉搜索树(二叉排序树)
  8. 分享几套古典复古式的UI设计
  9. EXCEL 基础函数大全
  10. c语言二进制强制转十六进制,C语言二进制转十六进制问题
  11. 致加西亚的信 名言佳句
  12. SAP abap采购报表开发
  13. cf1102F. Elongated Matrix(状压dp)
  14. HAU寒假训练第二周
  15. 2023上半年软考高级哪个好考?-信息系统项目管理师
  16. 快速离散fr%C3%A9chet距离
  17. LeetCode - 1002 - 查找常用字符(find-common-characters)
  18. 如何告别“人工运维”,借助算法进行告警关联挖掘分析?
  19. Android节操视频
  20. 中年大叔学雷达-TR组件

热门文章

  1. 查找和替换文本和其他 Word 文档中的数据(转)
  2. 尝试cartographer中使用scan和odom来建图,失败(可能实验室的中继机器人odom有问题)总结
  3. 深度学习经典论文(十一)YOLOv5
  4. python计算机水平考试,全国高等学校计算机水平考试Ⅱ级---《Python程序设计》考试(7页)-原创力文档...
  5. 【bzoj3685】普通van Emde Boas树 线段树
  6. (B1)CenterNet复现(成功!!!)环境配置2080-pytorch0.4.1-cuda9.2(xingyizhou)
  7. 各种波前分析仪(波前传感器)的优缺点比较
  8. appweb PHP测试,知到APPWEB程序设计PHP第六单元章节测试答案
  9. Genymotion模拟器下载及安装
  10. W3schools——一个学习 HTML,CSS 和 Javascript 的好网站