
在Web项目中,您经常会遇到Word文档浏览的情况. 通常的解决方案是将单词转换为pdf,然后浏览. 但是,在实际的实现过程中,由于读者的原因,用户可以直接下载pdf. 显然,这不是我们想要的. 在网上搜索后,我发现可以将word文档转换为swf文件,并且可以通过Flash实现浏览. 本文将详细介绍具体的实现方法.
下载并安装Print2Flash,具体的破解安装步骤可在下载页面上找到(此处不建议使用盗版软件).
安装完成后,打开需要转换为SWF文件的word文档,单击[开始]-[打印],然后选择“ Print2Flash 3打印机”作为打印机,如下图所示.

单击[打印]按钮可根据不同要求生成Flash选项,如下图所示(屏蔽打印和一些按钮).


设置完成后,单击[确定]按钮. 在弹出的对话框(如下所示)中,单击[保存Flash]按钮,设置保存路径和名称,然后完成swf文件的导出.

此处的Flash嵌入介绍了两种方法,一种是使用对象和embed标签进行嵌入的传统方法,另一种是JS嵌入.
具体代码如下:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="<a href="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0</a>" width="550" height="400" id="Untitled-1" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="mymovie.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550" height="400"name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="<a href="http://www.macromedia.com/go/getflashplayer">http://www.macromedia.com/go/getflashplayer</a>" /> </object>
此方法使用object和embed标签进行嵌入. 仔细地swf文件用flash打不开,您会发现对象的许多参数和嵌入中的许多属性都是重复的. 你为什么这么做?为了与浏览器兼容,有些浏览器支持对象,有些支持嵌入,这就是为什么在修改Flash参数时需要同时更改两个参数的原因.
此方法始终是Macromedia的官方方法,该方法最大程度地保证Flash功能,而不会出现兼容性问题. 但是现在使用起来并不容易: 它无法通过验证,因为为兼容性而嵌入的embed标签不兼容W3C. 当然,如果您不在乎哪些规范不是规范性的,那是另一回事.
由于各种原因,Microsoft限制了SP2之后IE的ActiveX的使用模式,即页面中的ActiveX带有一个虚拟框,要求用户单击一次才能正常交互. Flash作为ActiveX嵌入到网页中,因此也会涉及到Flash. 只有通过JS嵌入Flash才能解决此问题.
没有Flash版本检测. 如果版本浏览器的Flash插件的版本不够,或者您的swf文件无法正常显示,或者将弹出ActiveX安装确认框,这个框对于许多用户来说非常可怕.
使用JS嵌入有其自己的嵌入方法,有些嵌入得很好,而有些则没有. 有些人使用document.write直接编写. 这种方法不好说实话. 感觉到有更多的hack组件,这意味着要进行验证以进行验证,并且没有显示任何JS优势. 我认为一个好的JS嵌入式脚本在确保Flash应该具有功能的基础上,要利用JSswf文件用flash打不开,应该具有版本检测功能,可以解决可访问性问题(即用户无法浏览Flash内容或禁用它). 如何处理JS),应该易于重用.
我们在这里要谈论的是SWFObject解决方案:
“ SWFObject”是使用Java脚本插入Flash的方法,具有很多优点,并且代码简洁. IE6下将没有“单击此处激活控件”提示,并且它可以通过W3C验证. 与传统的插入Flash的“对象”方法不同.
在新的2.x版本中,最简单的调用仅是一个句子,无需等待页面加载,这意味着您可以在页面上的任何位置编写该句子. 比以前的版本容易得多. 让我们看一些简单且常用的调用方法:
<div id="myflash"></div> <script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript"> swfobject.embedSWF("test.swf", "myflash", "300", "120", "9.0.0"); </script>
注释: 调用方法embedSWF-insert SWF文件,参数为@swf文件的地址;用于加载swf文件的容器的@id(例如div); @闪光宽度; @flash height(当然,这里的宽度和高度可以用百分比表示,例如100%); @正常播放闪光灯所需的最低版本; @当版本低于要求时,执行swf文件,在此使用此Flash跳转到官方下载Flash插件的最新版本. (可以省略此参数. )将多个Flash插入同一页面的不同位置时,只需重复上述语句并使用不同的容器ID.
具体效果如下图所示.

<script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript"> //1、使用Json初始化变量、参数、属性 var flashvars = { name1: "hello", name2: "world", name3: "foobar" }; var params = { menu: "false" }; var attributes = { id: "dynamicContent2", name: "dynamicContent2" }; swfobject.embedSWF("test6_flashvars.swf", "content2", "300", "120", "6.0.0","expressInstall.swf", flashvars, params, attributes); </p> <p>//2、传统的初始化设置,效果一样 var flashvars = {}; flashvars.name1 = "hello"; flashvars.name2 = "world"; flashvars.name3 = "foobar"; var params = {}; params.menu = "false"; var attributes = {}; attributes.id = "dynamicContent3"; attributes.name = "dynamicContent3"; swfobject.embedSWF("test6_flashvars.swf", "content3", "300", "120", "6.0.0","expressInstall.swf", flashvars, params, attributes); //3、直接写在后面,就一句话,简洁剽悍,不拖泥带水 swfobject.embedSWF("test6_flashvars.swf", "content5", "300", "120", "6.0.0","expressInstall.swf", {name1:"hello",name2:"world",name3:"foobar"}, {menu:"false"}, {id:"dynamicContent5",name:"dynamicContent5"}); </script>
本文解决了Word文档浏览中遇到的所有问题. 晋升过程是一个不断总结的过程. 希望本文能帮助您实际解决此问题. 如果本文有任何不足之处,请期待Haihan.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-150041-1.html
正是开战的最好时节
~
追逐一望无际的蓝