Java利用jacob实现wps转换pdf
实现文档格式之间的转换,我使用的是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
![](https://code.csdn.net/assets/CODE_ico.png)
- public class PDFUtil {
- private static final int wdFormatPDF = 17;
- private static final int xlTypePDF = 0;
- private static final int ppSaveAsPDF = 32;
- public static void main(String[] args) {
- PDFUtil.word2PDF("D:/20161202184309.doc", "D:/20161202184309.pdf");
- System.out.println("转换完成!");
- }
- public boolean convert2PDF(String inputFile, String pdfFile) {
- String suffix = getFileSufix(inputFile);
- File file = new File(inputFile);
- if (!file.exists()) {
- return false;
- }
- if (suffix.equals("pdf")) {
- return false;
- }
- if (suffix.equals("doc") || suffix.equals("docx")
- || suffix.equals("txt")) {
- return word2PDF(inputFile, pdfFile);
- } else if (suffix.equals("ppt") || suffix.equals("pptx")) {
- return ppt2PDF(inputFile, pdfFile);
- } else if (suffix.equals("xls") || suffix.equals("xlsx")) {
- return excel2PDF(inputFile, pdfFile);
- } else {
- return false;
- }
- }
- public static String getFileSufix(String fileName) {
- int splitIndex = fileName.lastIndexOf(".");
- return fileName.substring(splitIndex + 1);
- }
- // word转换为pdf
- public static boolean word2PDF(String inputFile, String pdfFile) {
- try {
- // 打开word应用程序
- ActiveXComponent app = new ActiveXComponent("Word.Application");
- // 设置word不可见
- app.setProperty("Visible", false);
- // 获得word中所有打开的文档,返回Documents对象
- Dispatch docs = app.getProperty("Documents").toDispatch();
- // 调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
- Dispatch doc = Dispatch.call(docs, "Open", inputFile, false, true)
- .toDispatch();
- // 调用Document对象的SaveAs方法,将文档保存为pdf格式
- /*
- * Dispatch.call(doc, "SaveAs", pdfFile, wdFormatPDF
- * //word保存为pdf格式宏,值为17 );
- */
- Dispatch.call(doc, "ExportAsFixedFormat", pdfFile, wdFormatPDF);// word保存为pdf格式宏,值为17
- // 关闭文档
- Dispatch.call(doc, "Close", false);
- // 关闭word应用程序
- app.invoke("Quit", 0);
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- // excel转换为pdf
- public static boolean excel2PDF(String inputFile, String pdfFile) {
- try {
- ActiveXComponent app = new ActiveXComponent("Excel.Application");
- app.setProperty("Visible", false);
- Dispatch excels = app.getProperty("Workbooks").toDispatch();
- Dispatch excel = Dispatch.call(excels, "Open", inputFile, false,
- true).toDispatch();
- Dispatch.call(excel, "ExportAsFixedFormat", xlTypePDF, pdfFile);
- Dispatch.call(excel, "Close", false);
- app.invoke("Quit");
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- // ppt转换为pdf
- public static boolean ppt2PDF(String inputFile, String pdfFile) {
- try {
- ActiveXComponent app = new ActiveXComponent(
- "PowerPoint.Application");
- // app.setProperty("Visible", msofalse);
- Dispatch ppts = app.getProperty("Presentations").toDispatch();
- Dispatch ppt = Dispatch.call(ppts, "Open", inputFile, true,// ReadOnly
- true,// Untitled指定文件是否有标题
- false// WithWindow指定文件是否可见
- ).toDispatch();
- Dispatch.call(ppt, "SaveAs", pdfFile, ppSaveAsPDF);
- Dispatch.call(ppt, "Close");
- app.invoke("Quit");
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- }
按照上述操作即可完成文档之间格式的转换,但在我实际操作的时候真是各种bug各种奇葩啊!其中有一件事着实让人无语,在进行word转换为pdf的时候,提示转换失败,当时我一直认为是自己程序的问题,但是在认真地检查之后并没有发现有任何错误,最后还是在大神的提点下才恍然大悟,原来自己在发布到服务器的时候,由于服务器并没有安装office,所以才一直提示转化失败!哎~万万没想到竟然是这个问题......
Java利用jacob实现wps转换pdf相关推荐
- java 使用jacob实现word转pdf
java 使用jacob实现word转pdf(IDEA Maven项目) 步骤: 一. 插件与jar包下载 SaveAsPDFandXPS 下载地址: http://www.microsoft.com ...
- Java使用aopse实现word转换pdf
Java使用aopse实现word转换pdf 需要引用aspose包,引入操作我写了一个博客,地址如下 https://blog.csdn.net/weixin_46713508/article/de ...
- java利用apache pdfbox工具裁剪PDF文件
java利用apache pdfbox工具裁剪PDF文件 一.导入apache pdfbox工具jar包 maven仓库导入工具包 <dependency><groupId>o ...
- java利用jacob实现word,ppt,excel,jpg转pdf
项目中遇到了需要把用户上传的word,execl,ppt每页截图保存.需要先用到jacob把资源转换为pdf,在通过pdf-renderer把每页截图下来. 下载相关的jar包:http://down ...
- JAVA利用Jacob将EXCEL转成PDF
网上也有很多类似的文章,不过转成PDF后图片模糊的一塌糊涂,下面的代码经过改良 1.EXCEL中转换 成PDF后,其中图片也与手工操作转换一样 2.JACOB调用EXCEL后,在系统进程中不会留下EX ...
- java实现word文档转换pdf文档并且添加水印功能使用插件Aspose.Words
前段时间,项目需要自动生成word文档,用WordFreeMarker生成word文档后,又要求生成的文档能在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研究了一下. 将word文档转 ...
- java使用jacob实现word转pdf
背景:日常开发ERP系统,会有一些工单或者合同之类需要填写打印.我们就会将其word模板来通过系统自动化填写并转换为PDF格式(PDF文件打印可保证文件质量,是一种通用的格式.文件不易去修改,比较稳定 ...
- java调用libreoffice_JAVA实现LibreOffice转换PDF文档
首先,安装LibreOffice服务 使用.LibreOfficeAndJodconverter.java package com.jalor.LibreOffice; import java.io. ...
- Java实现pdf转tex_使用Free Spire.PDF在Java程序中创建和转换PDF文件
在这篇文章中,我将举例说明如何创建一个包含标题,段落,图像,编号列表和表格的简单的PDF文件,以及如何使用Free Spire.PDF将PDF转换为其他文件格式. 概述 Free Spire.PDF ...
最新文章
- html+css复习之第2篇 | javascript
- 用户日志留存所采用的技术手段
- 携程编程大赛 (预赛第二场)第一题【剪刀石头布】
- 使用JAX-RS(Jersey)的HTTP状态错误消息响应中的自定义原因短语
- JavaScript 文件拖拽上传插件 dropzone.js 介绍
- 第八届蓝桥杯决赛题之平方十位数
- 二叉搜索树(二叉排序树)
- 分享几套古典复古式的UI设计
- EXCEL 基础函数大全
- c语言二进制强制转十六进制,C语言二进制转十六进制问题
- 致加西亚的信 名言佳句
- SAP abap采购报表开发
- cf1102F. Elongated Matrix(状压dp)
- HAU寒假训练第二周
- 2023上半年软考高级哪个好考?-信息系统项目管理师
- 快速离散fr%C3%A9chet距离
- LeetCode - 1002 - 查找常用字符(find-common-characters)
- 如何告别“人工运维”,借助算法进行告警关联挖掘分析?
- Android节操视频
- 中年大叔学雷达-TR组件
热门文章
- 查找和替换文本和其他 Word 文档中的数据(转)
- 尝试cartographer中使用scan和odom来建图,失败(可能实验室的中继机器人odom有问题)总结
- 深度学习经典论文(十一)YOLOv5
- python计算机水平考试,全国高等学校计算机水平考试Ⅱ级---《Python程序设计》考试(7页)-原创力文档...
- 【bzoj3685】普通van Emde Boas树 线段树
- (B1)CenterNet复现(成功!!!)环境配置2080-pytorch0.4.1-cuda9.2(xingyizhou)
- 各种波前分析仪(波前传感器)的优缺点比较
- appweb PHP测试,知到APPWEB程序设计PHP第六单元章节测试答案
- Genymotion模拟器下载及安装
- W3schools——一个学习 HTML,CSS 和 Javascript 的好网站