- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SwfTools和FlexPaper的文档共享平台.doc
基于SwfTools和FlexPaper的文档共享平台
摘 要:在线文档共享平台中,有时并不希望直接能够下载源文件,而只是提供在线的浏览,此时需要将word等office文档转换为swf文档,本文提供一种基于wps和swftools的在线文档转换,以及基于FlexPaper的在线文档浏览的方案。
关键词:在线文档转换;wps;swftools;FlexPaper
中图分类号:TP393
在Web项目中,经常会有文档共享的需求,但有时并不希望直接将源文件分享,而只是提供在线的浏览,例如百度文库的实现,此时常见的解决方法是将word等office文档转换为swf文档。通常的解决方案是利用FlashPaper直接转换为swf文档,或者利用openoffice先将word转换为pdf,再利用swftools转换为swf文档。利用FlashPaper必须使用32位windows系统,对服务器有较大的限制,而利用openoffice和swftools的方案具有较大通用性,但是在实际使用中,openoffice对中文支持不佳,中文的文档转换后常常出现排版错误。最终,发现使用wps替代openoffice和swftools配合有比较好的转换效果。
1 Jacob简介
Jacob是一个java开源项目,它允许在java中调用com接口自动组件,它使用JNI(本地调用程序)来进行本地调用COM库。它可运行在x86和支持32位和64位Java虚拟机 X64的环境,本文将使用jacob调用wps的接口,将word文档转换为PDF文档。
2 word文档转换为pdf文档
WPS即WPS Office,是金山软件公司的一种办公软件,目前最新版本是WPS 2013,针对个人用户免费,体积小,但是具备Microsoft Office的大部分功能。WPS 2013专业版具备与 Microsoft Office 一致的二次开发接口、API 接口、对象模型,兼容的VBA 环境, 支持 COM 加载插件等机制。利用WPS 2013专业版的pdf输出功能,通过jacob编程实现将word文档转换为pdf文档,核心代码如下。
ActiveXComponent wps = null;
try{
wps = new ActiveXComponent(wps.application);
ActiveXComponent doc = wps.invokeGetComponent(Documents).invokeGetComponent(Open,
new Variant(source.getAbsolutePath()),new Variant(false), new Variant(true));
doc.invoke(ExportPdf, new Variant(pdf.getAbsolutePath()));
doc.invoke(Close);
doc.safeRelease();
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{
if(wps != null) {
wps.invoke(Quit,new Variant[]{});
wps.safeRelease();
}
}catch (Exception e) {
e.printStackTrace();
}
}
3 pdf文档转换为swf文档
将word文档转换为pdf文档后,还不能够满足在线浏览的需求,需要进一步将pdf文档转换为swf文档,利用flash几乎在每台电脑都安装了的特性,从而实现Web在线浏览文档的需求。将pdf文档转换为swf文档有多种方式,经实际测试使用,使用swftools是性能最好的转换方式。需要注意的是,在java中,不建议使用java调用cmd命令的方式来转换pdf文档,因为实际使用中发现,使用该方式可能会出现服务器压力较大时无法转换的问题。最好的使用方式是使用批处理,通过windows的计划任务,定时执行转换,将pdf文档转换为swf文档的命令如下:
pdf2swf.exe source.pdf -o target.swf -f -T 9 -G -s poly2bitmap
其中-s poly2bitmap参数是为了解决某些pdf文档有比较复杂的图片时无法转换的问题。
4 基于FlexPaper的在线显示swf文档
FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与SwfTool
原创力文档


文档评论(0)