加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flash在线文档开发思路

发布时间:2020-12-15 06:18:38 所属栏目:百科 来源:网络整理
导读:一、需求与目的: ????? 1. 基本界面和功能展示:? ???????? ????? 2. 主要功能: ????????? 通过flex/flash程序使用户可以通过浏览器在线阅读相关的文件或文档,查看相关的资料或信息, ???????? 或者打印/下载此pdf文件以及其他的操作等。 ? ? 二、可行性分

一、需求与目的:

?????1. 基本界面和功能展示:?

????????



?????2. 主要功能:

????????? 通过flex/flash程序使用户可以通过浏览器在线阅读相关的文件或文档,查看相关的资料或信息,

???????? 或者打印/下载此pdf文件以及其他的操作等。

?

?二、可行性分析和技术实现:

???????1.???? 展示的方式:

???????????? ?文档以flash的形式在网页上展示要解决两个问题:以什么格式展示flash和文档如何转化为符合格式的flash。

???????????? ?(1).展示flash有两种方式

?????????????????? a.使用SWFTools的工具直接将pdf转化成一个整体的flash展示,但这种方式的flash较大,且不容易控制,故用得较少。

?????????????????? b.使用一个开源的flexpaper播放器,它可以播放一帧一页的flash;

????????????????????? 在flexpaper的基础上,如果遇到大文档则会出现速度和性能的问题,这个时候需要像百度文库、豆丁一样修改flexpaper,

????????????????????? 让它支持一次仅读取指定页数的flash;如果文档安全级别较高,不允许下载查看,则需要给flexpaper加上加密解密算法;

????????????????????? 如果需要登录用户才能查看,则要让flexpaper有登录UI。

????????????? ?(2).文档如何转化为符合格式的flash

???????????????????? Flex/flash是不能直接读取及加载pdf和进行相应的操作的,

???????????????????? 目前业界的主流应用解决方案(如百度文库和豆丁网)都是通过把相关的pdf文件转化成swf文件,

???????????????????? 在通过flex/flash程序的加载和控制来展示出来。

?????????????????????转化文档为flash的思路有一条,但有多种实现方式。一般文档需要先转化为pdf,再从pdf转化为flash。

2.转换的具体的操作实现

????????? 针对上述的需求分析,实现此功能的主要思路就是要把一般文档先转化为pdf,再从pdf转化为flash。

???????? (1). 一般文档转化为pdf

?????????????? 一般文档转化为pdf的方法有很多,例如使用虚拟打印机,使用MicrosoftOffice的API,使用OpenOffice转化,

?????????????? adobe 公司的acrobat等,不过转化的过程中,可能由于文档有误、损坏、加密等原因造成转化失败。

???????? (2). pdf转化为flash

????????????? ?pdf转化为flash可以直接使用swfTools的pdf2swf即可实现多种方式的转化(命令行或java/php语言动态执行等)。

?????????????? 安装上此工具后通过代码(如java/php语言等)或者直接通过命令行操作来实现是现在比较常用的一种方式。

?????????????? swfTools是一个开源(免费)的工具,可以把pdf或png图像转换为swf格式的文件。

?????????????? 首先要先安装好swftools(本文档以安装在C:Program FilesSWFTools来说明)。

?????????????? 只有安装好了swftools后才能使用相关的命令行来进行操作。

?????????????? 例1:swfTools常用的命令命令(在cmd命令行把指定目录C:Program FilesSWFTools)

??????????????????????? pdf2swf -o aa.swf -s flashversion=9 aa.pdf

?????????????????????? ?pdf2swf pdf2swf aa.pdf -o aa.swf -T 9

??????????????????????? pdf2swf pdf2swf aa.pdf -o aa.swf

????????????????例2:通过java程序将指定的pdf文件转换为相应的swf文件:

???????????????????????? 参见MySwfTools.java文件。

??????3. flex/flash加载和播放文档转换而来的swf文件

?????????? 使用第三方插件flexpaper来加载和操作由pdf转换而来的swf文件:

?????????? FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与swftools一起使用,

?????????? 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。

????????? ?下载并获取到相应的swc文件,放到我们的flex/flash工程中直接使用。

??????????? 例3:参见flexPdf.mxml文件。


????4. 详细代码

???????? 例2: MySwfTools.java

????????????? /**

?????????????? * @title基于swfTools工具和java语言实现pdf文件转换为swf文件

?????????????? * @author xuechong

?????????????? * @version 0.1

?????????????? * @date 2011.06.01

?????????????? * @environment java6.0 swfTools0.9.1

?????????????? * @from?http://www.iteye.com/topic/538361

?????????????? */


?????????????? import java.io.BufferedReader;

?????????????? import java.io.File;

?????????????? import java.io.InputStreamReader;

?????????????? import java.io.IOException;

?????????????? public class MySwfTools{

?????????????????? public static void main(String[] args)throws IOException{

???????????????????????? String pdfUrl = "D:/dataTest/aa.pdf";

???????????????????????? String destPath = "d:";

???????????????????????? String fileName = "hello.swf";

???????????????????????? convertHandler(pdfUrl,destPath,fileName);

????????????????? }

?????

?????????????????? public static int convertHandler(String pdfUrl,String destPath,String fileName)throws IOException{

?????????????????????? File dest = new File(destPath);

?????????????????????? if(!dest.exists()){

?????????????????????????? dest.mkdirs();??? //目标路径不存在则建立目标路径

?????????????????????? }

?????????????????????? File source = new File(pdfUrl);

??????????????????????if(!source.exists()){??? //源文件不存在则返回0

????????????????????????????? return 0;

????????????????????????? }

??????????????????????????String swfToolsUrl = "C:/Program Files/SWFTools/pdf2swf.exe";?? //swfTools的当前安装目录(绝对路径)

??????????????????????????String cmds =

????????????????????????? " -o /" + destPath + "/" + fileName + "/ -s languagedir=D:/xpdf -chinese-simplified -s flashversion=9 /" + pdfUrl + "/";

????????????????????????? String command = swfToolsUrl + cmds;

????????????????????????? Process pro = Runtime.getRuntime().exec(command);

?????????????????????????????????? BufferedReader br = new BufferedReader(new InputStreamReader(pro.getInputStream()));

????????????????????????? while(br.readLine() != null);

????????????????????????? try{

???????????????????????????????? pro.waitFor();

????????????????????????? }catch(InterruptedException e){

???????????????????????????????? e.printStackTrace();

????????????????????????? return pro.exitValue();

??????????????????? }

?????????? }

????????? 例3: flexPdf.mxml

???????????????? <?xml version="1.0" encoding="utf-8"?>

???????????????? <s:Applicationxmlns:fx="http://ns.adobe.com/mxml/2009"

?????????????????????????????????????????????? ?xmlns:s="library://ns.adobe.com/flex/spark"

????????????????????????????????????????????????xmlns:mx="library://ns.adobe.com/flex/mx"

??????????????????????????????????????????????? xmlns:flexpaper="com.devaldi.controls.flexpaper.*"

??????????????????????????????????????????????? minWidth="955" minHeight="600">

???????????????????????????? <flexpaper:FlexPaperViewer id="swfload" width="800" height="500"

?????????????????????????????????????????????????????????????????????????? SwfFile="aa.swf"/>

?????????????????? </s:Application>

????

三.相关工具和插件介绍:

???1. swfTools

?????? swfTools是一种实用工具与Adobe Flash文件(swf文件)工作的集合。

?????? 该工具集包括用于阅读的swf文件,结合他们,和他们建立从其他内容(如图像,声音文件,视频或源代码)程序。

?????? swfTools是在GPL下发布的。及永久免费。

????? ?swfTools是一组用来处理Flash的swf文件的工具包,包括:

?????? (1).合并工具swfcombine

?????? (2).抽取工具swfextract

?????? (3). pdf/jpeg/png/avi/ttf/wav到swf的转换工具:

???????????? pdf2swf,jpeg2swf,png2swf,avi2swf,font2swf,and wav2swf?

????????(4).文本解析工具swfstrings

??????? (5). swf解析器swfdump

??????? (6). SWF读写库rfxswflib

2.flexpaper

?????? ?flexpaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与pdf2swf一起使用,使在flex中显示pdf成为可能,

??????? 而这个过程并无需pdf软件环境的支持。它可以被当做Flex的库来使用。

??????? 另外你也可以通过将一些例如word/ppt/excel等文档转成pdf,然后实现在线浏览

???????? Flexpaper目前有三个版本的: GPL License (free)/ Commercial License/ Unlimited license

四.相关网站链接和参考资料

????? swfTools官网:??http://www.swftools.org/

????? swfTools下载:??http://www.swftools.org/download.html

????? 介绍swfTools:??http://www.iteye.com/topic/538361

??????????????????????????????http://bbs.9ria.com/thread-40043-1-1.html

??????????????????????????????http://baike.baidu.com/view/5638152.htm

???????flexpaper官网:??http://flexpaper.devaldi.com

?????? flexpaper下载:??http://flexpaper.devaldi.com/download/

????? 介绍flexPaper:??http://bbs.9ria.com/thread-40043-1-1.html

????????????????????????????? ?http://blog.minidx.com/2010/02/18/3106.html

????????????????????????????? ?http://www.oschina.net/p/flexpaper

????????????????????????????? ?http://www.cnblogs.com/sobne/articles/1822479.html

??? flexPaper的中文支持:??http://bbs.9ria.com/thread-66129-1-1.html

??? flexPaper组件用Flex4兼容性问题:??http://bbs.9ria.com/thread-81318-1-1.html

??? flex阅读器延迟加载分页加载:?http://bbs.9ria.com/viewthread.php?tid=74836

??? flexPaper显示word等文档:??http://www.oschina.net/question/59911_20089

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读