zoukankan      html  css  js  c++  java
  • linux在线预览pdf文件开发思路

    准备:swftools,flexpaper

    基本思路:

    1,将pdf文件转化成swf文件

    2,使用flexpaper预览swf文件

    主要代码:

    1,在linux中安装swftools.官网下载swftools 安装包,解压

    2,./configure --prefix=安装路径

       make install 

    执行完之后,执行pdf2swf -help 如果显示。说明安装成功

    如果执行pdf2swf -help  显示commond not find 的话,可能需要配置swftools的环境变量,具体配置请百度^_^

    3.在java中调用linux shell 将pdf 转化成swf

    String [] cmd={"/bin/sh","-c","pdf2swf "+要转化的文件路径/文件名称.pdf+" "+  转化后的文件路径/文件名称.swf};
    
    Process pro = Runtime.getRuntime().exec(cmd);  
    
    dealWith(pro); 
    pro.waitFor();//等待子进程的结束,子进程就是系统调用文件转换这个新进程

    dealWith()是个方法了,里面可以打印执行过程

        private void dealWith(final Process pro){    
            // 下面是处理堵塞的情况    
            try {    
                new Thread(){    
                    public void run(){    
                        BufferedReader br1 = new BufferedReader(new InputStreamReader(pro.getInputStream()));    
                        System.out.println("********************"+br1);
                        String text;    
                        try {    
                            while ( (text = br1.readLine()) != null) {    
                                System.out.println("==================="+text);    
                            }    
                        } catch (IOException e) {    
                            e.printStackTrace();    
                        }    
                    }    
                }.start();    
            } catch (Exception e) {    
                e.printStackTrace();    
            }    
                
            try {    
                new Thread(){    
                    public void run(){    
                        BufferedReader br2 = new BufferedReader(new InputStreamReader(pro.getErrorStream()));//这定不要忘记处理出理时产生的信息,不然会堵塞不前的    
                        System.out.println("#########################"+br2);
                        String text;    
                        try {    
                            while( (text = br2.readLine()) != null){    
                                System.err.println("------------------"+text);    
                            }    
                        } catch (IOException e) {    
                            e.printStackTrace();    
                        }    
                    }    
                }.start();    
            } catch (Exception e) {    
                e.printStackTrace();    
            }    
        } 

    4.jsp中,

    引入flexpaper的class 和js

     <link rel="stylesheet" type="text/css" href="${ctx}/pages/flexPaper/css/flexpaper.css" />

    <script src="${ctx}/pages/flexPaper/js/flexpaper.js" charset="UTF-8"></script>
    <script src="${ctx}/pages/flexPaper/js/flexpaper_handlers.js" charset="UTF-8"></script>

     <div id="documentViewer" class="flexpaper_viewer"   style="770px;height:500px;"></div> 

    $('#documentViewer').FlexPaperViewer(
                    { config : {
                         SWFFile : fileURL,
                        Scale : 0.6,
                        ZoomTransition : 'easeOut',
                        ZoomTime : 0.5,
                        ZoomInterval : 0.2,
                        FitPageOnLoad : true,
                        FitWidthOnLoad : false,
                        FullScreenAsMaxWindow : false,
                        ProgressiveLoading : false,
                        MinZoomSize : 0.2,
                        MaxZoomSize : 5,
                        SearchMatchAll : false,
                        InitViewMode : 'Portrait',
                        RenderingOrder : 'flash',
                        StartAtPage : '',
    
                        ViewModeToolsVisible : true,
                        ZoomToolsVisible : true,
                        NavToolsVisible : true,
                        CursorToolsVisible : true,
                        SearchToolsVisible : true,
                        WMode : 'window',
                        localeChain: 'en_US'
                    }}
            );

    以上为主要实现代码。flexpaper的使用可以参考官方下载包,将官方下载包直接丢到tomcat中是可以运行的。

    -------------------------------------------------------------------------------------------------------------------------------------------

    先写这么多,再次感谢伟大的各界网友和IT同行,提供的各种资料给我与莫大的帮助。thank you!

  • 相关阅读:
    struts2 json返回试验
    ABCD四个人说真话的概率都是1/3。假如A声称B否认C说D是说谎了,那么D说过的那句话真话的概率是多少
    ABCD四个人说真话的概率都是1/3。假如A声称B否认C说D是说谎了,那么D说过的那句话真话的概率是多少
    大数据学习路线copy自淘宝
    大数据学习路线copy自淘宝
    大数据学习路线copy自淘宝
    在Action获取Scope对象
    在Action获取Scope对象
    动态Result配置
    动态Result配置
  • 原文地址:https://www.cnblogs.com/yimiyan/p/3773795.html
Copyright © 2011-2022 走看看