Flex实现浏览器在线显示Word文档(不能实现Word在线编辑).
思想:生成Word->pdf->swf->flexpaper显示.oh ,my god!
用开源Itext.jar生成Word文档;
通过开源jacob.jar实现Word转换成PDF;
通过软件Pdf2Swf转换PDF成Swf文件;
通过开源FlexPaper.swf组件显示Swf文件.
(有点繁琐,但是我没找到解决的办法,貌似有个OpenOffice,但是收费...)
第一步:生成Word文档(用到的Jar包在文件附录)
Itext是个好东西,可以在word里面画表格
第二步:Word转换成PDF文件(用到的Jar包在文件附录)
如果安装的是Office2010,运行这个方法应该是没有问题的,如果是Office2007,那需要安装Office组件(SaveAsPDFandXPS2007).
注意:用Jacob包,需要在系统盘C:\Windows\System32添加一个jacob-1.17-M2-x64.dll文件(我的系统是64位的,32位系统就添加jacob-1.17-M2-x32.dll,文件见附录)
第三步:Pdf转换成Swf文件(用到的Jar包在文件附录)
需要安装工具swftools-0.9.2.exe,文件太大,请百度"swftools-0.9.2.exe"下载,转换成功的swf文件,是可以用播放器打开的.我做的时候,碰到一个很头疼的问题,转换的过程没报错,出异常,但是在页面显示(第四步)的时候就是不显示swf文件.
建议:以上步骤用我给的JAR包,DLL文件,还有flexpaper,可以避免版本问题,以及系统(我的是win7_64位系统)兼容问题等.
第四步:页面显示Swf文件(用到的开源.swf在文件附录)
word->pdf->swf,最后的Swf文件,存放的位置是Tomcat 7.0\webapps\项目名称\;否则就会不显示swf文件(反正我是碰到了这个问题).注:以上代码,我已经实现效果,可以删除一些多余的代码,直接修改测试.
思想:生成Word->pdf->swf->flexpaper显示.oh ,my god!
用开源Itext.jar生成Word文档;
通过开源jacob.jar实现Word转换成PDF;
通过软件Pdf2Swf转换PDF成Swf文件;
通过开源FlexPaper.swf组件显示Swf文件.
(有点繁琐,但是我没找到解决的办法,貌似有个OpenOffice,但是收费...)
第一步:生成Word文档(用到的Jar包在文件附录)
// 第一步:创建一个document对象。 Document document = new Document(PageSize.A4); // 第二步:将文件输出流指向一个文件。 RtfWriter2.getInstance(document, new FileOutputStream("C:\\mmmmm.doc")); // 第三步:打开文档。 document.open(); //字体 Font font = new Font(Font.NORMAL, 14,Font.BOLD, new Color(0, 0, 0)); // 第四步:在文档中增加一个段落。 Paragraph paragraph = new Paragraph("xxxxxxxxxxxxx", font); paragraph .setAlignment(Element.ALIGN_CENTER); document.add(paragraph ); // 第五步:关闭文档。 document.close();
Itext是个好东西,可以在word里面画表格
第二步:Word转换成PDF文件(用到的Jar包在文件附录)
package com.sddl.dao.dky.Utils; import java.io.File; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; public class Word2PdfUtil { int wdDoNotSaveChanges = 0;// 不保存待定的更改。 int wdFormatPDF = 17;// PDF 格式 public String word2PdfUtil(String fileName) { System.out.println(fileName); String toFilename = fileName + ".pdf"; System.out.println("启动Word"); 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); } catch (Exception e) { System.out.println("========Error:文档转换失败:" + e.getMessage()); } finally { if (app != null) app.invoke("Quit", wdDoNotSaveChanges); } System.out.println(toFilename); return toFilename; } }
如果安装的是Office2010,运行这个方法应该是没有问题的,如果是Office2007,那需要安装Office组件(SaveAsPDFandXPS2007).
注意:用Jacob包,需要在系统盘C:\Windows\System32添加一个jacob-1.17-M2-x64.dll文件(我的系统是64位的,32位系统就添加jacob-1.17-M2-x32.dll,文件见附录)
第三步:Pdf转换成Swf文件(用到的Jar包在文件附录)
package com.sddl.dao; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; public class test { public static int convertPDF2SWF(String sourcePath, String destPath, String fileName) throws IOException { // 目标路径不存在则建立目标路径 File dest = new File(destPath); if (!dest.exists()) dest.mkdirs(); // 源文件不存在则返回 File source = new File(sourcePath); if (!source.exists()) return 0; // 调用pdf2swf命令进行转换 String command = "\"D:\\Program Files (x86)\\SWFTools\\pdf2swf.exe\" -s open \"" + sourcePath + "\" -o \"" + fileName + "\" -s flashversion=9"; Process pro = Runtime.getRuntime().exec(command); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(pro.getInputStream())); System.out.println("MMMMMMMmmmmm"); while (bufferedReader.readLine() != null) ; try { pro.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(pro.toString()); return pro.exitValue(); } public static void main(String[] args) throws IOException { String sourcePath = "c:\\test.pdf"; String destPath = "c:\\"; String fileName = "c:\\test.swf"; test.convertPDF2SWF(sourcePath, destPath, fileName); } }
需要安装工具swftools-0.9.2.exe,文件太大,请百度"swftools-0.9.2.exe"下载,转换成功的swf文件,是可以用播放器打开的.我做的时候,碰到一个很头疼的问题,转换的过程没报错,出异常,但是在页面显示(第四步)的时候就是不显示swf文件.
建议:以上步骤用我给的JAR包,DLL文件,还有flexpaper,可以避免版本问题,以及系统(我的是win7_64位系统)兼容问题等.
第四步:页面显示Swf文件(用到的开源.swf在文件附录)
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:supportClasses="com.esri.ags.skins.supportClasses.*" width="100%" height="100%" xmlns:flexpaper="com.devaldi.controls.flexpaper.*"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <s:RemoteObject id="pgbgDao" destination="pgbgDao" fault="pgbgDao_resultHandler(event)"> <s:method name="checkEstimate" result="checkEstimate_resultHandler(event)"/> <s:method name="checkFiles" result="checkFiles_resultHandler(event)"/> <s:method name="pgbgAction" result="pgbgAction_resultHandler(event)"/> </s:RemoteObject> </fx:Declarations> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.utils.StringUtil; [Bindable] public var swfName:String = "";//Swf名称 public var deptId:int = 200000656; public var deptName:String = "滨州供电公司"; public var evaluationId:int = 200000111; public var evaluationDate:String = "2011/5/23"; public var guideline_planId:int = 1; [Bindable] public var swfFlag:Boolean = false; /**click事件*/ protected function doActionForDoc_clickHandler(event:MouseEvent):void { // } protected function checkEstimate_resultHandler(event:ResultEvent):void { if(event.result as Boolean==false){ Alert.show("没有评估得分!","提示!"); }else{ /**检查swf文件是否存在*/ pgbgDao.checkFiles(deptId,evaluationId,guideline_planId); } } protected function checkFiles_resultHandler(event:ResultEvent):void { if((event.result as Boolean)==false){ pgbgDao.pgbgAction(deptId,deptName,evaluationId,evaluationDate,guideline_planId); }else{ //swfName = deptId+""+evaluationId+evaluationDate+".swf" } } /**开始生成评估报告*/ protected function pgbgAction_resultHandler(event:ResultEvent):void{ swfName = event.result as String; if(StringUtil.trim(swfName).length!=0){ swfFlag = true; } } protected function pgbgDao_resultHandler(event:FaultEvent):void { Alert.show("----"+event.message); } ]]> </fx:Script> <mx:VBox width="100%" height="100%"> <mx:Spacer width="30"/> <mx:Button label="doActionForDoc" id="doActionForDoc" cornerRadius="0" height="25" click="doActionForDoc_clickHandler(event)"/> <mx:HBox width="100%" height="100%" visible="{swfFlag}" includeInLayout="{swfFlag}"> <flexpaper:FlexPaperViewer Scale="1.5" id="flexPaper" width="100%" height="100%" SwfFile="{swfName}"> </flexpaper:FlexPaperViewer> </mx:HBox> </mx:VBox> </s:Application>
word->pdf->swf,最后的Swf文件,存放的位置是Tomcat 7.0\webapps\项目名称\;否则就会不显示swf文件(反正我是碰到了这个问题).注:以上代码,我已经实现效果,可以删除一些多余的代码,直接修改测试.
- 新建文件夹.rar (2.4 MB)
- 下载次数: 84
- FlexPaper.rar (588 KB)
- 下载次数: 66
发表评论
-
推荐一个个人觉得很不错的博客
2013-08-20 16:47 342http://www.cnblogs.com/xwdreame ... -
POI解析Excel,最高支持2010版本的Excel导入数据库
2013-08-20 16:38 4180本文代码直接COPY就可以测试修改 POI解析Excel,(E ... -
Flex+JAVA+Servlet 实现上传
2013-08-20 10:00 926Flex 页面代码 <?xml version=&q ... -
简单的----Flex从服务器上下载文件,不用后台代码支持
2013-08-19 17:02 1856<?xml version="1.0&qu ... -
Flex拉伸.PNG图片,边角不会变形
2013-08-08 15:39 812<mx:Canvas width="59% ... -
Flex4中修改toolTip的字体以及效果
2013-08-08 15:41 892在Flex4的可视组件中,可以通过toolTip指定鼠标移到对 ... -
Flex的Array和ArrayCollection
2013-08-08 15:40 7381.array作为控件使用 FLEX3 ... -
Flex4中添加自定义右键菜单
2013-08-08 15:41 761下面这个例子给Flex的右键添加一个自定义的菜单,并且在点击菜 ... -
Flex全屏的实现
2013-06-21 01:52 627编写如下事件,实现全屏: stage.displayState ... -
去掉Flex4生成的SWF加载时的进度条
2013-06-21 01:47 916方法一: <?xml version="1.0 ... -
Flex4中动态生成RadioButton,绑定数据源
2013-06-21 01:43 815代码如下: <?xml version="1. ... -
破解过的Flex amcharts,有例子
2013-06-21 01:33 1646附件已经上传: 解压后Documentation下有Index ... -
Flex4 自带组件添加的 柱状图、饼状图等图表
2013-06-21 01:21 15791.添加一个最简单的柱状图 <?xml version ...
相关推荐
FlexPaper是一款功能强大的...总之,FlexPaper_swc是Flex开发者实现文档在线预览的理想选择,无论你是新手还是经验丰富的开发者,都能借助其强大的功能和易用性,轻松地将高质量的文档预览功能整合到你的Flex应用中。
FlexPaper作为Flex库的一部分,能够轻松集成到Flex应用程序中,同时也支持其他格式的文档(如Word、PPT等)通过转换为PDF后进行在线浏览。 要使用FlexPaper,首先需要将PDF文档转换为SWF格式。这一过程可以通过开源...
标题“FlexPaper 在线文档显示”指的是使用 FlexPaper 库或服务来实现网页上的文档预览功能。这项技术对于那些希望在网站上展示文档而无需用户下载原始文件的开发者来说尤其有用。它可以提升用户体验,因为用户可以...
标题“FlexPaper_2.2.4php在线浏览WORD文档”表明我们要讨论的是FlexPaper的2.2.4版本,它专门针对PHP环境,提供了在线预览Microsoft Word文档的能力。 在描述中提到的"FlexPaper_2.2.4php在线浏览WORD文档",意味...
FlexPaper 2.1.2 是一款基于Adobe Flex技术的数字出版解决方案,它允许开发者将PDF或SWF文档转换为互动式的在线阅读体验。这款工具提供了丰富的功能,如自定义Logo、书签、打印、搜索、缩略图以及通过JavaScript进行...
FlexPaper 是一个强大的开源工具,专门用于在Adobe Flex应用...总的来说,FlexPaper为开发人员提供了一种简便的方式在Flex应用中展示PDF文档,通过集成`PDFViewer.ascx`和相关配置,可以在ASP.NET环境中实现这一功能。
"基于PHP的FlexPaper Flex在线显示PDF文档的php源码.zip" 这个标题揭示了我们讨论的核心技术:使用PHP语言与FlexPaper Flex组件来实现在线查看PDF文档的功能。FlexPaper是一款开源的PDF和文档查看器,它允许用户在...
【PHP实例开发源码—FlexPaper Flex在线显示PDF文档的php源码.zip】是一个用于在Web环境中通过PHP技术实现PDF文档在线预览的项目。FlexPaper是一款强大的、开源的PDF和文档查看器,它允许用户在浏览器中查看、搜索、...
综上所述,通过ASP.NET结合Office-Tools、WF和FlexPaper,可以实现Word文档的在线预览功能。这一过程涉及文件上传、转换、预览等多个步骤,需要综合运用服务器端和客户端的技术,同时注重性能和用户体验。
在本文中,我们将深入探讨如何使用Flex 4.0实现翻书效果,并动态地通过FlexPaper展示PDF文档。Flex是一个强大的开发框架,主要用于构建富互联网应用程序(RIA),它基于ActionScript 3.0和Flash Player或Adobe AIR。...
FlexPaper是一款强大的在线文档查看和转换工具,尤其适用于展示PDF文档。它基于Adobe Flex技术,允许开发者将PDF或图像文件转换为SWF格式,以便在Web浏览器中流畅地浏览。在本文中,我们将深入探讨FlexPaper的使用,...
3. **在线播放插件集成**:采用FlexPaper插件实现文档的在线播放。 - **FlexPaper**:一个高度灵活的文档显示解决方案,支持多种浏览器平台。 - 下载并解压FlexPaper,准备相关JavaScript文件和FlexPaperViewer....
总之,FlexPaper的flex的swc文件为在Flex工程中实现高质量的文档在线预览提供了便利。通过正确地导入和使用这两个SWC文件,开发者可以轻松地在Web应用中嵌入文档预览功能,提升用户体验。同时,要注意不断更新和优化...
为了实现文档的在线预览,Flex4可能会利用StageVideo或StageWebView组件来呈现文档内容,或者使用像FlexPaper这样的第三方库。这些组件能够处理复杂的文档格式,并提供流畅的用户体验。 总的来说,"flex4在线文档...
总之,FlexPaper 实现文档在线浏览的源码改造版是一个定制化的过程,包括下载源码、创建库和应用程序、编写界面代码以及配置各种参数来满足特定的浏览体验。这个改造版使得开发者可以灵活地调整 FlexPaper 的行为,...
本文主要介绍了使用Java、FlexPaper和swfTools实现文档在线预览系统的设计和实现。该系统可以将上传的文档(包括ppt、word、excel、txt)转换为swf文件,然后使用FlexPaper插件实现在线预览。 文档转换为swf文件 ...
Flexpaper是一个强大的开源解决方案,它允许开发者在网页上实现高质量的PDF、Word、PowerPoint、Excel和图片的在线预览。 首先,我们要理解Flexpaper的基本工作原理。Flexpaper是一个JavaScript库,它可以将上传的...