Java 使用 jacob 将 word 文档转换为 pdf 文件

使用Java代码实现Word到PDF的高效转换 在数字化转型与信息处理的浪潮中,文档格式转换是信息处理的基本需求之一。尤其是对于企业而言,将Word文档转换成PDF格式是文档处理和归档的常用操作。Java作为一种成熟的开发语言,其强大的跨平台性和丰富的库支持使其在文档处理中扮演着重要角色。利用Java实现Word到PDF的转换不仅能保持文档格式的完整性和一致性,还能提升文档的安全性和可移植性。在本章中,我们将探讨Java实现Word转PDF的基本概念、优势、应用场景以及转换流程。 阅读详情

网上查询了许许多多的博客,说利用 poi、iText、Jsoup、jdoctopdf、使用 jodconverter 来调用 openOffice 的服务来转换等等,我尝试了很多种,但要么显示不完全,要么可是可能有问题,使用这个 jacob 的方法我最开始是最不想用的,因为它要导入 dll 文件,但最后我还是选择了使用该方法,原因是感觉转换后的 pdf 文件简直就是完美。

  jacob 缺点:需要 window 环境,而且速度是最慢的需要安装 msofficeWord 以及 SaveAsPDFandXPS.exe ( word 的一个插件,用来把 word 转化为 pdf ,本次未安装测试通过)

  插入正题:

  SaveAsPDFandXPS 下载地址: http://www.microsoft.com/zh-cn/download/details.aspx?id=7

  jacob 包下载地址: http://sourceforge.net/projects/jacob-project/

  下载 jacob 解压后存放路径:

    jacob.jar 放在 E:\jdk1.8.0\jre\lib\ext 目录下
       jacob.dll 放在 E:\jdk1.8.0\jre\bin 目录下

  实现代码如下:

复制代码

 1 package com.jd.poi.test;
 2 
 3 import java.io.File;
 4 
 5 import com.jacob.activeX.ActiveXComponent;
 6 import com.jacob.com.ComThread;
 7 import com.jacob.com.Dispatch;
 8 import com.jacob.com.Variant;
 9 
10 /**
11  * 效果最好的一种方法,但是需要 window 环境,而且速度是最慢的需要安装 msofficeWord 以及 SaveAsPDFandXPS.exe (
12  * word 的一个插件,用来把 word 转化为 pdf,可以不用安装,本次未安装测试通过 )
13  * 
14  * SaveAsPDFandXPS
15  * 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=7 
16  * jacob 包下载地址:http://sourceforge.net/projects/jacob-project/
17  * 
18  * jacob.jar 放在 E:\jdk1.5.0_14\jre\lib\ext 
19  * jacob.dll 放在 E:\jdk1.5.0_14\jre\bin
20  * 
21  * @author u Y
22  *
23  */
24 public class WordToPdf {
25 
26     private static final int wdFormatPDF = 17; // PDF 格式
27 
28     public void wordToPDF(String sfileName, String toFileName) {
29 
30         System.out.println("启动 Word...");
31         long start = System.currentTimeMillis();
32         ActiveXComponent app = null;
33         Dispatch doc = null;
34         try {
35             app = new ActiveXComponent("Word.Application");
36             app.setProperty("Visible", new Variant(false));
37             Dispatch docs = app.getProperty("Documents").toDispatch();
38             doc = Dispatch.call(docs, "Open", sfileName).toDispatch();
39             System.out.println("打开文档..." + sfileName);
40             System.out.println("转换文档到 PDF..." + toFileName);
41             File tofile = new File(toFileName);
42             if (tofile.exists()) {
43                 tofile.delete();
44             }
45             Dispatch.call(doc, "SaveAs", toFileName, // FileName
46                     wdFormatPDF);
47             long end = System.currentTimeMillis();
48             System.out.println("转换完成..用时:" + (end - start) + "ms.");
49 
50         } catch (Exception e) {
51             System.out.println("========Error:文档转换失败:" + e.getMessage());
52         } finally {
53             Dispatch.call(doc, "Close", false);
54             System.out.println("关闭文档");
55             if (app != null)
56                 app.invoke("Quit", new Variant[] {});
57         }
58         // 如果没有这句话,winword.exe进程将不会关闭
59         ComThread.Release();
60     }
61 
62     public static void main(String[] args) {
63         WordToPdf d = new WordToPdf();
64         d.wordToPDF("E:\\aaa\\Spring.doc", "E:\\aaa\\Spring.pdf");
65     }
66 
67 }

复制代码

  本次博主的测试并没有安装 SaveAsPDFandXPS.exe 但最后也是完全转换成功,具体原因不明,转换后如图所示,图片和字体均为发现异常:

   如果出现如下错误,可以尝试安装 SaveAsPDFandXPS.exe 后在尝试:

 

  最后,感谢两位博主的教程分享,有了你们的铺路,我们才会更加轻易的找到资源,吃水不忘挖井人。

  博主1:http://zgzdlm.iteye.com/blog/1558877

  博主2:http://feifei.im/archives/93

poi读取doc+itext生成pdf的所有整合jar包 使用jdoctopdf来实现,这是一个封装好的包,可以把doc转换成pdf,html,xml等格式,调用很方便。需要自己导入poi包与itext包,需要注意的是itext要导入itext-2.1.5版本,新版本由于包名不同,会出错。也可以自己根据网上的其他教程根据需要自己写方法来实现。 优点:方便、不用调用其他软件的服务例如openoffice等 立即下载

相关推荐

解析word所需j

使用jdoctopdf来实现,这是一个封装好的包,可以把doc转换成pdf,html,xml等格式,调用很方便 地址:http://www.maxstocker.com/jdoctopdf/downloads.php 需要自己导入poi包与itext包,需要注意的是itext要导入itext-2.1.5版本,新版本由于包名不同,会出错 也可以自己根据网上的其他教程根据需要自己写方法来实现。

java文件转pdf文件怎么打开_java将doc文件转换为pdf文件的三种方法

http://feifei.im/archives/93——————————————————————————————————————————————项目要用到doc转pdf的功能,一番google之后总结出了三种方法(免费方案),于是一一试了一下,做个总结记录,下次要用直接查,省的忘了……方法1.poi读取doc + itext生成pdf (实现最方便,效果最差,跨平台)方法2.jodconver...

weixin_39944944的博客 595

JAVA利用poi完成word转pdf,内容包括两个现成工具类和使用到的所有jar包

JAVA利用poi完成word转pdf,内容包括两个现成工具类和使用到的所有jar包,易用简单,word转pdf在实际项目中有很多使用,工具类中已经包括了字节流,以及变参的替换

java将doc文件转换为pdf文件的三种方法

http://feifei.im/archives/93 —————————————————————————————————————————————— 项目要用到doc转pdf的功能,一番google之后总结出了三种方法(免费方案),于是一一试了一下,做个总结记录,下次要用直接查,省的忘了…… 方法1.poi读取doc + itext生成pdf (实现最方便,效果最差,跨平台)...

dianchaozong3657的博客 1223

doc文档转PDF文档所需的jar包

Java开发中,需要将Office办公文档(包括doc/docx/xls/xlsx等)转换为PDF格式文档所需的jar包。

jPDFImages.jar包—解析PDF

jPDFImages是解析PDF的类库~

java应用jcom将word转pdf_Java 使用 jacob 将 word 文档转换为 pdf 文件

网上查询了许许多多的博客,说利用 poi、iText、Jsoup、jdoctopdf、使用 jodconverter 来调用 openOffice 的服务来转换等等,我尝试了很多种,但要么显示不完全,要么可是可能有问题,使用这个 jacob 的方法我最开始是最不想用的,因为它要导入 dll 文件,但最后我还是选择了使用该方法,原因是感觉转换后的 pdf 文件简直就是完美。jacob 缺点:需要 w...

weixin_42502811的博客 326

docx、doc转pdf

docx、doc转pdf,在com.converterPdf.DocTest.java 修改下路径运行main方法就可以了。里面jar包什么都有了,亲测可以,是ok的。

java word转pdf jacob_Java 使用 jacob 将 word 文档转换为 pdf 文件

网上查询了许许多多的博客,说利用 poi、iText、Jsoup、jdoctopdf、使用 jodconverter 来调用 openOffice 的服务来转换等等,我尝试了很多种,但要么显示不完全,要么可是可能有问题,使用这个 jacob 的方法我最开始是最不想用的,因为它要导入 dll 文件,但最后我还是选择了使用该方法,原因是感觉转换后的 pdf 文件简直就是完美。jacob 缺点:需要 w...

weixin_31482671的博客 277

Matlab系列之GUI设计基础

Matlab系列之GUI设计基础简介编辑界面菜单设计控件设计控件描述个人理解Matlab转译控件属性【1】外观与行为【2】控件对象的信息【3】回调函数【4】状态信息结束结束更多精彩,等你发现~ 简介 GUI即图形用户界面(Graphical User Interface),人机交互的一种方式,可以简化用户的操作,比如只需要点点窗口上的按键或者菜单选择等等,就可以实现一个复杂的功能,有点类似黑盒的操作吧。 本篇将主要介绍GUI的使用,以及一些功能,后续的篇章再使用GUI来设计实例。 打开GUI可以在Matla

Smart_Devil的博客 5万+

PADS VX2.7学习记录05-PADS Layout设计文件Gerber等输出整理

在“PDF Document”栏中,依次选中除REF-TOP和REF-BOT之外的文件,单击图标,将其余PDF Document文件进行删除,如图所示。然后单击【生成PDF】按钮,即可创建一份PDF格式的位号图。

tianpu2320959696的博客 1023

java将PDF转为tif文件_Java 使用Jacob.jar 将Word类型文档转换成PDF,将PDF转换成TIFF

packagecom.microsys.fax.agent.utils;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io...

weixin_42526166的博客 404

避坑指南:时间序列互相关分析(CCF)常见的5个误用场景

本文详细解析了时间序列互相关分析(CCF)中常见的5个误用场景,包括忽视平稳性检验、混淆同期相关与因果关联、误读滞后阶数、忽略自相关干扰以及样本量不足等问题。通过实际案例和技术建议,帮助数据分析师避免这些陷阱,确保CCF分析的准确性和可靠性。

weixin_29064009的博客 428

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

本文实例为大家分享了java利用jacob.jar将word转pdf的具体代码,供大家参考,具体内容如下1.jacob.jar配置说明JACOB 就是 JAVA-COM Bridge的缩写,提供自动化的访问com的功能,使用jacob.jar首先电脑要安装了office。将jacob.jar jacob.jar导入到项目lib目录使用前,还要然后把jacob.bll放入C:\Windows\Sys...

weixin_29523709的博客 2545

基于Apache MINA SSHD配置及应用

Apache MINA SSHD是一个基于Java的开源SSH服务器/客户端实现,支持SSH2协议,提供文件传输、shell访问等功能。该代码实现了一个SftpClientService服务类,封装了SFTP文件操作,包括读取文件(readOnce/readLines)和写入文件(writeOnce)等核心功能。通过SftpProperties配置类管理连接参数,并采用Builder模式创建SSH会话。主要特点包括:支持大文件分块传输、自动创建目录、严格的异常处理和...

流沙QuickSand 945

腾讯游戏安全组件运行异常的全面解决方案

在使用腾讯游戏时,玩家可能会遭遇游戏安全组件运行异常的问题,这不仅影响游戏的正常启动,还可能在游戏过程中引发一系列问题。本文将详细介绍解决腾讯游戏安全组件运行异常的几种方法,帮助玩家重拾游戏乐趣。腾讯游戏安全组件运行异常是一个复杂的问题,可能涉及服务设置、游戏更新、系统环境优化以及硬件与驱动检查等多个方面。最后,希望本文能帮助玩家顺利解决腾讯游戏安全组件运行异常的问题,让玩家能够无忧无虑地享受游戏带来的乐趣。首先,我们需要从系统的服务管理入手,检查与游戏安全组件相关的服务是否正常运行。

nntxthml的博客 5807

如何使用jacob将word转换为PDF

一、代码实现功能介绍:word文档转换为PDF文件的功能。二、使用的环境条件:正是由于jacob的jni这种特性,所以运行jacob的机器上必须要有jacob.dll在系统的path中,而且还要有相应的被调用的com组件存在。下面列表说明了本项目使用的软件环境和一些注意事项:  1.Word2003、Adobe Acrobat 8.0 Professional(注:也可以使用7.5

java_user的专栏 4094

GNSS/RTK定位失效时的替代方案:视觉惯性里程计(VIO)

GNSS/RTK定位失效时的替代方案:视觉惯性里程计(VIO)​ ,人工智能,计算机视觉,大模型,AI,本文详细介绍了视觉惯性里程计(VIO)作为GNSS/RTK定位失效时的替代方案。阐述了VIO的定义、优势及与其他定位技术的区别,讲解了视觉传感器和IMU的工作原理及数据融合原理,分析了时间同步、标定等关键技术,介绍了VINS-Mono等常用框架、简单代码示例、应用场景,还探讨了VIO面临的挑战与未来发展趋势,展现了其在多个领域的重要性与应用潜力。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 16万+

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

这篇文章主要为大家详细介绍了java利用jacob.jar将word转pdf,具有一定的参考价值,感兴趣的小伙伴们可以参考一下本文实例为大家分享了java利用jacob.jar将word转pdf的具体代码,供大家参考,具体内容如下1.jacob.jar配置说明JACOB 就是 JAVA-COM Bridge的缩写,提供自动化的访问com的功能,使用jacob.jar首先电脑要安装了office。将...

weixin_31659795的博客 165

【SMPL简介】SMPL: A Skinned Multi-Person Linear Model【源码复现】

SMPL是一种3D人体建模方法.在数字人或者人物角色三维重建领域有着广泛应用支持人体的各种形状及动作可以简单理解为通过训练获取的人物模型SMPL 输入是:姿态shape vectorβ\betaβ+ 影响动作Pose的参数θ\thetaθ输出是: 各种变化后vertex顶点的数据作者:Loper, Matthew and Mahmood, Naureen and Romero, Javier and Pons-Moll, Gerard and Black, Michael J.

zik的博客 3369

2025年抖音面试:商业生态与安全质量运营技能要求及面试

在商业生态与安全岗的质量运营工作中,规则运营职责占据着极为重要的地位,它是保障内容风控质量的关键环节。

王国平的博客 608

java jacob docx转pdf_java使用jacob word 转pdf

首先我自己的环境是windows xp ,office2007 ,jdk1.5;1.先下载office2007 能另存为pdf的插件 SaveAsPDFandXPS.exe 安装。(纠结了好久才知道要安装这个插件,否则无法调用SaveAs方法)2.下载jacob,位置如下:jacob.jar 放在 E:\jdk1.5.0_14\libjacob.dll 放在 E:\jdk1.5.0_14\bin源...

weixin_28792813的博客 267

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java jacob docx转pdf_jacob将word、excel转换为pdf文件

Excel转pdf:package jacob;import java.io.*;import java.util.Calendar;import java.util.Date;import com.jacob.activeX.ActiveXComponent;import com.jacob.com.ComThread;import com.jacob.com.Dispatch;import c...

weixin_39525300的博客 156

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

记录一下Jacob转换PDF遇到的坑

首先 1、把下载的JAR里面的jacob.dll拷贝至%JAVA_HOME%\jre\bin目录所致。 2、C:\Windows\System32目录页要拷贝一份jacob.dll 3、在"C:\Windows\SysWOW64\config\systemprofile" "C:\Windows\System32\config\systemprofile"这来两个路径上创建De...

weixin_42571004的博客 3471

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: CentOS 6.5 Linux 安装 openoffice
下一篇: /usr/bin/expect^M: bad interpreter: No such file or directory
等待逆袭
博客等级 码龄17年 9粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值