码迷,mamicode.com
首页 > 其他好文 > 详细

使用flexpaper在页面显示文档

时间:2014-10-03 23:02:45      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   io   os   使用   ar   java   

什么是flexpaper?

FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。

首先,将pdf文件转换为swf(其他格式的文件需要先转换为pdf)。这里需要使用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。
 
使用命令将pdf文件转换为swf C:\SWFTools\pdf2swf Paper3.pdf -o Paper3.swf
java实现将pdf转换为swf
    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 -1;       
        }      
        //cd 路径
        String[] envp = new String[1];       
        envp[0] = "PATH="+SWFTOOLS_PATH; //SWFTOOLS_PATH为swftools的安装路径
        //cmd  指令制定哪一个exe文件即可,
        String command = "cmd /c \""+SWFTOOLS_PATH+"pdf2swf\" -z -s flashversion=9 " + sourcePath + " -o " + destPath + fileName ;  
        //System.out.println("command: " + command);
        //如果子进程应该继承当前进程的环境(path=),envp该参数为 null。
        //String path = System.getProperty("java.library.path"); 
        //其中每个元素的环境变量的设置格式为 name=value
        Process pro = Runtime.getRuntime().exec(command, envp); 
        //获取子进程的输入流
        BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(pro.getInputStream()));       
        while (bufferedReader.readLine() != null)
        {   
            //清空process.getInputStream()的缓冲区
            //高级的做法是可以单独启动一个线程来做这件事
        }    
//        new Thread(new Runnable() {
//        public void run() {
//            BufferedReader br = new Buffered(new InputStreamReader(is)); 
//            while(br.readLine() != null) ;
//        }
//        }.start(); 
        try 
        {       
            //导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止
            pro.waitFor(); 
            
        } catch (InterruptedException e) 
        {       
            e.printStackTrace();       
        }    
        //返回子进程的出口值,但是输出流没有什么用,因为文件已经生成了
        return pro.exitValue();  
     } 

下载flexpaper,解压到网页目录下

在页面调用flexpaper

<!--首先要引入jquery库及相关的js-->
</style>        
<script type="text/javascript" src="flexpaper/js/flexpaper_flash.js"></script>
<script type="text/javascript" src="flexpaper/js/flexpaper_flash_debug.js"></script>
<script type="text/javascript" src="flexpaper/js/jquery.js"></script>
</head>
<body>

在html的代码中声明一个<a></>标签

<body> 
        <div style="position:absolute;left:10px;top:10px;">
            <a id="viewerPlaceHolder" style="width:660px;height:480px;display:block"></a>         
            <script type="text/javascript"> 
                var fp = new FlexPaperViewer(    
                         ‘flexpaper/FlexPaperViewer, <!--flexpaper的目录-->
                         viewerPlaceHolder,     <!--对应于a 标签的id-->
                         { config : {
                         SwfFile : escape(paper.swf),  <!--SwfFile: 指示导入的.swf的路径-->
                         Scale : 0.6, 
                         ZoomTransition : easeOut,
                         ZoomTime : 0.5,
                         ZoomInterval : 0.2,
                         FitPageOnLoad : true,
                         FitWidthOnLoad : true,//适合初始页宽度大小的装载页

               PrintEnabled : true,
                         FullScreenAsMaxWindow : false,
                         ProgressiveLoading : false,
                         MinZoomSize : 0.2,
                         MaxZoomSize : 5,
                         SearchMatchAll : false,
                         InitViewMode : Portrait,
                         
                         ViewModeToolsVisible : true,
                         ZoomToolsVisible : true,
                         NavToolsVisible : true,
                         CursorToolsVisible : true,
                         SearchToolsVisible : true,
                           localeChain: en_US
                         }});
            </script>
        </div>
</body>

 

使用flexpaper在页面显示文档

标签:des   style   blog   color   io   os   使用   ar   java   

原文地址:http://www.cnblogs.com/vitosun/p/4005380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!