- 浏览: 3573358 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
最近项目中有用到Word文档转PDF的功能,做了一些尝试,也遇到了一些困难。
下面把尝试的情况记录下来,也希望做过类似工作的童鞋能一起探讨一下。
下面把尝试的情况记录下来,也希望做过类似工作的童鞋能一起探讨一下。
我尝试过的Word文档转PDF,用过两种方法:
1、使用OpenOffice转PDF;
2、使用MS Office的OLE自动化功能;
OpenOffice的情况稍后补充,下面先说MS Office的转换情况。
Office版本使用2007,因为2007提供了一个加载项:Microsoft Save as PDF 或 XPS,可将文档另存为PDF格式。下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=4D951911-3E7E-4AE6-B059-A2E79ED87041,安装即可使用。
Office COM 组件调用使用jacob(Java COM Bridge)
http://sourceforge.net/projects/jacob-project/
Jacob初次使用的人可能会感到比较困惑。题外话,jacob的API设计是有够别扭的,这儿就不多说了。下面说明一下:
我们接触的jacob类主要就3个:ActiveXComponent、Variant、Dispatch;
ActiveXComponent代表COM应用程序:
初始化方法为:
Variant 是与COM通讯的参数或者返回值;
Dispatch代表一个可操作的自动化对象;如果确定返回值是自动化对象的话,可以调用Variant.toDispatch()转换成Dispatch。
获取了Dispatch之后,即可调用该自动化对象的属性或方法,具体的属性和方法要看参考文档,比如:Word开发可在WORD帮助中查看“脱机开发人员帮助WORD对象模型”。
Dispatch.get(dispatch, String name);获取对象属性;
Dispatch.put(dispatch, String name, Object value);设置对象属性;
Dispatch.call(dispatch, String name, Object… args);调用对象方法;
以上都是Dispatch上的静态方法,所以需要传递dispatch本身。
关于jacob-1.15-M4-x86.dll放置的位置,其实很简单,dll的放置位置就是系统参数
所指定的,放在路径里的任意一个目录即可,不想污染JDK目录或者windows/system32目录的话,放置项目启动目录下就可以了,Eclipse下我是放在项目目录下。
下面看具体代码:
- public class Word2PDF {
- static final int wdDoNotSaveChanges = 0;// 不保存待定的更改。
- static final int wdFormatPDF = 17;// PDF 格式
- public static void main(String[] args) {
- String filename = "f:/temp/测试文档.docx";
- String toFilename = filename + ".pdf";
- System.out.println("启动Word...");
- long start = System.currentTimeMillis();
- ActiveXComponent app = null;
- try {
- app = new ActiveXComponent("Word.Application");
- app.setProperty("Visible", false);
- Dispatch docs = app.getProperty("Documents").toDispatch();
- System.out.println("打开文档..." + filename);
- Dispatch doc = Dispatch.call(docs,//
- "Open", //
- filename,// FileName
- false,// ConfirmConversions
- true // ReadOnly
- ).toDispatch();
- System.out.println("转换文档到PDF..." + toFilename);
- File tofile = new File(toFilename);
- if (tofile.exists()) {
- tofile.delete();
- }
- Dispatch.call(doc,//
- "SaveAs", //
- toFilename, // FileName
- wdFormatPDF);
- Dispatch.call(doc, "Close", false);
- long end = System.currentTimeMillis();
- System.out.println("转换完成..用时:" + (end - start) + "ms.");
- } catch (Exception e) {
- System.out.println("========Error:文档转换失败:" + e.getMessage());
- } finally {
- if (app != null)
- app.invoke("Quit", wdDoNotSaveChanges);
- }
- }
- }
已知的情况:
1、转换效果好。(相对于OpenOffice)
2、速度慢
3、CPU占用率高
待解决的问题:
1、安全性问题:是否可禁用WORD宏,以及WORD文档中的ActiveX控件?
这一点我不太清楚,但在WORD选项--安全性设置中看到的:
2、微软知识库中的“服务器端 Office 自动化注意事项”
http://support.microsoft.com/kb/257757/
文档似乎明确了
Microsoft 目前建议不要从任何无人参与的、非交互式客户端应用程序或组件(包括 ASP、DCOM 和 NT Service)中进行 Microsoft Office 应用程序的“自动化”,也不为此提供支持,因为 Office 在这种环境中运行时可能会出现不稳定的现象并且/或者会死锁。
因为我主要的用途就是用来服务器端自动转换。
待仔细研读。
- office2pdf.rar (106 KB)
- 下载次数: 430
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
发表评论
-
snmp
2020-04-13 11:07 444https://www.iteye.com/blog/zhan ... -
snmp
2020-04-10 21:33 580https://blog.csdn.net/qq_333141 ... -
服务器监控软件
2019-12-31 11:07 530[ERROR] org.hyperic.sigar.Sigar ... -
多数据源
2019-12-23 22:09 475https://gitee.com/baomidou/dyna ... -
mybatis多数据源
2019-12-23 18:09 468https://blog.csdn.net/qq_288042 ... -
springboot ueditor
2019-12-17 18:26 394https://blog.csdn.net/u01216982 ... -
java支持多数据源
2019-12-13 15:59 474spxcms是否支持多数据源 ... -
java日志
2019-12-10 12:01 312https://blog.csdn.net/peng_wei_ ... -
spring 多数据源
2019-12-06 09:55 444https://www.jb51.net/article/10 ... -
idea
2019-12-04 17:13 422https://blog.csdn.net/dengachao ... -
手机大屏
2019-11-30 16:02 363http://demo.demohuo.top/modals/ ... -
quarz配置
2019-11-08 11:48 486https://blog.csdn.net/BryantLmm ... -
mysql同步
2019-11-06 12:20 364https://blog.csdn.net/baidu_418 ... -
nginx配置多个服务
2019-11-04 20:35 797https://blog.csdn.net/everljs/a ... -
h5 加壳
2019-11-04 16:05 640https://jingyan.baidu.com/artic ... -
jeui 前端框架
2019-10-22 14:30 1226http://www.jemui.com/demo/ http ... -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ htt ... -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/
相关推荐
在IT行业中,文档格式转换是一项常见的任务,尤其是将Word文档转换为PDF。Word文档和PDF在不同的场景下各有优势,Word适合编辑和创作,而PDF则适用于保持文档格式不变的阅读和分发。本示例关注的是如何在不依赖...
标题中的“Office2007/2010 Word文档转PDF插件”是指一种能够帮助用户将Microsoft Office 2007或2010中的Word文档转换为PDF格式的软件工具。这种插件的目的是为了方便用户在不同的设备和系统间分享文档,因为PDF格式...
1、 Word转换为Pdf,程序很多,但转换后的Pdf,还可以复制,虽可以加密禁止复制,但市场上太多的Pdf,还可以把Pdf转换Word等其他格式,很容易被别人利用和剽窃,如何彻底的自己的Word文档,可以被人浏览,查看,而不...
"word文档转pdf"这个主题涉及到的是使用Java Swing来实现这一转换过程,尤其强调了对中文字符的支持。下面我们将深入探讨这个知识点。 首先,让我们了解Word(.doc或.docx)和PDF(Portable Document Format)的...
例如,可以通过创建Word应用程序实例,打开Word文档,然后使用Word的导出功能将内容保存为PDF格式。 然而,调用COM自动化技术存在一些局限性,比如依赖于用户机器上安装的Microsoft Office版本,且性能开销较大。...
在Java中利用JACOB库实现Word文档转PDF功能时,首先需要完成必要的环境配置工作。 ##### 1. JACOB库介绍 JACOB(Java COM Bridge)是一个开放源代码的Java类库,用于Java程序与Windows平台下的COM对象进行交互。...
单击工具栏中的“Word转PDF”按钮,将打开“Word转PDF”子窗体,在该窗体中,首先单击“请选择Word文本所在路径”右侧的“…”浏览按钮,选择要转换源路径,这时系统将自动获取该路径下的全部Word文档文件,...
"Word转PDF"是一个典型的例子,它涉及到Microsoft Office套件中的Word文档与Adobe PDF格式之间的互换。下面将详细介绍如何通过第三方控件实现这一转换,并探讨相关的技术细节。 首先,Word文档(.doc或.docx)是一...
在某些情况下,用户可能需要将Word文档转换为PDF,以保持内容布局的一致性和防止编辑。 标题中的“word 2007 转pdf插件”指的是一个专门针对Microsoft Word 2007设计的外接程序,它的主要功能就是帮助用户将Word ...
_Word 文档转换 PDF 在日常办公中,将 Word 文档转换为 PDF 格式是一种常见的需求。PDF 格式的文件具有平台独立性、安全性和稳定性等特点,使其在文件共享和传输中扮演着重要角色。下面将介绍三种将 Word 文档转换...
在这个场景下,我们将关注如何使用Aspose在Java环境中实现Word文档转换为PDF,并且去除PDF中的水印。 首先,`aspose-words-20.1-jdk17.jar`是Aspose.Words for Java的库文件,它包含了处理Word文档和进行转换的所有...
"Mac_word批量转pdf脚本"就是一个这样的解决方案,它旨在帮助用户快速、便捷地将Word文档批量转换为PDF格式。下面我们将详细探讨这一主题。 首先,我们来理解“脚本”在计算机领域的含义。脚本是一种编程或批处理...
本主题聚焦于“word文档转换为PDF格式文件”,这是一个关键的知识点,涉及到Microsoft Word和Adobe PDF这两种广泛使用的文件格式。 Word(.doc或.docx)是Microsoft Office套件中的文字处理软件,它提供了丰富的...
Office 2021 Word 文档转换成 PDF 格式方法 office 2021 word 文档转换成 pdf 格式方法是指将 Word 文档转换成可读性强、可分享性高的 PDF 格式文档。为实现此功能,需要使用 doPDF 虚拟打印机软件。下面将详细介绍...
本文将详细探讨“Office的Word文档转PDF插件”这一主题,包括其适用性、安装方法以及转换过程,以帮助用户更好地理解和应用这种工具。 首先,我们来看标题提到的“word转pdf的插件”,它是一种专门针对Microsoft ...
"最强word文档转PDF(含window和linux双系统)" 提供了一种跨平台的解决方案,覆盖了Windows和Linux两种操作系统,这对于多平台环境下的工作非常重要。下面我们将深入探讨这个主题。 首先,让我们了解Word和PDF两种...
本文将深入探讨如何利用Apache POI框架根据模板生成Word文档,并进一步将其转换为PDF文件。 首先,Apache POI提供了一个名为HWPF(Horrible Word Processor Format)的组件,用于处理Word文档。通过这个组件,我们...
"doc2pdf" 是一种工具或方法,专门用于将Word文档转换为PDF格式。 在Windows操作系统中,用户可以直接通过Microsoft Word软件将文档保存或另存为PDF。然而,对于没有安装Word或寻求更便捷方式的用户,可以使用第三...
在IT行业中,转换文档格式是一项常见的任务,例如将Word文档转换为PDF。在这个场景中,我们看到一个关于如何使用Java编程语言实现此功能的资源包:“利用poi+itextpdf进行word转pdf.rar”。这个压缩包包含源码、依赖...