在windows系统上word转pdf
一、前言:我在做文件转换过程中遇到的一些坑,在这里记录下,因为项目需求,需要使用html转pdf,由于itext转换质量问题(一些Css属性不起作用),导致只能通过word文件作为跳板来转换到pdf文件,word转pdf使用的是apache的poi包,在这里不详细赘述该转换过程,有需要的朋友可以去网络搜索,有很多文章做讲解,下面进入正题。。。。
二、版本说明:首先word转pdf是在window机器上进行的,转换之前的环境需要安装 windows office ,版本就不限制了,我用的office 2007,另一台电脑上用的是office 2010,都可以,在word转换pdf前需要装一个插件,如果没有的请戳链接:
http://r.office.microsoft.com/r/rlidMSAddinPDFXPS
三、查看是否安装插件:
1、新建一个word文件,点击另存为,如下图显示:“查找其他文件格式的加载项” 表示没有安装好插件

2、点击 “查找其他文件格式的加载项”,进入到下面的页面,点击 “安装Publish并将其作用Microsoft的 PDF或 XPS加载项” 进入到下载页面

3、点击 第一个选项会跳转到网页地址,直接提供该链接:http://r.office.microsoft.com/r/rlidMSAddinPDFXPS

4、下载第一个就是我们需要的插件了,下载好后直接安装,为了不产生不必要的问题,请使用默认安装路径

5、安装好以后再次转换PDF操作就是下面的样子,就代表插件安装成功了

四、环境设置好了,我们需要 程序执行用到的资源(提示:把下面的资源文件放到工程库中,和jar包在一起就OK)
1、用到的jar包:jacob-1.18.jar
2、通过java程序调用windows应用的库文件
jacob.dll
3、把下面的文件放到 C:\Windows\System32 文件中,根据电脑的架构放一个文件就OK,为了保险我把两个都放进去了,哈哈
jacob-1.18-M2-x64.dll
jacob-1.18-M2-x86.dll
五、文件处理好了,可以执行自己的转换程序了,但是在执行过程中又遇到问题:com.jacob.com.ComFailException: VariantChangeType failed
六、下面说一下这个问题的解决办法:(来源:http://blog.csdn.net/toubennuhai/article/details/53055431)
第一步:
Windows Vista/2008改变了COM对象默认的交互方式为“非交互”型的。Console启动本身支持应用交互,但service模式下就不行了。所以需要修改word DCOM默认的标识,改为“交互式用户”模式,即可正常调用了。
按照以下步骤修改后再测service模式下试转Word即可成功:
1) 运行命令: mmc comexp.msc -32
2) 找到:组件服务>计算机>我的电脑>DCOM组件>Microsoft Word 97-2003 文档;
3) 右键点击,选择属性,修改标识为“交互式用户”,点击“确定”;
第二步:
创建一个 Desktop 文件夹,创建好之后的路径如下(我一直在疑惑为什么要创建这样一个文件夹,没搞明白,如果有清楚的伙伴欢迎留言,大家共同探讨)
C:\Windows\System32\config\systemprofile\Desktop
至此所有的问题解决完了
在windows系统上word转pdf的更多相关文章
- windows系统上安装与使用Android NDK r5 (转)
windows系统上安装与使用Android NDK r5 很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单 ...
- spm完成dmp在windows系统上导入详细过程
--查询dmp字符集 cat spmprd_20151030.dmp ','xxxx')) from dual; spm完成dmp在windows系统上导入详细过程 create tablespace ...
- 快速获取Windows系统上的国家和地区信息
Windows系统上包含了200多个国家和地区的数据,有时候编程需要这些资料.以下代码可以帮助你快速获取这些信息.将Console语句注释掉,可以更快的完成分析. static void Main(s ...
- Windows系统上如何使用SSH
Windows系统上如何使用SSH 传统的网络服务程序如FTP.Telnet等,在网络上一般使用明文传送数据.用户账号和口令信息,容易受到中间人的攻击.用户利用SSH协议后能有效防止DNS及IP欺骗, ...
- 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据
http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...
- Redis进阶实践之三如何在Windows系统上安装安装Redis
一.Redis的简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合 ...
- 非Unicode编码的软件如何在Windows系统上运行
我们常常会遇到这样一种情况:点开某些日文软件(我不会说就是galgame( ╯□╰ ))会出现乱码或者直接无法运行. 出现乱码的原因很简单:编码与译码的方式不一致!!!!!!!!!!! 首先大家需要知 ...
- 在windows系统上使用pip命令安装python的第三方库
在windows系统上使用pip命令安装python的第三方库 通过cmd启动命令行后,直接输入pip命令,有时候命令行会提示我们pip不是一个指令,这个时候我们可以通过python的集成开发环境里面 ...
- 在Windows系统上一批可以下载但是需要经过编译再安装的第三方的直接编译后的版本(UCI页面)
在Windows系统上一批可以下载但是需要经过编译再安装的第三方的直接编译后的版本(UCI页面) (https://www.lfd.uci.edu/~gohlke/pythonlibs/) win10 ...
随机推荐
- iOS Crash 分析 符号化崩溃日志
参考: http://blog.csdn.net/diyagoanyhacker/article/details/41247367 http://blog.csdn.net/diyagoanyhack ...
- Server Message Block
Question: Server Message Block文件共享存储虚拟机的优势是什么? Answer:微软在Windows Server 2012和Hyper-V 3.0中引进了SMB文件共享存 ...
- pin
sjhh@123456 Michael zhang zhangxiaocong_2011@yeah.net
- 以太访solidity常用的函数有哪些
以太坊:什么是ERC20标准? 不以规矩,不能成方圆 许多人应该都听过 代码即法律(Code Is Law),因为程序写完了,无论执行多少次都会得到同样的结果,除非有外界因素的干扰.在多人协作的过程中 ...
- vim使用的一些积累
vi visual interfacevim vi improved vim模式:编辑模式(命令模式)输入模式末行模式 编辑模式下,zz保存并退出移动光标:(编辑模式)1.逐字符移动 h 左 l 右 ...
- 深入理解CSS中的margin
1.css margin可以改变容器的尺寸 元素尺寸 可视尺寸--标准盒子模型中盒子的宽度是不包括margin值的,clientWidth 占据尺寸--包括margin的宽度 outWidth不在标准 ...
- [译]如何去除pandas dataframe里面的Unnamed的列?
原文来源: https://stackoverflow.com/questions/43983622/remove-unnamed-columns-in-pandas-dataframe 问:我有一个 ...
- VS2017+EF+Mysql生成实体数据模型(解决闪退的坑)
原文:VS2017+EF+Mysql生成实体数据模型(解决闪退的坑) 最近要使用VS2017+EF+Mysql,在生成实体数据模型踏过一些坑,在此做个总结. 1.先下载并安装 mysql-connec ...
- 设置EntityFramework中decimal类型数据精度问题(EF默认将只会保留到2为精度)
原文:设置EntityFramework中decimal类型数据精度 EF中默认的decimal数据精度为两位数,当我们数据库设置的精度大于2时,EF将只会保留到2为精度. e.g. .19990将会 ...
- java 中基本类型与字符串之间的互相转换
1. 由 基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下 ...