- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用JCom调用MSOffice或者AcrobatAPI转换为PDF.
????? 当下国内外文档分享平台成为热门应用,其中文档在线浏览几乎成为文档分享平台必备功能,本文针对类似百度文库的多种文档在线浏览技术提出了三种解决方案。文档在线浏览本质上是将多种可在线预览文档转换成Flash(SWF)格式,再通过Flash Player播放器播放SWF文件。Flexpaper是一个开源的在线文档显示组件,可以播放SWF文件。因此,下面先分析如何将文档转换为SWF。
????? SWFTools是一种与Adobe Flash(swf)文件工作的实用工具包,主要包括用于读取、编译以及生成swf文件的程序。 其中,PDF2SWF工具,可以将PDF文件转换成SWF文件。那么只需要将文档转换成PDF,再利用PDF2SWF转换PDF为SWF则解决问题。
????? 转换常用Office文档为PDF格式,目前主要有三种方案:利用Jacob或者JCom调用MS Office或者WPS Office API,利用JODConverter调用OpenO服务,调用虚拟打印机转换文档为PDF。由于笔者目前没有实现Java下调用虚拟打印打印文件为PDF格式的方法,因此在这里不做介绍。图1-1显示了笔者实现的三种方案:
图1-1 文档转换总体方案
Jacob简介
Jacob是Java与COM组件桥接的缩写,即JAVA-COM Bridge。通过使用Jacob类库,我们可以很方便地在Java程序中调用COM自动化组件。Jacob最初是由美国人Dan Alder在Inventure公司担任CTO时编写的,目的是为了方便众多的程序员在Java2虚拟机上,调用Win32平台上COM自动化服务器中的组件。当Jacob项目以开源的方式在网络上公布以后,越来越多的人开始参与项目的研发与改进中去。
Jacob类库中只有两个包:com.jacob.activex和.jacob.activex包建立在基础之上, 主要包含了ActiveXComponent类。中有一个非常基础的类JacobObject,该包中比较常用的两个类Dispatch和Variant便是继承自JacobObject。
Dispatch类代表COM自动化组件中的对象,提供了访问COM对象的API。Dispatch类中常用的方法有:
call( )方法:调用COM对象的方法,返回Variant类型值。
invoke( )方法:和call方法作用相同,但是不返回值。
get( )方法:获取COM对象属性,返回variant类型值。
put( )方法:设置COM对象属性。
ActiveXComponent类继承自Dispatch类,在内部封装了Dispatch对象,使用该类加载COM组件。 并且提供了访问COM组件对象的属性和方法的接口。ActiveXComponent类提供了比Dispatch类更方便的获取属性和设置属性的方法:getProperty( ),setProperty( )。
Variant类映射COM对象中的Variant数据结构,提供Java和COM的数据交互。其本质就是一种数据类型,可以被转换成任何数据类型,如int,String,甚至Dispatch对象。
MS Office COM 对象模型
Microsoft Office2007之前的Office版本并没有提供转换文档为PDF格式的支持,另外,Office2007还需要安装有Microsoft Save as PDF or XPS插件才支持PDF格式转换,而Office2010不需要安装插件则自带有转换Office文档为PDF格式的API。因此,建议使用Office 2010。
通过查询MSDN Office 2010开发人员手册,经过分析后得出图2-1所示的Office COM对象模型:
图2-1 Office COM对象模型
Microsoft Office中每个应用程序中都包含一个Application对象,但是每个应用程序中的文档对象却不一样,Word中Documents对象代表Word应用程序中所有打开的word文档集合,Document对象代表一篇word文档。详细的文档对象结构如图2-1所示。其中Document,Workbook,Presentation中的SaveAs或者ExportAsFixedFormat方法可用于将文档转换为PDF。
Jacob调用MS Office COM自动化组件转换Office文档为PDF
算法流程图如2-2所示:
图2-2 Jacob调用MS Office COM组件转换文档为PDF算法流程
第一步,对于Office文档,不同格式的文档需要加载不同的COM组件,例如Word文件需要加载Word COM组件。Jaco
您可能关注的文档
最近下载
- 薛宝钗:温婉背后的深沉——对《咏白海棠》的文本细读.doc
- 2025年呼吸内科疾病临床路径.pdf VIP
- 2023年江苏高考化学试题及答案.pdf VIP
- 2025年春新课程学习与测评同步学习六年级英语下册人教版答案.pdf VIP
- 《博物馆建筑设计规范》(66-2015)【可编辑】.pptx
- 02S515排水检查井图集.pdf
- 【PPT课件】2024特种设备重大事故隐患判定准则培训资料.pptx
- T-CAMDI009.10-2020无菌医疗器械初包装洁净度第10部分:污染限量.pdf
- 2024年江苏省高考化学真题卷(含答案与解析)_1338.pdf VIP
- 招标代理公司服务方案(投标).pdf VIP
文档评论(0)